PageSourceSearch

https://padraig-operator.netlify.app/main.js

js padraig-operator.netlify.app collected 2026-10-03 11:14:22 UTC 1,043,174 bytes, 16,748 lines download raw bytes

vendor: 4,323 bytes, lines 1-106
1/******/ (function(modules) { // webpackBootstrap
2/******/ 	// The module cache
3/******/ 	var installedModules = {};
4/******/
5/******/ 	// The require function
6/******/ 	function __webpack_require__(moduleId) {
7/******/
8/******/ 		// Check if module is in cache
9/******/ 		if(installedModules[moduleId]) {
10/******/ 			return installedModules[moduleId].exports;
11/******/ 		}
12/******/ 		// Create a new module (and put it into the cache)
13/******/ 		var module = installedModules[moduleId] = {
14/******/ 			i: moduleId,
15/******/ 			l: false,
16/******/ 			exports: {}
17/******/ 		};
18/******/
19/******/ 		// Execute the module function
20/******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
21/******/
22/******/ 		// Flag the module as loaded
23/******/ 		module.l = true;
24/******/
25/******/ 		// Return the exports of the module
26/******/ 		return module.exports;
27/******/ 	}
28/******/
29/******/
30/******/ 	// expose the modules object (__webpack_modules__)
31/******/ 	__webpack_require__.m = modules;
32/******/
33/******/ 	// expose the module cache
34/******/ 	__webpack_require__.c = installedModules;
35/******/
36/******/ 	// define getter function for harmony exports
37/******/ 	__webpack_require__.d = function(exports, name, getter) {
38/******/ 		if(!__webpack_require__.o(exports, name)) {
39/******/ 			Object.defineProperty(exports, name, { enumerable: true, get: getter });
40/******/ 		}
41/******/ 	};
42/******/
43/******/ 	// define __esModule on exports
44/******/ 	__webpack_require__.r = function(exports) {
45/******/ 		if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
46/******/ 			Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
47/******/ 		}
48/******/ 		Object.defineProperty(exports, '__esModule', { value: true });
49/******/ 	};
50/******/
51/******/ 	// create a fake namespace object
52/******/ 	// mode & 1: value is a module id, require it
53/******/ 	// mode & 2: merge all properties of value into the ns
54/******/ 	// mode & 4: return value when already ns object
55/******/ 	// mode & 8|1: behave like require
56/******/ 	__webpack_require__.t = function(value, mode) {
57/******/ 		if(mode & 1) value = __webpack_require__(value);
58/******/ 		if(mode & 8) return value;
59/******/ 		if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
60/******/ 		var ns = Object.create(null);
61/******/ 		__webpack_require__.r(ns);
62/******/ 		Object.defineProperty(ns, 'default', { enumerable: true, value: value });
63/******/ 		if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
64/******/ 		return ns;
65/******/ 	};
66/******/
67/******/ 	// getDefaultExport function for compatibility with non-harmony modules
68/******/ 	__webpack_require__.n = function(module) {
69/******/ 		var getter = module && module.__esModule ?
70/******/ 			function getDefault() { return module['default']; } :
71/******/ 			function getModuleExports() { return module; };
72/******/ 		__webpack_require__.d(getter, 'a', getter);
73/******/ 		return getter;
74/******/ 	};
75/******/
76/******/ 	// Object.prototype.hasOwnProperty.call
77/******/ 	__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
78/******/
79/******/ 	// __webpack_public_path__
80/******/ 	__webpack_require__.p = "/";
81/******/
82/******/
83/******/ 	// Load entry module and return exports
84/******/ 	return __webpack_require__(__webpack_require__.s = 47);
85/******/ })
86/************************************************************************/
87/******/ ([
88/* 0 */
89/***/ (function(module, exports, __webpack_require__) {
90
91"use strict";
92
93
94if (true) {
95  module.exports = __webpack_require__(48);
96} else {}
97
98
99/***/ }),
100/* 1 */
101/***/ (function(module, exports, __webpack_require__) {
102
103"use strict";
104
105Object.defineProperty(exports, "__esModule", { value: true });
106exports.NOTES = exports.MULTI_TOUCH = exports.CANCEL = exports.CLEAR_TEMP = exports.CLEAR_VIEW = exports.PATTERN_TYPE = exports.NOTE_COPY = exports.PATTERN_UPDATE = exports.PATTERN_IDX = exports.PATTERN_COPY = exports.PATTERN_SET = exports.PATTERN_CHAIN_NEW = exports.PATTERN_CHAIN = exports.PATTERN_VIEW = exports.PATTERNS = exports.SOUNDS_SET = exports.SOUNDS_VIEW = exports.VOLUME_SET = exports.VOLUME = exports.SOUND = exp
106orts.SWING = exports.SWING_SET = exports.BPM = exports.MUTE = exports.WRITE = exports.PLAY = void 0;
107exports.PLAY = 'play_toggle';
108exports.WRITE = 'write_toggle';
109exports.MUTE = 'mute_toggle';
110exports.BPM = 'bpm';
111exports.SWING_SET = 'swing_set';
112exports.SWING = 'swing';
113exports.SOUND = 'sound';
114exports.VOLUME = 'volume';
115exports.VOLUME_SET = 'volume_set';
116exports.SOUNDS_VIEW = 'sounds_view';
117exports.SOUNDS_SET = 'sounds_set';
118exports.PATTERNS = 'patterns';
119exports.PATTERN_VIEW = 'pattern_view';
120exports.PATTERN_CHAIN = 'pattern_chain';
121exports.PATTERN_CHAIN_NEW = 'pattern_chain_new';
122exports.PATTERN_SET = 'pattern_set';
123exports.PATTERN_COPY = 'pattern_copy';
124exports.PATTERN_IDX = 'pattern_idx';
125exports.PATTERN_UPDATE = 'pattern_update';
126exports.NOTE_COPY = 'note_copy';
127exports.PATTERN_TYPE = 'patternType';
128exports.CLEAR_VIEW = 'clear_view';
129exports.CLEAR_TEMP = 'clear_temp';
130exports.CANCEL = 'cancel';
131exports.MULTI_TOUCH = 'multi_touch';
132exports.NOTES = ['C', 'D', 'E', 'F', 'G', 'A', 'B'];
133
134
135/***/ }),
136/* 2 */
137/***/ (function(module, exports, __webpack_require__) {
138
139/**
140 * Copyright (c) 2013-present, Facebook, Inc.
141 *
142 * This source code is licensed under the MIT license found in the
143 * LICENSE file in the root directory of this source tree.
144 */
145
146if (false) { var throwOnDirectAccess, ReactIs; } else {
147  // By explicitly using `prop-types` you are opting into new production behavior.
148  // http://fb.me/prop-types-in-prod
149  module.exports = __webpack_require__(53)();
150}
151
152
153/***/ }),
154/* 3 */
155/***/ (function(module, exports, __webpack_require__) {
156
157"use strict";
158
159Object.defineProperty(exports, "__esModule", { value: true });
160exports.getObjectType = function (value) {
161    return Object.prototype.toString.call(value).slice(8, -1);
162};
163var isObjectOfType = function (type) { return function (value) {
164    return exports.getObjectType(value) === type;
165}; };
166var isOfType = function (type) { return function (value) { return typeof value === type; }; };
167var is = function (value) {
168    switch (value) {
169        case null:
170            return "null" /* null */;
171        case true:
172        case false:
173            return "boolean" /* boolean */;
174        default:
175    }
176    switch (typeof value) {
177        case 'undefined':
178            return "undefined" /* undefined */;
179        case 'string':
180            return "string" /* string */;
181        case 'number':
182            return "number" /* number */;
183        case 'bigint':
184            return "bigint" /* bigint */;
185        case 'symbol':
186            return "symbol" /* symbol */;
187        default:
188    }
189    if (is.array(value)) {
190        return "Array" /* array */;
191    }
192    if (is.function(value)) {
193        return "Function" /* function */;
194    }
195    var tagType = exports.getObjectType(value);
196    /* istanbul ignore else */
197    if (tagType) {
198        return tagType;
199    }
200    /* istanbul ignore next */
201    return "Object" /* object */;
202};
203is.array = Array.isArray;
204is.arrayOf = function (target, predicate) {
205    if (!is.array(target) && !is.function(predicate)) {
206        return false;
207    }
208    return target.every(function (d) { return predicate(d); });
209};
210// tslint:disable-next-line:ban-types
211is.asyncFunction = isObjectOfType("AsyncFunction" /* asyncFunction */);
212is.boolean = function (value) {
213    return value === true || value === false;
214};
215is.date = isObjectOfType("Date" /* date */);
216is.defined = function (value) { return !is.undefined(value); };
217is.domElement = function (value) {
218    var DOM_PROPERTIES_TO_CHECK = [
219        'innerHTML',
220        'ownerDocument',
221        'style',
222        'attributes',
223        'nodeValue',
224    ];
225    return (is.object(value) &&
226        !is.plainObject(value) &&
227        value.nodeType === 1 &&
228        is.string(value.nodeName) &&
229        DOM_PROPERTIES_TO_CHECK.every(function (property) { return property in value; }));
230};
231is.empty = function (value) {
232    return ((is.string(value) && value.length === 0) ||
233        (is.array(value) && value.length === 0) ||
234        (is.object(value) && !is.map(value) && !is.set(value) && Object.keys(value).length === 0) ||
235        (is.set(value) && value.size === 0) ||
236        (is.map(value) && value.size === 0));
237};
238is.error = isObjectOfType("Error" /* error */);
239// tslint:disable-next-line:ban-types
240is.function = isObjectOfType("Function" /* function */);
241is.generator = function (value) {
242    return (is.iterable(value) &&
243        is.function(value.next) &&
244        is.function(value.throw));
245};
246is.generatorFunction = isObjectOfType("GeneratorFunction" /* generatorFunction */);
247// tslint:disable-next-line:variable-name
248is.instanceOf = function (instance, class_) {
249    if (!instance || !class_) {
250        return false;
251    }
252    return Object.getPrototypeOf(instance) === class_.prototype;
253};
254is.iterable = function (value) {
255    return (!is.nullOrUndefined(value) && is.function(value[Symbol.iterator]));
256};
257is.map = isObjectOfType("Map" /* map */);
258is.nan = function (value) {
259    return Number.isNaN(value);
260};
261is.null = function (value) {
262    return value === null;
263};
264is.nullOrUndefined = function (value) {
265    return is.null(value) || is.undefined(value);
266};
267is.number = function (value) {
268    return isOfType("number" /* number */)(value) && !is.nan(value);
269};
270is.numericString = function (value) {
271    return is.string(value) && value.length > 0 && !Number.isNaN(Number(value));
272};
273is.object = function (value) {
274    return !is.nullOrUndefined(value) && (is.function(value) || typeof value === 'object');
275};
276is.oneOf = function (target, value) {
277    if (!is.array(target)) {
278        return false;
279    }
280    return target.indexOf(value) > -1;
281};
282is.plainObject = function (value) {
283    if (exports.getObjectType(value) !== 'Object') {
284        return false;
285    }
286    var prototype = Object.getPrototypeOf(value);
287    return prototype === null || prototype === Object.getPrototypeOf({});
288};
289is.promise = isObjectOfType("Promise" /* promise */);
290is.propertyOf = function (target, key, predicate) {
291    if (!is.object(target) || !key) {
292        return false;
293    }
294    // @ts-ignore
295    var value = target[key];
296    if (is.function(predicate)) {
297        return predicate(value);
298    }
299    return is.defined(value);
300};
301is.regexp = isObjectOfType("RegExp" /* regExp */);
302is.set = isObjectOfType("Set" /* set */);
303is.string = isOfType("string" /* string */);
304is.symbol = isOfType("symbol" /* symbol */);
305is.undefined = isOfType("undefined" /* undefined */);
306is.weakMap = isObjectOfType("WeakMap" /* weakMap */);
307is.weakSet = isObjectOfType("WeakSet" /* weakSet */);
308exports.default = is;
309//# sourceMappingURL=index.js.map
310
311/***/ }),
312/* 4 */
313/***/ (function(module, __webpack_exports__, __webpack_require__) {
314
315"use strict";
316__webpack_require__.r(__webpack_exports__);
317/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MemoryRouter", function() { return MemoryRouter; });
318/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Prompt", function() { return Prompt; });
319/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Redirect", function() { return Redirect; });
320/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Route", function() { return Route; });
321/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Router", function() { return Router; });
322/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "StaticRouter", function() { return StaticRouter; });
323/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Switch", function() { return Switch; });
324/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__HistoryContext", function() { return historyContext; });
325/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__RouterContext", function() { return context; });
326/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "generatePath", function() { return generatePath; });
327/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "matchPath", function() { return matchPath; });
328/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "useHistory", function() { return useHistory; });
329/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "useLocation", function() { return useLocation; });
330/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "useParams", function() { return useParams; });
331/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "useRouteMatch", function() { return useRouteMatch; });
332/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "withRouter", function() { return withRouter; });
333/* harmony import */ var _babel_runtime_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6);
334/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(0);
335/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
336/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(2);
337/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_2__);
338/* harmony import */ var history__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(8);
339/* harmony import */ var mini_create_react_context__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(25);
340/* harmony import */ var tiny_invariant__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(7);
341/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(5);
342/* harmony import */ var path_to_regexp__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(26);
343/* harmony import */ var path_to_regexp__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(path_to_regexp__WEBPACK_IMPORTED_MODULE_7__);
344/* harmony import */ var react_is__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(11);
345/* harmony import */ var react_is__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(react_is__WEBPACK_IMPORTED_MODULE_8__);
346/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(17);
347/* harmony import */ var hoist_non_react_statics__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(40);
348/* harmony import */ var hoist_non_react_statics__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(hoist_non_react_statics__WEBPACK_IMPORTED_MODULE_10__);
349
350
351
352
353
354
355
356
357
358
359
360
361
362// TODO: Replace with React.createContext once we can assume React 16+
363
364var createNamedContext = function createNamedContext(name) {
365  var context = Object(mini_create_react_context__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"])();
366  context.displayName = name;
367  return context;
368};
369
370var historyContext =
371/*#__PURE__*/
372createNamedContext("Router-History");
373
374// TODO: Replace with React.createContext once we can assume React 16+
375
376var createNamedContext$1 = function createNamedContext(name) {
377  var context = Object(mini_create_react_context__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"])();
378  context.displayName = name;
379  return context;
380};
381
382var context =
383/*#__PURE__*/
384createNamedContext$1("Router");
385
386/**
387 * The public API for putting history on context.
388 */
389
390var Router =
391/*#__PURE__*/
392function (_React$Component) {
393  Object(_babel_runtime_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(Router, _React$Component);
394
395  Router.computeRootMatch = function computeRootMatch(pathname) {
396    return {
397      path: "/",
398      url: "/",
399      params: {},
400      isExact: pathname === "/"
401    };
402  };
403
404  function Router(props) {
405    var _this;
406
407    _this = _React$Component.call(this, props) || this;
408    _this.state = {
409      location: props.history.location
410    }; // This is a bit of a hack. We have to start listening for location
411    // changes here in the constructor in case there are any <Redirect>s
412    // on the initial render. If there are, they will replace/push when
413    // they mount and since cDM fires in children before parents, we may
414    // get a new location before the <Router> is mounted.
415
416    _this._isMounted = false;
417    _this._pendingLocation = null;
418
419    if (!props.staticContext) {
420      _this.unlisten = props.history.listen(function (location) {
421        if (_this._isMounted) {
422          _this.setState({
423            location: location
424          });
425        } else {
426          _this._pendingLocation = location;
427        }
428      });
429    }
430
431    return _this;
432  }
433
434  var _proto = Router.prototype;
435
436  _proto.componentDidMount = function componentDidMount() {
437    this._isMounted = true;
438
439    if (this._pendingLocation) {
440      this.setState({
441        location: this._pendingLocation
442      });
443    }
444  };
445
446  _proto.componentWillUnmount = function componentWillUnmount() {
447    if (this.unlisten) this.unlisten();
448  };
449
450  _proto.render = function render() {
451    return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(context.Provider, {
452      value: {
453        history: this.props.history,
454        location: this.state.location,
455        match: Router.computeRootMatch(this.state.location.pathname),
456        staticContext: this.props.staticContext
457      }
458    }, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(historyContext.Provider, {
459      children: this.props.children || null,
460      value: this.props.history
461    }));
462  };
463
464  return Router;
465}(react__WEBPACK_IMPORTED_MODULE_1___default.a.Component);
466
467if (false) {}
468
469/**
470 * The public API for a <Router> that stores location in memory.
471 */
472
473var MemoryRouter =
474/*#__PURE__*/
475function (_React$Component) {
476  Object(_babel_runtime_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(MemoryRouter, _React$Component);
477
478  function MemoryRouter() {
479    var _this;
480
481    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
482      args[_key] = arguments[_key];
483    }
484
485    _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;
486    _this.history = Object(history__WEBPACK_IMPORTED_MODULE_3__["createMemoryHistory"])(_this.props);
487    return _this;
488  }
489
490  var _proto = MemoryRouter.prototype;
491
492  _proto.render = function render() {
493    return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(Router, {
494      history: this.history,
495      children: this.props.children
496    });
497  };
498
499  return MemoryRouter;
500}(react__WEBPACK_IMPORTED_MODULE_1___default.a.Component);
501
502if (false) {}
503
504var Lifecycle =
505/*#__PURE__*/
506function (_React$Component) {
507  Object(_babel_runtime_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(Lifecycle, _React$Component);
508
509  function Lifecycle() {
510    return _React$Component.apply(this, arguments) || this;
511  }
512
513  var _proto = Lifecycle.prototype;
514
515  _proto.componentDidMount = function componentDidMount() {
516    if (this.props.onMount) this.props.onMount.call(this, this);
517  };
518
519  _proto.componentDidUpdate = function componentDidUpdate(prevProps) {
520    if (this.props.onUpdate) this.props.onUpdate.call(this, this, prevProps);
521  };
522
523  _proto.componentWillUnmount = function componentWillUnmount() {
524    if (this.props.onUnmount) this.props.onUnmount.call(this, this);
525  };
526
527  _proto.render = function render() {
528    return null;
529  };
530
531  return Lifecycle;
532}(react__WEBPACK_IMPORTED_MODULE_1___default.a.Component);
533
534/**
535 * The public API for prompting the user before navigating away from a screen.
536 */
537
538function Prompt(_ref) {
539  var message = _ref.message,
540      _ref$when = _ref.when,
541      when = _ref$when === void 0 ? true : _ref$when;
542  return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(context.Consumer, null, function (context) {
543    !context ?  false ? undefined : Object(tiny_invariant__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"])(false) : void 0;
544    if (!when || context.staticContext) return null;
545    var method = context.history.block;
546    return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(Lifecycle, {
547      onMount: function onMount(self) {
548        self.release = method(message);
549      },
550      onUpdate: function onUpdate(self, prevProps) {
551        if (prevProps.message !== message) {
552          self.release();
553          self.release = method(message);
554        }
555      },
556      onUnmount: function onUnmount(self) {
557        self.release();
558      },
559      message: message
560    });
561  });
562}
563
564if (false) { var messageType; }
565
566var cache = {};
567var cacheLimit = 10000;
568var cacheCount = 0;
569
570function compilePath(path) {
571  if (cache[path]) return cache[path];
572  var generator = path_to_regexp__WEBPACK_IMPORTED_MODULE_7___default.a.compile(path);
573
574  if (cacheCount < cacheLimit) {
575    cache[path] = generator;
576    cacheCount++;
577  }
578
579  return generator;
580}
581/**
582 * Public API for generating a URL pathname from a path and parameters.
583 */
584
585
586function generatePath(path, params) {
587  if (path === void 0) {
588    path = "/";
589  }
590
591  if (params === void 0) {
592    params = {};
593  }
594
595  return path === "/" ? path : compilePath(path)(params, {
596    pretty: true
597  });
598}
599
600/**
601 * The public API for navigating programmatically with a component.
602 */
603
604function Redirect(_ref) {
605  var computedMatch = _ref.computedMatch,
606      to = _ref.to,
607      _ref$push = _ref.push,
608      push = _ref$push === void 0 ? false : _ref$push;
609  return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(context.Consumer, null, function (context) {
610    !context ?  false ? undefined : Object(tiny_invariant__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"])(false) : void 0;
611    var history = context.history,
612        staticContext = context.staticContext;
613    var method = push ? history.push : history.replace;
614    var location = Object(history__WEBPACK_IMPORTED_MODULE_3__["createLocation"])(computedMatch ? typeof to === "string" ? generatePath(to, computedMatch.params) : Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_6__[/* default */ "a"])({}, to, {
615      pathname: generatePath(to.pathname, computedMatch.params)
616    }) : to); // When rendering in a static context,
617    // set the new location immediately.
618
619    if (staticContext) {
620      method(location);
621      return null;
622    }
623
624    return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(Lifecycle, {
625      onMount: function onMount() {
626        method(location);
627      },
628      onUpdate: function onUpdate(self, prevProps) {
629        var prevLocation = Object(history__WEBPACK_IMPORTED_MODULE_3__["createLocation"])(prevProps.to);
630
631        if (!Object(history__WEBPACK_IMPORTED_MODULE_3__["locationsAreEqual"])(prevLocation, Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_6__[/* default */ "a"])({}, location, {
632          key: prevLocation.key
633        }))) {
634          method(location);
635        }
636      },
637      to: to
638    });
639  });
640}
641
642if (false) {}
643
644var cache$1 = {};
645var cacheLimit$1 = 10000;
646var cacheCount$1 = 0;
647
648function compilePath$1(path, options) {
649  var cacheKey = "" + options.end + options.strict + options.sensitive;
650  var pathCache = cache$1[cacheKey] || (cache$1[cacheKey] = {});
651  if (pathCache[path]) return pathCache[path];
652  var keys = [];
653  var regexp = path_to_regexp__WEBPACK_IMPORTED_MODULE_7___default()(path, keys, options);
654  var result = {
655    regexp: regexp,
656    keys: keys
657  };
658
659  if (cacheCount$1 < cacheLimit$1) {
660    pathCache[path] = result;
661    cacheCount$1++;
662  }
663
664  return result;
665}
666/**
667 * Public API for matching a URL pathname to a path.
668 */
669
670
671function matchPath(pathname, options) {
672  if (options === void 0) {
673    options = {};
674  }
675
676  if (typeof options === "string" || Array.isArray(options)) {
677    options = {
678      path: options
679    };
680  }
681
682  var _options = options,
683      path = _options.path,
684      _options$exact = _options.exact,
685      exact = _options$exact === void 0 ? false : _options$exact,
686      _options$strict = _options.strict,
687      strict = _options$strict === void 0 ? false : _options$strict,
688      _options$sensitive = _options.sensitive,
689      sensitive = _options$sensitive === void 0 ? false : _options$sensitive;
690  var paths = [].concat(path);
691  return paths.reduce(function (matched, path) {
692    if (!path && path !== "") return null;
693    if (matched) return matched;
694
695    var _compilePath = compilePath$1(path, {
696      end: exact,
697      strict: strict,
698      sensitive: sensitive
699    }),
700        regexp = _compilePath.regexp,
701        keys = _compilePath.keys;
702
703    var match = regexp.exec(pathname);
704    if (!match) return null;
705    var url = match[0],
706        values = match.slice(1);
707    var isExact = pathname === url;
708    if (exact && !isExact) return null;
709    return {
710      path: path,
711      // the path used to match
712      url: path === "/" && url === "" ? "/" : url,
713      // the matched portion of the URL
714      isExact: isExact,
715      // whether or not we matched exactly
716      params: keys.reduce(function (memo, key, index) {
717        memo[key.name] = values[index];
718        return memo;
719      }, {})
720    };
721  }, null);
722}
723
724function isEmptyChildren(children) {
725  return react__WEBPACK_IMPORTED_MODULE_1___default.a.Children.count(children) === 0;
726}
727
728function evalChildrenDev(children, props, path) {
729  var value = children(props);
730   false ? undefined : void 0;
731  return value || null;
732}
733/**
734 * The public API for matching a single path and rendering.
735 */
736
737
738var Route =
739/*#__PURE__*/
740function (_React$Component) {
741  Object(_babel_runtime_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(Route, _React$Component);
742
743  function Route() {
744    return _React$Component.apply(this, arguments) || this;
745  }
746
747  var _proto = Route.prototype;
748
749  _proto.render = function render() {
750    var _this = this;
751
752    return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(context.Consumer, null, function (context$1) {
753      !context$1 ?  false ? undefined : Object(tiny_invariant__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"])(false) : void 0;
754      var location = _this.props.location || context$1.location;
755      var match = _this.props.computedMatch ? _this.props.computedMatch // <Switch> already computed the match for us
756      : _this.props.path ? matchPath(location.pathname, _this.props) : context$1.match;
757
758      var props = Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_6__[/* default */ "a"])({}, context$1, {
759        location: location,
760        match: match
761      });
762
763      var _this$props = _this.props,
764          children = _this$props.children,
765          component = _this$props.component,
766          render = _this$props.render; // Preact uses an empty array as children by
767      // default, so use null if that's the case.
768
769      if (Array.isArray(children) && children.length === 0) {
770        children = null;
771      }
772
773      return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(context.Provider, {
774        value: props
775      }, props.match ? children ? typeof children === "function" ?  false ? undefined : children(props) : children : component ? react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(component, props) : render ? render(props) : null : typeof children === "function" ?  false ? undefined : children(props) : null);
776    });
777  };
778
779  return Route;
780}(react__WEBPACK_IMPORTED_MODULE_1___default.a.Component);
781
782if (false) {}
783
784function addLeadingSlash(path) {
785  return path.charAt(0) === "/" ? path : "/" + path;
786}
787
788function addBasename(basename, location) {
789  if (!basename) return location;
790  return Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_6__[/* default */ "a"])({}, location, {
791    pathname: addLeadingSlash(basename) + location.pathname
792  });
793}
794
795function stripBasename(basename, location) {
796  if (!basename) return location;
797  var base = addLeadingSlash(basename);
798  if (location.pathname.indexOf(base) !== 0) return location;
799  return Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_6__[/* default */ "a"])({}, location, {
800    pathname: location.pathname.substr(base.length)
801  });
802}
803
804function createURL(location) {
805  return typeof location === "string" ? location : Object(history__WEBPACK_IMPORTED_MODULE_3__["createPath"])(location);
806}
807
808function staticHandler(methodName) {
809  return function () {
810      false ? undefined : Object(tiny_invariant__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"])(false) ;
811  };
812}
813
814function noop() {}
815/**
816 * The public top-level API for a "static" <Router>, so-called because it
817 * can't actually change the current location. Instead, it just records
818 * location changes in a context object. Useful mainly in testing and
819 * server-rendering scenarios.
820 */
821
822
823var StaticRouter =
824/*#__PURE__*/
825function (_React$Component) {
826  Object(_babel_runtime_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(StaticRouter, _React$Component);
827
828  function StaticRouter() {
829    var _this;
830
831    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
832      args[_key] = arguments[_key];
833    }
834
835    _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;
836
837    _this.handlePush = function (location) {
838      return _this.navigateTo(location, "PUSH");
839    };
840
841    _this.handleReplace = function (location) {
842      return _this.navigateTo(location, "REPLACE");
843    };
844
845    _this.handleListen = function () {
846      return noop;
847    };
848
849    _this.handleBlock = function () {
850      return noop;
851    };
852
853    return _this;
854  }
855
856  var _proto = StaticRouter.prototype;
857
858  _proto.navigateTo = function navigateTo(location, action) {
859    var _this$props = this.props,
860        _this$props$basename = _this$props.basename,
861        basename = _this$props$basename === void 0 ? "" : _this$props$basename,
862        _this$props$context = _this$props.context,
863        context = _this$props$context === void 0 ? {}
863 : _this$props$context;
864    context.action = action;
865    context.location = addBasename(basename, Object(history__WEBPACK_IMPORTED_MODULE_3__["createLocation"])(location));
866    context.url = createURL(context.location);
867  };
868
869  _proto.render = function render() {
870    var _this$props2 = this.props,
871        _this$props2$basename = _this$props2.basename,
872        basename = _this$props2$basename === void 0 ? "" : _this$props2$basename,
873        _this$props2$context = _this$props2.context,
874        context = _this$props2$context === void 0 ? {} : _this$props2$context,
875        _this$props2$location = _this$props2.location,
876        location = _this$props2$location === void 0 ? "/" : _this$props2$location,
877        rest = Object(_babel_runtime_helpers_esm_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_9__[/* default */ "a"])(_this$props2, ["basename", "context", "location"]);
878
879    var history = {
880      createHref: function createHref(path) {
881        return addLeadingSlash(basename + createURL(path));
882      },
883      action: "POP",
884      location: stripBasename(basename, Object(history__WEBPACK_IMPORTED_MODULE_3__["createLocation"])(location)),
885      push: this.handlePush,
886      replace: this.handleReplace,
887      go: staticHandler("go"),
888      goBack: staticHandler("goBack"),
889      goForward: staticHandler("goForward"),
890      listen: this.handleListen,
891      block: this.handleBlock
892    };
893    return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(Router, Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_6__[/* default */ "a"])({}, rest, {
894      history: history,
895      staticContext: context
896    }));
897  };
898
899  return StaticRouter;
900}(react__WEBPACK_IMPORTED_MODULE_1___default.a.Component);
901
902if (false) {}
903
904/**
905 * The public API for rendering the first <Route> that matches.
906 */
907
908var Switch =
909/*#__PURE__*/
910function (_React$Component) {
911  Object(_babel_runtime_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(Switch, _React$Component);
912
913  function Switch() {
914    return _React$Component.apply(this, arguments) || this;
915  }
916
917  var _proto = Switch.prototype;
918
919  _proto.render = function render() {
920    var _this = this;
921
922    return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(context.Consumer, null, function (context) {
923      !context ?  false ? undefined : Object(tiny_invariant__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"])(false) : void 0;
924      var location = _this.props.location || context.location;
925      var element, match; // We use React.Children.forEach instead of React.Children.toArray().find()
926      // here because toArray adds keys to all child elements and we do not want
927      // to trigger an unmount/remount for two <Route>s that render the same
928      // component at different URLs.
929
930      react__WEBPACK_IMPORTED_MODULE_1___default.a.Children.forEach(_this.props.children, function (child) {
931        if (match == null && react__WEBPACK_IMPORTED_MODULE_1___default.a.isValidElement(child)) {
932          element = child;
933          var path = child.props.path || child.props.from;
934          match = path ? matchPath(location.pathname, Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_6__[/* default */ "a"])({}, child.props, {
935            path: path
936          })) : context.match;
937        }
938      });
939      return match ? react__WEBPACK_IMPORTED_MODULE_1___default.a.cloneElement(element, {
940        location: location,
941        computedMatch: match
942      }) : null;
943    });
944  };
945
946  return Switch;
947}(react__WEBPACK_IMPORTED_MODULE_1___default.a.Component);
948
949if (false) {}
950
951/**
952 * A public higher-order component to access the imperative API
953 */
954
955function withRouter(Component) {
956  var displayName = "withRouter(" + (Component.displayName || Component.name) + ")";
957
958  var C = function C(props) {
959    var wrappedComponentRef = props.wrappedComponentRef,
960        remainingProps = Object(_babel_runtime_helpers_esm_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_9__[/* default */ "a"])(props, ["wrappedComponentRef"]);
961
962    return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(context.Consumer, null, function (context) {
963      !context ?  false ? undefined : Object(tiny_invariant__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"])(false) : void 0;
964      return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(Component, Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_6__[/* default */ "a"])({}, remainingProps, context, {
965        ref: wrappedComponentRef
966      }));
967    });
968  };
969
970  C.displayName = displayName;
971  C.WrappedComponent = Component;
972
973  if (false) {}
974
975  return hoist_non_react_statics__WEBPACK_IMPORTED_MODULE_10___default()(C, Component);
976}
977
978var useContext = react__WEBPACK_IMPORTED_MODULE_1___default.a.useContext;
979function useHistory() {
980  if (false) {}
981
982  return useContext(historyContext);
983}
984function useLocation() {
985  if (false) {}
986
987  return useContext(context).location;
988}
989function useParams() {
990  if (false) {}
991
992  var match = useContext(context).match;
993  return match ? match.params : {};
994}
995function useRouteMatch(path) {
996  if (false) {}
997
998  var location = useLocation();
999  var match = useContext(context).match;
1000  return path ? matchPath(location.pathname, path) : match;
1001}
1002
1003if (false) { var secondaryBuildName, initialBuildName, buildNames, key, global; }
1004
1005
1006//# sourceMappingURL=react-router.js.map
1007
1008
1009/***/ }),
1010/* 5 */
1011/***/ (function(module, __webpack_exports__, __webpack_require__) {
1012
1013"use strict";
1014/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _extends; });
1015function _extends() {
1016  _extends = Object.assign || function (target) {
1017    for (var i = 1; i < arguments.length; i++) {
1018      var source = arguments[i];
1019
1020      for (var key in source) {
1021        if (Object.prototype.hasOwnProperty.call(source, key)) {
1022          target[key] = source[key];
1023        }
1024      }
1025    }
1026
1027    return target;
1028  };
1029
1030  return _extends.apply(this, arguments);
1031}
1032
1033/***/ }),
1034/* 6 */
1035/***/ (function(module, __webpack_exports__, __webpack_require__) {
1036
1037"use strict";
1038/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _inheritsLoose; });
1039function _inheritsLoose(subClass, superClass) {
1040  subClass.prototype = Object.create(superClass.prototype);
1041  subClass.prototype.constructor = subClass;
1042  subClass.__proto__ = superClass;
1043}
1044
1045/***/ }),
1046/* 7 */
1047/***/ (function(module, __webpack_exports__, __webpack_require__) {
1048
1049"use strict";
1050var isProduction = "production" === 'production';
1051var prefix = 'Invariant failed';
1052function invariant(condition, message) {
1053    if (condition) {
1054        return;
1055    }
1056    if (isProduction) {
1057        throw new Error(prefix);
1058    }
1059    throw new Error(prefix + ": " + (message || ''));
1060}
1061
1062/* harmony default export */ __webpack_exports__["a"] = (invariant);
1063
1064
1065/***/ }),
1066/* 8 */
1067/***/ (function(module, __webpack_exports__, __webpack_require__) {
1068
1069"use strict";
1070__webpack_require__.r(__webpack_exports__);
1071
1072// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/extends.js
1073var esm_extends = __webpack_require__(5);
1074
1075// CONCATENATED MODULE: ./node_modules/resolve-pathname/esm/resolve-pathname.js
1076function isAbsolute(pathname) {
1077  return pathname.charAt(0) === '/';
1078}
1079
1080// About 1.5x faster than the two-arg version of Array#splice()
1081function spliceOne(list, index) {
1082  for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) {
1083    list[i] = list[k];
1084  }
1085
1086  list.pop();
1087}
1088
1089// This implementation is based heavily on node's url.parse
1090function resolvePathname(to, from) {
1091  if (from === undefined) from = '';
1092
1093  var toParts = (to && to.split('/')) || [];
1094  var fromParts = (from && from.split('/')) || [];
1095
1096  var isToAbs = to && isAbsolute(to);
1097  var isFromAbs = from && isAbsolute(from);
1098  var mustEndAbs = isToAbs || isFromAbs;
1099
1100  if (to && isAbsolute(to)) {
1101    // to is absolute
1102    fromParts = toParts;
1103  } else if (toParts.length) {
1104    // to is relative, drop the filename
1105    fromParts.pop();
1106    fromParts = fromParts.concat(toParts);
1107  }
1108
1109  if (!fromParts.length) return '/';
1110
1111  var hasTrailingSlash;
1112  if (fromParts.length) {
1113    var last = fromParts[fromParts.length - 1];
1114    hasTrailingSlash = last === '.' || last === '..' || last === '';
1115  } else {
1116    hasTrailingSlash = false;
1117  }
1118
1119  var up = 0;
1120  for (var i = fromParts.length; i >= 0; i--) {
1121    var part = fromParts[i];
1122
1123    if (part === '.') {
1124      spliceOne(fromParts, i);
1125    } else if (part === '..') {
1126      spliceOne(fromParts, i);
1127      up++;
1128    } else if (up) {
1129      spliceOne(fromParts, i);
1130      up--;
1131    }
1132  }
1133
1134  if (!mustEndAbs) for (; up--; up) fromParts.unshift('..');
1135
1136  if (
1137    mustEndAbs &&
1138    fromParts[0] !== '' &&
1139    (!fromParts[0] || !isAbsolute(fromParts[0]))
1140  )
1141    fromParts.unshift('');
1142
1143  var result = fromParts.join('/');
1144
1145  if (hasTrailingSlash && result.substr(-1) !== '/') result += '/';
1146
1147  return result;
1148}
1149
1150/* harmony default export */ var resolve_pathname = (resolvePathname);
1151
1152// CONCATENATED MODULE: ./node_modules/value-equal/esm/value-equal.js
1153function value_equal_valueOf(obj) {
1154  return obj.valueOf ? obj.valueOf() : Object.prototype.valueOf.call(obj);
1155}
1156
1157function valueEqual(a, b) {
1158  // Test for strict equality first.
1159  if (a === b) return true;
1160
1161  // Otherwise, if either of them == null they are not equal.
1162  if (a == null || b == null) return false;
1163
1164  if (Array.isArray(a)) {
1165    return (
1166      Array.isArray(b) &&
1167      a.length === b.length &&
1168      a.every(function(item, index) {
1169        return valueEqual(item, b[index]);
1170      })
1171    );
1172  }
1173
1174  if (typeof a === 'object' || typeof b === 'object') {
1175    var aValue = value_equal_valueOf(a);
1176    var bValue = value_equal_valueOf(b);
1177
1178    if (aValue !== a || bValue !== b) return valueEqual(aValue, bValue);
1179
1180    return Object.keys(Object.assign({}, a, b)).every(function(key) {
1181      return valueEqual(a[key], b[key]);
1182    });
1183  }
1184
1185  return false;
1186}
1187
1188/* harmony default export */ var value_equal = (valueEqual);
1189
1190// EXTERNAL MODULE: ./node_modules/tiny-invariant/dist/tiny-invariant.esm.js
1191var tiny_invariant_esm = __webpack_require__(7);
1192
1193// CONCATENATED MODULE: ./node_modules/history/esm/history.js
1194/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createBrowserHistory", function() { return createBrowserHistory; });
1195/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createHashHistory", function() { return createHashHistory; });
1196/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createMemoryHistory", function() { return createMemoryHistory; });
1197/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createLocation", function() { return createLocation; });
1198/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "locationsAreEqual", function() { return locationsAreEqual; });
1199/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "parsePath", function() { return parsePath; });
1200/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createPath", function() { return createPath; });
1201
1202
1203
1204
1205
1206
1207function addLeadingSlash(path) {
1208  return path.charAt(0) === '/' ? path : '/' + path;
1209}
1210function stripLeadingSlash(path) {
1211  return path.charAt(0) === '/' ? path.substr(1) : path;
1212}
1213function hasBasename(path, prefix) {
1214  return path.toLowerCase().indexOf(prefix.toLowerCase()) === 0 && '/?#'.indexOf(path.charAt(prefix.length)) !== -1;
1215}
1216function stripBasename(path, prefix) {
1217  return hasBasename(path, prefix) ? path.substr(prefix.length) : path;
1218}
1219function stripTrailingSlash(path) {
1220  return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path;
1221}
1222function parsePath(path) {
1223  var pathname = path || '/';
1224  var search = '';
1225  var hash = '';
1226  var hashIndex = pathname.indexOf('#');
1227
1228  if (hashIndex !== -1) {
1229    hash = pathname.substr(hashIndex);
1230    pathname = pathname.substr(0, hashIndex);
1231  }
1232
1233  var searchIndex = pathname.indexOf('?');
1234
1235  if (searchIndex !== -1) {
1236    search = pathname.substr(searchIndex);
1237    pathname = pathname.substr(0, searchIndex);
1238  }
1239
1240  return {
1241    pathname: pathname,
1242    search: search === '?' ? '' : search,
1243    hash: hash === '#' ? '' : hash
1244  };
1245}
1246function createPath(location) {
1247  var pathname = location.pathname,
1248      search = location.search,
1249      hash = location.hash;
1250  var path = pathname || '/';
1251  if (search && search !== '?') path += search.charAt(0) === '?' ? search : "?" + search;
1252  if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : "#" + hash;
1253  return path;
1254}
1255
1256function createLocation(path, state, key, currentLocation) {
1257  var location;
1258
1259  if (typeof path === 'string') {
1260    // Two-arg form: push(path, state)
1261    location = parsePath(path);
1262    location.state = state;
1263  } else {
1264    // One-arg form: push(location)
1265    location = Object(esm_extends["a" /* default */])({}, path);
1266    if (location.pathname === undefined) location.pathname = '';
1267
1268    if (location.search) {
1269      if (location.search.charAt(0) !== '?') location.search = '?' + location.search;
1270    } else {
1271      location.search = '';
1272    }
1273
1274    if (location.hash) {
1275      if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash;
1276    } else {
1277      location.hash = '';
1278    }
1279
1280    if (state !== undefined && location.state === undefined) location.state = state;
1281  }
1282
1283  try {
1284    location.pathname = decodeURI(location.pathname);
1285  } catch (e) {
1286    if (e instanceof URIError) {
1287      throw new URIError('Pathname "' + location.pathname + '" could not be decoded. ' + 'This is likely caused by an invali
1287d percent-encoding.');
1288    } else {
1289      throw e;
1290    }
1291  }
1292
1293  if (key) location.key = key;
1294
1295  if (currentLocation) {
1296    // Resolve incomplete/relative pathname relative to current location.
1297    if (!location.pathname) {
1298      location.pathname = currentLocation.pathname;
1299    } else if (location.pathname.charAt(0) !== '/') {
1300      location.pathname = resolve_pathname(location.pathname, currentLocation.pathname);
1301    }
1302  } else {
1303    // When there is no prior location and pathname is empty, set it to /
1304    if (!location.pathname) {
1305      location.pathname = '/';
1306    }
1307  }
1308
1309  return location;
1310}
1311function locationsAreEqual(a, b) {
1312  return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && value_equal(a.state, b.state);
1313}
1314
1315function createTransitionManager() {
1316  var prompt = null;
1317
1318  function setPrompt(nextPrompt) {
1319     false ? undefined : void 0;
1320    prompt = nextPrompt;
1321    return function () {
1322      if (prompt === nextPrompt) prompt = null;
1323    };
1324  }
1325
1326  function confirmTransitionTo(location, action, getUserConfirmation, callback) {
1327    // TODO: If another transition starts while we're still confirming
1328    // the previous one, we may end up in a weird state. Figure out the
1329    // best way to handle this.
1330    if (prompt != null) {
1331      var result = typeof prompt === 'function' ? prompt(location, action) : prompt;
1332
1333      if (typeof result === 'string') {
1334        if (typeof getUserConfirmation === 'function') {
1335          getUserConfirmation(result, callback);
1336        } else {
1337           false ? undefined : void 0;
1338          callback(true);
1339        }
1340      } else {
1341        // Return false from a transition hook to cancel the transition.
1342        callback(result !== false);
1343      }
1344    } else {
1345      callback(true);
1346    }
1347  }
1348
1349  var listeners = [];
1350
1351  function appendListener(fn) {
1352    var isActive = true;
1353
1354    function listener() {
1355      if (isActive) fn.apply(void 0, arguments);
1356    }
1357
1358    listeners.push(listener);
1359    return function () {
1360      isActive = false;
1361      listeners = listeners.filter(function (item) {
1362        return item !== listener;
1363      });
1364    };
1365  }
1366
1367  function notifyListeners() {
1368    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
1369      args[_key] = arguments[_key];
1370    }
1371
1372    listeners.forEach(function (listener) {
1373      return listener.apply(void 0, args);
1374    });
1375  }
1376
1377  return {
1378    setPrompt: setPrompt,
1379    confirmTransitionTo: confirmTransitionTo,
1380    appendListener: appendListener,
1381    notifyListeners: notifyListeners
1382  };
1383}
1384
1385var canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);
1386function getConfirmation(message, callback) {
1387  callback(window.confirm(message)); // eslint-disable-line no-alert
1388}
1389/**
1390 * Returns true if the HTML5 history API is supported. Taken from Modernizr.
1391 *
1392 * https://github.com/Modernizr/Modernizr/blob/master/LICENSE
1393 * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js
1394 * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586
1395 */
1396
1397function supportsHistory() {
1398  var ua = window.navigator.userAgent;
1399  if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;
1400  return window.history && 'pushState' in window.history;
1401}
1402/**
1403 * Returns true if browser fires popstate on hash change.
1404 * IE10 and IE11 do not.
1405 */
1406
1407function supportsPopStateOnHashChange() {
1408  return window.navigator.userAgent.indexOf('Trident') === -1;
1409}
1410/**
1411 * Returns false if using go(n) with hash history causes a full page reload.
1412 */
1413
1414function supportsGoWithoutReloadUsingHash() {
1415  return window.navigator.userAgent.indexOf('Firefox') === -1;
1416}
1417/**
1418 * Returns true if a given popstate event is an extraneous WebKit event.
1419 * Accounts for the fact that Chrome on iOS fires real popstate events
1420 * containing undefined state when pressing the back button.
1421 */
1422
1423function isExtraneousPopstateEvent(event) {
1424  return event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;
1425}
1426
1427var PopStateEvent = 'popstate';
1428var HashChangeEvent = 'hashchange';
1429
1430function getHistoryState() {
1431  try {
1432    return window.history.state || {};
1433  } catch (e) {
1434    // IE 11 sometimes throws when accessing window.history.state
1435    // See https://github.com/ReactTraining/history/pull/289
1436    return {};
1437  }
1438}
1439/**
1440 * Creates a history object that uses the HTML5 history API including
1441 * pushState, replaceState, and the popstate event.
1442 */
1443
1444
1445function createBrowserHistory(props) {
1446  if (props === void 0) {
1447    props = {};
1448  }
1449
1450  !canUseDOM ?  false ? undefined : Object(tiny_invariant_esm["a" /* default */])(false) : void 0;
1451  var globalHistory = window.history;
1452  var canUseHistory = supportsHistory();
1453  var needsHashChangeListener = !supportsPopStateOnHashChange();
1454  var _props = props,
1455      _props$forceRefresh = _props.forceRefresh,
1456      forceRefresh = _props$forceRefresh === void 0 ? false : _props$forceRefresh,
1457      _props$getUserConfirm = _props.getUserConfirmation,
1458      getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,
1459      _props$keyLength = _props.keyLength,
1460      keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;
1461  var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';
1462
1463  function getDOMLocation(historyState) {
1464    var _ref = historyState || {},
1465        key = _ref.key,
1466        state = _ref.state;
1467
1468    var _window$location = window.location,
1469        pathname = _window$location.pathname,
1470        search = _window$location.search,
1471        hash = _window$location.hash;
1472    var path = pathname + search + hash;
1473     false ? undefined : void 0;
1474    if (basename) path = stripBasename(path, basename);
1475    return createLocation(path, state, key);
1476  }
1477
1478  function createKey() {
1479    return Math.random().toString(36).substr(2, keyLength);
1480  }
1481
1482  var transitionManager = createTransitionManager();
1483
1484  function setState(nextState) {
1485    Object(esm_extends["a" /* default */])(history, nextState);
1486
1487    history.length = globalHistory.length;
1488    transitionManager.notifyListeners(history.location, history.action);
1489  }
1490
1491  function handlePopState(event) {
1492    // Ignore extraneous popstate events in WebKit.
1493    if (isExtraneousPopstateEvent(event)) return;
1494    handlePop(getDOMLocation(event.state));
1495  }
1496
1497  function handleHashChange() {
1498    handlePop(getDOMLocation(getHistoryState()));
1499  }
1500
1501  var forceNextPop = false;
1502
1503  function handlePop(location) {
1504    if (forceNextPop) {
1505      forceNextPop = false;
1506      setState();
1507    } else {
1508      var action = 'POP';
1509      transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {
1510        if (ok) {
1511          setState({
1512            action: action,
1513            location: location
1514          });
1515        } else {
1516          revertPop(location);
1517        }
1518      });
1519    }
1520  }
1521
1522  function revertPop(fromLocation) {
1523    var toLocation = history.location; // TODO: We could probably make this more reliable by
1524    // keeping a list of keys we've seen in sessionStorage.
1525    // Instead, we just default to 0 for keys we don't know.
1526
1527    var toIndex = allKeys.indexOf(toLocation.key);
1528    if (toIndex === -1) toIndex = 0;
1529    var fromIndex = allKeys.indexOf(fromLocation.key);
1530    if (fromIndex === -1) fromIndex = 0;
1531    var delta = toIndex - fromIndex;
1532
1533    if (delta) {
1534      forceNextPop = true;
1535      go(delta);
1536    }
1537  }
1538
1539  var initialLocation = getDOMLocation(getHistoryState());
1540  var allKeys = [initialLocation.key]; // Public interface
1541
1542  function createHref(location) {
1543    return basename + createPath(location);
1544  }
1545
1546  function push(path, state) {
1547     false ? undefined : void 0;
1548    var action = 'PUSH';
1549    var location = createLocation(path, state, createKey(), history.location);
1550    transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {
1551      if (!ok) return;
1552      var href = createHref(location);
1553      var key = location.key,
1554          state = location.state;
1555
1556      if (canUseHistory) {
1557        globalHistory.pushState({
1558          key: key,
1559          state: state
1560        }, null, href);
1561
1562        if (forceRefresh) {
1563          window.location.href = href;
1564        } else {
1565          var prevIndex = allKeys.indexOf(history.location.key);
1566          var nextKeys = allKeys.slice(0, prevIndex + 1);
1567          nextKeys.push(location.key);
1568          allKeys = nextKeys;
1569          setState({
1570            action: action,
1571            location: location
1572          });
1573        }
1574      } else {
1575         false ? undefined : void 0;
1576        window.location.href = href;
1577      }
1578    });
1579  }
1580
1581  function replace(path, state) {
1582     false ? undefined : void 0;
1583    var action = 'REPLACE';
1584    var location = createLocation(path, state, createKey(), history.location);
1585    transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {
1586      if (!ok) return;
1587      var href = createHref(location);
1588      var key = location.key,
1589          state = location.state;
1590
1591      if (canUseHistory) {
1592        globalHistory.replaceState({
1593          key: key,
1594          state: state
1595        }, null, href);
1596
1597        if (forceRefresh) {
1598          window.location.replace(href);
1599        } else {
1600          var prevIndex = allKeys.indexOf(history.location.key);
1601          if (prevIndex !== -1) allKeys[prevIndex] = location.key;
1602          setState({
1603            action: action,
1604            location: location
1605          });
1606        }
1607      } else {
1608         false ? undefined : void 0;
1609        window.location.replace(href);
1610      }
1611    });
1612  }
1613
1614  function go(n) {
1615    globalHistory.go(n);
1616  }
1617
1618  function goBack() {
1619    go(-1);
1620  }
1621
1622  function goForward() {
1623    go(1);
1624  }
1625
1626  var listenerCount = 0;
1627
1628  function checkDOMListeners(delta) {
1629    listenerCount += delta;
1630
1631    if (listenerCount === 1 && delta === 1) {
1632      window.addEventListener(PopStateEvent, handlePopState);
1633      if (needsHashChangeListener) window.addEventListener(HashChangeEvent, handleHashChange);
1634    } else if (listenerCount === 0) {
1635      window.removeEventListener(PopStateEvent, handlePopState);
1636      if (needsHashChangeListener) window.removeEventListener(HashChangeEvent, handleHashChange);
1637    }
1638  }
1639
1640  var isBlocked = false;
1641
1642  function block(prompt) {
1643    if (prompt === void 0) {
1644      prompt = false;
1645    }
1646
1647    var unblock = transitionManager.setPrompt(prompt);
1648
1649    if (!isBlocked) {
1650      checkDOMListeners(1);
1651      isBlocked = true;
1652    }
1653
1654    return function () {
1655      if (isBlocked) {
1656        isBlocked = false;
1657        checkDOMListeners(-1);
1658      }
1659
1660      return unblock();
1661    };
1662  }
1663
1664  function listen(listener) {
1665    var unlisten = transitionManager.appendListener(listener);
1666    checkDOMListeners(1);
1667    return function () {
1668      checkDOMListeners(-1);
1669      unlisten();
1670    };
1671  }
1672
1673  var history = {
1674    length: globalHistory.length,
1675    action: 'POP',
1676    location: initialLocation,
1677    createHref: createHref,
1678    push: push,
1679    replace: replace,
1680    go: go,
1681    goBack: goBack,
1682    goForward: goForward,
1683    block: block,
1684    listen: listen
1685  };
1686  return history;
1687}
1688
1689var HashChangeEvent$1 = 'hashchange';
1690var HashPathCoders = {
1691  hashbang: {
1692    encodePath: function encodePath(path) {
1693      return path.charAt(0) === '!' ? path : '!/' + stripLeadingSlash(path);
1694    },
1695    decodePath: function decodePath(path) {
1696      return path.charAt(0) === '!' ? path.substr(1) : path;
1697    }
1698  },
1699  noslash: {
1700    encodePath: stripLeadingSlash,
1701    decodePath: addLeadingSlash
1702  },
1703  slash: {
1704    encodePath: addLeadingSlash,
1705    decodePath: addLeadingSlash
1706  }
1707};
1708
1709function stripHash(url) {
1710  var hashIndex = url.indexOf('#');
1711  return hashIndex === -1 ? url : url.slice(0, hashIndex);
1712}
1713
1714function getHashPath() {
1715  // We can't use window.location.hash here because it's not
1716  // consistent across browsers - Firefox will pre-decode it!
1717  var href = window.location.href;
1718  var hashIndex = href.indexOf('#');
1719  return hashIndex === -1 ? '' : href.substring(hashIndex + 1);
1720}
1721
1722function pushHashPath(path) {
1723  window.location.hash = path;
1724}
1725
1726function replaceHashPath(path) {
1727  window.location.replace(stripHash(window.location.href) + '#' + path);
1728}
1729
1730function createHashHistory(props) {
1731  if (props === void 0) {
1732    props = {};
1733  }
1734
1735  !canUseDOM ?  false ? undefined : Object(tiny_invariant_esm["a" /* default */])(false) : void 0;
1736  var globalHistory = window.history;
1737  var canGoWithoutReload = supportsGoWithoutReloadUsingHash();
1738  var _props = props,
1739      _props$getUserConfirm = _props.getUserConfirmation,
1740      getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,
1741      _props$hashType = _props.hashType,
1742      hashType = _props$hashType === void 0 ? 'slash' : _props$hashType;
1743  var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';
1744  var _HashPathCoders$hashT = HashPathCoders[hashType],
1745      encodePath = _HashPathCoders$hashT.encodePath,
1746      decodePath = _HashPathCoders$hashT.decodePath;
1747
1748  function getDOMLocation() {
1749    var path = decodePath(getHashPath());
1750     false ? undefined : void 0;
1751    if (basename) path = stripBasename(path, basename);
1752    return createLocation(path);
1753  }
1754
1755  var transitionManager = createTransitionManager();
1756
1757  function setState(nextState) {
1758    Object(esm_extends["a" /* default */])(history, nextState);
1759
1760    history.length = globalHistory.length;
1761    transitionManager.notifyListeners(history.location, history.action);
1762  }
1763
1764  var forceNextPop = false;
1765  var ignorePath = null;
1766
1767  function locationsAreEqual$$1(a, b) {
1768    return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash;
1769  }
1770
1771  function handleHashChange() {
1772    var path = getHashPath();
1773    var encodedPath = encodePath(path);
1774
1775    if (path !== encodedPath) {
1776      // Ensure we always have a properly-encoded hash.
1777      replaceHashPath(encodedPath);
1778    } else {
1779      var location = getDOMLocation();
1780      var prevLocation = history.location;
1781      if (!forceNextPop && locationsAreEqual$$1(prevLocation, location)) return; // A hashchange doesn't always == location change.
1782
1783      if (ignorePath === createPath(location)) return; // Ignore this change; we already setState in push/replace.
1784
1785      ignorePath = null;
1786      handlePop(location);
1787    }
1788  }
1789
1790  function handlePop(location) {
1791    if (forceNextPop) {
1792      forceNextPop = false;
1793      setState();
1794    } else {
1795      var action = 'POP';
1796      transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {
1797        if (ok) {
1798          setState({
1799            action: action,
1800            location: location
1801          });
1802        } else {
1803          revertPop(location);
1804        }
1805      });
1806    }
1807  }
1808
1809  function revertPop(fromLocation) {
1810    var toLocation = history.location; // TODO: We could probably make this more reliable by
1811    // keeping a list of paths we've seen in sessionStorage.
1812    // Instead, we just default to 0 for paths we don't know.
1813
1814    var toIndex = allPaths.lastIndexOf(createPath(toLocation));
1815    if (toIndex === -1) toIndex = 0;
1816    var fromIndex = allPaths.lastIndexOf(createPath(fromLocation));
1817    if (fromIndex === -1) fromIndex = 0;
1818    var delta = toIndex - fromIndex;
1819
1820    if (delta) {
1821      forceNextPop = true;
1822      go(delta);
1823    }
1824  } // Ensure the hash is encoded properly before doing anything else.
1825
1826
1827  var path = getHashPath();
1828  var encodedPath = encodePath(path);
1829  if (path !== encodedPath) replaceHashPath(encodedPath);
1830  var initialLocation = getDOMLocation();
1831  var allPaths = [createPath(initialLocation)]; // Public interface
1832
1833  function createHref(location) {
1834    var baseTag = document.querySelector('base');
1835    var href = '';
1836
1837    if (baseTag && baseTag.getAttribute('href')) {
1838      href = stripHash(window.location.href);
1839    }
1840
1841    return href + '#' + encodePath(basename + createPath(location));
1842  }
1843
1844  function push(path, state) {
1845     false ? undefined : void 0;
1846    var action = 'PUSH';
1847    var location = createLocation(path, undefined, undefined, history.location);
1848    transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {
1849      if (!ok) return;
1850      var path = createPath(location);
1851      var encodedPath = encodePath(basename + path);
1852      var hashChanged = getHashPath() !== encodedPath;
1853
1854      if (hashChanged) {
1855        // We cannot tell if a hashchange was caused by a PUSH, so we'd
1856        // rather setState here and ignore the hashchange. The caveat here
1857        // is that other hash histories in the page will consider it a POP.
1858        ignorePath = path;
1859        pushHashPath(encodedPath);
1860        var prevIndex = allPaths.lastIndexOf(createPath(history.location));
1861        var nextPaths = allPaths.slice(0, prevIndex + 1);
1862        nextPaths.push(path);
1863        allPaths = nextPaths;
1864        setState({
1865          action: action,
1866          location: location
1867        });
1868      } else {
1869         false ? undefined : void 0;
1870        setState();
1871      }
1872    });
1873  }
1874
1875  function replace(path, state) {
1876     false ? undefined : void 0;
1877    var action = 'REPLACE';
1878    var location = createLocation(path, undefined, undefined, history.location);
1879    transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {
1880      if (!ok) return;
1881      var path = createPath(location);
1882      var encodedPath = encodePath(basename + path);
1883      var hashChanged = getHashPath() !== encodedPath;
1884
1885      if (hashChanged) {
1886        // We cannot tell if a hashchange was caused by a REPLACE, so we'd
1887        // rather setState here and ignore the hashchange. The caveat here
1888        // is that other hash histories in the page will consider it a POP.
1889        ignorePath = path;
1890        replaceHashPath(encodedPath);
1891      }
1892
1893      var prevIndex = allPaths.indexOf(createPath(history.location));
1894      if (prevIndex !== -1) allPaths[prevIndex] = path;
1895      setState({
1896        action: action,
1897        location: location
1898      });
1899    });
1900  }
1901
1902  function go(n) {
1903     false ? undefined : void 0;
1904    globalHistory.go(n);
1905  }
1906
1907  function goBack() {
1908    go(-1);
1909  }
1910
1911  function goForward() {
1912    go(1);
1913  }
1914
1915  var listenerCount = 0;
1916
1917  function checkDOMListeners(delta) {
1918    listenerCount += delta;
1919
1920    if (listenerCount === 1 && delta === 1) {
1921      window.addEventListener(HashChangeEvent$1, handleHashChange);
1922    } else if (listenerCount === 0) {
1923      window.removeEventListener(HashChangeEvent$1, handleHashChange);
1924    }
1925  }
1926
1927  var isBlocked = false;
1928
1929  function block(prompt) {
1930    if (prompt === void 0) {
1931      prompt = false;
1932    }
1933
1934    var unblock = transitionManager.setPrompt(prompt);
1935
1936    if (!isBlocked) {
1937      checkDOMListeners(1);
1938      isBlocked = true;
1939    }
1940
1941    return function () {
1942      if (isBlocked) {
1943        isBlocked = false;
1944        checkDOMListeners(-1);
1945      }
1946
1947      return unblock();
1948    };
1949  }
1950
1951  function listen(listener) {
1952    var unlisten = transitionManager.appendListener(listener);
1953    checkDOMListeners(1);
1954    return function () {
1955      checkDOMListeners(-1);
1956      unlisten();
1957    };
1958  }
1959
1960  var history = {
1961    length: globalHistory.length,
1962    action: 'POP',
1963    location: initialLocation,
1964    createHref: createHref,
1965    push: push,
1966    replace: replace,
1967    go: go,
1968    goBack: goBack,
1969    goForward: goForward,
1970    block: block,
1971    listen: listen
1972  };
1973  return history;
1974}
1975
1976function clamp(n, lowerBound, upperBound) {
1977  return Math.min(Math.max(n, lowerBound), upperBound);
1978}
1979/**
1980 * Creates a history object that stores locations in memory.
1981 */
1982
1983
1984function createMemoryHistory(props) {
1985  if (props === void 0) {
1986    props = {};
1987  }
1988
1989  var _props = props,
1990      getUserConfirmation = _props.getUserConfirmation,
1991      _props$initialEntries = _props.initialEntries,
1992      initialEntries = _props$initialEntries === void 0 ? ['/'] : _props$initialEntries,
1993      _props$initialIndex = _props.initialIndex,
1994      initialIndex = _props$initialIndex === void 0 ? 0 : _props$initialIndex,
1995      _props$keyLength = _props.keyLength,
1996      keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;
1997  var transitionManager = createTransitionManager();
1998
1999  function setState(nextState) {
2000    Object(esm_extends["a" /* default */])(history, nextState);
2001
2002    history.length = history.entries.length;
2003    transitionManager.notifyListeners(history.location, history.action);
2004  }
2005
2006  function createKey() {
2007    return Math.random().toString(36).substr(2, keyLength);
2008  }
2009
2010  var index = clamp(initialIndex, 0, initialEntries.length - 1);
2011  var entries = initialEntries.map(function (entry) {
2012    return typeof entry === 'string' ? createLocation(entry, undefined, createKey()) : createLocation(entry, undefined, entry.key || createKey());
2013  }); // Public interface
2014
2015  var createHref = createPath;
2016
2017  function push(path, state) {
2018     false ? undefined : void 0;
2019    var action = 'PUSH';
2020    var location = createLocation(path, state, createKey(), history.location);
2021    transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {
2022      if (!ok) return;
2023      var prevIndex = history.index;
2024      var nextIndex = prevIndex + 1;
2025      var nextEntries = history.entries.slice(0);
2026
2027      if (nextEntries.length > nextIndex) {
2028        nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location);
2029      } else {
2030        nextEntries.push(location);
2031      }
2032
2033      setState({
2034        action: action,
2035        location: location,
2036        index: nextIndex,
2037        entries: nextEntries
2038      });
2039    });
2040  }
2041
2042  function replace(path, state) {
2043     false ? undefined : void 0;
2044    var action = 'REPLACE';
2045    var location = createLocation(path, state, createKey(), history.location);
2046    transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {
2047      if (!ok) return;
2048      history.entries[history.index] = location;
2049      setState({
2050        action: action,
2051        location: location
2052      });
2053    });
2054  }
2055
2056  function go(n) {
2057    var nextIndex = clamp(history.index + n, 0, history.entries.length - 1);
2058    var action = 'POP';
2059    var location = history.entries[nextIndex];
2060    transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {
2061      if (ok) {
2062        setState({
2063          action: action,
2064          location: location,
2065          index: nextIndex
2066        });
2067      } else {
2068        // Mimic the behavior of DOM histories by
2069        // causing a render after a cancelled POP.
2070        setState();
2071      }
2072    });
2073  }
2074
2075  function goBack() {
2076    go(-1);
2077  }
2078
2079  function goForward() {
2080    go(1);
2081  }
2082
2083  function canGo(n) {
2084    var nextIndex = history.index + n;
2085    return nextIndex >= 0 && nextIndex < history.entries.length;
2086  }
2087
2088  function block(prompt) {
2089    if (prompt === void 0) {
2090      prompt = false;
2091    }
2092
2093    return transitionManager.setPrompt(prompt);
2094  }
2095
2096  function listen(listener) {
2097    return transitionManager.appendListener(listener);
2098  }
2099
2100  var history = {
2101    length: entries.length,
2102    action: 'POP',
2103    location: entries[index],
2104    index: index,
2105    entries: entries,
2106    createHref: createHref,
2107    push: push,
2108    replace: replace,
2109    go: go,
2110    goBack: goBack,
2111    goForward: goForward,
2112    canGo: canGo,
2113    block: block,
2114    listen: listen
2115  };
2116  return history;
2117}
2118
2119
2120
2121
2122/***/ }),
2123/* 9 */
2124/***/ (function(module, __webpack_exports__, __webpack_require__) {
2125
2126"use strict";
2127__webpack_require__.r(__webpack_exports__);
2128/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CoreProvider", function() { return CoreProvider; });
2129/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);
2130/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
2131/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(4);
2132/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(14);
2133/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_utils__WEBPACK_IMPORTED_MODULE_2__);
2134/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(1);
2135/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_constants__WEBPACK_IMPORTED_MODULE_3__);
2136var _defaultActionHandler;
2137
2138function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
2139
2140function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
2141
2142function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
2143
2144function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
2145
2146function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
2147
2148function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
2149
2150function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
2151
2152function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
2153
2154function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(n); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
2155
2156function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); }
2157
2158function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
2159
2160function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
2161
2162function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
2163
2164
2165
2166
2167
2168var playerContext = Object(react__WEBPACK_IMPORTED_MODULE_0__["createContext"])({});
2169
2170var isInRange = function isInRange(val) {
2171  return typeof val === 'number' && val >= 0 && val < 17;
2172};
2173
2174var getValueFromDataset = function getValueFromDataset(dataset) {
2175  return dataset && typeof dataset.value !== 'undefined' ? dataset.value : undefined;
2176};
2177
2178var multiTouchAction = function multiTouchAction(derivedAction, state) {
2179  var _ref, _ref6;
2180
2181  var values = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
2182
2183  switch (derivedAction) {
2184    case _constants__WEBPACK_IMPORTED_MODULE_3__["VOLUME"]:
2185      var volume = values[1] ? values[1].idx : undefined;
2186      return isInRange(volume) ? (_ref = {}, _defineProperty(_ref, _constants__WEBPACK_IMPORTED_MODULE_3__["VOLUME"], volume - 8), _defineProperty(_ref, _constants__WEBPACK_IMPORTED_MODULE_3__["MUTE"], false), _ref) : {};
2187
2188    case _constants__WEBPACK_IMPORTED_MODULE_3__["SWING_SET"]:
2189      return isInRange(value) ? _defineProperty({}, _constants__WEBPACK_IMPORTED_MODULE_3__["SWING"], value) : {};
2190
2191    case _constants__WEBPACK_IMPORTED_MODULE_3__["PATTERN_COPY"]:
2192      var value1 = getValueFromDataset(values[0]);
2193      var value2 = getValueFromDataset(values[1]);
2194      return isInRange(value1) && isInRange(value2) ? _defineProperty({}, _constants__WEBPACK_IMPORTED_MODULE_3__["PATTERNS"], Object(_utils__WEBPACK_IMPORTED_MODULE_2__["updatePatternAtIdx"])(state, state[_constants__WEBPACK_IMPORTED_MODULE_3__["PATTERNS"]][value1], value2)) : {};
2195
2196    case _constants__WEBPACK_IMPORTED_MODULE_3__["NOTE_COPY"]:
2197      var note1 = getValueFromDataset(values[0]);
2198      var note2 = getValueFromDataset(values[1]);
2199      return isInRange(note1) && isInRange(note2) ? _defineProperty({}, _constants__WEBPACK_IMPORTED_MODULE_3__["PATTERNS"], Object(_utils__WEBPACK_IMPORTED_MODULE_2__["updateNoteInPattern"])(state, state[_constants__WEBPACK_IMPORTED_MODULE_3__["PATTERNS"]][state[_constants__WEBPACK_IMPORTED_MODULE_3__["PATTERN_IDX"]]][state[_constants__WEBPACK_IMPORTED_MODULE_3__["PATTERN_TYPE"]
2199] || state[_constants__WEBPACK_IMPORTED_MODULE_3__["SOUND"]]][note1], note2)) : {};
2200
2201    case _constants__WEBPACK_IMPORTED_MODULE_3__["PATTERN_CHAIN"]:
2202      if (values.length === 1) {
2203        var _ref5;
2204
2205        return _ref5 = {}, _defineProperty(_ref5, _constants__WEBPACK_IMPORTED_MODULE_3__["PATTERN_CHAIN_NEW"], true), _defineProperty(_ref5, "view", _constants__WEBPACK_IMPORTED_MODULE_3__["PATTERN_VIEW"]), _ref5;
2206      }
2207
2208      var value = getValueFromDataset(values[1]);
2209
2210      if (typeof value === 'undefined') {
2211        return {};
2212      }
2213
2214      return _ref6 = {}, _defineProperty(_ref6, _constants__WEBPACK_IMPORTED_MODULE_3__["PATTERN_CHAIN_NEW"], false), _defineProperty(_ref6, _constants__WEBPACK_IMPORTED_MODULE_3__["PATTERN_CHAIN"], state[_constants__WEBPACK_IMPORTED_MODULE_3__["PATTERN_CHAIN_NEW"]] ? [value] : [].concat(_toConsumableArray(state[_constants__WEBPACK_IMPORTED_MODULE_3__["PATTERN_CHAIN"]]), [value])), _ref6;
2215
2216    default:
2217      return {};
2218  }
2219};
2220
2221var canceLActionHandler = function canceLActionHandler(state) {
2222  var _ref7;
2223
2224  var dataset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
2225
2226  switch (dataset.secondary) {
2227    case _constants__WEBPACK_IMPORTED_MODULE_3__["PATTERN_COPY"]:
2228      return _ref7 = {}, _defineProperty(_ref7, _constants__WEBPACK_IMPORTED_MODULE_3__["PATTERNS"], Object(_utils__WEBPACK_IMPORTED_MODULE_2__["updatePatternAtIdx"])(state, Object(_utils__WEBPACK_IMPORTED_MODULE_2__["getEmptyPattern"])(), dataset.idx)), _defineProperty(_ref7, "lastAction", _constants__WEBPACK_IMPORTED_MODULE_3__["PATTERN_UPDATE"]), _ref7;
2229
2230    default:
2231      return {};
2232  }
2233};
2234
2235var defaultActionHandlers = (_defaultActionHandler = {}, _defineProperty(_defaultActionHandler, _constants__WEBPACK_IMPORTED_MODULE_3__["PLAY"], function (state) {
2236  return _defineProperty({}, _constants__WEBPACK_IMPORTED_MODULE_3__["PLAY"], !state[_constants__WEBPACK_IMPORTED_MODULE_3__["PLAY"]]);
2237}), _defineProperty(_defaultActionHandler, _constants__WEBPACK_IMPORTED_MODULE_3__["WRITE"], function (state) {
2238  var _ref9;
2239
2240  return _ref9 = {}, _defineProperty(_ref9, _constants__WEBPACK_IMPORTED_MODULE_3__["WRITE"], !state[_constants__WEBPACK_IMPORTED_MODULE_3__["WRITE"]]), _defineProperty(_ref9, "view", state[_constants__WEBPACK_IMPORTED_MODULE_3__["WRITE"]] ? state.view : null), _ref9;
2241}), _defineProperty(_defaultActionHandler, _constants__WEBPACK_IMPORTED_MODULE_3__["MUTE"], function (state) {
2242  return _defineProperty({}, _constants__WEBPACK_IMPORTED_MODULE_3__["MUTE"], !state[_constants__WEBPACK_IMPORTED_MODULE_3__["MUTE"]]);
2243}), _defineProperty(_defaultActionHandler, _constants__WEBPACK_IMPORTED_MODULE_3__["CLEAR_VIEW"], function () {
2244  return {
2245    view: null
2246  };
2247}), _defineProperty(_defaultActionHandler, _constants__WEBPACK_IMPORTED_MODULE_3__["SOUNDS_VIEW"], function (state) {
2248  return {
2249    view: state.view !== _constants__WEBPACK_IMPORTED_MODULE_3__["SOUNDS_VIEW"] ? _constants__WEBPACK_IMPORTED_MODULE_3__["SOUNDS_VIEW"] : null
2250  };
2251}), _defineProperty(_defaultActionHandler, _constants__WEBPACK_IMPORTED_MODULE_3__["SOUNDS_SET"], function (state, value) {
2252  var _ref11;
2253
2254  return _ref11 = {
2255    view: state[_constants__WEBPACK_IMPORTED_MODULE_3__["WRITE"]] ? _constants__WEBPACK_IMPORTED_MODULE_3__["WRITE"] : null
2256  }, _defineProperty(_ref11, _constants__WEBPACK_IMPORTED_MODULE_3__["SOUND"], value), _defineProperty(_ref11, _constants__WEBPACK_IMPORTED_MODULE_3__["PATTERN_TYPE"], value), _ref11;
2257}), _defineProperty(_defaultActionHandler, _constants__WEBPACK_IMPORTED_MODULE_3__["PATTERN_VIEW"], function (state) {
2258  return _defineProperty({
2259    view: state.view !== _constants__WEBPACK_IMPORTED_MODULE_3__["PATTERN_VIEW"] ? _constants__WEBPACK_IMPORTED_MODULE_3__["PATTERN_VIEW"] : null
2260  }, _constants__WEBPACK_IMPORTED_MODULE_3__["WRITE"], false);
2261}), _defineProperty(_defaultActionHandler, _constants__WEBPACK_IMPORTED_MODULE_3__["PATTERN_SET"], function (state, value) {
2262  var _ref13;
2263
2264  return _ref13 = {}, _defineProperty(_ref13, _constants__WEBPACK_IMPORTED_MODULE_3__["PATTERN_IDX"], value), _defineProperty(_ref13, _constants__WEBPACK_IMPORTED_MODULE_3__["WRITE"], true), _defineProperty(_ref13, "view", state[_constants__WEBPACK_IMPORTED_MODULE_3__["WRITE"]] || null), _ref13;
2265}), _defineProperty(_defaultActionHandler, _constants__WEBPACK_IMPORTED_MODULE_3__["PATTERN_CHAIN"], function (state, _ref14) {
2266  var idx = _ref14.idx,
2267      append = _ref14.append;
2268
2269  if (state[_constants__WEBPACK_IMPORTED_MODULE_3__["WRITE"]]) {
2270    var _ref15;
2271
2272    return _ref15 = {}, _defineProperty(_ref15, _constants__WEBPACK_IMPORTED_MODULE_3__["PATTERN_IDX"], idx), _defineProperty(_ref15, "view", _constants__WEBPACK_IMPORTED_MODULE_3__["WRITE"]), _ref15;
2273  }
2274
2275  return _defineProperty({}, _constants__WEBPACK_IMPORTED_MODULE_3__["PATTERN_CHAIN"], append ? [].concat(_toConsumableArray(state[_constants__WEBPACK_IMPORTED_MODULE_3__["PATTERN_CHAIN"]]), [idx]) : [idx]);
2276}), _defineProperty(_defaultActionHandler, _constants__WEBPACK_IMPORTED_MODULE_3__["BPM"], function (state, value) {
2277  return _defineProperty({}, _constants__WEBPACK_IMPORTED_MODULE_3__["BPM"], value ? value : Object(_utils__WEBPACK_IMPORTED_MODULE_2__["rotateBpm"])(state[_constants__WEBPACK_IMPORTED_MODULE_3__["BPM"]]));
2278}), _defineProperty(_defaultActionHandler, _constants__WEBPACK_IMPORTED_MODULE_3__["PATTERN_UPDATE"], function (state, _ref18) {
2279  var _ref19;
2280
2281  var idx = _ref18.idx,
2282      note = _ref18.note,
2283      span = _ref18.span;
2284  var activePattern = state[_constants__WEBPACK_IMPORTED_MODULE_3__["PATTERNS"]][state[_constants__WEBPACK_IMPORTED_MODULE_3__["PATTERN_IDX"]]];
2285  var updatedPatterns = [].concat(_toConsumableArray(state[_constants__WEBPACK_IMPORTED_MODULE_3__["PATTERNS"]].slice(0, state[_constants__WEBPACK_IMPORTED_MODULE_3__["PATTERN_IDX"]])), [_objectSpread({}, activePattern, _defineProperty({}, state[_constants__WEBPACK_IMPORTED_MODULE_3__["SOUND"]], [].concat(_toConsumableArray(activePattern[state[_constants__WEBPACK_IMPORTED_MODULE_3__["SOUND"]]].slice(0, idx)), [note ? {
2286    note: note,
2287    span: span
2288  } : null], _toConsumableArray(activePattern[state[_constants__WEBPACK_IMPORTED_MODULE_3__["SOUND"]]].slice(idx + 1)))))], _toConsumableArray(state[_constants__WEBPACK_IMPORTED_MODULE_3__["PATTERNS"]].slice(state[_constants__WEBPACK_IMPORTED_MODULE_3__["PATTERN_IDX"]] + 1)));
2289  return _ref19 = {}, _defineProperty(_ref19, _constants__WEBPACK_IMPORTED_MODULE_3__["PATTERNS"], updatedPatterns), _defineProperty(_ref19, "lastNote", note || state.lastNote), _ref19;
2290}), _defineProperty(_defaultActionHandler, _constants__WEBPACK_IMPORTED_MODULE_3__["MULTI_TOUCH"], function (state, value) {
2291  var hasCancel = value.findIndex(function (v) {
2292    return v.action === _constants__WEBPACK_IMPORTED_MODULE_3__["CANCEL"];
2293  });
2294
2295  if (hasCancel !== -1) {
2296    return canceLActionHandler(state, value.find(function (v) {
2297      return v.action !== _constants__WEBPACK_IMPORTED_MODULE_3__["CANCEL"];
2298    }));
2299  }
2300
2301  var action = value && value[0] ? value[0].secondary : null;
2302  return _objectSpread({}, multiTouchAction(action, state, value), {
2303    lastAction: action
2304  });
2305}), _defineProperty(_defaultActionHandler, _constants__WEBPACK_IMPORTED_MODULE_3__["CANCEL"], function () {
2306  return {
2307    view: null
2308  };
2309}), _defaultActionHandler);
2310
2311var generateReducer = function generateReducer() {
2312  var actionHandler = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultActionHandler;
2313  return function (state, action) {
2314    var stateChanges = actionHandler[action.type] ? actionHandler[action.type](state, action.value) : {};
2315
2316    var newState = _objectSpread({}, state, {}, stateChanges, {
2317      lastAction: action.type !== _constants__WEBPACK_IMPORTED_MODULE_3__["MULTI_TOUCH"] ? action.type : stateChanges.lastAction || action.value[0].secondary
2318    });
2319
2320    return newState;
2321  };
2322};
2323
2324var CoreProvider = function CoreProvider(props) {
2325  var history = Object(react_router_dom__WEBPACK_IMPORTED_MODULE_1__["useHistory"])();
2326  var initialState = Object(react__WEBPACK_IMPORTED_MODULE_0__["useMemo"])(function () {
2327    return Object(_utils__WEBPACK_IMPORTED_MODULE_2__["getInitialState"])({
2328      customState: props.AudioProcessor.customState,
2329      pathname: history.location.pathname
2330    });
2331  }, []);
2332  var coreReducer = Object(react__WEBPACK_IMPORTED_MODULE_0__["useMemo"])(function () {
2333    return generateReducer(_objectSpread({}, defaultActionHandlers, {}, props.AudioProcessor.customReducer));
2334  }, []);
2335  var soundProcessor = Object(react__WEBPACK_IMPORTED_MODULE_0__["useMemo"])(function () {
2336    return new props.AudioProcessor(initialState);
2337  }, []);
2338
2339  var _useReducer = Object(react__WEBPACK_IMPORTED_MODULE_0__["useReducer"])(coreReducer, initialState),
2340      _useReducer2 = _slicedToArray(_useReducer, 2),
2341      state = _useReducer2[0],
2342      dispatch = _useReducer2[1];
2343
2344  Object(react__WEBPACK_IMPORTED_MODULE_0__["useEffect"])(function () {
2345    soundProcessor.reducer(state.lastAction, state);
2346
2347    if (state.lastAction === 'menu') {
2348      history.push("/");
2349    }
2350  }, [state]);
2351  Object(react__WEBPACK_IMPORTED_MODULE_0__["useEffect"])(function () {
2352    Object(_utils__WEBPACK_IMPORTED_MODULE_2__["setLocalStorage"])(state, history.location.pathname);
2353  }, [state[_constants__WEBPACK_IMPORTED_MODULE_3__["PATTERNS"]]]);
2354  Object(react__WEBPACK_IMPORTED_MODULE_0__["useEffect"])(function () {
2355    return soundProcessor.unmount;
2356  }, []);
2357  var synthAction = Object(react__WEBPACK_IMPORTED_MODULE_0__["useCallback"])(function (note) {
2358    var action = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'release';
2359    var length = arguments.length > 2 ? arguments[2] : undefined;
2360
2361    switch (action) {
2362      case 'attack':
2363        soundProcessor.sound.tone.triggerAttackRelease(note, length);
2364        return;
2365
2366      default:
2367        soundProcessor.sound.tone.triggerRelease();
2368        return;
2369    }
2370  }
vendor: 5,491 bytes, lines 2370-2565
2370, [state[_constants__WEBPACK_IMPORTED_MODULE_3__["SOUND"]], state[_constants__WEBPACK_IMPORTED_MODULE_3__["MUTE"]]]);
2371  return (
2372    /*#__PURE__*/
2373    react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(playerContext.Provider, {
2374      value: {
2375        state: state,
2376        dispatch: dispatch,
2377        synthAction: synthAction,
2378        sounds: props.AudioProcessor.sounds,
2379        view: state.view,
2380        startNote: props.AudioProcessor.startNote
2381      }
2382    }, props.children)
2383  );
2384};
2385/* harmony default export */ __webpack_exports__["default"] = (playerContext);
2386
2387/***/ }),
2388/* 10 */
2389/***/ (function(module, exports, __webpack_require__) {
2390
2391"use strict";
2392
2393
2394var isMergeableObject = function isMergeableObject(value) {
2395	return isNonNullObject(value)
2396		&& !isSpecial(value)
2397};
2398
2399function isNonNullObject(value) {
2400	return !!value && typeof value === 'object'
2401}
2402
2403function isSpecial(value) {
2404	var stringValue = Object.prototype.toString.call(value);
2405
2406	return stringValue === '[object RegExp]'
2407		|| stringValue === '[object Date]'
2408		|| isReactElement(value)
2409}
2410
2411// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25
2412var canUseSymbol = typeof Symbol === 'function' && Symbol.for;
2413var REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;
2414
2415function isReactElement(value) {
2416	return value.$$typeof === REACT_ELEMENT_TYPE
2417}
2418
2419function emptyTarget(val) {
2420	return Array.isArray(val) ? [] : {}
2421}
2422
2423function cloneUnlessOtherwiseSpecified(value, options) {
2424	return (options.clone !== false && options.isMergeableObject(value))
2425		? deepmerge(emptyTarget(value), value, options)
2426		: value
2427}
2428
2429function defaultArrayMerge(target, source, options) {
2430	return target.concat(source).map(function(element) {
2431		return cloneUnlessOtherwiseSpecified(element, options)
2432	})
2433}
2434
2435function getMergeFunction(key, options) {
2436	if (!options.customMerge) {
2437		return deepmerge
2438	}
2439	var customMerge = options.customMerge(key);
2440	return typeof customMerge === 'function' ? customMerge : deepmerge
2441}
2442
2443function getEnumerableOwnPropertySymbols(target) {
2444	return Object.getOwnPropertySymbols
2445		? Object.getOwnPropertySymbols(target).filter(function(symbol) {
2446			return target.propertyIsEnumerable(symbol)
2447		})
2448		: []
2449}
2450
2451function getKeys(target) {
2452	return Object.keys(target).concat(getEnumerableOwnPropertySymbols(target))
2453}
2454
2455function propertyIsOnObject(object, property) {
2456	try {
2457		return property in object
2458	} catch(_) {
2459		return false
2460	}
2461}
2462
2463// Protects from prototype poisoning and unexpected merging up the prototype chain.
2464function propertyIsUnsafe(target, key) {
2465	return propertyIsOnObject(target, key) // Properties are safe to merge if they don't exist in the target yet,
2466		&& !(Object.hasOwnProperty.call(target, key) // unsafe if they exist up the prototype chain,
2467			&& Object.propertyIsEnumerable.call(target, key)) // and also unsafe if they're nonenumerable.
2468}
2469
2470function mergeObject(target, source, options) {
2471	var destination = {};
2472	if (options.isMergeableObject(target)) {
2473		getKeys(target).forEach(function(key) {
2474			destination[key] = cloneUnlessOtherwiseSpecified(target[key], options);
2475		});
2476	}
2477	getKeys(source).forEach(function(key) {
2478		if (propertyIsUnsafe(target, key)) {
2479			return
2480		}
2481
2482		if (propertyIsOnObject(target, key) && options.isMergeableObject(source[key])) {
2483			destination[key] = getMergeFunction(key, options)(target[key], source[key], options);
2484		} else {
2485			destination[key] = cloneUnlessOtherwiseSpecified(source[key], options);
2486		}
2487	});
2488	return destination
2489}
2490
2491function deepmerge(target, source, options) {
2492	options = options || {};
2493	options.arrayMerge = options.arrayMerge || defaultArrayMerge;
2494	options.isMergeableObject = options.isMergeableObject || isMergeableObject;
2495	// cloneUnlessOtherwiseSpecified is added to `options` so that custom arrayMerge()
2496	// implementations can use it. The caller may not replace it.
2497	options.cloneUnlessOtherwiseSpecified = cloneUnlessOtherwiseSpecified;
2498
2499	var sourceIsArray = Array.isArray(source);
2500	var targetIsArray = Array.isArray(target);
2501	var sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;
2502
2503	if (!sourceAndTargetTypesMatch) {
2504		return cloneUnlessOtherwiseSpecified(source, options)
2505	} else if (sourceIsArray) {
2506		return options.arrayMerge(target, source, options)
2507	} else {
2508		return mergeObject(target, source, options)
2509	}
2510}
2511
2512deepmerge.all = function deepmergeAll(array, options) {
2513	if (!Array.isArray(array)) {
2514		throw new Error('first argument should be an array')
2515	}
2516
2517	return array.reduce(function(prev, next) {
2518		return deepmerge(prev, next, options)
2519	}, {})
2520};
2521
2522var deepmerge_1 = deepmerge;
2523
2524module.exports = deepmerge_1;
2525
2526
2527/***/ }),
2528/* 11 */
2529/***/ (function(module, exports, __webpack_require__) {
2530
2531"use strict";
2532
2533
2534if (true) {
2535  module.exports = __webpack_require__(56);
2536} else {}
2537
2538
2539/***/ }),
2540/* 12 */
2541/***/ (function(module, exports, __webpack_require__) {
2542
2543"use strict";
2544
2545
2546function checkDCE() {
2547  /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */
2548  if (
2549    typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||
2550    typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'
2551  ) {
2552    return;
2553  }
2554  if (false) {}
2555  try {
2556    // Verify that the code above has been dead code eliminated (DCE'd).
2557    __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);
2558  } catch (err) {
2559    // DevTools shouldn't crash React, no matter what.
2560    // We should still report in case we break this code.
2561    console.error(err);
2562  }
2563}
2564
2565if (true) {
2566  // DCE check should happen before ReactDOM bundle executes so that
2567  // DevTools can report bad minification during injection.
2568  checkDCE();
2569  module.exports = __webpack_require__(49);
2570} else {}
2571
2572
2573/***/ }),
2574/* 13 */
2575/***/ (function(module, __webpack_exports__, __webpack_require__) {
2576
2577"use strict";
2578__webpack_require__.r(__webpack_exports__);
2579/* WEBPACK VAR INJECTION */(function(process) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createGlobalStyle", function() { return createGlobalStyle; });
2580/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "css", function() { return css; });
2581/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isStyledComponent", function() { return isStyledComponent; });
2582/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "keyframes", function() { return keyframes; });
2583/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ServerStyleSheet", function() { return ServerStyleSheet; });
2584/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "StyleSheetConsumer", function() { return StyleSheetConsumer; });
2585/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "StyleSheetContext", function() { return StyleSheetContext; });
2586/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "StyleSheetManager", function() { return StyleSheetManager; });
2587/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ThemeConsumer", function() { return ThemeConsumer; });
2588/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ThemeContext", function() { return ThemeContext; });
2589/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ThemeProvider", function() { return ThemeProvider; });
2590/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "withTheme", function() { return withTheme; });
2591/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__DO_NOT_USE_OR_YOU_WILL_BE_HAUNTED_BY_SPOOKY_GHOSTS", function() { return __DO_NOT_USE_OR_YOU_WILL_BE_HAUNTED_BY_SPOOKY_GHOSTS; });
2592/* harmony import */ var stylis_stylis_min__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(27);
2593/* harmony import */ var stylis_stylis_min__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(stylis_stylis_min__WEBPACK_IMPORTED_MODULE_0__);
2594/* harmony import */ var stylis_rule_sheet__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(41);
2595/* harmony import */ var stylis_rule_sheet__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(stylis_rule_sheet__WEBPACK_IMPORTED_MODULE_1__);
2596/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(0);
2597/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);
2598/* harmony import */ var _emotion_unitless__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(42);
2599/* harmony import */ var react_is__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(11);
2600/* harmony import */ var react_is__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_is__WEBPACK_IMPORTED_MODULE_4__);
2601/* harmony import */ var memoize_one__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(28);
2602/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(2);
2603/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_6__);
2604/* harmony import */ var _emotion_is_prop_valid__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(45);
2605/* harmony import */ var merge_anything__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(46);
2606
2607
2608
2609
2610
2611
2612
2613
2614
2615
2616// 
2617
2618var interleave = (function (strings, interpolations) {
2619  var result = [strings[0]];
2620
2621  for (var i = 0, len = interpolations.length; i < len; i += 1) {
2622    result.push(interpolations[i], strings[i + 1]);
2623  }
2624
2625  return result;
2626});
2627
2628var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) {
2629  return typeof obj;
2630} : function (obj) {
2631  return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
2632};
2633
2634var classCallCheck = function (instance, Constructor) {
2635  if (!(instance instanceof Constructor)) {
2636    throw new TypeError("Cannot call a class as a function");
2637  }
2638};
2639
2640var createClass = function () {
2641  function defineProperties(target, props) {
2642    for (var i = 0; i < props.length; i++) {
2643      var descriptor = props[i];
2644      descriptor.enumerable = descriptor.enumerable || false;
2645      descriptor.configurable = true;
2646      if ("value" in descriptor) descriptor.writable = true;
2647      Object.defineProperty(target, descriptor.key, descriptor);
2648    }
2649  }
2650
2651  return function (Constructor, protoProps, staticProps) {
2652    if (protoProps) defineProperties(Constructor.prototype, protoProps);
2653    if (staticProps) defineProperties(Constructor, staticProps);
2654    return Constructor;
2655  };
2656}();
2657
2658var _extends = Object.assign || function (target) {
2659  for (var i = 1; i < arguments.length; i++) {
2660    var source = arguments[i];
2661
2662    for (var key in source) {
2663      if (Object.prototype.hasOwnProperty.call(source, key)) {
2664        target[key] = source[key];
2665      }
2666    }
2667  }
2668
2669  return target;
2670};
2671
2672var inherits = function (subClass, superClass) {
2673  if (typeof superClass !== "function" && superClass !== null) {
2674    throw new TypeError("Super expression must either be null or a function, not " + typeof superClass);
2675  }
2676
2677  subClass.prototype = Object.create(superClass && superClass.prototype, {
2678    constructor: {
2679      value: subClass,
2680      enumerable: false,
2681      writable: true,
2682      configurable: true
2683    }
2684  });
2685  if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;
2686};
2687
2688var objectWithoutProperties = function (obj, keys) {
2689  var target = {};
2690
2691  for (var i in obj) {
2692    if (keys.indexOf(i) >= 0) continue;
2693    if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;
2694    target[i] = obj[i];
2695  }
2696
2697  return target;
2698};
2699
2700var possibleConstructorReturn = function (self, call) {
2701  if (!self) {
2702    throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
2703  }
2704
2705  return call && (typeof call === "object" || typeof call === "function") ? call : self;
2706};
2707
2708// 
2709var isPlainObject = (function (x) {
2710  return (typeof x === 'undefined' ? 'undefined' : _typeof(x)) === 'object' && x.constructor === Object;
2711});
2712
2713// 
2714var EMPTY_ARRAY = Object.freeze([]);
2715var EMPTY_OBJECT = Object.freeze({});
2716
2717// 
2718function isFunction(test) {
2719  return typeof test === 'function';
2720}
2721
2722// 
2723
2724function getComponentName(target) {
2725  return ( false) || target.displayName || target.name || 'Component';
2726}
2727
2728// 
2729function isStatelessFunction(test) {
2730  return typeof test === 'function' && !(test.prototype && test.prototype.isReactComponent);
2731}
2732
2733// 
2734function isStyledComponent(target) {
2735  return target && typeof target.styledComponentId === 'string';
2736}
2737
2738// 
2739
2740var SC_ATTR = typeof process !== 'undefined' && (process.env.REACT_APP_SC_ATTR || process.env.SC_ATTR) || 'data-styled';
2741
2742var SC_VERSION_ATTR = 'data-styled-version';
2743
2744var SC_STREAM_ATTR = 'data-styled-streamed';
2745
2746var IS_BROWSER = typeof window !== 'undefined' && 'HTMLElement' in window;
2747
2748var DISABLE_SPEEDY = typeof SC_DISABLE_SPEEDY === 'boolean' && SC_DISABLE_SPEEDY || typeof process !== 'undefined' && (process.env.REACT_APP_SC_DISABLE_SPEEDY || process.env.SC_DISABLE_SPEEDY) || "production" !== 'production';
2749
2750// Shared empty execution context when generating static styles
2751var STATIC_EXECUTION_CONTEXT = {};
2752
2753// 
2754
2755
2756/**
2757 * Parse errors.md and turn it into a simple hash of code: message
2758 */
2759var ERRORS =  false ? undefined : {};
2760
2761/**
2762 * super basic version of sprintf
2763 */
2764function format() {
2765  var a = arguments.length <= 0 ? undefined : arguments[0];
2766  var b = [];
2767
2768  for (var c = 1, len = arguments.length; c < len; c += 1) {
2769    b.push(arguments.length <= c ? undefined : arguments[c]);
2770  }
2771
2772  b.forEach(function (d) {
2773    a = a.replace(/%[a-z]/, d);
2774  });
2775
2776  return a;
2777}
2778
2779/**
2780 * Create an error file out of errors.md for development and a simple web link to the full errors
2781 * in production mode.
2782 */
2783
2784var StyledComponentsError = function (_Error) {
2785  inherits(StyledComponentsError, _Error);
2786
2787  function StyledComponentsError(code) {
2788    classCallCheck(this, StyledComponentsError);
2789
2790    for (var _len = arguments.length, interpolations = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
2791      interpolations[_key - 1] = arguments[_key];
2792    }
2793
2794    if (true) {
2795      var _this = possibleConstructorReturn(this, _Error.call(this, 'An error occurred. See https://github.com/styled-components/styled-components/blob/master/packages/styled-components/src/utils/errors.md#' + code + ' for more information.' + (interpolations.length > 0 ? ' Additional arguments: ' + interpolations.join(', ') : '')));
2796    } else { var _this; }
2797    return possibleConstructorReturn(_this);
2798  }
2799
2800  return StyledComponentsError;
2801}(Error);
2802
2803// 
2804var SC_COMPONENT_ID = /^[^\S\n]*?\/\* sc-component-id:\s*(\S+)\s+\*\//gm;
2805
2806var extractComps = (function (maybeCSS) {
2807  var css = '' + (maybeCSS || ''); // Definitely a string, and a clone
2808  var existingComponents = [];
2809  css.replace(SC_COMPONENT_ID, function (match, componentId, matchIndex) {
2810    existingComponents.push({ componentId: componentId, matchIndex: matchIndex });
2811    return match;
2812  });
2813  return existingComponents.map(function (_ref, i) {
2814    var componentId = _ref.componentId,
2815        matchIndex = _ref.matchIndex;
2816
2817    var nextComp = existingComponents[i + 1];
2818    var cssFromDOM = nextComp ? css.slice(matchIndex, nextComp.matchIndex) : css.slice(matchIndex);
2819    return { componentId: componentId, cssFromDOM: cssFromDOM };
2820  });
2821});
2822
2823// 
2824
2825var COMMENT_REGEX = /^\s*\/\/.*$/gm;
2826
2827// NOTE: This stylis instance is only used to split rules from SSR'd style tags
2828var stylisSplitter = new stylis_stylis_min__WEBPACK_IMPORTED_MODULE_0___default.a({
2829  global: false,
2830  cascade: true,
2831  keyframe: false,
2832  prefix: false,
2833  compress: false,
2834  semicolon: true
2835});
2836
2837var stylis = new stylis_stylis_min__WEBPACK_IMPORTED_MODULE_0___default.a({
2838  global: false,
2839  cascade: true,
2840  keyframe: false,
2841  prefix: true,
2842  compress: false,
2843  semicolon: false // NOTE: This means "autocomplete missing semicolons"
2844});
2845
2846// Wrap `insertRulePlugin to build a list of rules,
2847// and then make our own plugin to return the rules. This
2848// makes it easier to hook into the existing SSR architecture
2849
2850var parsingRules = [];
2851
2852// eslint-disable-next-line consistent-return
2853var returnRulesPlugin = function returnRulesPlugin(context) {
2854  if (context === -2) {
2855    var parsedRules = parsingRules;
2856    parsingRules = [];
2857    return parsedRules;
2858  }
2859};
2860
2861var parseRulesPlugin = stylis_rule_sheet__WEBPACK_IMPORTED_MODULE_1___default()(function (rule) {
2862  parsingRules.push(rule);
2863});
2864
2865var _componentId = void 0;
2866var _selector = void 0;
2867var _selectorRegexp = void 0;
2868
2869var selfReferenceReplacer = function selfReferenceReplacer(match, offset, string) {
2870  if (
2871  // the first self-ref is always untouched
2872  offset > 0 &&
2873  // there should be at least two self-refs to do a replacement (.b > .b)
2874  string.slice(0, offset).indexOf(_selector) !== -1 &&
2875  // no consecutive self refs (.b.b); that is a precedence boost and treated differently
2876  string.slice(offset - _selector.length, offset) !== _selector) {
2877    return '.' + _componentId;
2878  }
2879
2880  return match;
2881};
2882
2883/**
2884 * When writing a style like
2885 *
2886 * & + & {
2887 *   color: red;
2888 * }
2889 *
2890 * The second ampersand should be a reference to the static component class. stylis
2891 * has no knowledge of static class so we have to intelligently replace the base selector.
2892 */
2893var selfReferenceReplacementPlugin = function selfReferenceReplacementPlugin(context, _, selectors) {
2894  if (context === 2 && selectors.length && selectors[0].lastIndexOf(_selector) > 0) {
2895    // eslint-disable-next-line no-param-reassign
2896    selectors[0] = selectors[0].replace(_selectorRegexp, selfReferenceReplacer);
2897  }
2898};
2899
2900stylis.use([selfReferenceReplacementPlugin, parseRulesPlugin, returnRulesPlugin]);
2901stylisSplitter.use([parseRulesPlugin, returnRulesPlugin]);
2902
2903var splitByRules = function splitByRules(css) {
2904  return stylisSplitter('', css);
2905};
2906
2907function stringifyRules(rules, selector, prefix) {
2908  var componentId = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '&';
2909
2910  var flatCSS = rules.join('').replace(COMMENT_REGEX, ''); // replace JS comments
2911
2912  var cssStr = selector && prefix ? prefix + ' ' + selector + ' { ' + flatCSS + ' }' : flatCSS;
2913
2914  // stylis has no concept of state to be passed to plugins
2915  // but since JS is single=threaded, we can rely on that to ensure
2916  // these properties stay in sync with the current stylis run
2917  _componentId = componentId;
2918  _selector = selector;
2919  _selectorRegexp = new RegExp('\\' + _selector + '\\b', 'g');
2920
2921  return stylis(prefix || !selector ? '' : selector, cssStr);
2922}
2923
2924// 
2925/* eslint-disable camelcase, no-undef */
2926
2927var getNonce = (function () {
2928  return  true ? __webpack_require__.nc : undefined;
2929});
2930
2931// 
2932/* These are helpers for the StyleTags to keep track of the injected
2933 * rule names for each (component) ID that they're keeping track of.
2934 * They're crucial for detecting whether a name has already been
2935 * injected.
2936 * (This excludes rehydrated names) */
2937
2938/* adds a new ID:name pairing to a names dictionary */
2939var addNameForId = function addNameForId(names, id, name) {
2940  if (name) {
2941    // eslint-disable-next-line no-param-reassign
2942    var namesForId = names[id] || (names[id] = Object.create(null));
2943    namesForId[name] = true;
2944  }
2945};
2946
2947/* resets an ID entirely by overwriting it in the dictionary */
2948var resetIdNames = function resetIdNames(names, id) {
2949  // eslint-disable-next-line no-param-reassign
2950  names[id] = Object.create(null);
2951};
2952
2953/* factory for a names dictionary checking the existance of an ID:name pairing */
2954var hasNameForId = function hasNameForId(names) {
2955  return function (id, name) {
2956    return names[id] !== undefined && names[id][name];
2957  };
2958};
2959
2960/* stringifies names for the html/element output */
2961var stringifyNames = function stringifyNames(names) {
2962  var str = '';
2963  // eslint-disable-next-line guard-for-in
2964  for (var id in names) {
2965    str += Object.keys(names[id]).join(' ') + ' ';
2966  }
2967  return str.trim();
2968};
2969
2970/* clones the nested names dictionary */
2971var cloneNames = function cloneNames(names) {
2972  var clone = Object.create(null);
2973  // eslint-disable-next-line guard-for-in
2974  for (var id in names) {
2975    clone[id] = _extends({}, names[id]);
2976  }
2977  return clone;
2978};
2979
2980// 
2981
2982/* These are helpers that deal with the insertRule (aka speedy) API
2983 * They are used in the StyleTags and specifically the speedy tag
2984 */
2985
2986/* retrieve a sheet for a given style tag */
2987var sheetForTag = function sheetForTag(tag) {
2988  // $FlowFixMe
2989  if (tag.sheet) return tag.sheet;
2990
2991  /* Firefox quirk requires us to step through all stylesheets to find one owned by the given tag */
2992  var size = tag.ownerDocument.styleSheets.length;
2993  for (var i = 0; i < size; i += 1) {
2994    var sheet = tag.ownerDocument.styleSheets[i];
2995    // $FlowFixMe
2996    if (sheet.ownerNode === tag) return sheet;
2997  }
2998
2999  /* we should always be able to find a tag */
3000  throw new StyledComponentsError(10);
3001};
3002
3003/* insert a rule safely and return whether it was actually injected */
3004var safeInsertRule = function safeInsertRule(sheet, cssRule, index) {
3005  /* abort early if cssRule string is falsy */
3006  if (!cssRule) return false;
3007
3008  var maxIndex = sheet.cssRules.length;
3009
3010  try {
3011    /* use insertRule and cap passed index with maxIndex (no of cssRules) */
3012    sheet.insertRule(cssRule, index <= maxIndex ? index : maxIndex);
3013  } catch (err) {
3014    /* any error indicates an invalid rule */
3015    return false;
3016  }
3017
3018  return true;
3019};
3020
3021/* deletes `size` rules starting from `removalIndex` */
3022var deleteRules = function deleteRules(sheet, removalIndex, size) {
3023  var lowerBound = removalIndex - size;
3024  for (var i = removalIndex; i > lowerBound; i -= 1) {
3025    sheet.deleteRule(i);
3026  }
3027};
3028
3029// 
3030
3031/* this marker separates component styles and is important for rehydration */
3032var makeTextMarker = function makeTextMarker(id) {
3033  return '\n/* sc-component-id: ' + id + ' */\n';
3034};
3035
3036/* add up all numbers in array up until and including the index */
3037var addUpUntilIndex = function addUpUntilIndex(sizes, index) {
3038  var totalUpToIndex = 0;
3039  for (var i = 0; i <= index; i += 1) {
3040    totalUpToIndex += sizes[i];
3041  }
3042
3043  return totalUpToIndex;
3044};
3045
3046/* create a new style tag after lastEl */
3047var makeStyleTag = function makeStyleTag(target, tagEl, insertBefore) {
3048  var targetDocument = document;
3049  if (target) targetDocument = target.ownerDocument;else if (tagEl) targetDocument = tagEl.ownerDocument;
3050
3051  var el = targetDocument.createElement('style');
3052  el.setAttribute(SC_ATTR, '');
3053  el.setAttribute(SC_VERSION_ATTR, "4.4.1");
3054
3055  var nonce = getNonce();
3056  if (nonce) {
3057    el.setAttribute('nonce', nonce);
3058  }
3059
3060  /* Work around insertRule quirk in EdgeHTML */
3061  el.appendChild(targetDocument.createTextNode(''));
3062
3063  if (target && !tagEl) {
3064    /* Append to target when no previous element was passed */
3065    target.appendChild(el);
3066  } else {
3067    if (!tagEl || !target || !tagEl.parentNode) {
3068      throw new StyledComponentsError(6);
3069    }
3070
3071    /* Insert new style tag after the previous one */
3072    tagEl.parentNode.insertBefore(el, insertBefore ? tagEl : tagEl.nextSibling);
3073  }
3074
3075  return el;
3076};
3077
3078/* takes a css factory function and outputs an html styled tag factory */
3079var wrapAsHtmlTag = function wrapAsHtmlTag(css, names) {
3080  return function (additionalAttrs) {
3081    var nonce = getNonce();
3082    var attrs = [nonce && 'nonce="' + nonce + '"', SC_ATTR + '="' + stringifyNames(names) + '"', SC_VERSION_ATTR + '="' + "4.4.1" + '"', additionalAttrs];
3083
3084    var htmlAttr = attrs.filter(Boolean).join(' ');
3085    return '<style ' + htmlAttr + '>' + css() + '</style>';
3086  };
3087};
3088
3089/* takes a css factory function and outputs an element factory */
3090var wrapAsElement = function wrapAsElement(css, names) {
3091  return function () {
3092    var _props;
3093
3094    var props = (_props = {}, _props[SC_ATTR] = stringifyNames(names), _props[SC_VERSION_ATTR] = "4.4.1", _props);
3095
3096    var nonce = getNonce();
3097    if (nonce) {
3098      // $FlowFixMe
3099      props.nonce = nonce;
3100    }
3101
3102    // eslint-disable-next-line react/no-danger
3103    return react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement('style', _extends({}, props, { dangerouslySetInnerHTML: { __html: css() } }));
3104  };
3105};
3106
3107var getIdsFromMarkersFactory = function getIdsFromMarkersFactory(markers) {
3108  return function () {
3109    return Object.keys(markers);
3110  };
3111};
3112
3113/* speedy tags utilise insertRule */
3114var makeSpeedyTag = function makeSpeedyTag(el, getImportRuleTag) {
3115  var names = Object.create(null);
3116  var markers = Object.create(null);
3117  var sizes = [];
3118
3119  var extractImport = getImportRuleTag !== undefined;
3120  /* indicates whether getImportRuleTag was called */
3121  var usedImportRuleTag = false;
3122
3123  var insertMarker = function insertMarker(id) {
3124    var prev = markers[id];
3125    if (prev !== undefined) {
3126      return prev;
3127    }
3128
3129    markers[id] = sizes.length;
3130    sizes.push(0);
3131    resetIdNames(names, id);
3132
3133    return markers[id];
3134  };
3135
3136  var insertRules = function insertRules(id, cssRules, name) {
3137    var marker = insertMarker(id);
3138    var sheet = sheetForTag(el);
3139    var insertIndex = addUpUntilIndex(sizes, marker);
3140
3141    var injectedRules = 0;
3142    var importRules = [];
3143    var cssRulesSize = cssRules.length;
3144
3145    for (var i = 0; i < cssRulesSize; i += 1) {
3146      var cssRule = cssRules[i];
3147      var mayHaveImport = extractImport; /* @import rules are reordered to appear first */
3148      if (mayHaveImport && cssRule.indexOf('@import') !== -1) {
3149        importRules.push(cssRule);
3150      } else if (safeInsertRule(sheet, cssRule, insertIndex + injectedRules)) {
3151        mayHaveImport = false;
3152        injectedRules += 1;
3153      }
3154    }
3155
3156    if (extractImport && importRules.length > 0) {
3157      usedImportRuleTag = true;
3158      // $FlowFixMe
3159      getImportRuleTag().insertRules(id + '-import', importRules);
3160    }
3161
3162    sizes[marker] += injectedRules; /* add up no of injected rules */
3163    addNameForId(names, id, name);
3164  };
3165
3166  var removeRules = function removeRules(id) {
3167    var marker = markers[id];
3168    if (marker === undefined) return;
3169    // $FlowFixMe
3170    if (el.isConnected === false) return;
3171
3172    var size = sizes[marker];
3173    var sheet = sheetForTag(el);
3174    var removalIndex = addUpUntilIndex(sizes, marker) - 1;
3175    deleteRules(sheet, removalIndex, size);
3176    sizes[marker] = 0;
3177    resetIdNames(names, id);
3178
3179    if (extractImport && usedImportRuleTag) {
3180      // $FlowFixMe
3181      getImportRuleTag().removeRules(id + '-import');
3182    }
3183  };
3184
3185  var css = function css() {
3186    var _sheetForTag = sheetForTag(el),
3187        cssRules = _sheetForTag.cssRules;
3188
3189    var str = '';
3190
3191    // eslint-disable-next-line guard-for-in
3192    for (var id in markers) {
3193      str += makeTextMarker(id);
3194      var marker = markers[id];
3195      var end = addUpUntilIndex(sizes, marker);
3196      var size = sizes[marker];
3197      for (var i = end - size; i < end; i += 1) {
3198        var rule = cssRules[i];
3199        if (rule !== undefined) {
3200          str += rule.cssText;
3201        }
3202      }
3203    }
3204
3205    return str;
3206  };
3207
3208  return {
3209    clone: function clone() {
3210      throw new StyledComponentsError(5);
3211    },
3212
3213    css: css,
3214    getIds: getIdsFromMarkersFactory(markers),
3215    hasNameForId: hasNameForId(names),
3216    insertMarker: insertMarker,
3217    insertRules: insertRules,
3218    removeRules: removeRules,
3219    sealed: false,
3220    styleTag: el,
3221    toElement: wrapAsElement(css, names),
3222    toHTML: wrapAsHtmlTag(css, names)
3223  };
3224};
3225
3226var makeTextNode = function makeTextNode(targetDocument, id) {
3227  return targetDocument.createTextNode(makeTextMarker(id));
3228};
3229
3230var makeBrowserTag = function makeBrowserTag(el, getImportRuleTag) {
3231  var names = Object.create(null);
3232  var markers = Object.create(null);
3233
3234  var extractImport = getImportRuleTag !== undefined;
3235
3236  /* indicates whether getImportRuleTag was called */
3237  var usedImportRuleTag = false;
3238
3239  var insertMarker = function insertMarker(id) {
3240    var prev = markers[id];
3241    if (prev !== undefined) {
3242      return prev;
3243    }
3244
3245    markers[id] = makeTextNode(el.ownerDocument, id);
3246    el.appendChild(markers[id]);
3247    names[id] = Object.create(null);
3248
3249    return markers[id];
3250  };
3251
3252  var insertRules = function insertRules(id, cssRules, name) {
3253    var marker = insertMarker(id);
3254    var importRules = [];
3255    var cssRulesSize = cssRules.length;
3256
3257    for (var i = 0; i < cssRulesSize; i += 1) {
3258      var rule = cssRules[i];
3259      var mayHaveImport = extractImport;
3260      if (mayHaveImport && rule.indexOf('@import') !== -1) {
3261        importRules.push(rule);
3262      } else {
3263        mayHaveImport = false;
3264        var separator = i === cssRulesSize - 1 ? '' : ' ';
3265        marker.appendData('' + rule + separator);
3266      }
3267    }
3268
3269    addNameForId(names, id, name);
3270
3271    if (extractImport && importRules.length > 0) {
3272      usedImportRuleTag = true;
3273      // $FlowFixMe
3274      getImportRuleTag().insertRules(id + '-import', importRules);
3275    }
3276  };
3277
3278  var removeRules = function removeRules(id) {
3279    var marker = markers[id];
3280    if (marker === undefined) return;
3281
3282    /* create new empty text node and replace the current one */
3283    var newMarker = makeTextNode(el.ownerDocument, id);
3284    el.replaceChild(newMarker, marker);
3285    markers[id] = newMarker;
3286    resetIdNames(names, id);
3287
3288    if (extractImport && usedImportRuleTag) {
3289      // $FlowFixMe
3290      getImportRuleTag().removeRules(id + '-import');
3291    }
3292  };
3293
3294  var css = function css() {
3295    var str = '';
3296
3297    // eslint-disable-next-line guard-for-in
3298    for (var id in markers) {
3299      str += markers[id].data;
3300    }
3301
3302    return str;
3303  };
3304
3305  return {
3306    clone: function clone() {
3307      throw new StyledComponentsError(5);
3308    },
3309
3310    css: css,
3311    getIds: getIdsFromMarkersFactory(markers),
3312    hasNameForId: hasNameForId(names),
3313    insertMarker: insertMarker,
3314    insertRules: insertRules,
3315    removeRules: removeRules,
3316    sealed: false,
3317    styleTag: el,
3318    toElement: wrapAsElement(css, names),
3319    toHTML: wrapAsHtmlTag(css, names)
3320  };
3321};
3322
3323var makeServerTag = function makeServerTag(namesArg, markersArg) {
3324  var names = namesArg === undefined ? Object.create(null) : namesArg;
3325  var markers = markersArg === undefined ? Object.create(null) : markersArg;
3326
3327  var insertMarker = function insertMarker(id) {
3328    var prev = markers[id];
3329    if (prev !== undefined) {
3330      return prev;
3331    }
3332
3333    return markers[id] = [''];
3334  };
3335
3336  var insertRules = function insertRules(id, cssRules, name) {
3337    var marker = insertMarker(id);
3338    marker[0] += cssRules.join(' ');
3339    addNameForId(names, id, name);
3340  };
3341
3342  var removeRules = function removeRules(id) {
3343    var marker = markers[id];
3344    if (marker === undefined) return;
3345    marker[0] = '';
3346    resetIdNames(names, id);
3347  };
3348
3349  var css = function css() {
3350    var str = '';
3351    // eslint-disable-next-line guard-for-in
3352    for (var id in markers) {
3353      var cssForId = markers[id][0];
3354      if (cssForId) {
3355        str += makeTextMarker(id) + cssForId;
3356      }
3357    }
3358    return str;
3359  };
3360
3361  var clone = function clone() {
3362    var namesClone = cloneNames(names);
3363    var markersClone = Object.create(null);
3364
3365    // eslint-disable-next-line guard-for-in
3366    for (var id in markers) {
3367      markersClone[id] = [markers[id][0]];
3368    }
3369
3370    return makeServerTag(namesClone, markersClone);
3371  };
3372
3373  var tag = {
3374    clone: clone,
3375    css: css,
3376    getIds: getIdsFromMarkersFactory(markers),
3377    hasNameForId: hasNameForId(names),
3378    insertMarker: insertMarker,
3379    insertRules: insertRules,
3380    removeRules: removeRules,
3381    sealed: false,
3382    styleTag: null,
3383    toElement: wrapAsElement(css, names),
3384    toHTML: wrapAsHtmlTag(css, names)
3385  };
3386
3387  return tag;
3388};
3389
3390var makeTag = function makeTag(target, tagEl, forceServer, insertBefore, getImportRuleTag) {
3391  if (IS_BROWSER && !forceServer) {
3392    var el = makeStyleTag(target, tagEl, insertBefore);
3393
3394    if (DISABLE_SPEEDY) {
3395      return makeBrowserTag(el, getImportRuleTag);
3396    } else {
3397      return makeSpeedyTag(el, getImportRuleTag);
3398    }
3399  }
3400
3401  return makeServerTag();
3402};
3403
3404var rehydrate = function rehydrate(tag, els, extracted) {
3405  /* add all extracted components to the new tag */
3406  for (var i = 0, len = extracted.length; i < len; i += 1) {
3407    var _extracted$i = extracted[i],
3408        componentId = _extracted$i.componentId,
3409        cssFromDOM = _extracted$i.cssFromDOM;
3410
3411    var cssRules = splitByRules(cssFromDOM);
3412    tag.insertRules(componentId, cssRules);
3413  }
3414
3415  /* remove old HTMLStyleElements, since they have been rehydrated */
3416  for (var _i = 0, _len = els.length; _i < _len; _i += 1) {
3417    var el = els[_i];
3418    if (el.parentNode) {
3419      el.parentNode.removeChild(el);
3420    }
3421  }
3422};
3423
3424// 
3425
3426var SPLIT_REGEX = /\s+/;
3427
3428/* determine the maximum number of components before tags are sharded */
3429var MAX_SIZE = void 0;
3430if (IS_BROWSER) {
3431  /* in speedy mode we can keep a lot more rules in a sheet before a slowdown can be expected */
3432  MAX_SIZE = DISABLE_SPEEDY ? 40 : 1000;
3433} else {
3434  /* for servers we do not need to shard at all */
3435  MAX_SIZE = -1;
3436}
3437
3438var sheetRunningId = 0;
3439var master = void 0;
3440
3441var StyleSheet = function () {
3442
3443  /* a map from ids to tags */
3444
3445  /* deferred rules for a given id */
3446
3447  /* this is used for not reinjecting rules via hasNameForId() */
3448
3449  /* when rules for an id are removed using remove() we have to ignore rehydratedNames for it */
3450
3451  /* a list of tags belonging to this StyleSheet */
3452
3453  /* a tag for import rules */
3454
3455  /* current capacity until a new tag must be created */
3456
3457  /* children (aka clones) of this StyleSheet inheriting all and future injections */
3458
3459  function StyleSheet() {
3460    var _this = this;
3461
3462    var target = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : IS_BROWSER ? document.head : null;
3463    var forceServer = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
3464    classCallCheck(this, StyleSheet);
3465
3466    this.getImportRuleTag = function () {
3467      var importRuleTag = _this.importRuleTag;
3468
3469      if (importRuleTag !== undefined) {
3470        return importRuleTag;
3471      }
3472
3473      var firstTag = _this.tags[0];
3474      var insertBefore = true;
3475
3476      return _this.importRuleTag = makeTag(_this.target, firstTag ? firstTag.styleTag : null, _this.forceServer, insertBefore);
3477    };
3478
3479    sheetRunningId += 1;
3480    this.id = sheetRunningId;
3481    this.forceServer = forceServer;
3482    this.target = forceServer ? null : target;
3483    this.tagMap = {};
3484    this.deferred = {};
3485    this.rehydratedNames = {};
3486    this.ignoreRehydratedNames = {};
3487    this.tags = [];
3488    this.capacity = 1;
3489    this.clones = [];
3490  }
3491
3492  /* rehydrate all SSR'd style tags */
3493
3494
3495  StyleSheet.prototype.rehydrate = function rehydrate$$1() {
3496    if (!IS_BROWSER || this.forceServer) return this;
3497
3498    var els = [];
3499    var extracted = [];
3500    var isStreamed = false;
3501
3502    /* retrieve all of our SSR style elements from the DOM */
3503    var nodes = document.querySelectorAll('style[' + SC_ATTR + '][' + SC_VERSION_ATTR + '="' + "4.4.1" + '"]');
3504
3505    var nodesSize = nodes.length;
3506
3507    /* abort rehydration if no previous style tags were found */
3508    if (!nodesSize) return this;
3509
3510    for (var i = 0; i < nodesSize; i += 1) {
3511      var el = nodes[i];
3512
3513      /* check if style tag is a streamed tag */
3514      if (!isStreamed) isStreamed = !!el.getAttribute(SC_STREAM_ATTR);
3515
3516      /* retrieve all component names */
3517      var elNames = (el.getAttribute(SC_ATTR) || '').trim().split(SPLIT_REGEX);
3518      var elNamesSize = elNames.length;
3519      for (var j = 0, name; j < elNamesSize; j += 1) {
3520        name = elNames[j];
3521        /* add rehydrated name to sheet to avoid re-adding styles */
3522        this.rehydratedNames[name] = true;
3523      }
3524
3525      /* extract all components and their CSS */
3526      extracted.push.apply(extracted, extractComps(el.textContent));
3527
3528      /* store original HTMLStyleElement */
3529      els.push(el);
3530    }
3531
3532    /* abort rehydration if nothing was extracted */
3533    var extractedSize = extracted.length;
3534    if (!extractedSize) return this;
3535
3536    /* create a tag to be used for rehydration */
3537    var tag = this.makeTag(null);
3538
3539    rehydrate(tag, els, extracted);
3540
3541    /* reset capacity and adjust MAX_SIZE by the initial size of the rehydration */
3542    this.capacity = Math.max(1, MAX_SIZE - extractedSize);
3543    this.tags.push(tag);
3544
3545    /* retrieve all component ids */
3546    for (var _j = 0; _j < extractedSize; _j += 1) {
3547      this.tagMap[extracted[_j].componentId] = tag;
3548    }
3549
3550    return this;
3551  };
3552
3553  /* retrieve a "master" instance of StyleSheet which is typically used when no other is available
3554   * The master StyleSheet is targeted by createGlobalStyle, keyframes, and components outside of any
3555    * StyleSheetManager's context */
3556
3557
3558  /* reset the internal "master" instance */
3559  StyleSheet.reset = function reset() {
3560    var forceServer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
3561
3562    master = new StyleSheet(undefined, forceServer).rehydrate();
3563  };
3564
3565  /* adds "children" to the StyleSheet that inherit all of the parents' rules
3566   * while their own rules do not affect the parent */
3567
3568
3569  StyleSheet.prototype.clone = function clone() {
3570    var sheet = new StyleSheet(this.target, this.forceServer);
3571
3572    /* add to clone array */
3573    this.clones.push(sheet);
3574
3575    /* clone all tags */
3576    sheet.tags = this.tags.map(function (tag) {
3577      var ids = tag.getIds();
3578      var newTag = tag.clone();
3579
3580      /* reconstruct tagMap */
3581      for (var i = 0; i < ids.length; i += 1) {
3582        sheet.tagMap[ids[i]] = newTag;
3583      }
3584
3585      return newTag;
3586    });
3587
3588    /* clone other maps */
3589    sheet.rehydratedNames = _extends({}, this.rehydratedNames);
3590    sheet.deferred = _extends({}, this.deferred);
3591
3592    return sheet;
3593  };
3594
3595  /* force StyleSheet to create a new tag on the next injection */
3596
3597
3598  StyleSheet.prototype.sealAllTags = function sealAllTags() {
3599    this.capacity = 1;
3600
3601    this.tags.forEach(function (tag) {
3602      // eslint-disable-next-line no-param-reassign
3603      tag.sealed = true;
3604    });
3605  };
3606
3607  StyleSheet.prototype.makeTag = function makeTag$$1(tag) {
3608    var lastEl = tag ? tag.styleTag : null;
3609    var insertBefore = false;
3610
3611    return makeTag(this.target, lastEl, this.forceServer, insertBefore, this.getImportRuleTag);
3612  };
3613
3614  /* get a tag for a given componentId, assign the componentId to one, or shard */
3615  StyleSheet.prototype.getTagForId = function getTagForId(id) {
3616    /* simply return a tag, when the componentId was already assigned one */
3617    var prev = this.tagMap[id];
3618    if (prev !== undefined && !prev.sealed) {
3619      return prev;
3620    }
3621
3622    var tag = this.tags[this.tags.length - 1];
3623
3624    /* shard (create a new tag) if the tag is exhausted (See MAX_SIZE) */
3625    this.capacity -= 1;
3626
3627    if (this.capacity === 0) {
3628      this.capacity = MAX_SIZE;
3629      tag = this.makeTag(tag);
3630      this.tags.push(tag);
3631    }
3632
3633    return this.tagMap[id] = tag;
3634  };
3635
3636  /* mainly for createGlobalStyle to check for its id */
3637
3638
3639  StyleSheet.prototype.hasId = function hasId(id) {
3640    return this.tagMap[id] !== undefined;
3641  };
3642
3643  /* caching layer checking id+name to already have a corresponding tag and injected rules */
3644
3645
3646  StyleSheet.prototype.hasNameForId = function hasNameForId(id, name) {
3647    /* exception for rehydrated names which are checked separately */
3648    if (this.ignoreRehydratedNames[id] === undefined && this.rehydratedNames[name]) {
3649      return true;
3650    }
3651
3652    var tag = this.tagMap[id];
3653    return tag !== undefined && tag.hasNameForId(id, name);
3654  };
3655
3656  /* registers a componentId and registers it on its tag */
3657
3658
3659  StyleSheet.prototype.deferredInject = function deferredInject(id, cssRules) {
3660    /* don't inject when the id is already registered */
3661    if (this.tagMap[id] !== undefined) return;
3662
3663    var clones = this.clones;
3664
3665    for (var i = 0; i < clones.length; i += 1) {
3666      clones[i].deferredInject(id, cssRules);
3667    }
3668
3669    this.getTagForId(id).insertMarker(id);
3670    this.deferred[id] = cssRules;
3671  };
3672
3673  /* injects rules for a given id with a name that will need to be cached */
3674
3675
3676  StyleSheet.prototype.inject = function inject(id, cssRules, name) {
3677    var clones = this.clones;
3678
3679
3680    for (var i = 0; i < clones.length; i += 1) {
3681      clones[i].inject(id, cssRules, name);
3682    }
3683
3684    var tag = this.getTagForId(id);
3685
3686    /* add deferred rules for component */
3687    if (this.deferred[id] !== undefined) {
3688      // Combine passed cssRules with previously deferred CSS rules
3689      // NOTE: We cannot mutate the deferred array itself as all clones
3690      // do the same (see clones[i].inject)
3691      var rules = this.deferred[id].concat(cssRules);
3692      tag.insertRules(id, rules, name);
3693
3694      this.deferred[id] = undefined;
3695    } else {
3696      tag.insertRules(id, cssRules, name);
3697    }
3698  };
3699
3700  /* removes all rules for a given id, which doesn't remove its marker but resets it */
3701
3702
3703  StyleSheet.prototype.remove = function remove(id) {
3704    var tag = this.tagMap[id];
3705    if (tag === undefined) return;
3706
3707    var clones = this.clones;
3708
3709    for (var i = 0; i < clones.length; i += 1) {
3710      clones[i].remove(id);
3711    }
3712
3713    /* remove all rules from the tag */
3714    tag.removeRules(id);
3715
3716    /* ignore possible rehydrated names */
3717    this.ignoreRehydratedNames[id] = true;
3718
3719    /* delete possible deferred rules */
3720    this.deferred[id] = undefined;
3721  };
3722
3723  StyleSheet.prototype.toHTML = function toHTML() {
3724    return this.tags.map(function (tag) {
3725      return tag.toHTML();
3726    }).join('');
3727  };
3728
3729  StyleSheet.prototype.toReactElements = function toReactElements() {
3730    var id = this.id;
3731
3732
3733    return this.tags.map(function (tag, i) {
3734      var key = 'sc-' + id + '-' + i;
3735      return Object(react__WEBPACK_IMPORTED_MODULE_2__["cloneElement"])(tag.toElement(), { key: key });
3736    });
3737  };
3738
3739  createClass(StyleSheet, null, [{
3740    key: 'master',
3741    get: function get$$1() {
3742      return master || (master = new StyleSheet().rehydrate());
3743    }
3744
3745    /* NOTE: This is just for backwards-compatibility with jest-styled-components */
3746
3747  }, {
3748    key: 'instance',
3749    get: function get$$1() {
3750      return StyleSheet.master;
3751    }
3752  }]);
3753  return StyleSheet;
3754}();
3755
3756// 
3757
3758var Keyframes = function () {
3759  function Keyframes(name, rules) {
3760    var _this = this;
3761
3762    classCallCheck(this, Keyframes);
3763
3764    this.inject = function (styleSheet) {
3765      if (!styleSheet.hasNameForId(_this.id, _this.name)) {
3766        styleSheet.inject(_this.id, _this.rules, _this.name);
3767      }
3768    };
3769
3770    this.toString = function () {
3771      throw new StyledComponentsError(12, String(_this.name));
3772    };
3773
3774    this.name = name;
3775    this.rules = rules;
3776
3777    this.id = 'sc-keyframes-' + name;
3778  }
3779
3780  Keyframes.prototype.getName = function getName() {
3781    return this.name;
3782  };
3783
3784  return Keyframes;
3785}();
3786
3787// 
3788
3789/**
3790 * inlined version of
3791 * https://github.com/facebook/fbjs/blob/master/packages/fbjs/src/core/hyphenateStyleName.js
3792 */
3793
3794var uppercasePattern = /([A-Z])/g;
3795var msPattern = /^ms-/;
3796
3797/**
3798 * Hyphenates a camelcased CSS property name, for example:
3799 *
3800 *   > hyphenateStyleName('backgroundColor')
3801 *   < "background-color"
3802 *   > hyphenateStyleName('MozTransition')
3803 *   < "-moz-transition"
3804 *   > hyphenateStyleName('msTransition')
3805 *   < "-ms-transition"
3806 *
3807 * As Modernizr suggests (http://modernizr.com/docs/#prefixed), an `ms` prefix
3808 * is converted to `-ms-`.
3809 *
3810 * @param {string} string
3811 * @return {string}
3812 */
3813function hyphenateStyleName(string) {
3814  return string.replace(uppercasePattern, '-$1').toLowerCase().replace(msPattern, '-ms-');
3815}
3816
3817// 
3818
3819// Taken from https://github.com/facebook/react/blob/b87aabdfe1b7461e7331abb3601d9e6bb27544bc/packages/react-dom/src/shared/dangerousStyleValue.js
3820function addUnitIfNeeded(name, value) {
3821  // https://github.com/amilajack/eslint-plugin-flowtype-errors/issues/133
3822  // $FlowFixMe
3823  if (value == null || typeof value === 'boolean' || value === '') {
3824    return '';
3825  }
3826
3827  if (typeof value === 'number' && value !== 0 && !(name in _emotion_unitless__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"])) {
3828    return value + 'px'; // Presumes implicit 'px' suffix for unitless numbers
3829  }
3830
3831  return String(value).trim();
3832}
3833
3834// 
3835
3836/**
3837 * It's falsish not falsy because 0 is allowed.
3838 */
3839var isFalsish = function isFalsish(chunk) {
3840  return chunk === undefined || chunk === null || chunk === false || chunk === '';
3841};
3842
3843var objToCssArray = function objToCssArray(obj, prevKey) {
3844  var rules = [];
3845  var keys = Object.keys(obj);
3846
3847  keys.forEach(function (key) {
3848    if (!isFalsish(obj[key])) {
3849      if (isPlainObject(obj[key])) {
3850        rules.push.apply(rules, objToCssArray(obj[key], key));
3851
3852        return rules;
3853      } else if (isFunction(obj[key])) {
3854        rules.push(hyphenateStyleName(key) + ':', obj[key], ';');
3855
3856        return rules;
3857      }
3858      rules.push(hyphenateStyleName(key) + ': ' + addUnitIfNeeded(key, obj[key]) + ';');
3859    }
3860    return rules;
3861  });
3862
3863  return prevKey ? [prevKey + ' {'].concat(rules, ['}']) : rules;
3864};
3865
3866function flatten(chunk, executionContext, styleSheet) {
3867  if (Array.isArray(chunk)) {
3868    var ruleSet = [];
3869
3870    for (var i = 0, len = chunk.length, result; i < len; i += 1) {
3871      result = flatten(chunk[i], executionContext, styleSheet);
3872
3873      if (result === null) continue;else if (Array.isArray(result)) ruleSet.push.apply(ruleSet, result);else ruleSet.push(result);
3874    }
3875
3876    return ruleSet;
3877  }
3878
3879  if (isFalsish(chunk)) {
3880    return null;
3881  }
3882
3883  /* Handle other components */
3884  if (isStyledComponent(chunk)) {
3885    return '.' + chunk.styledComponentId;
3886  }
3887
3888  /* Either execute or defer the function */
3889  if (isFunction(chunk)) {
3890    if (isStatelessFunction(chunk) && executionContext) {
3891      var _result = chunk(executionContext);
3892
3893      if (false) {}
3894
3895      return flatten(_result, executionContext, styleSheet);
3896    } else return chunk;
3897  }
3898
3899  if (chunk instanceof Keyframes) {
3900    if (styleSheet) {
3901      chunk.inject(styleSheet);
3902      return chunk.getName();
3903    } else return chunk;
3904  }
3905
3906  /* Handle objects */
3907  return isPlainObject(chunk) ? objToCssArray(chunk) : chunk.toString();
3908}
3909
3910// 
3911
3912function css(styles) {
3913  for (var _len = arguments.length, interpolations = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
3914    interpolations[_key - 1] = arguments[_key];
3915  }
3916
3917  if (isFunction(styles) || isPlainObject(styles)) {
3918    // $FlowFixMe
3919    return flatten(interleave(EMPTY_ARRAY, [styles].concat(interpolations)));
3920  }
3921
3922  // $FlowFixMe
3923  return flatten(interleave(styles, interpolations));
3924}
3925
3926// 
3927
3928function constructWithOptions(componentConstructor, tag) {
3929  var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : EMPTY_OBJECT;
3930
3931  if (!Object(react_is__WEBPACK_IMPORTED_MODULE_4__["isValidElementType"])(tag)) {
3932    throw new StyledComponentsError(1, String(tag));
3933  }
3934
3935  /* This is callable directly as a template function */
3936  // $FlowFixMe: Not typed to avoid destructuring arguments
3937  var templateFunction = function templateFunction() {
3938    return componentConstructor(tag, options, css.apply(undefined, arguments));
3939  };
3940
3941  /* If config methods are called, wrap up a new template function and merge options */
3942  templateFunction.withConfig = function (config) {
3943    return constructWithOptions(componentConstructor, tag, _extends({}, options, config));
3944  };
3945
3946  /* Modify/inject new props at runtime */
3947  templateFunction.attrs = function (attrs) {
3948    return constructWithOptions(componentConstructor, tag, _extends({}, options, {
3949      attrs: Array.prototype.concat(options.attrs, attrs).filter(
3949Boolean)
3950    }));
3951  };
3952
3953  return templateFunction;
3954}
3955
3956// 
3957// Source: https://github.com/garycourt/murmurhash-js/blob/master/murmurhash2_gc.js
3958function murmurhash(c) {
3959  for (var e = c.length | 0, a = e | 0, d = 0, b; e >= 4;) {
3960    b = c.charCodeAt(d) & 255 | (c.charCodeAt(++d) & 255) << 8 | (c.charCodeAt(++d) & 255) << 16 | (c.charCodeAt(++d) & 255) << 24, b = 1540483477 * (b & 65535) + ((1540483477 * (b >>> 16) & 65535) << 16), b ^= b >>> 24, b = 1540483477 * (b & 65535) + ((1540483477 * (b >>> 16) & 65535) << 16), a = 1540483477 * (a & 65535) + ((1540483477 * (a >>> 16) & 65535) << 16) ^ b, e -= 4, ++d;
3961  }
3962  switch (e) {
3963    case 3:
3964      a ^= (c.charCodeAt(d + 2) & 255) << 16;
3965    case 2:
3966      a ^= (c.charCodeAt(d + 1) & 255) << 8;
3967    case 1:
3968      a ^= c.charCodeAt(d) & 255, a = 1540483477 * (a & 65535) + ((1540483477 * (a >>> 16) & 65535) << 16);
3969  }
3970  a ^= a >>> 13;
3971  a = 1540483477 * (a & 65535) + ((1540483477 * (a >>> 16) & 65535) << 16);
3972  return (a ^ a >>> 15) >>> 0;
3973}
3974
3975// 
3976/* eslint-disable no-bitwise */
3977
3978/* This is the "capacity" of our alphabet i.e. 2x26 for all letters plus their capitalised
3979 * counterparts */
3980var charsLength = 52;
3981
3982/* start at 75 for 'a' until 'z' (25) and then start at 65 for capitalised letters */
3983var getAlphabeticChar = function getAlphabeticChar(code) {
3984  return String.fromCharCode(code + (code > 25 ? 39 : 97));
3985};
3986
3987/* input a number, usually a hash and convert it to base-52 */
3988function generateAlphabeticName(code) {
3989  var name = '';
3990  var x = void 0;
3991
3992  /* get a char and divide by alphabet-length */
3993  for (x = code; x > charsLength; x = Math.floor(x / charsLength)) {
3994    name = getAlphabeticChar(x % charsLength) + name;
3995  }
3996
3997  return getAlphabeticChar(x % charsLength) + name;
3998}
3999
4000// 
4001
4002function hasFunctionObjectKey(obj) {
4003  // eslint-disable-next-line guard-for-in, no-restricted-syntax
4004  for (var key in obj) {
4005    if (isFunction(obj[key])) {
4006      return true;
4007    }
4008  }
4009
4010  return false;
4011}
4012
4013function isStaticRules(rules, attrs) {
4014  for (var i = 0; i < rules.length; i += 1) {
4015    var rule = rules[i];
4016
4017    // recursive case
4018    if (Array.isArray(rule) && !isStaticRules(rule, attrs)) {
4019      return false;
4020    } else if (isFunction(rule) && !isStyledComponent(rule)) {
4021      // functions are allowed to be static if they're just being
4022      // used to get the classname of a nested styled component
4023      return false;
4024    }
4025  }
4026
4027  if (attrs.some(function (x) {
4028    return isFunction(x) || hasFunctionObjectKey(x);
4029  })) return false;
4030
4031  return true;
4032}
4033
4034// 
4035
4036/* combines hashStr (murmurhash) and nameGenerator for convenience */
4037var hasher = function hasher(str) {
4038  return generateAlphabeticName(murmurhash(str));
4039};
4040
4041/*
4042 ComponentStyle is all the CSS-specific stuff, not
4043 the React-specific stuff.
4044 */
4045
4046var ComponentStyle = function () {
4047  function ComponentStyle(rules, attrs, componentId) {
4048    classCallCheck(this, ComponentStyle);
4049
4050    this.rules = rules;
4051    this.isStatic =  true && isStaticRules(rules, attrs);
4052    this.componentId = componentId;
4053
4054    if (!StyleSheet.master.hasId(componentId)) {
4055      StyleSheet.master.deferredInject(componentId, []);
4056    }
4057  }
4058
4059  /*
4060   * Flattens a rule set into valid CSS
4061   * Hashes it, wraps the whole chunk in a .hash1234 {}
4062   * Returns the hash to be injected on render()
4063   * */
4064
4065
4066  ComponentStyle.prototype.generateAndInjectStyles = function generateAndInjectStyles(executionContext, styleSheet) {
4067    var isStatic = this.isStatic,
4068        componentId = this.componentId,
4069        lastClassName = this.lastClassName;
4070
4071    if (IS_BROWSER && isStatic && typeof lastClassName === 'string' && styleSheet.hasNameForId(componentId, lastClassName)) {
4072      return lastClassName;
4073    }
4074
4075    var flatCSS = flatten(this.rules, executionContext, styleSheet);
4076    var name = hasher(this.componentId + flatCSS.join(''));
4077    if (!styleSheet.hasNameForId(componentId, name)) {
4078      styleSheet.inject(this.componentId, stringifyRules(flatCSS, '.' + name, undefined, componentId), name);
4079    }
4080
4081    this.lastClassName = name;
4082    return name;
4083  };
4084
4085  ComponentStyle.generateName = function generateName(str) {
4086    return hasher(str);
4087  };
4088
4089  return ComponentStyle;
4090}();
4091
4092// 
4093
4094var LIMIT = 200;
4095
4096var createWarnTooManyClasses = (function (displayName) {
4097  var generatedClasses = {};
4098  var warningSeen = false;
4099
4100  return function (className) {
4101    if (!warningSeen) {
4102      generatedClasses[className] = true;
4103      if (Object.keys(generatedClasses).length >= LIMIT) {
4104        // Unable to find latestRule in test environment.
4105        /* eslint-disable no-console, prefer-template */
4106        console.warn('Over ' + LIMIT + ' classes were generated for component ' + displayName + '. \n' + 'Consider using the attrs method, together with a style object for frequently changed styles.\n' + 'Example:\n' + '  const Component = styled.div.attrs(props => ({\n' + '    style: {\n' + '      background: props.background,\n' + '    },\n' + '  }))`width: 100%;`\n\n' + '  <Component />');
4107        warningSeen = true;
4108        generatedClasses = {};
4109      }
4110    }
4111  };
4112});
4113
4114// 
4115
4116var determineTheme = (function (props, fallbackTheme) {
4117  var defaultProps = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : EMPTY_OBJECT;
4118
4119  // Props should take precedence over ThemeProvider, which should take precedence over
4120  // defaultProps, but React automatically puts defaultProps on props.
4121
4122  /* eslint-disable react/prop-types, flowtype-errors/show-errors */
4123  var isDefaultTheme = defaultProps ? props.theme === defaultProps.theme : false;
4124  var theme = props.theme && !isDefaultTheme ? props.theme : fallbackTheme || defaultProps.theme;
4125  /* eslint-enable */
4126
4127  return theme;
4128});
4129
4130// 
4131var escapeRegex = /[[\].#*$><+~=|^:(),"'`-]+/g;
4132var dashesAtEnds = /(^-|-$)/g;
4133
4134/**
4135 * TODO: Explore using CSS.escape when it becomes more available
4136 * in evergreen browsers.
4137 */
4138function escape(str) {
4139  return str
4140  // Replace all possible CSS selectors
4141  .replace(escapeRegex, '-')
4142
4143  // Remove extraneous hyphens at the start and end
4144  .replace(dashesAtEnds, '');
4145}
4146
4147// 
4148
4149function isTag(target) {
4150  return typeof target === 'string' && ( false ? undefined : true);
4151}
4152
4153// 
4154
4155function generateDisplayName(target) {
4156  // $FlowFixMe
4157  return isTag(target) ? 'styled.' + target : 'Styled(' + getComponentName(target) + ')';
4158}
4159
4160var _TYPE_STATICS;
4161
4162var REACT_STATICS = {
4163  childContextTypes: true,
4164  contextTypes: true,
4165  defaultProps: true,
4166  displayName: true,
4167  getDerivedStateFromProps: true,
4168  propTypes: true,
4169  type: true
4170};
4171
4172var KNOWN_STATICS = {
4173  name: true,
4174  length: true,
4175  prototype: true,
4176  caller: true,
4177  callee: true,
4178  arguments: true,
4179  arity: true
4180};
4181
4182var TYPE_STATICS = (_TYPE_STATICS = {}, _TYPE_STATICS[react_is__WEBPACK_IMPORTED_MODULE_4__["ForwardRef"]] = {
4183  $$typeof: true,
4184  render: true
4185}, _TYPE_STATICS);
4186
4187var defineProperty$1 = Object.defineProperty,
4188    getOwnPropertyNames = Object.getOwnPropertyNames,
4189    _Object$getOwnPropert = Object.getOwnPropertySymbols,
4190    getOwnPropertySymbols = _Object$getOwnPropert === undefined ? function () {
4191  return [];
4192} : _Object$getOwnPropert,
4193    getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor,
4194    getPrototypeOf = Object.getPrototypeOf,
4195    objectPrototype = Object.prototype;
4196var arrayPrototype = Array.prototype;
4197
4198
4199function hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {
4200  if (typeof sourceComponent !== 'string') {
4201    // don't hoist over string (html) components
4202
4203    var inheritedComponent = getPrototypeOf(sourceComponent);
4204
4205    if (inheritedComponent && inheritedComponent !== objectPrototype) {
4206      hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);
4207    }
4208
4209    var keys = arrayPrototype.concat(getOwnPropertyNames(sourceComponent),
4210    // $FlowFixMe
4211    getOwnPropertySymbols(sourceComponent));
4212
4213    var targetStatics = TYPE_STATICS[targetComponent.$$typeof] || REACT_STATICS;
4214
4215    var sourceStatics = TYPE_STATICS[sourceComponent.$$typeof] || REACT_STATICS;
4216
4217    var i = keys.length;
4218    var descriptor = void 0;
4219    var key = void 0;
4220
4221    // eslint-disable-next-line no-plusplus
4222    while (i--) {
4223      key = keys[i];
4224
4225      if (
4226      // $FlowFixMe
4227      !KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) &&
4228      // $FlowFixMe
4229      !(targetStatics && targetStatics[key])) {
4230        descriptor = getOwnPropertyDescriptor(sourceComponent, key);
4231
4232        if (descriptor) {
4233          try {
4234            // Avoid failures from read-only properties
4235            defineProperty$1(targetComponent, key, descriptor);
4236          } catch (e) {
4237            /* fail silently */
4238          }
4239        }
4240      }
4241    }
4242
4243    return targetComponent;
4244  }
4245
4246  return targetComponent;
4247}
4248
4249// 
4250function isDerivedReactComponent(fn) {
4251  return !!(fn && fn.prototype && fn.prototype.isReactComponent);
4252}
4253
4254// 
4255// Helper to call a given function, only once
4256var once = (function (cb) {
4257  var called = false;
4258
4259  return function () {
4260    if (!called) {
4261      called = true;
4262      cb.apply(undefined, arguments);
4263    }
4264  };
4265});
4266
4267// 
4268
4269var ThemeContext = Object(react__WEBPACK_IMPORTED_MODULE_2__["createContext"])();
4270
4271var ThemeConsumer = ThemeContext.Consumer;
4272
4273/**
4274 * Provide a theme to an entire react component tree via context
4275 */
4276
4277var ThemeProvider = function (_Component) {
4278  inherits(ThemeProvider, _Component);
4279
4280  function ThemeProvider(props) {
4281    classCallCheck(this, ThemeProvider);
4282
4283    var _this = possibleConstructorReturn(this, _Component.call(this, props));
4284
4285    _this.getContext = Object(memoize_one__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"])(_this.getContext.bind(_this));
4286    _this.renderInner = _this.renderInner.bind(_this);
4287    return _this;
4288  }
4289
4290  ThemeProvider.prototype.render = function render() {
4291    if (!this.props.children) return null;
4292
4293    return react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(
4294      ThemeContext.Consumer,
4295      null,
4296      this.renderInner
4297    );
4298  };
4299
4300  ThemeProvider.prototype.renderInner = function renderInner(outerTheme) {
4301    var context = this.getContext(this.props.theme, outerTheme);
4302
4303    return react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(
4304      ThemeContext.Provider,
4305      { value: context },
4306      this.props.children
4307    );
4308  };
4309
4310  /**
4311   * Get the theme from the props, supporting both (outerTheme) => {}
4312   * as well as object notation
4313   */
4314
4315
4316  ThemeProvider.prototype.getTheme = function getTheme(theme, outerTheme) {
4317    if (isFunction(theme)) {
4318      var mergedTheme = theme(outerTheme);
4319
4320      if (false) {}
4321
4322      return mergedTheme;
4323    }
4324
4325    if (theme === null || Array.isArray(theme) || (typeof theme === 'undefined' ? 'undefined' : _typeof(theme)) !== 'object') {
4326      throw new StyledComponentsError(8);
4327    }
4328
4329    return _extends({}, outerTheme, theme);
4330  };
4331
4332  ThemeProvider.prototype.getContext = function getContext(theme, outerTheme) {
4333    return this.getTheme(theme, outerTheme);
4334  };
4335
4336  return ThemeProvider;
4337}(react__WEBPACK_IMPORTED_MODULE_2__["Component"]);
4338
4339// 
4340
4341var CLOSING_TAG_R = /^\s*<\/[a-z]/i;
4342
4343var ServerStyleSheet = function () {
4344  function ServerStyleSheet() {
4345    classCallCheck(this, ServerStyleSheet);
4346
4347    /* The master sheet might be reset, so keep a reference here */
4348    this.masterSheet = StyleSheet.master;
4349    this.instance = this.masterSheet.clone();
4350    this.sealed = false;
4351  }
4352
4353  /**
4354   * Mark the ServerStyleSheet as being fully emitted and manually GC it from the
4355   * StyleSheet singleton.
4356   */
4357
4358
4359  ServerStyleSheet.prototype.seal = function seal() {
4360    if (!this.sealed) {
4361      /* Remove sealed StyleSheets from the master sheet */
4362      var index = this.masterSheet.clones.indexOf(this.instance);
4363      this.masterSheet.clones.splice(index, 1);
4364      this.sealed = true;
4365    }
4366  };
4367
4368  ServerStyleSheet.prototype.collectStyles = function collectStyles(children) {
4369    if (this.sealed) {
4370      throw new StyledComponentsError(2);
4371    }
4372
4373    return react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(
4374      StyleSheetManager,
4375      { sheet: this.instance },
4376      children
4377    );
4378  };
4379
4380  ServerStyleSheet.prototype.getStyleTags = function getStyleTags() {
4381    this.seal();
4382    return this.instance.toHTML();
4383  };
4384
4385  ServerStyleSheet.prototype.getStyleElement = function getStyleElement() {
4386    this.seal();
4387    return this.instance.toReactElements();
4388  };
4389
4390  ServerStyleSheet.prototype.interleaveWithNodeStream = function interleaveWithNodeStream(readableStream) {
4391    var _this = this;
4392
4393    {
4394      throw new StyledComponentsError(3);
4395    }
4396
4397    /* the tag index keeps track of which tags have already been emitted */
4398    var instance = this.instance;
4399
4400    var instanceTagIndex = 0;
4401
4402    var streamAttr = SC_STREAM_ATTR + '="true"';
4403
4404    var transformer = new stream.Transform({
4405      transform: function appendStyleChunks(chunk, /* encoding */_, callback) {
4406        var tags = instance.tags;
4407
4408        var html = '';
4409
4410        /* retrieve html for each new style tag */
4411        for (; instanceTagIndex < tags.length; instanceTagIndex += 1) {
4412          var tag = tags[instanceTagIndex];
4413          html += tag.toHTML(streamAttr);
4414        }
4415
4416        /* force our StyleSheets to emit entirely new tags */
4417        instance.sealAllTags();
4418
4419        var renderedHtml = chunk.toString();
4420
4421        /* prepend style html to chunk, unless the start of the chunk is a closing tag in which case append right after that */
4422        if (CLOSING_TAG_R.test(renderedHtml)) {
4423          var endOfClosingTag = renderedHtml.indexOf('>');
4424
4425          this.push(renderedHtml.slice(0, endOfClosingTag + 1) + html + renderedHtml.slice(endOfClosingTag + 1));
4426        } else this.push(html + renderedHtml);
4427
4428        callback();
4429      }
4430    });
4431
4432    readableStream.on('end', function () {
4433      return _this.seal();
4434    });
4435
4436    readableStream.on('error', function (err) {
4437      _this.seal();
4438
4439      // forward the error to the transform stream
4440      transformer.emit('error', err);
4441    });
4442
4443    return readableStream.pipe(transformer);
4444  };
4445
4446  return ServerStyleSheet;
4447}();
4448
4449// 
4450
4451var StyleSheetContext = Object(react__WEBPACK_IMPORTED_MODULE_2__["createContext"])();
4452var StyleSheetConsumer = StyleSheetContext.Consumer;
4453
4454var StyleSheetManager = function (_Component) {
4455  inherits(StyleSheetManager, _Component);
4456
4457  function StyleSheetManager(props) {
4458    classCallCheck(this, StyleSheetManager);
4459
4460    var _this = possibleConstructorReturn(this, _Component.call(this, props));
4461
4462    _this.getContext = Object(memoize_one__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"])(_this.getContext);
4463    return _this;
4464  }
4465
4466  StyleSheetManager.prototype.getContext = function getContext(sheet, target) {
4467    if (sheet) {
4468      return sheet;
4469    } else if (target) {
4470      return new StyleSheet(target);
4471    } else {
4472      throw new StyledComponentsError(4);
4473    }
4474  };
4475
4476  StyleSheetManager.prototype.render = function render() {
4477    var _props = this.props,
4478        children = _props.children,
4479        sheet = _props.sheet,
4480        target = _props.target;
4481
4482
4483    return react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(
4484      StyleSheetContext.Provider,
4485      { value: this.getContext(sheet, target) },
4486       false ? undefined : children
4487    );
4488  };
4489
4490  return StyleSheetManager;
4491}(react__WEBPACK_IMPORTED_MODULE_2__["Component"]);
4492 false ? undefined : void 0;
4493
4494// 
4495
4496var identifiers = {};
4497
4498/* We depend on components having unique IDs */
4499function generateId(_ComponentStyle, _displayName, parentComponentId) {
4500  var displayName = typeof _displayName !== 'string' ? 'sc' : escape(_displayName);
4501
4502  /**
4503   * This ensures uniqueness if two components happen to share
4504   * the same displayName.
4505   */
4506  var nr = (identifiers[displayName] || 0) + 1;
4507  identifiers[displayName] = nr;
4508
4509  var componentId = displayName + '-' + _ComponentStyle.generateName(displayName + nr);
4510
4511  return parentComponentId ? parentComponentId + '-' + componentId : componentId;
4512}
4513
4514// $FlowFixMe
4515
4516var StyledComponent = function (_Component) {
4517  inherits(StyledComponent, _Component);
4518
4519  function StyledComponent() {
4520    classCallCheck(this, StyledComponent);
4521
4522    var _this = possibleConstructorReturn(this, _Component.call(this));
4523
4524    _this.attrs = {};
4525
4526    _this.renderOuter = _this.renderOuter.bind(_this);
4527    _this.renderInner = _this.renderInner.bind(_this);
4528
4529    if (false) {}
4530    return _this;
4531  }
4532
4533  StyledComponent.prototype.render = function render() {
4534    return react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(
4535      StyleSheetConsumer,
4536      null,
4537      this.renderOuter
4538    );
4539  };
4540
4541  StyledComponent.prototype.renderOuter = function renderOuter() {
4542    var styleSheet = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : StyleSheet.master;
4543
4544    this.styleSheet = styleSheet;
4545
4546    // No need to subscribe a static component to theme changes, it won't 
4546change anything
4547    if (this.props.forwardedComponent.componentStyle.isStatic) return this.renderInner();
4548
4549    return react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(
4550      ThemeConsumer,
4551      null,
4552      this.renderInner
4553    );
4554  };
4555
4556  StyledComponent.prototype.renderInner = function renderInner(theme) {
4557    var _props$forwardedCompo = this.props.forwardedComponent,
4558        componentStyle = _props$forwardedCompo.componentStyle,
4559        defaultProps = _props$forwardedCompo.defaultProps,
4560        displayName = _props$forwardedCompo.displayName,
4561        foldedComponentIds = _props$forwardedCompo.foldedComponentIds,
4562        styledComponentId = _props$forwardedCompo.styledComponentId,
4563        target = _props$forwardedCompo.target;
4564
4565
4566    var generatedClassName = void 0;
4567    if (componentStyle.isStatic) {
4568      generatedClassName = this.generateAndInjectStyles(EMPTY_OBJECT, this.props);
4569    } else {
4570      generatedClassName = this.generateAndInjectStyles(determineTheme(this.props, theme, defaultProps) || EMPTY_OBJECT, this.props);
4571    }
4572
4573    var elementToBeCreated = this.props.as || this.attrs.as || target;
4574    var isTargetTag = isTag(elementToBeCreated);
4575
4576    var propsForElement = {};
4577    var computedProps = _extends({}, this.props, this.attrs);
4578
4579    var key = void 0;
4580    // eslint-disable-next-line guard-for-in
4581    for (key in computedProps) {
4582      if (false) {}
4583
4584      if (key === 'forwardedComponent' || key === 'as') {
4585        continue;
4586      } else if (key === 'forwardedRef') propsForElement.ref = computedProps[key];else if (key === 'forwardedAs') propsForElement.as = computedProps[key];else if (!isTargetTag || Object(_emotion_is_prop_valid__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"])(key)) {
4587        // Don't pass through non HTML tags through to HTML elements
4588        propsForElement[key] = computedProps[key];
4589      }
4590    }
4591
4592    if (this.props.style && this.attrs.style) {
4593      propsForElement.style = _extends({}, this.attrs.style, this.props.style);
4594    }
4595
4596    propsForElement.className = Array.prototype.concat(foldedComponentIds, styledComponentId, generatedClassName !== styledComponentId ? generatedClassName : null, this.props.className, this.attrs.className).filter(Boolean).join(' ');
4597
4598    return Object(react__WEBPACK_IMPORTED_MODULE_2__["createElement"])(elementToBeCreated, propsForElement);
4599  };
4600
4601  StyledComponent.prototype.buildExecutionContext = function buildExecutionContext(theme, props, attrs) {
4602    var _this2 = this;
4603
4604    var context = _extends({}, props, { theme: theme });
4605
4606    if (!attrs.length) return context;
4607
4608    this.attrs = {};
4609
4610    attrs.forEach(function (attrDef) {
4611      var resolvedAttrDef = attrDef;
4612      var attrDefWasFn = false;
4613      var attr = void 0;
4614      var key = void 0;
4615
4616      if (isFunction(resolvedAttrDef)) {
4617        // $FlowFixMe
4618        resolvedAttrDef = resolvedAttrDef(context);
4619        attrDefWasFn = true;
4620      }
4621
4622      /* eslint-disable guard-for-in */
4623      // $FlowFixMe
4624      for (key in resolvedAttrDef) {
4625        attr = resolvedAttrDef[key];
4626
4627        if (!attrDefWasFn) {
4628          if (isFunction(attr) && !isDerivedReactComponent(attr) && !isStyledComponent(attr)) {
4629            if (false) {}
4630
4631            attr = attr(context);
4632
4633            if (false) {}
4634          }
4635        }
4636
4637        _this2.attrs[key] = attr;
4638        context[key] = attr;
4639      }
4640      /* eslint-enable */
4641    });
4642
4643    return context;
4644  };
4645
4646  StyledComponent.prototype.generateAndInjectStyles = function generateAndInjectStyles(theme, props) {
4647    var _props$forwardedCompo2 = props.forwardedComponent,
4648        attrs = _props$forwardedCompo2.attrs,
4649        componentStyle = _props$forwardedCompo2.componentStyle,
4650        warnTooManyClasses = _props$forwardedCompo2.warnTooManyClasses;
4651
4652    // statically styled-components don't need to build an execution context object,
4653    // and shouldn't be increasing the number of class names
4654
4655    if (componentStyle.isStatic && !attrs.length) {
4656      return componentStyle.generateAndInjectStyles(EMPTY_OBJECT, this.styleSheet);
4657    }
4658
4659    var className = componentStyle.generateAndInjectStyles(this.buildExecutionContext(theme, props, attrs), this.styleSheet);
4660
4661    if (false) {}
4662
4663    return className;
4664  };
4665
4666  return StyledComponent;
4667}(react__WEBPACK_IMPORTED_MODULE_2__["Component"]);
4668
4669function createStyledComponent(target, options, rules) {
4670  var isTargetStyledComp = isStyledComponent(target);
4671  var isClass = !isTag(target);
4672
4673  var _options$displayName = options.displayName,
4674      displayName = _options$displayName === undefined ? generateDisplayName(target) : _options$displayName,
4675      _options$componentId = options.componentId,
4676      componentId = _options$componentId === undefined ? generateId(ComponentStyle, options.displayName, options.parentComponentId) : _options$componentId,
4677      _options$ParentCompon = options.ParentComponent,
4678      ParentComponent = _options$ParentCompon === undefined ? StyledComponent : _options$ParentCompon,
4679      _options$attrs = options.attrs,
4680      attrs = _options$attrs === undefined ? EMPTY_ARRAY : _options$attrs;
4681
4682
4683  var styledComponentId = options.displayName && options.componentId ? escape(options.displayName) + '-' + options.componentId : options.componentId || componentId;
4684
4685  // fold the underlying StyledComponent attrs up (implicit extend)
4686  var finalAttrs =
4687  // $FlowFixMe
4688  isTargetStyledComp && target.attrs ? Array.prototype.concat(target.attrs, attrs).filter(
4688Boolean) : attrs;
4689
4690  var componentStyle = new ComponentStyle(isTargetStyledComp ? // fold the underlying StyledComponent rules up (implicit extend)
4691  // $FlowFixMe
4692  target.componentStyle.rules.concat(rules) : rules, finalAttrs, styledComponentId);
4693
4694  /**
4695   * forwardRef creates a new interim component, which we'll take advantage of
4696   * instead of extending ParentComponent to create _another_ interim class
4697   */
4698  var WrappedStyledComponent = void 0;
4699  var forwardRef = function forwardRef(props, ref) {
4700    return react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(ParentComponent, _extends({}, props, { forwardedComponent: WrappedStyledComponent, forwardedRef: ref }));
4701  };
4702  forwardRef.displayName = displayName;
4703  WrappedStyledComponent = react__WEBPACK_IMPORTED_MODULE_2___default.a.forwardRef(forwardRef);
4704  WrappedStyledComponent.displayName = displayName;
4705
4706  // $FlowFixMe
4707  WrappedStyledComponent.attrs = finalAttrs;
4708  // $FlowFixMe
4709  WrappedStyledComponent.componentStyle = componentStyle;
4710
4711  // $FlowFixMe
4712  WrappedStyledComponent.foldedComponentIds = isTargetStyledComp ? // $FlowFixMe
4713  Array.prototype.concat(target.foldedComponentIds, target.styledComponentId) : EMPTY_ARRAY;
4714
4715  // $FlowFixMe
4716  WrappedStyledComponent.styledComponentId = styledComponentId;
4717
4718  // fold the underlying StyledComponent target up since we folded the styles
4719  // $FlowFixMe
4720  WrappedStyledComponent.target = isTargetStyledComp ? target.target : target;
4721
4722  // $FlowFixMe
4723  WrappedStyledComponent.withComponent = function withComponent(tag) {
4724    var previousComponentId = options.componentId,
4725        optionsToCopy = objectWithoutProperties(options, ['componentId']);
4726
4727
4728    var newComponentId = previousComponentId && previousComponentId + '-' + (isTag(tag) ? tag : escape(getComponentName(tag)));
4729
4730    var newOptions = _extends({}, optionsToCopy, {
4731      attrs: finalAttrs,
4732      componentId: newComponentId,
4733      ParentComponent: ParentComponent
4734    });
4735
4736    return createStyledComponent(tag, newOptions, rules);
4737  };
4738
4739  // $FlowFixMe
4740  Object.defineProperty(WrappedStyledComponent, 'defaultProps', {
4741    get: function get$$1() {
4742      return this._foldedDefaultProps;
4743    },
4744    set: function set$$1(obj) {
4745      // $FlowFixMe
4746      this._foldedDefaultProps = isTargetStyledComp ? Object(merge_anything__WEBPACK_IMPORTED_MODULE_8__[/* default */ "a"])(target.defaultProps, obj) : obj;
4747    }
4748  });
4749
4750  if (false) {}
4751
4752  // $FlowFixMe
4753  WrappedStyledComponent.toString = function () {
4754    return '.' + WrappedStyledComponent.styledComponentId;
4755  };
4756
4757  if (isClass) {
4758    hoistNonReactStatics(WrappedStyledComponent, target, {
4759      // all SC-specific things should not be hoisted
4760      attrs: true,
4761      componentStyle: true,
4762      displayName: true,
4763      foldedComponentIds: true,
4764      styledComponentId: true,
4765      target: true,
4766      withComponent: true
4767    });
4768  }
4769
4770  return WrappedStyledComponent;
4771}
4772
4773// 
4774// Thanks to ReactDOMFactories for this handy list!
4775
4776var domElements = ['a', 'abbr', 'address', 'area', 'article', 'aside', 'audio', 'b', 'base', 'bdi', 'bdo', 'big', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'cite', 'code', 'col', 'colgroup', 'data', 'datalist', 'dd', 'del', 'details', 'dfn', 'dialog', 'div', 'dl', 'dt', 'em', 'embed', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'iframe', 'img', 'input', 'ins', 'kbd', 'keygen', 'label', 'legend', 'li', 'link', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meta', 'meter', 'nav', 'noscript', 'object', 'ol', 'optgroup', 'option', 'output', 'p', 'param', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'script', 'section', 'select', 'small', 'source', 'span', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'textarea', 'tfoot', 'th', 'thead', 'time', 'title', 'tr', 'track', 'u', 'ul', 'var', 'video', 'wbr',
4777
4778// SVG
4779'circle', 'clipPath', 'defs', 'ellipse', 'foreignObject', 'g', 'image', 'line', 'linearGradient', 'marker', 'mask', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'stop', 'svg', 'text', 'tspan'];
4780
4781// 
4782
4783var styled = function styled(tag) {
4784  return constructWithOptions(createStyledComponent, tag);
4785};
4786
4787// Shorthands for all valid HTML Elements
4788domElements.forEach(function (domElement) {
4789  styled[domElement] = styled(domElement);
4790});
4791
4792// 
4793
4794var GlobalStyle = function () {
4795  function GlobalStyle(rules, componentId) {
4796    classCallCheck(this, GlobalStyle);
4797
4798    this.rules = rules;
4799    this.componentId = componentId;
4800    this.isStatic = isStaticRules(rules, EMPTY_ARRAY);
4801
4802    if (!StyleSheet.master.hasId(componentId)) {
4803      StyleSheet.master.deferredInject(componentId, []);
4804    }
4805  }
4806
4807  GlobalStyle.prototype.createStyles = function createStyles(executionContext, styleSheet) {
4808    var flatCSS = flatten(this.rules, executionContext, styleSheet);
4809    var css = stringifyRules(flatCSS, '');
4810
4811    styleSheet.inject(this.componentId, css);
4812  };
4813
4814  GlobalStyle.prototype.removeStyles = function removeStyles(styleSheet) {
4815    var componentId = this.componentId;
4816
4817    if (styleSheet.hasId(componentId)) {
4818      styleSheet.remove(componentId);
4819    }
4820  };
4821
4822  // TODO: overwrite in-place instead of remove+create?
4823
4824
4825  GlobalStyle.prototype.renderStyles = function renderStyles(executionContext, styleSheet) {
4826    this.removeStyles(styleSheet);
4827    this.createStyles(executionContext, styleSheet);
4828  };
4829
4830  return GlobalStyle;
4831}();
4832
4833// 
4834
4835// place our cache into shared context so it'll persist between HMRs
4836if (IS_BROWSER) {
4837  window.scCGSHMRCache = {};
4838}
4839
4840function createGlobalStyle(strings) {
4841  for (var _len = arguments.length, interpolations = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
4842    interpolations[_key - 1] = arguments[_key];
4843  }
4844
4845  var rules = css.apply(undefined, [strings].concat(interpolations));
4846  var id = 'sc-global-' + murmurhash(JSON.stringify(rules));
4847  var style = new GlobalStyle(rules, id);
4848
4849  var GlobalStyleComponent = function (_React$Component) {
4850    inherits(GlobalStyleComponent, _React$Component);
4851
4852    function GlobalStyleComponent(props) {
4853      classCallCheck(this, GlobalStyleComponent);
4854
4855      var _this = possibleConstructorReturn(this, _React$Component.call(this, props));
4856
4857      var _this$constructor = _this.constructor,
4858          globalStyle = _this$constructor.globalStyle,
4859          styledComponentId = _this$constructor.styledComponentId;
4860
4861
4862      if (IS_BROWSER) {
4863        window.scCGSHMRCache[styledComponentId] = (window.scCGSHMRCache[styledComponentId] || 0) + 1;
4864      }
4865
4866      /**
4867       * This fixes HMR compatibility. Don't ask me why, but this combination of
4868       * caching the closure variables via statics and then persisting the statics in
4869       * state works across HMR where no other combination did. ¯\_(ツ)_/¯
4870       */
4871      _this.state = {
4872        globalStyle: globalStyle,
4873        styledComponentId: styledComponentId
4874      };
4875      return _this;
4876    }
4877
4878    GlobalStyleComponent.prototype.componentWillUnmount = function componentWillUnmount() {
4879      if (window.scCGSHMRCache[this.state.styledComponentId]) {
4880        window.scCGSHMRCache[this.state.styledComponentId] -= 1;
4881      }
4882      /**
4883       * Depending on the order "render" is called this can cause the styles to be lost
4884       * until the next render pass of the remaining instance, which may
4885       * not be immediate.
4886       */
4887      if (window.scCGSHMRCache[this.state.styledComponentId] === 0) {
4888        this.state.globalStyle.removeStyles(this.styleSheet);
4889      }
4890    };
4891
4892    GlobalStyleComponent.prototype.render = function render() {
4893      var _this2 = this;
4894
4895      if (false) {}
4896
4897      return react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(
4898        StyleSheetConsumer,
4899        null,
4900        function (styleSheet) {
4901          _this2.styleSheet = styleSheet || StyleSheet.master;
4902
4903          var globalStyle = _this2.state.globalStyle;
4904
4905
4906          if (globalStyle.isStatic) {
4907            globalStyle.renderStyles(STATIC_EXECUTION_CONTEXT, _this2.styleSheet);
4908
4909            return null;
4910          } else {
4911            return react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(
4912              ThemeConsumer,
4913              null,
4914              function (theme) {
4915                // $FlowFixMe
4916                var defaultProps = _this2.constructor.defaultProps;
4917
4918
4919                var context = _extends({}, _this2.props);
4920
4921                if (typeof theme !== 'undefined') {
4922                  context.theme = determineTheme(_this2.props, theme, defaultProps);
4923                }
4924
4925                globalStyle.renderStyles(context, _this2.styleSheet);
4926
4927                return null;
4928              }
4929            );
4930          }
4931        }
4932      );
4933    };
4934
4935    return GlobalStyleComponent;
4936  }(react__WEBPACK_IMPORTED_MODULE_2___default.a.Component);
4937
4938  GlobalStyleComponent.globalStyle = style;
4939  GlobalStyleComponent.styledComponentId = id;
4940
4941
4942  return GlobalStyleComponent;
4943}
4944
4945// 
4946
4947var replaceWhitespace = function replaceWhitespace(str) {
4948  return str.replace(/\s|\\n/g, '');
4949};
4950
4951function keyframes(strings) {
4952  /* Warning if you've used keyframes on React Native */
4953  if (false) {}
4954
4955  for (var _len = arguments.length, interpolations = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
4956    interpolations[_key - 1] = arguments[_key];
4957  }
4958
4959  var rules = css.apply(undefined, [strings].concat(interpolations));
4960
4961  var name = generateAlphabeticName(murmurhash(replaceWhitespace(JSON.stringify(rules))));
4962
4963  return new Keyframes(name, stringifyRules(rules, name, '@keyframes'));
4964}
4965
4966// 
4967
4968var withTheme = (function (Component$$1) {
4969  var WithTheme = react__WEBPACK_IMPORTED_MODULE_2___default.a.forwardRef(function (props, ref) {
4970    return react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(
4971      ThemeConsumer,
4972      null,
4973      function (theme) {
4974        // $FlowFixMe
4975        var defaultProps = Component$$1.defaultProps;
4976
4977        var themeProp = determineTheme(props, theme, defaultProps);
4978
4979        if (false) {}
4980
4981        return react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(Component$$1, _extends({}, props, { theme: themeProp, ref: ref }));
4982      }
4983    );
4984  });
4985
4986  hoistNonReactStatics(WithTheme, Component$$1);
4987
4988  WithTheme.displayName = 'WithTheme(' + getComponentName(Component$$1) + ')';
4989
4990  return WithTheme;
4991});
4992
4993// 
4994
4995/* eslint-disable */
4996var __DO_NOT_USE_OR_YOU_WILL_BE_HAUNTED_BY_SPOOKY_GHOSTS = {
4997  StyleSheet: StyleSheet
4998};
4999
5000// 
5001
5002/* Warning if you've imported this file on React Native */
5003if (false) {}
5004
5005/* Warning if there are several instances of styled-components */
5006if (false) {}
5007
5008//
5009
5010/* harmony default export */ __webpack_exports__["default"] = (styled);
5011
5012//# sourceMappingURL=styled-components.browser.esm.js.map
5013
5014/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(58)))
5015
5016/***/ }),
5017/* 14 */
5018/***/ (function(module, exports, __webpack_require__) {
5019
5020"use strict";
5021
5022var __assign = (this && this.__assign) || function () {
5023    __assign = Object.assign || function(t) {
5024        for (var s, i = 1, n = arguments.length; i < n; i++) {
5025            s = arguments[i];
5026            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
5027                t[p] = s[p];
5028        }
5029        return t;
5030    };
5031    return __assign.apply(this, arguments);
5032};
5033var __spreadArrays = (this && this.__spreadArrays) || function () {
5034    for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
5035    for (var r = Array(s), k = 0, i = 0; i < il; i++)
5036        for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
5037            r[k] = a[j];
5038    return r;
5039};
5040var _a;
5041Object.defineProperty(exports, "__esModule", { value: true });
5042exports.updateNoteInPattern = exports.updatePatternAtIdx = exports.rotateBpm = exports.getInitialState = exports.setLocalStorage = exports.getEmptyPattern = void 0;
5043var _constants_1 = __webpack_require__(1);
5044exports.getEmptyPattern = function () { return ({ spots: new Array(16).fill(null), drums: new Array(16).fill(null), effects: new Array(16).fill(null) }); };
5045var genericInitialState = (_a = {},
5046    _a[_constants_1.PLAY] = false,
5047    _a[_constants_1.WRITE] = false,
5048    _a[_constants_1.PATTERN_VIEW] = false,
5049    _a[_constants_1.SOUNDS_VIEW] = false,
5050    _a[_constants_1.BPM] = 120,
5051    _a[_constants_1.VOLUME] = 1,
5052    _a[_constants_1.SOUND] = 0,
5053    _a[_constants_1.PATTERNS] = new Array(16).fill(exports.getEmptyPattern()),
5054    _a[_constants_1.PATTERN_IDX] = 0,
5055    _a.lastNote = 'C3',
5056    _a[_constants_1.PATTERN_CHAIN] = [0, 1],
5057    _a[_constants_1.PATTERN_TYPE] = 0,
5058    _a[_constants_1.MUTE] = true,
5059    _a);
5060var formatPathname = function (pathname) {
5061    if (pathname === void 0) { pathname = ''; }
5062    var parts = pathname.split('/').filter(function (v) { return v; });
5063    if (parts.find(function (v) { return v.toLowerCase() === 'tutorial'; })) {
5064        return;
5065    }
5066    return parts.slice(0, 2).join('/');
5067};
5068var getLocalStorage = function (pathname, customState) {
5069    if (customState === void 0) { customState = {}; }
5070    var formattedData = {};
5071    if (!pathname) {
5072        return formattedData;
5073    }
5074    var savedJson = window.localStorage.getItem(formatPathname(pathname));
5075    if (!savedJson) {
5076        return {};
5077    }
5078    var savedState = JSON.parse(savedJson);
5079    formattedData[_constants_1.PATTERNS] = genericInitialState[_constants_1.PATTERNS].map(function (v, idx) { return savedState[_constants_1.PATTERNS] && savedState[_constants_1.PATTERNS][idx]
5080        ? savedState[_constants_1.PATTERNS][idx]
5081        : (customState[_constants_1.PATTERNS] || v); });
5082    [_constants_1.PATTERN_CHAIN, _constants_1.VOLUME, _constants_1.SOUND, _constants_1.PATTERN_TYPE, _constants_1.BPM].forEach(function (v) {
5083        formattedData[v] = savedState[v] || customState[v] || genericInitialState[v];
5084    });
5085    return formattedData;
5086};
5087exports.setLocalStorage = function (state, locationPathname) {
5088    var _a;
5089    var pathname = locationPathname || window.location.pathname;
5090    var formattedPathname = formatPathname(pathname);
5091    if (!formattedPathname) {
5092        return;
5093    }
5094    var formattedData = (_a = {},
5095        _a[_constants_1.VOLUME] = state[_constants_1.VOLUME],
5096        _a[_constants_1.BPM] = state[_constants_1.BPM],
5097        _a[_constants_1.SOUND] = state[_constants_1.SOUND],
5098        _a[_constants_1.PATTERN_TYPE] = state[_constants_1.PATTERN_TYPE],
5099        _a[_constants_1.PATTERN_CHAIN] = state[_constants_1.PATTERN_CHAIN],
5100        _a[_constants_1.PATTERNS] = state[_constants_1.PATTERNS].reduce(function (acc, val, idx) {
5101            if (val && Object.entries(val).some(function (_a) {
5102                var key = _a[0], values = _a[1];
5103                return Array.isArray(values) && values.some(function (v) { return !!v; });
5104            })) {
5105                acc[idx] = val;
5106            }
5107            return acc;
5108        }, {}),
5109        _a);
5110    window.localStorage.setItem(formatPathname(pathname), JSON.stringify(formattedData));
5111};
5112exports.getInitialState = function (_a) {
5113    var mutable = _a.mutable, customState = _a.customState, _b = _a.pathname, pathname = _b === void 0 ? '' : _b;
5114    var localStorage = getLocalStorage(pathname, customState);
5115    console.log(localStorage);
5116    return __assign(__assign(__assign(__assign({}, genericInitialState), { mutable: mutable }), (customState || {})), localStorage);
5117};
5118// if working from a base you have limited control of BPM
5119var getSyncBpmOptions = function (base) { return [base / 4, base / 2, base, base * 2, base * 4].filter(function (v) { return v > 30 && v < 320; }); };
5120// iterating through basic bpm options, if there's a base it sticks to times that pair well with it
5121exports.rotateBpm = function (value, base) {
5122    var options = base ? getSyncBpmOptions(base) : [80, 100, 120, 140, 320];
5123    return (options.find(function (v) { return v > value; }) || 80);
5124};
5125exports.updatePatternAtIdx = function (state, newPattern, idx) {
5126    return __spreadArrays(state[_constants_1.PATTERNS].slice(0, idx), [
5127        newPattern
5128    ], state[_constants_1.PATTERNS].slice(idx + 1));
5129};
5130exports.updateNoteInPattern = function (state, note, idx) {
5131    var _a;
5132    var pattern = state[_constants_1.PATTERNS][state[_constants_1.PATTERN_IDX]];
5133    var patternPart = pattern[state[_constants_1.PATTERN_TYPE]];
5134    return __spreadArrays(state[_constants_1.PATTERNS].slice(0, state[_constants_1.PATTERN_IDX]), [
5135        __assign(__assign({}, pattern), (_a = {}, _a[state[_constants_1.PATTERN_TYPE]] = __spreadArrays(patternPart.slice(0, idx), [
5136            note
5137        ], patternPart.slice(idx + 1)), _a))
5138    ], state[_constants_1.PATTERNS].slice(state[_constants_1.PATTERN_IDX] + 1));
5139};
5140
5141
5142/***/ }),
5143/* 15 */
5144/***/ (function(module, exports, __webpack_require__) {
5145
5146"use strict";
5147
5148var __spreadArrays = (this && this.__spreadArrays) || function () {
5149    for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
5150    for (var r = Array(s), k = 0, i = 0; i < il; i++)
5151        for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
5152            r[k] = a[j];
5153    return r;
5154};
5155Object.defineProperty(exports, "__esModule", { value: true });
5156exports.generateInstrument = exports.generateKeys = void 0;
5157var tone_1 = __webpack_require__(16);
5158var _constants_1 = __webpack_require__(1);
5159exports.generateKeys = function (start) {
5160    if (start === void 0) { start = 3; }
5161    var sounds = [];
5162    for (var i = 0; i < 16; i++) {
5163        sounds.push({ id: "" + _constants_1.NOTES[i % 7] + (start + Math.floor(i / 7)) });
5164    }
5165    return sounds;
5166};
5167exports.generateInstrument = function (_a) {
5168    var title = _a.title, _b = _a.instrument, instrument = _b === void 0 ? tone_1.default.Synth : _b, _c = _a.toneParams, toneParams = _c === void 0 ? [] : _c, customKeys = _a.customKeys, idx = _a.idx;
5169    var tone = new (instrument.bind.apply(instrument, __spreadArrays([void 0], toneParams)))();
5170    return {
5171        name: title || tone.toString().split('Synth')[0] || 'Synth',
5172        tone: tone,
5173        keys: customKeys,
5174        idx: idx,
5175    };
5176};
5177
5178
5179/***/ }),
5180/* 16 */
5181/***/ (function(module, exports, __webpack_require__) {
5182
5183!function(t,e){ true?module.exports=e():undefined}("undefined"!=typeof self?self:this,function(){return function(t){var e={};function i(s){if(e[s])return e[s].exports;var n=e[s]={i:s,l:!1,exports:{}};return t[s].call(n.exports,n,n.exports,i),n.l=!0,n.exports}return i.m=t,i.c=e,i.d=function(t,e,s){i.o(t,e)||Object.defineProperty(t,e,{configurable:!1,enumerable:!0,get:s})},i.r=function(t){Object.defineProperty(t,"__esModule",{value:!0})},i.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return i.d(e,"a",e),e},i.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},i.p="",i(i.s=148)}([function(t,e,i){"use strict";i.r(e),function(t){var s=i(93),n=function(){if(!(this instanceof n))throw new Error("constructor needs to be called with the 'new' keyword")};
5184/**
5185 *  Tone.js
5186 *  @author Yotam Mann
5187 *  @license http://opensource.org/licenses/MIT MIT License
5188 *  @copyright 2014-2019 Yotam Mann
5189 */n.prototype.toString=function(){for(var t in n){var e=t[0].match(/^[A-Z]$/),i=n[t]===this.constructor;if(n.isFunction(n[t])&&e&&i)return t}return"Tone"},n.prototype.dispose=function(){return this},n.prototype.set=function(t,e){if(n.isString(t)){var i={};i[t]=e,t=i}t:for(var s in t){e=t[s];var o=this;if(-1!==s.indexOf(".")){for(var a=s.split("."),r=0;r<a.length-1;r++)if((o=o[a[r]])instanceof n){a.splice(0,r+1);var l=a.join(".");o.set(l,e);continue t}s=a[a.length-1]}var u=o[s];n.isUndef(u)||(n.Signal&&u instanceof n.Signal||n.Param&&u instanceof n.Param?u.value!==e&&(u.value=e):u instanceof AudioParam?u.value!==e&&(u.value=e):n.TimeBase&&u instanceof n.TimeBase?o[s]=e:u instanceof n?u.set(e):u!==e&&(o[s]=e))}return this},n.prototype.get=function(t){n.isUndef(t)?t=this._collectDefaults(this.constructor):n.isString(t)&&(t=[t]);for(var e={},i=0;i<t.length;i++){var s=t[i],o=this,a=e;if(-1!==s.indexOf(".")){for(var r=s.split("."),l=0;l<r.length-1;l++){var u=r[l];a[u]=a[u]||{},a=a[u],o=o[u]}s=r[r.length-1]}var d=o[s];n.isObject(t[s])?a[s]=d.get():n.Signal&&d instanceof n.Signal?a[s]=d.value:n.Param&&d instanceof n.Param?a[s]=d.value:d instanceof AudioParam?a[s]=d.value:d instanceof n?a[s]=d.get():!n.isFunction(d)&&n.isDefined(d)&&(a[s]=d)}return e},n.prototype._collectDefaults=function(t){var e=[];
5189if(n.isDefined(t.defaults)&&(e=Object.keys(t.defaults)),n.isDefined(t._super))for(var i=this._collectDefaults(t._super),s=0;s<i.length;s++)-1===e.indexOf(i[s])&&e.push(i[s]);return e},n.defaults=function(t,e,i){var s={};if(1===t.length&&n.isObject(t[0]))s=t[0];else for(var o=0;o<e.length;o++)s[e[o]]=t[o];return n.isDefined(i.defaults)?n.defaultArg(s,i.defaults):n.isObject(i)?n.defaultArg(s,i):s},n.defaultArg=function(t,e){if(n.isObject(t)&&n.isObject(e)){var i={};for(var s in t)i[s]=n.defaultArg(e[s],t[s]);for(var o in e)i[o]=n.defaultArg(t[o],e[o]);return i}return n.isUndef(t)?e:t},n.prototype.log=function(){if(this.debug||this.toString()===n.global.TONE_DEBUG_CLASS){var t=Array.from(arguments);t.unshift(this.toString()+":"),console.log.apply(void 0,t)}},n.prototype.assert=function(t,e){if(!t)throw new Error(e)},n.connectSeries=function(){for(var t=arguments[0],e=1;e<arguments.length;e++){var i=arguments[e];n.connect(t,i),t=i}return n},n.connect=function(t,e,i,s){for(;n.isDefined(e.input);)n.isArray(e.input)?(s=n.defaultArg(s,0),e=e.input[s],s=0):e.input&&(e=e.input);return e instanceof AudioParam?t.connect(e,i):e instanceof AudioNode&&t.connect(e,i,s),n},n.disconnect=function(t,e,i,s){if(e){for(var o=!1;!o;)n.isArray(e.input)?(n.isDefined(s)?n.disconnect(t,e.input[s],i):e.input.forEach(function(e){try{n.disconnect(t,e,i)}catch(t){}}),o=!0):e.input?e=e.input:o=!0;e instanceof AudioParam?t.disconnect(e,i):e instanceof AudioNode&&t.disconnect(e,i,s)}else t.disconnect();return n},n.isUndef=function(t){return void 0===t},n.isDefined=function(t){return!n.isUndef(t)},n.isFunction=function(t){return"function"==typeof t},n.isNumber=function(t){return"number"==typeof t},n.isObject=function(t){return"[object Object]"===Object.prototype.toString.call(t)&&t.constructor===Object},n.isBoolean=function(t){return"boolean"==typeof t},n.isArray=function(t){return Array.isArray(t)},n.isString=function(t){return"string"==typeof t},n.isNote=function(t){return n.isString(t)&&/^([a-g]{1}(?:b|#|x|bb)?)(-?[0-9]+)/i.test(t)},n.noOp=function(){},n.prototype._readOnly=function(t){if(Array.isArray(t))for(var e=0;e<t.length;e++)this._readOnly(t[e]);else Object.defineProperty(this,t,{writable:!1,enumerable:!0})},n.prototype._writable=function(t){if(Array.isArray(t))for(var e=0;e<t.length;e++)this._writable(t[e]);else Object.defineProperty(this,t,{writable:!0})},n.State={Started:"started",Stopped:"stopped",Paused:"paused"},n.global=n.isUndef(t)?window:t,n.equalPowerScale=function(t){var e=.5*Math.PI;return Math.sin(t*e)},n.dbToGain=function(t){return Math.pow(10,t/20)},n.gainToDb=function(t){return Math.log(t)/Math.LN10*20},n.intervalToFrequencyRatio=function(t){return Math.pow(2,t/12)},n.prototype.now=function(){return n.context.now()},n.now=function(){return n.context.now()},n.prototype.immediate=function(){return n.context.currentTime},n.immediate=function(){return n.context.currentTime},n.extend=function(t,e){function i(){}n.isUndef(e)&&(e=n),i.prototype=e.prototype,t.prototype=new i,t.prototype.constructor=t,t._super=e},n._audioContext=null,n.start=function(){return n.context.resume()},Object.defineProperty(n,"context",{get:function(){return n._audioContext},set:function(t){t.isContext?n._audioContext=t:n._audioContext=new n.Context(t),n.Context.emit("init",n._audioContext)}}),Object.defineProperty(n.prototype,"context",{get:function(){return n.context}}),n.setContext=function(t){n.context=t},Object.defineProperty(n.prototype,"blockTime",{get:function(){return 128/this.context.sampleRate}}),Object.defineProperty(n.prototype,"sampleTime",{get:function(){return 1/this.context.sampleRate}}),Object.defineProperty(n,"supported",{get:function(){var t=n.global.hasOwnProperty("AudioContext")||n.global.hasOwnProperty("webkitAudioContext"),e=n.global.hasOwnProperty("Promise");return t&&e}}),Object.defineProperty(n,"initialized",{get:function(){return Boolean(n.context)}}),n.getContext=function(t){if(n.initialized)t(n.context);else{var e=function(){t(n.context),n.Context.off("init",e)};n.Context.on("init",e)}return n},n.version=s.a,e.default=n}.call(this,i(147))}
5189,function(t,e,i){"use strict";i.r(e);var s=i(0);i(20);if(s.default.supported){var n=new OfflineAudioContext(2,1,44100),o=n.createGain(),a=n.createGain();if(o.connect(a)!==a){var r=AudioNode.prototype.connect;AudioNode.prototype.connect=function(){return r.apply(this,arguments),arguments[0]}}}s.default.AudioNode=function(){s.default.call(this);var t=s.default.defaults(arguments,["context"],{context:s.default.context});this._context=t.context},s.default.extend(s.default.AudioNode),Object.defineProperty(s.default.AudioNode.prototype,"context",{get:function(){return this._context}}),s.default.AudioNode.prototype.createInsOuts=function(t,e){1===t?this.input=this.context.createGain():t>1&&(this.input=new Array(t)),1===e?this.output=this.context.createGain():e>1&&(this.output=new Array(e))},Object.defineProperty(s.default.AudioNode.prototype,"channelCount",{get:function(){return this.output.channelCount},set:function(t){return this.output.channelCount=t}}),Object.defineProperty(s.default.AudioNode.prototype,"channelCountMode",{get:function(){return this.output.channelCountMode},set:function(t){return this.output.channelCountMode=t}}),Object.defineProperty(s.default.AudioNode.prototype,"channelInterpretation",{get:function(){return this.output.channelInterpretation},set:function(t){return this.output.channelInterpretation=t}}),Object.defineProperty(s.default.AudioNode.prototype,"numberOfInputs",{get:function(){return this.input?s.default.isArray(this.input)?this.input.length:1:0}}),Object.defineProperty(s.default.AudioNode.prototype,"numberOfOutputs",{get:function(){return this.output?s.default.isArray(this.output)?this.output.length:1:0}}),s.default.AudioNode.prototype.connect=function(t,e,i){return s.default.isArray(this.output)?(e=s.default.defaultArg(e,0),this.output[e].connect(t,0,i)):s.default.connect(this.output,t,e,i),this},s.default.AudioNode.prototype.disconnect=function(t,e,i){return s.default.isArray(this.output)?(e=s.default.defaultArg(e,0),this.output[e].disconnect(t,0,i)):s.default.disconnect(this.output,t,e,i),this},s.default.AudioNode.prototype.chain=function(){var t=Array.from(arguments);return t.unshift(this),s.default.connectSeries.apply(void 0,t),this},s.default.AudioNode.prototype.fan=function(){for(var t=0;t<arguments.length;t++)this.connect(arguments[t]);return this},s.default.AudioNode.prototype.dispose=function(){return s.default.isDefined(this.input)&&(this.input instanceof AudioNode&&this.input.disconnect(),this.input=null),s.default.isDefined(this.output)&&(this.output instanceof AudioNode&&this.output.disconnect(),this.output=null),this._context=null,this};e.default=s.default.AudioNode},function(t,e,i){"use strict";i.r(e);var s=i(0);i(4),i(14),i(30),i(44),i(20),i(3);if(s.default.supported&&!s.default.global.AudioContext.prototype.createConstantSource){var n=function(t){this.context=t;for(var e=t.createBuffer(1,128,t.sampleRate),i=e.getChannelData(0),s=0;s<i.length;s++)i[s]=1;this._bufferSource=t.createBufferSource(),this._bufferSource.channelCount=1,this._bufferSource.channelCountMode="explicit",this._bufferSource.buffer=e,this._bufferSource.loop=!0;var n=this._output=t.createGain();this.offset=n.gain,this._bufferSource.connect(n)};n.prototype.start=function(t){return this._bufferSource.start(t),this},n.prototype.stop=function(t){return this._bufferSource.stop(t),this},n.prototype.connect=function(){return this._output.connect.apply(this._output,arguments),this},n.prototype.disconnect=function(){return this._output.disconnect.apply(this._output,arguments),this},AudioContext.prototype.createConstantSource=function(){return new n(this)},s.default.Context.prototype.createConstantSource=function(){return new n(this)}}s.default.Signal=function(){var t=s.default.defaults(arguments,["value","units"],s.default.Signal);s.default.Param.call(this,t),this._constantSource=this.context.createConstantSource(),this._constantSource.start(0),this._param=this._constantSource.offset,this.value=t.value,this.output=this._constantSource,this.input=this._param=this.output.offset},s.default.extend(s.default.Signal,s.default.Param),s.default.Signal.defaults={value:0,units:s.default.Type.Default,convert:!0},s.default.Signal.prototype.connect=s.default.SignalBase.prototype.connect,s.default.Signal.prototype.disconnect=s.default.SignalBase.prototype.disconnect,s.default.Signal.prototype.getValueAtTime=function(t){return this._param.getValueAtTime?this._param.getValueAtTime(t):s.default.Param.prototype.getValueAtTime.call(this,t)},s.default.Signal.prototype.dispose=function(){return s.default.Param.prototype.dispose.call(this),this._constantSource.stop(),this._constantSource.disconnect(),this._constantSource=null,this};e.default=s.default.Signal}
5189,function(t,e,i){"use strict";i.r(e);var s=i(0);i(14),i(4),i(1);s.default.Gain=function(){var t=s.default.defaults(arguments,["gain","units"],s.default.Gain);s.default.AudioNode.call(this,t),this.input=this.output=this._gainNode=this.context.createGain(),this.gain=new s.default.Param({param:this._gainNode.gain,units:t.units,value:t.gain,convert:t.convert}),this._readOnly("gain")},s.default.extend(s.default.Gain,s.default.AudioNode),s.default.Gain.defaults={gain:1,convert:!0},s.default.Gain.prototype.dispose=function(){s.default.AudioNode.prototype.dispose.call(this),this._gainNode.disconnect(),this._gainNode=null,this._writable("gain"),this.gain.dispose(),this.gain=null},e.default=s.default.Gain},function(t,e,i){"use strict";i.r(e);var s=i(0);i(63),i(46),i(45),i(20);s.default.Type={Default:"number",Time:"time",Frequency:"frequency",TransportTime:"transportTime",Ticks:"ticks",NormalRange:"normalRange",AudioRange:"audioRange",Decibels:"db",Interval:"interval",BPM:"bpm",Positive:"positive",Gain:"gain",Cents:"cents",Degrees:"degrees",MIDI:"midi",BarsBeatsSixteenths:"barsBeatsSixteenths",Samples:"samples",Hertz:"hertz",Note:"note",Milliseconds:"milliseconds",Seconds:"seconds",Notation:"notation"},s.default.prototype.toSeconds=function(t){return s.default.isNumber(t)?t:s.default.isUndef(t)?this.now():s.default.isString(t)||s.default.isObject(t)?new s.default.Time(t).toSeconds():t instanceof s.default.TimeBase?t.toSeconds():void 0},s.default.prototype.toFrequency=function(t){return s.default.isNumber(t)?t:s.default.isString(t)||s.default.isUndef(t)||s.default.isObject(t)?new s.default.Frequency(t).valueOf():t instanceof s.default.TimeBase?t.toFrequency():void 0},s.default.prototype.toTicks=function(t){return s.default.isNumber(t)||s.default.isString(t)||s.default.isObject(t)?new s.default.TransportTime(t).toTicks():s.default.isUndef(t)?s.default.Transport.ticks:t instanceof s.default.TimeBase?t.toTicks():void 0},e.default=s.default},function(t,e,i){"use strict";i.r(e);var s=i(0);i(14),i(3),i(30);s.default.Multiply=function(t){s.default.Signal.call(this),this.createInsOuts(2,0),this._mult=this.input[0]=this.output=new s.default.Gain,this._param=this.input[1]=this.output.gain,this.value=s.default.defaultArg(t,0)},s.default.extend(s.default.Multiply,s.default.Signal),s.default.Multiply.prototype.dispose=function(){return s.default.Signal.prototype.dispose.call(this),this._mult.dispose(),this._mult=null,this._param=null,this},e.default=s.default.Multiply},function(t,e,i){"use strict";i.r(e);var s=i(0);i(16),i(27),i(40),i(4),i(34),i(2),i(1);s.default.Source=function(t){t=s.default.defaultArg(t,s.default.Source.defaults),s.default.AudioNode.call(this),this._volume=this.output=new s.default.Volume(t.volume),this.volume=this._volume.volume,this._readOnly("volume"),this._state=new s.default.TimelineState(s.default.State.Stopped),this._state.memory=100,this._synced=!1,this._scheduled=[],this._volume.output.output.channelCount=2,this._volume.output.output.channelCountMode="explicit",this.mute=t.mute},s.default.extend(s.default.Source,s.default.AudioNode),s.default.Source.defaults={volume:0,mute:!1},Object.defineProperty(s.default.Source.prototype,"state",{get:function(){return this._synced?s.default.Transport.state===s.default.State.Started?this._state.getValueAtTime(s.default.Transport.seconds):s.default.State.Stopped:this._state.getValueAtTime(this.now())}}),Object.defineProperty(s.default.Source.prototype,"mute",{get:function(){return this._volume.mute},set:function(t){this._volume.mute=t}}),s.default.Source.prototype._start=s.default.noOp,s.default.Source.prototype.restart=s.default.noOp,s.default.Source.prototype._stop=s.default.noOp,s.default.Source.prototype.start=function(t,e,i){if(s.default.isUndef(t)&&this._synced?t=s.default.Transport.seconds:(t=this.toSeconds(t),t=Math.max(t,this.context.currentTime)),this._state.getValueAtTime(t)===s.default.State.Started)this._state.cancel(t),this._state.setStateAtTime(s.default.State.Started,t),this.restart(t,e,i);else if(this._state.setStateAtTime(s.default.State.Started,t),this._synced){var n=this._state.get(t);n.offset=s.default.defaultArg(e,0),n.duration=i;var o=s.default.Transport.schedule(function(t){this._start(t,e,i)}.bind(this),t);this._scheduled.push(o),s.default.Transport.state===s.default.State.Started&&this._syncedStart(this.now(),s.default.Transport.seconds)}else this._start.apply(this,arguments);return this},s.default.Source.prototype.stop=function(t){if(s.default.isUndef(t)&&this._synced?t=s.default.Transport.seconds:(t=this.toSeconds(t),t=Math.max(t,this.context.currentTime)),this._synced){var e=s.default.Transport.schedule(this._stop.bind(this),t);this._scheduled.push(e)}else this._stop.apply(this,arguments);return this._state.cancel(t),this._state.setStateAtTime(s.default.State.Stopped,t),this},s.default.Source.prototype.sync=function(){return this._synced=!0,this._syncedStart=function(t,e){if(e>0){var i=this._state.get(e);if(i&&i.state===s.default.State.Started&&i.time!==e){var n,o=e-this.toSeconds(i.time);i.duration&&(n=this.toSeconds(i.duration)-o),this._start(t,this.toSeconds(i.offset)+o,n)}}}.bind(this),this._syncedStop=function(t){var e=s.default.Transport.getSecondsAtTime(Math.max(t-this.sampleTime,0)
5189);this._state.getValueAtTime(e)===s.default.State.Started&&this._stop(t)}.bind(this),s.default.Transport.on("start loopStart",this._syncedStart),s.default.Transport.on("stop pause loopEnd",this._syncedStop),this},s.default.Source.prototype.unsync=function(){this._synced&&(s.default.Transport.off("stop pause loopEnd",this._syncedStop),s.default.Transport.off("start loopStart",this._syncedStart)),this._synced=!1;for(var t=0;t<this._scheduled.length;t++){var e=this._scheduled[t];s.default.Transport.clear(e)}return this._scheduled=[],this._state.cancel(0),this},s.default.Source.prototype.dispose=function(){s.default.AudioNode.prototype.dispose.call(this),this.unsync(),this._scheduled=null,this._writable("volume"),this._volume.dispose(),this._volume=null,this.volume=null,this._state.dispose(),this._state=null},e.default=s.default.Source},function(t,e,i){"use strict";i.r(e);var s=i(0);i(30),i(44);if(s.default.supported&&!s.default.global.AudioContext.prototype._native_createWaveShaper){var n=navigator.userAgent.toLowerCase();if(n.includes("safari")&&!n.includes("chrome")){var o=function(t){for(var e in this._internalNode=this.input=this.output=t._native_createWaveShaper(),this._curve=null,this._internalNode)this._defineProperty(this._internalNode,e)};Object.defineProperty(o.prototype,"curve",{get:function(){return this._curve},set:function(t){this._curve=t;var e=new Float32Array(t.length+1);e.set(t,1),e[0]=t[0],this._internalNode.curve=e}}),o.prototype._defineProperty=function(t,e){s.default.isUndef(this[e])&&Object.defineProperty(this,e,{get:function(){return"function"==typeof t[e]?t[e].bind(t):t[e]},set:function(i){t[e]=i}})},s.default.global.AudioContext.prototype._native_createWaveShaper=s.default.global.AudioContext.prototype.createWaveShaper,s.default.global.AudioContext.prototype.createWaveShaper=function(){return new o(this)}}}s.default.WaveShaper=function(t,e){s.default.SignalBase.call(this),this._shaper=this.input=this.output=this.context.createWaveShaper(),this._curve=null,Array.isArray(t)?this.curve=t:isFinite(t)||s.default.isUndef(t)?this._curve=new Float32Array(s.default.defaultArg(t,1024)):s.default.isFunction(t)&&(this._curve=new Float32Array(s.default.defaultArg(e,1024)),this.setMap(t))},s.default.extend(s.default.WaveShaper,s.default.SignalBase),s.default.WaveShaper.prototype.setMap=function(t){for(var e=new Array(this._curve.length),i=0,s=this._curve.length;i<s;i++){var n=i/(s-1)*2-1;e[i]=t(n,i)}return this.curve=e,this},Object.defineProperty(s.default.WaveShaper.prototype,"curve",{get:function(){return this._shaper.curve},set:function(t){this._curve=new Float32Array(t),this._shaper.curve=this._curve}}),Object.defineProperty(s.default.WaveShaper.prototype,"oversample",{get:function(){return this._shaper.oversample},set:function(t){if(!["none","2x","4x"].includes(t))throw new RangeError("Tone.WaveShaper: oversampling must be either 'none', '2x', or '4x'");this._shaper.oversample=t}}),s.default.WaveShaper.prototype.dispose=function(){return s.default.SignalBase.prototype.dispose.call(this),this._shaper.disconnect(),this._shaper=null,this._curve=null,this};e.default=s.default.WaveShaper},function(t,e,i){"use strict";i.r(e);var s=i(0);i(23),i(1);s.default.Effect=function(){var t=s.default.defaults(arguments,["wet"],s.default.Effect);s.default.AudioNode.call(this),this.createInsOuts(1,1),this._dryWet=new s.default.CrossFade(t.wet),this.wet=this._dryWet.fade,this.effectSend=new s.default.Gain,this.effectReturn=new s.default.Gain,s.default.connect(this.input,this._dryWet.a),s.default.connect(this.input,this.effectSend),this.effectReturn.connect(this._dryWet.b),this._dryWet.connect(this.output),this._readOnly(["wet"])},s.default.extend(s.default.Effect,s.default.AudioNode),s.default.Effect.defaults={wet:1},s.default.Effect.prototype.connectEffect=function(t){return this.effectSend.chain(t,this.effectReturn),this},s.default.Effect.prototype.dispose=function(){return s.default.AudioNode.prototype.dispose.call(this),this._dryWet.dispose(),this._dryWet=null,this.effectSend.dispose(),this.effectSend=null,this.effectReturn.dispose(),this.effectReturn=null,this._writable(["wet"]),this.wet=null,this},e.default=s.default.Effect}
5189,function(t,e,i){"use strict";i.r(e);var s=i(0);i(2),i(1);s.default.Filter=function(){var t=s.default.defaults(arguments,["frequency","type","rolloff"],s.default.Filter);s.default.AudioNode.call(this),this.createInsOuts(1,1),this._filters=[],this.frequency=new s.default.Signal(t.frequency,s.default.Type.Frequency),this.detune=new s.default.Signal(0,s.default.Type.Cents),this.gain=new s.default.Signal({value:t.gain,convert:!0,type:s.default.Type.Decibels}),this.Q=new s.default.Signal(t.Q),this._type=t.type,this._rolloff=t.rolloff,this.rolloff=t.rolloff,this._readOnly(["detune","frequency","gain","Q"])},s.default.extend(s.default.Filter,s.default.AudioNode),s.default.Filter.defaults={type:"lowpass",frequency:350,rolloff:-12,Q:1,gain:0},Object.defineProperty(s.default.Filter.prototype,"type",{get:function(){return this._type},set:function(t){if(-1===["lowpass","highpass","bandpass","lowshelf","highshelf","notch","allpass","peaking"].indexOf(t))throw new TypeError("Tone.Filter: invalid type "+t);this._type=t;for(var e=0;e<this._filters.length;e++)this._filters[e].type=t}}),Object.defineProperty(s.default.Filter.prototype,"rolloff",{get:function(){return this._rolloff},set:function(t){t=parseInt(t,10);var e=[-12,-24,-48,-96].indexOf(t);if(-1===e)throw new RangeError("Tone.Filter: rolloff can only be -12, -24, -48 or -96");e+=1,this._rolloff=t,this.input.disconnect();for(var i=0;i<this._filters.length;i++)this._filters[i].disconnect(),this._filters[i]=null;this._filters=new Array(e);for(var n=0;n<e;n++){var o=this.context.createBiquadFilter();o.type=this._type,this.frequency.connect(o.frequency),this.detune.connect(o.detune),this.Q.connect(o.Q),this.gain.connect(o.gain),this._filters[n]=o}var a=[this.input].concat(this._filters).concat([this.output]);s.default.connectSeries.apply(s.default,a)}}),s.default.Filter.prototype.getFrequencyResponse=function(t){t=s.default.defaultArg(t,128);for(var e=new Float32Array(t).map(function(){return 1}),i=new Float32Array(t),n=0;n<t;n++){var o=19980*Math.pow(n/t,2)+20;i[n]=o}var a=new Float32Array(t),r=new Float32Array(t);return this._filters.forEach(function(){var t=this.context.createBiquadFilter();t.type=this._type,t.Q.value=this.Q.value,t.frequency.value=this.frequency.value,t.gain.value=this.gain.value,t.getFrequencyResponse(i,a,r),a.forEach(function(t,i){e[i]*=t})}.bind(this)),e},s.default.Filter.prototype.dispose=function(){s.default.AudioNode.prototype.dispose.call(this);for(var t=0;t<this._filters.length;t++)this._filters[t].disconnect(),this._filters[t]=null;return this._filters=null,this._writable(["detune","frequency","gain","Q"]),this.frequency.dispose(),this.Q.dispose(),this.frequency=null,this.Q=null,this.detune.dispose(),this.detune=null,this.gain.dispose(),this.gain=null,this},e.default=s.default.Filter},function(t,e,i){"use strict";i.r(e);var s=i(0);i(1);s.default.Merge=function(t){t=s.default.defaultArg(t,2),s.default.AudioNode.call(this),this.createInsOuts(t,0),this._merger=this.output=this.context.createChannelMerger(t);for(var e=0;e<t;e++)this.input[e]=new s.default.Gain,this.input[e].connect(this._merger,0,e),this.input[e].channelCount=1,this.input[e].channelCountMode="explicit";this.left=this.input[0],this.right=this.input[1]},s.default.extend(s.default.Merge,s.default.AudioNode),s.default.Merge.prototype.dispose=function(){return this.input.forEach(function(t){t.dispose()}),s.default.AudioNode.prototype.dispose.call(this),this.left=null,this.right=null,this._merger.disconnect(),this._merger=null,this},e.default=s.default.Merge},function(t,e,i){"use strict";i.r(e);var s=i(0);i(35),i(4);s.default.supported&&(AudioBuffer.prototype.copyToChannel||(AudioBuffer.prototype.copyToChannel=function(t,e,i){var s=this.getChannelData(e);i=i||0;for(var n=0;n<s.length;n++)s[n+i]=t[n]},AudioBuffer.prototype.copyFromChannel=function(t,e,i){var s=this.getChannelData(e);i=i||0;for(var n=0;n<t.length;n++)t[n]=s[n+i]})),s.default.Buffer=function(){var t=s.default.defaults(arguments,["url","onload","onerror"],s.default.Buffer);s.default.call(this),this._buffer=null,this._reversed=t.reverse,this._xhr=null,this.onload=s.default.noOp,t.url instanceof AudioBuffer||t.url instanceof s.default.Buffer?(this.set(t.url),this.loaded||(this.onload=t.onload)):s.default.isString(t.url)&&this.load(t.url).then(t.onload).catch(t.onerror)},s.default.extend(s.default.Buffer),s.default.Buffer.defaults={url:void 0,reverse:!1,onload:s.default.noOp,onerror:s.default.noOp},s.default.Buffer.prototype.set=function(t){return t instanceof s.default.Buffer?t.loaded?this._buffer=t.get():t.onload=function(){this.set(t),this.onload(this)}.bind(this):this._buffer=t,this._reversed&&this._reverse(),this},s.default.Buffer.prototype.get=function(){return this._buffer}
5189,s.default.Buffer.prototype.load=function(t,e,i){return new Promise(function(n,o){this._xhr=s.default.Buffer.load(t,function(t){this._xhr=null,this.set(t),n(this),this.onload(this),e&&e(this)}.bind(this),function(t){this._xhr=null,o(t),i&&i(t)}.bind(this))}.bind(this))},s.default.Buffer.prototype.dispose=function(){return s.default.prototype.dispose.call(this),this._buffer=null,this._xhr&&(s.default.Buffer._removeFromDownloadQueue(this._xhr),this._xhr.abort(),this._xhr=null),this},Object.defineProperty(s.default.Buffer.prototype,"loaded",{get:function(){return this.length>0}}),Object.defineProperty(s.default.Buffer.prototype,"duration",{get:function(){return this._buffer?this._buffer.duration:0}}),Object.defineProperty(s.default.Buffer.prototype,"length",{get:function(){return this._buffer?this._buffer.length:0}}),Object.defineProperty(s.default.Buffer.prototype,"numberOfChannels",{get:function(){return this._buffer?this._buffer.numberOfChannels:0}}),s.default.Buffer.prototype.fromArray=function(t){var e=t[0].length>0,i=e?t.length:1,s=e?t[0].length:t.length,n=this.context.createBuffer(i,s,this.context.sampleRate);e||1!==i||(t=[t]);for(var o=0;o<i;o++)n.copyToChannel(t[o],o);return this._buffer=n,this},s.default.Buffer.prototype.toMono=function(t){if(s.default.isNumber(t))this.fromArray(this.toArray(t));else{for(var e=new Float32Array(this.length),i=this.numberOfChannels,n=0;n<i;n++)for(var o=this.toArray(n),a=0;a<o.length;a++)e[a]+=o[a];e=e.map(function(t){return t/i}),this.fromArray(e)}return this},s.default.Buffer.prototype.toArray=function(t){if(s.default.isNumber(t))return this.getChannelData(t);if(1===this.numberOfChannels)return this.toArray(0);for(var e=[],i=0;i<this.numberOfChannels;i++)e[i]=this.getChannelData(i);return e},s.default.Buffer.prototype.getChannelData=function(t){return this._buffer.getChannelData(t)},s.default.Buffer.prototype.slice=function(t,e){e=s.default.defaultArg(e,this.duration);for(var i=Math.floor(this.context.sampleRate*this.toSeconds(t)),n=Math.floor(this.context.sampleRate*this.toSeconds(e)),o=[],a=0;a<this.numberOfChannels;a++)o[a]=this.toArray(a).slice(i,n);return(new s.default.Buffer).fromArray(o)},s.default.Buffer.prototype._reverse=function(){if(this.loaded)for(var t=0;t<this.numberOfChannels;t++)Array.prototype.reverse.call(this.getChannelData(t));return this},Object.defineProperty(s.default.Buffer.prototype,"reverse",{get:function(){return this._reversed},set:function(t){this._reversed!==t&&(this._reversed=t,this._reverse())}}),s.default.Emitter.mixin(s.default.Buffer),s.default.Buffer._downloadQueue=[],s.default.Buffer.baseUrl="",s.default.Buffer.fromArray=function(t){return(new s.default.Buffer).fromArray(t)},s.default.Buffer.fromUrl=function(t){var e=new s.default.Buffer;return e.load(t).then(function(){return e})},s.default.Buffer._removeFromDownloadQueue=function(t){var e=s.default.Buffer._downloadQueue.indexOf(t);-1!==e&&s.default.Buffer._downloadQueue.splice(e,1)},s.default.Buffer.load=function(t,e,i){e=s.default.defaultArg(e,s.default.noOp);var n=t.match(/\[(.+\|?)+\]$/);if(n){for(var o=n[1].split("|"),a=o[0],r=0;r<o.length;r++)if(s.default.Buffer.supportsType(o[r])){a=o[r];break}t=t.replace(n[0],a)}function l(t){if(s.default.Buffer._removeFromDownloadQueue(d),s.default.Buffer.emit("error",t),!i)throw t;i(t)}function u(){for(var t=0,e=0;e<s.default.Buffer._downloadQueue.length;e++)t+=s.default.Buffer._downloadQueue[e].progress;s.default.Buffer.emit("progress",t/s.default.Buffer._downloadQueue.length)}var d=new XMLHttpRequest;return d.open("GET",s.default.Buffer.baseUrl+t,!0),d.responseType="arraybuffer",d.progress=0,s.default.Buffer._downloadQueue.push(d),d.addEventListener("load",function(){200===d.status?s.default.context.decodeAudioData(d.response).then(function(t){d.progress=1,u(),e(t),s.default.Buffer._removeFromDownloadQueue(d),0===s.default.Buffer._downloadQueue.length&&s.default.Buffer.emit("load")}).catch(function(){s.default.Buffer._removeFromDownloadQueue(d),l("Tone.Buffer: could not decode audio data: "+t)}):l("Tone.Buffer: could not locate file: "+t)}),d.addEventListener("error",l),d.addEventListener("progress",function(t){t.lengthComputable&&(d.progress=t.loaded/t.total*.95,u())}),d.send(),d},s.default.Buffer.cancelDownloads=function(){return s.default.Buffer._downloadQueue.slice().forEac
5189h(function(t){s.default.Buffer._removeFromDownloadQueue(t),t.abort()}),s.default.Buffer},s.default.Buffer.supportsType=function(t){var e=t.split(".");return e=e[e.length-1],""!==document.createElement("audio").canPlayType("audio/"+e)},s.default.loaded=function(){var t,e;function i(){s.default.Buffer.off("load",t),s.default.Buffer.off("error",e)}return new Promise(function(i,n){t=function(){i()},e=function(){n()},s.default.Buffer.on("load",t),s.default.Buffer.on("error",e)}).then(i).catch(function(t){throw i(),new Error(t)})};e.default=s.default.Buffer},function(t,e,i){"use strict";i.r(e);var s=i(0);i(17),i(26),i(1),i(2),i(22),i(4),i(28);s.default.LFO=function(){var t=s.default.defaults(arguments,["frequency","min","max"],s.default.LFO);s.default.AudioNode.call(this),this._oscillator=new s.default.Oscillator({frequency:t.frequency,type:t.type}),this.frequency=this._oscillator.frequency,this.amplitude=this._oscillator.volume,this.amplitude.units=s.default.Type.NormalRange,this.amplitude.value=t.amplitude,this._stoppedSignal=new s.default.Signal(0,s.default.Type.AudioRange),this._zeros=new s.default.Zero,this._stoppedValue=0,this._a2g=new s.default.AudioToGain,this._scaler=this.output=new s.default.Scale(t.min,t.max),this._units=s.default.Type.Default,this.units=t.units,this._oscillator.chain(this._a2g,this._scaler),this._zeros.connect(this._a2g),this._stoppedSignal.connect(this._a2g),this._readOnly(["amplitude","frequency"]),this.phase=t.phase},s.default.extend(s.default.LFO,s.default.AudioNode),s.default.LFO.defaults={type:"sine",min:0,max:1,phase:0,frequency:"4n",amplitude:1,units:s.default.Type.Default},s.default.LFO.prototype.start=function(t){return t=this.toSeconds(t),this._stoppedSignal.setValueAtTime(0,t),this._oscillator.start(t),this},s.default.LFO.prototype.stop=function(t){return t=this.toSeconds(t),this._stoppedSignal.setValueAtTime(this._stoppedValue,t),this._oscillator.stop(t),this},s.default.LFO.prototype.sync=function(){return this._oscillator.sync(),this._oscillator.syncFrequency(),this},s.default.LFO.prototype.unsync=function(){return this._oscillator.unsync(),this._oscillator.unsyncFrequency(),this},Object.defineProperty(s.default.LFO.prototype,"min",{get:function(){return this._toUnits(this._scaler.min)},set:function(t){t=this._fromUnits(t),this._scaler.min=t}}),Object.defineProperty(s.default.LFO.prototype,"max",{get:function(){return this._toUnits(this._scaler.max)},set:function(t){t=this._fromUnits(t),this._scaler.max=t}}),Object.defineProperty(s.default.LFO.prototype,"type",{get:function(){return this._oscillator.type},set:function(t){this._oscillator.type=t,this._stoppedValue=this._oscillator._getInitialValue(),this._stoppedSignal.value=this._stoppedValue}}),Object.defineProperty(s.default.LFO.prototype,"phase",{get:function(){return this._oscillator.phase},set:function(t){this._oscillator.phase=t,this._stoppedValue=this._oscillator._getInitialValue(),this._stoppedSignal.value=this._stoppedValue}}),Object.defineProperty(s.default.LFO.prototype,"units",{get:function(){return this._units},set:function(t){var e=this.min,i=this.max;this._units=t,this.min=e,this.max=i}}),Object.defineProperty(s.default.LFO.prototype,"state",{get:function(){return this._oscillator.state}}),s.default.LFO.prototype.connect=function(t){return t.constructor!==s.default.Signal&&t.constructor!==s.default.Param||(this.convert=t.convert,this.units=t.units),s.default.SignalBase.prototype.connect.apply(this,arguments),this},s.default.LFO.prototype._fromUnits=s.default.Param.prototype._fromUnits,s.default.LFO.prototype._toUnits=s.default.Param.prototype._toUnits,s.default.LFO.prototype.dispose=function(){return s.default.AudioNode.prototype.dispose.call(this),this._writable(["amplitude","frequency"]),this._oscillator.dispose(),this._oscillator=null,this._stoppedSignal.dispose(),this._stoppedSignal=null,this._zeros.dispose(),this._zeros=null,this._scaler.dispose(),this._scaler=null,this._a2g.dispose(),this._a2g=null,this.frequency=null,this.amplitude=null,this},e.default=s.default.LFO},function(t,e,i){"use strict";i.r(e);var s=i(0);i(29),i(90),i(2),i(3);s.default.Subtract=function(t){s.default.Signal.call(this),this.createInsOuts(2,0),this._sum=this.input[0]=this.output=new s.default.Gain,this._neg=new s.default.Negate,this._param=this.input[1]=new s.default.Signal(t),this._param.chain(this._neg,this._sum)},s.default.extend(s.default.Subtract,s.default.Signal),s.default.Subtract.prototype.dispose=function(){return s.default.Signal.prototype.dispose.call(this),this._neg.dispose(),this._neg=null,this._sum.disconnect(),this._sum=null,this},e.default=s.default.Subtract}
5189,function(t,e,i){"use strict";i.r(e);var s=i(0);i(4),i(1),i(24);s.default.Param=function(){var t=s.default.defaults(arguments,["param","units","convert"],s.default.Param);s.default.AudioNode.call(this,t),this._param=this.input=t.param,this.units=t.units,this.convert=t.convert,this.overridden=!1,this._events=new s.default.Timeline(1e3),s.default.isDefined(t.value)&&this._param&&this.setValueAtTime(t.value,0)},s.default.extend(s.default.Param,s.default.AudioNode),s.default.Param.defaults={units:s.default.Type.Default,convert:!0,param:void 0},Object.defineProperty(s.default.Param.prototype,"value",{get:function(){var t=this.now();return this._toUnits(this.getValueAtTime(t))},set:function(t){this._initialValue=this._fromUnits(t),this.cancelScheduledValues(this.now()),this.setValueAtTime(t,this.now())}}),Object.defineProperty(s.default.Param.prototype,"minValue",{get:function(){return this.units===s.default.Type.Time||this.units===s.default.Type.Frequency||this.units===s.default.Type.NormalRange||this.units===s.default.Type.Positive||this.units===s.default.Type.BPM?0:this.units===s.default.Type.AudioRange?-1:this.units===s.default.Type.Decibels?-1/0:this._param.minValue}}),Object.defineProperty(s.default.Param.prototype,"maxValue",{get:function(){return this.units===s.default.Type.NormalRange||this.units===s.default.Type.AudioRange?1:this._param.maxValue}}),s.default.Param.prototype._fromUnits=function(t){if(!this.convert&&!s.default.isUndef(this.convert)||this.overridden)return t;switch(this.units){case s.default.Type.Time:return this.toSeconds(t);case s.default.Type.Frequency:return this.toFrequency(t);case s.default.Type.Decibels:return s.default.dbToGain(t);case s.default.Type.NormalRange:return Math.min(Math.max(t,0),1);case s.default.Type.AudioRange:return Math.min(Math.max(t,-1),1);case s.default.Type.Positive:return Math.max(t,0);default:return t}},s.default.Param.prototype._toUnits=function(t){if(!this.convert&&!s.default.isUndef(this.convert))return t;switch(this.units){case s.default.Type.Decibels:return s.default.gainToDb(t);default:return t}},s.default.Param.prototype._minOutput=1e-5,s.default.Param.AutomationType={Linear:"linearRampToValueAtTime",Exponential:"exponentialRampToValueAtTime",Target:"setTargetAtTime",SetValue:"setValueAtTime",Cancel:"cancelScheduledValues"},s.default.Param.prototype.setValueAtTime=function(t,e){return e=this.toSeconds(e),t=this._fromUnits(t),this._events.add({type:s.default.Param.AutomationType.SetValue,value:t,time:e}),this.log(s.default.Param.AutomationType.SetValue,t,e),this._param.setValueAtTime(t,e),this},s.default.Param.prototype.getValueAtTime=function(t){t=this.toSeconds(t);var e=this._events.getAfter(t),i=this._events.get(t),n=s.default.defaultArg(this._initialValue,this._param.defaultValue),o=n;if(null===i)o=n;else if(i.type===s.default.Param.AutomationType.Target){var a,r=this._events.getBefore(i.time);a=null===r?n:r.value,o=this._exponentialApproach(i.time,a,i.value,i.constant,t)}else o=null===e?i.value:e.type===s.default.Param.AutomationType.Linear?this._linearInterpolate(i.time,i.value,e.time,e.value,t):e.type===s.default.Param.AutomationType.Exponential?this._exponentialInterpolate(i.time,i.value,e.time,e.value,t):i.value;return o},s.default.Param.prototype.setRampPoint=function(t){t=this.toSeconds(t);var e=this.getValueAtTime(t);return this.cancelAndHoldAtTime(t),0===e&&(e=this._minOutput),this.setValueAtTime(this._toUnits(e),t),this},s.default.Param.prototype.linearRampToValueAtTime=function(t,e){return t=this._fromUnits(t),e=this.toSeconds(e),this._events.add({type:s.default.Param.AutomationType.Linear,value:t,time:e}),this.log(s.default.Param.AutomationType.Linear,t,e),this._param.linearRampToValueAtTime(t,e),this},s.default.Param.prototype.exponentialRampToValueAtTime=function(t,e){return t=this._fromUnits(t),t=Math.max(this._minOutput,t),e=this.toSeconds(e),this._events.add({type:s.default.Param.AutomationType.Exponential,time:e,value:t}),this.log(s.default.Param.AutomationType.Exponential,t,e),this._param.exponentialRampToValueAtTime(t,e),this}
5189,s.default.Param.prototype.exponentialRampTo=function(t,e,i){return i=this.toSeconds(i),this.setRampPoint(i),this.exponentialRampToValueAtTime(t,i+this.toSeconds(e)),this},s.default.Param.prototype.linearRampTo=function(t,e,i){return i=this.toSeconds(i),this.setRampPoint(i),this.linearRampToValueAtTime(t,i+this.toSeconds(e)),this},s.default.Param.prototype.targetRampTo=function(t,e,i){return i=this.toSeconds(i),this.setRampPoint(i),this.exponentialApproachValueAtTime(t,i,e),this},s.default.Param.prototype.exponentialApproachValueAtTime=function(t,e,i){var s=Math.log(this.toSeconds(i)+1)/Math.log(200);return e=this.toSeconds(e),this.setTargetAtTime(t,e,s),this.cancelAndHoldAtTime(e+.9*i),this.linearRampToValueAtTime(t,e+i),this},s.default.Param.prototype.setTargetAtTime=function(t,e,i){if(t=this._fromUnits(t),i<=0)throw new Error("timeConstant must be greater than 0");return e=this.toSeconds(e),this._events.add({type:s.default.Param.AutomationType.Target,value:t,time:e,constant:i}),this.log(s.default.Param.AutomationType.Target,t,e,i),this._param.setTargetAtTime(t,e,i),this},s.default.Param.prototype.setValueCurveAtTime=function(t,e,i,n){n=s.default.defaultArg(n,1),i=this.toSeconds(i),e=this.toSeconds(e),this.setValueAtTime(t[0]*n,e);for(var o=i/(t.length-1),a=1;a<t.length;a++)this.linearRampToValueAtTime(t[a]*n,e+a*o);return this},s.default.Param.prototype.cancelScheduledValues=function(t){return t=this.toSeconds(t),this._events.cancel(t),this._param.cancelScheduledValues(t),this.log(s.default.Param.AutomationType.Cancel,t),this},s.default.Param.prototype.cancelAndHoldAtTime=function(t){t=this.toSeconds(t);var e=this.getValueAtTime(t);this.log("cancelAndHoldAtTime",t,"value="+e),this._param.cancelScheduledValues(t);var i=this._events.get(t),n=this._events.getAfter(t);return i&&i.time===t?n?this._events.cancel(n.time):this._events.cancel(t+this.sampleTime):n&&(this._events.cancel(n.time),n.type===s.default.Param.AutomationType.Linear?this.linearRampToValueAtTime(e,t):n.type===s.default.Param.AutomationType.Exponential&&this.exponentialRampToValueAtTime(e,t)),this._events.add({type:s.default.Param.AutomationType.SetValue,value:e,time:t}),this._param.setValueAtTime(e,t),this},s.default.Param.prototype.rampTo=function(t,e,i){return e=s.default.defaultArg(e,.1),this.units===s.default.Type.Frequency||this.units===s.default.Type.BPM||this.units===s.default.Type.Decibels?this.exponentialRampTo(t,e,i):this.linearRampTo(t,e,i),this},s.default.Param.prototype._exponentialApproach=function(t,e,i,s,n){return i+(e-i)*Math.exp(-(n-t)/s)},s.default.Param.prototype._linearInterpolate=function(t,e,i,s,n){return e+(n-t)/(i-t)*(s-e)},s.default.Param.prototype._exponentialInterpolate=function(t,e,i,s,n){return e*Math.pow(s/e,(n-t)/(i-t))},s.default.Param.prototype.dispose=function(){return s.default.AudioNode.prototype.dispose.call(this),this._param=null,this._events=null,this},e.default=s.default.Param},function(t,e,i){"use strict";i.r(e);var s=i(0);i(8),i(19),i(10),i(23);s.default.StereoEffect=function(){s.default.AudioNode.call(this);var t=s.default.defaults(arguments,["wet"],s.default.Effect);this.createInsOuts(1,1),this._dryWet=new s.default.CrossFade(t.wet),this.wet=this._dryWet.fade,this._split=new s.default.Split,this.effectSendL=this._split.left,this.effectSendR=this._split.right,this._merge=new s.default.Merge,this.effectReturnL=this._merge.left,this.effectReturnR=this._merge.right,s.default.connect(this.input,this._split),s.default.connect(this.input,this._dryWet,0,0),this._merge.connect(this._dryWet,0,1),this._dryWet.connect(this.output),this._readOnly(["wet"])},s.default.extend(s.default.StereoEffect,s.default.Effect),s.default.StereoEffect.prototype.dispose=function(){return s.default.AudioNode.prototype.dispose.call(this),this._dryWet.dispose(),this._dryWet=null,this._split.dispose(),this._split=null,this._merge.dispose(),this._merge=null,this.effectSendL=null,this.effectSendR=null,this.effectReturnL=null,this.effectReturnR=null,this._writable(["wet"]),this.wet=null,this},e.default=s.default.StereoEffect},function(t,e,i){"use strict";i.r(e);var s=i(0);i(83),i(4),i(24),i(35),i(3),i(81),i(80),i(56);s.default.Transport=function(){s.default.Emitter.call(this),s.default.getContext(function(){this.loop=!1,this._loopStart=0,this._loopEnd=0,this._ppq=n.defaults.PPQ,this._clock=new s.default.Clock({callback:this._processTick.bind(this),frequency:0}),this._bindClockEvents(),this.bpm=this._clock.frequency,this.bpm._toUnits=this._toUnits.bind(this),this.bpm._fromUnits=this._fromUnits.bind(this),this.bpm.units=s.default.Type.BPM,this.bpm.value=n.defaults.bpm,this._readOnly("bpm"),this._timeSignature=n.defaults.timeSignature,this._scheduledEvents={},this._timeline=new s.default.Timeline,this._repeatedEvents=new s.default.IntervalTimeline,this._syncedSignals=[],this._swingTicks=n.defaults.PPQ/2,this._swingAmou
5189nt=0,this.context.transport=this}.bind(this))},s.default.extend(s.default.Transport,s.default.Emitter),s.default.Transport.defaults={bpm:120,swing:0,swingSubdivision:"8n",timeSignature:4,loopStart:0,loopEnd:"4m",PPQ:192},s.default.Transport.prototype.isTransport=!0,s.default.Transport.prototype._processTick=function(t,e){if(this._swingAmount>0&&e%this._ppq!=0&&e%(2*this._swingTicks)!=0){var i=e%(2*this._swingTicks)/(2*this._swingTicks),n=Math.sin(i*Math.PI)*this._swingAmount;t+=s.default.Ticks(2*this._swingTicks/3).toSeconds()*n}this.loop&&e>=this._loopEnd&&(this.emit("loopEnd",t),this._clock.setTicksAtTime(this._loopStart,t),e=this._loopStart,this.emit("loopStart",t,this._clock.getSecondsAtTime(t)),this.emit("loop",t)),this._timeline.forEachAtTime(e,function(e){e.invoke(t)})},s.default.Transport.prototype.schedule=function(t,e){var i=new s.default.TransportEvent(this,{time:s.default.TransportTime(e),callback:t});return this._addEvent(i,this._timeline)},s.default.Transport.prototype.scheduleRepeat=function(t,e,i,n){var o=new s.default.TransportRepeatEvent(this,{callback:t,interval:s.default.Time(e),time:s.default.TransportTime(i),duration:s.default.Time(s.default.defaultArg(n,1/0))});return this._addEvent(o,this._repeatedEvents)},s.default.Transport.prototype.scheduleOnce=function(t,e){var i=new s.default.TransportEvent(this,{time:s.default.TransportTime(e),callback:t,once:!0});return this._addEvent(i,this._timeline)},s.default.Transport.prototype.clear=function(t){if(this._scheduledEvents.hasOwnProperty(t)){var e=this._scheduledEvents[t.toString()];e.timeline.remove(e.event),e.event.dispose(),delete this._scheduledEvents[t.toString()]}return this},s.default.Transport.prototype._addEvent=function(t,e){return this._scheduledEvents[t.id.toString()]={event:t,timeline:e},e.add(t),t.id},s.default.Transport.prototype.cancel=function(t){return t=s.default.defaultArg(t,0),t=this.toTicks(t),this._timeline.forEachFrom(t,function(t){this.clear(t.id)}.bind(this)),this._repeatedEvents.forEachFrom(t,function(t){this.clear(t.id)}.bind(this)),this},s.default.Transport.prototype._bindClockEvents=function(){this._clock.on("start",function(t,e){e=s.default.Ticks(e).toSeconds(),this.emit("start",t,e)}.bind(this)),this._clock.on("stop",function(t){this.emit("stop",t)}.bind(this)),this._clock.on("pause",function(t){this.emit("pause",t)}.bind(this))},Object.defineProperty(s.default.Transport.prototype,"state",{get:function(){return this._clock.getStateAtTime(this.now())}}),s.default.Transport.prototype.start=function(t,e){return s.default.isDefined(e)&&(e=this.toTicks(e)),this._clock.start(t,e),this},s.default.Transport.prototype.stop=function(t){return this._clock.stop(t),this},s.default.Transport.prototype.pause=function(t){return this._clock.pause(t),this},s.default.Transport.prototype.toggle=function(t){return t=this.toSeconds(t),this._clock.getStateAtTime(t)!==s.default.State.Started?this.start(t):this.stop(t),this},Object.defineProperty(s.default.Transport.prototype,"timeSignature",{get:function(){return this._timeSignature},set:function(t){s.default.isArray(t)&&(t=t[0]/t[1]*4),this._timeSignature=t}}),Object.defineProperty(s.default.Transport.prototype,"loopStart",{get:function(){return s.default.Ticks(this._loopStart).toSeconds()},set:function(t){this._loopStart=this.toTicks(t)}}),Object.defineProperty(s.default.Transport.prototype,"loopEnd",{get:function(){return s.default.Ticks(this._loopEnd).toSeconds()},set:function(t){this._loopEnd=this.toTicks(t)}}),s.default.Transport.prototype.setLoopPoints=function(t,e){return this.loopStart=t,this.loopEnd=e,this},Object.defineProperty(s.default.Transport.prototype,"swing",{get:function(){return this._swingAmou
5189nt},set:function(t){this._swingAmount=t}}),Object.defineProperty(s.default.Transport.prototype,"swingSubdivision",{get:function(){return s.default.Ticks(this._swingTicks).toNotation()},set:function(t){this._swingTicks=this.toTicks(t)}}),Object.defineProperty(s.default.Transport.prototype,"position",{get:function(){var t=this.now(),e=this._clock.getTicksAtTime(t);return s.default.Ticks(e).toBarsBeatsSixteenths()},set:function(t){var e=this.toTicks(t);this.ticks=e}}),Object.defineProperty(s.default.Transport.prototype,"seconds",{get:function(){return this._clock.seconds},set:function(t){var e=this.now(),i=this.bpm.timeToTicks(t,e);this.ticks=i}}),Object.defineProperty(s.default.Transport.prototype,"progress",{get:function(){if(this.loop){var t=this.now();return(this._clock.getTicksAtTime(t)-this._loopStart)/(this._loopEnd-this._loopStart)}return 0}}),Object.defineProperty(s.default.Transport.prototype,"ticks",{get:function(){return this._clock.ticks},set:function(t){if(this._clock.ticks!==t){var e=this.now();this.state===s.default.State.Started?(this.emit("stop",e),this._clock.setTicksAtTime(t,e),this.emit("start",e,this.seconds)):this._clock.setTicksAtTime(t,e)}}}),s.default.Transport.prototype.getTicksAtTime=function(t){return Math.round(this._clock.getTicksAtTime(t))},s.default.Transport.prototype.getSecondsAtTime=function(t){return this._clock.getSecondsAtTime(t)},Object.defineProperty(s.default.Transport.prototype,"PPQ",{get:function(){return this._ppq},set:function(t){var e=this.bpm.value;this._ppq=t,this.bpm.value=e}}),s.default.Transport.prototype._fromUnits=function(t){return 1/(60/t/this.PPQ)},s.default.Transport.prototype._toUnits=function(t){return t/this.PPQ*60},s.default.Transport.prototype.nextSubdivision=function(t){if(t=this.toTicks(t),this.state!==s.default.State.Started)return 0;var e=this.now(),i=t-this.getTicksAtTime(e)%t;return this._clock.nextTickTime(i,e)},s.default.Transport.prototype.syncSignal=function(t,e){if(!e){var i=this.now();e=0!==t.getValueAtTime(i)?t.getValueAtTime(i)/this.bpm.getValueAtTime(i):0}var n=new s.default.Gain(e);return this.bpm.chain(n,t._param),this._syncedSignals.push({ratio:n,signal:t,initial:t.value}),t.value=0,this},s.default.Transport.prototype.unsyncSignal=function(t){for(var e=this._syncedSignals.length-1;e>=0;e--){var i=this._syncedSignals[e];i.signal===t&&(i.ratio.dispose(),i.signal.value=i.initial,this._syncedSignals.splice(e,1))}return this},s.default.Transport.prototype.dispose=function(){return s.default.Emitter.prototype.dispose.call(this),this._clock.dispose(),this._clock=null,this._writable("bpm"),this.bpm=null,this._timeline.dispose(),this._timeline=null,this._repeatedEvents.dispose(),this._repeatedEvents=null,this};var n=s.default.Transport;s.default.Transport=new n,s.default.Context.on("init",function(t){t.transport&&t.transport.isTransport?s.default.Transport=t.transport:s.default.Transport=new n}),s.default.Context.on("close",function(t){t.transport&&t.transport.isTransport&&t.transport.dis
5189pose()}),e.default=s.default.Transport},function(t,e,i){"use strict";i.r(e);var s=i(0);i(2),i(6),i(16),i(64);s.default.Oscillator=function(){var t=s.default.defaults(arguments,["frequency","type"],s.default.Oscillator);s.default.Source.call(this,t),this._oscillator=null,this.frequency=new s.default.Signal(t.frequency,s.default.Type.Frequency),this.detune=new s.default.Signal(t.detune,s.default.Type.Cents),this._wave=null,this._partials=t.partials,this._partialCount=t.partialCount,this._phase=t.phase,this._type=t.type,t.partialCount&&t.type!==s.default.Oscillator.Type.Custom&&(this._type=this.baseType+t.partialCount.toString()),this.phase=this._phase,this._readOnly(["frequency","detune"])},s.default.extend(s.default.Oscillator,s.default.Source),s.default.Oscillator.defaults={type:"sine",frequency:440,detune:0,phase:0,partials:[],partialCount:0},s.default.Oscillator.Type={Sine:"sine",Triangle:"triangle",Sawtooth:"sawtooth",Square:"square",Custom:"custom"},s.default.Oscillator.prototype._start=function(t){this.log("start",t);var e=new s.default.OscillatorNode;this._oscillator=e,this._wave?this._oscillator.setPeriodicWave(this._wave):this._oscillator.type=this._type,this._oscillator.connect(this.output),this.frequency.connect(this._oscillator.frequency),this.detune.connect(this._oscillator.detune),t=this.toSeconds(t),this._oscillator.start(t)},s.default.Oscillator.prototype._stop=function(t){return this.log("stop",t),this._oscillator&&(t=this.toSeconds(t),this._oscillator.stop(t)),this},s.default.Oscillator.prototype.restart=function(t){return this._oscillator&&this._oscillator.cancelStop(),this._state.cancel(this.toSeconds(t)),this},s.default.Oscillator.prototype.syncFrequency=function(){return s.default.Transport.syncSignal(this.frequency),this},s.default.Oscillator.prototype.unsyncFrequency=function(){return s.default.Transport.unsyncSignal(this.frequency),this},Object.defineProperty(s.default.Oscillator.prototype,"type",{get:function(){return this._type},set:function(t){var e=[s.default.Oscillator.Type.Sine,s.default.Oscillator.Type.Square,s.default.Oscillator.Type.Triangle,s.default.Oscillator.Type.Sawtooth].includes(t);if(0===this._phase&&e)this._wave=null,this._partialCount=0,null!==this._oscillator&&(this._oscillator.type=t);else{var i=this._getRealImaginary(t,this._phase),n=this.context.createPeriodicWave(i[0],i[1]);this._wave=n,null!==this._oscillator&&this._oscillator.setPeriodicWave(this._wave)}this._type=t}}),Object.defineProperty(s.default.Oscillator.prototype,"baseType",{get:function(){return this._type.replace(this.partialCount,"")},set:function(t){this.partialCount&&this._type!==s.default.Oscillator.Type.Custom&&t!==s.default.Oscillator.Type.Custom?this.type=t+this.partialCount:this.type=t}}),Object.defineProperty(s.default.Oscillator.prototype,"partialCount",{get:function(){return this._partialCount},set:function(t){var e=this._type,i=/^(sine|triangle|square|sawtooth)(\d+)$/.exec(this._type);i&&(e=i[1]),this._type!==s.default.Oscillator.Type.Custom&&(this.type=0===t?e:e+t.toString())}}),s.default.Oscillator.prototype.get=function(){var t=s.default.prototype.get.apply(this,arguments);return t.type!==s.default.Oscillator.Type.Custom&&delete t.partials,t},s.default.Oscillator.prototype._getRealImaginary=function(t,e){var i=2048,n=new Float32Array(i),o=new Float32Array(i),a=1;if(t===s.default.Oscillator.Type.Custom)a=this._partials.length+1,this._partialCount=this._partials.length,i=a;else{var r=/^(sine|triangle|square|sawtooth)(\d+)$/.exec(t);r?(a=parseInt(r[2])+1,this._partialCount=parseInt(r[2]),t=r[1],i=a=Math.max(a,2)):this._partialCount=0,this._partials=[]}for(var l=1;l<i;++l){var u,d=2/(l*Math.PI);switch(t){case s.default.Oscillator.Type.Sine:u=l<=a?1:0,this._partials[l-1]=u;break;case s.default.Oscillator.Type.Square:u=1&l?2*d:0,this._partials[l-1]=u;break;case s.default.Oscillator.Type.Sawtooth:u=d*(1&l?1:-1),this._partials[l-1]=u;break;case s.default.Oscillator.Type.Triangle:u=1&l?d*d*2*(l-1>>1&1?-1:1):0,this._partials[l-1]=u;break;case s.default.Oscillator.Type.Custom:u=this._partials[l-1];break;default:throw new TypeError("Tone.Oscillator: invalid type: "+t)}0!==u?(n[l]=-u*Math.sin(e*l),o[l]=u*Math.cos(e*l)):(n[l]=0,o[l]=0)}return[n,o]}
5189,s.default.Oscillator.prototype._inverseFFT=function(t,e,i){for(var s=0,n=t.length,o=0;o<n;o++)s+=t[o]*Math.cos(o*i)+e[o]*Math.sin(o*i);return s},s.default.Oscillator.prototype._getInitialValue=function(){for(var t=this._getRealImaginary(this._type,0),e=t[0],i=t[1],s=0,n=2*Math.PI,o=0;o<8;o++)s=Math.max(this._inverseFFT(e,i,o/8*n),s);return-this._inverseFFT(e,i,this._phase)/s},Object.defineProperty(s.default.Oscillator.prototype,"partials",{get:function(){return this._partials},set:function(t){this._partials=t,this.type=s.default.Oscillator.Type.Custom}}),Object.defineProperty(s.default.Oscillator.prototype,"phase",{get:function(){return this._phase*(180/Math.PI)},set:function(t){this._phase=t*Math.PI/180,this.type=this._type}}),s.default.Oscillator.prototype.dispose=function(){return s.default.Source.prototype.dispose.call(this),null!==this._oscillator&&(this._oscillator.dispose(),this._oscillator=null),this._wave=null,this._writable(["frequency","detune"]),this.frequency.dispose(),this.frequency=null,this.detune.dispose(),this.detune=null,this._partials=null,this},e.default=s.default.Oscillator},function(t,e,i){"use strict";i.r(e);var s=i(0);i(14),i(1);s.default.Delay=function(){var t=s.default.defaults(arguments,["delayTime","maxDelay"],s.default.Delay);s.default.AudioNode.call(this,t),this._maxDelay=Math.max(this.toSeconds(t.maxDelay),this.toSeconds(t.delayTime)),this._delayNode=this.input=this.output=this.context.createDelay(this._maxDelay),this.delayTime=new s.default.Param({param:this._delayNode.delayTime,units:s.default.Type.Time,value:t.delayTime}),this._readOnly("delayTime")},s.default.extend(s.default.Delay,s.default.AudioNode),s.default.Delay.defaults={maxDelay:1,delayTime:0},Object.defineProperty(s.default.Delay.prototype,"maxDelay",{get:function(){return this._maxDelay}}),s.default.Delay.prototype.dispose=function(){return s.default.AudioNode.prototype.dispose.call(this),this._delayNode.disconnect(),this._delayNode=null,this._writable("delayTime"),this.delayTime=null,this},e.default=s.default.Delay},function(t,e,i){"use strict";i.r(e);var s=i(0);i(3),i(1);s.default.Split=function(t){t=s.default.defaultArg(t,2),s.default.AudioNode.call(this),this.createInsOuts(0,t),this._splitter=this.input=this.context.createChannelSplitter(t);for(var e=0;e<t;e++)this.output[e]=new s.default.Gain,s.default.connect(this._splitter,this.output[e],e,0),this.output[e].channelCount=1,this.output[e].channelCountMode="explicit";this.left=this.output[0],this.right=this.output[1]},s.default.extend(s.default.Split,s.default.AudioNode),s.default.Split.prototype.dispose=function(){return this.output.forEach(function(t){t.dispose()}),s.default.AudioNode.prototype.dispose.call(this),this._splitter.disconnect(),this.left=null,this.right=null,this._splitter=null,this},e.default=s.default.Split},function(t,e,i){"use strict";i.r(e);var s=i(0),n=(i(35),i(24),i(44),["baseLatency","destination","currentTime","sampleRate","listener","state"]),o=["suspend","close","resume","getOutputTimestamp","createMediaElementSource","createMediaStreamSource","createMediaStreamDestination","createBuffer","decodeAudioData","createBufferSource","createConstantSource","createGain","createDelay","createBiquadFilter","createIIRFilter","createWaveShaper","createPanner","createConvolver","createDynamicsCompressor","createAnalyser","createScriptProcessor","createStereoPanner","createOscillator","createPeriodicWave","createChannelSplitter","createChannelMerger","audioWorklet"];s.default.Context=function(){s.default.Emitter.call(this);var t=s.default.defaults(arguments,["context"],s.default.Context);if(!t.context&&(t.context=new s.default.global.AudioContext,!t.context))throw new Error("could not create AudioContext. Possibly too many AudioContexts running already.");for(this._context=t.context;this._context.rawContext;)this._context=this._context.rawContext;n.forEach(function(t){this._defineProperty(this._context,t)}.bind(this)),o.forEach(function(t){this._defineMethod(this._context,t)}.bind(this)),this._latencyHint=t.latencyHint,this._constants={},this.lookAhead=t.lookAhead,this._computedUpdateInterval=0,this._ticker=new a(this.emit.bind(this,"tick"),t.clockSource,t.updateInterval),this._timeouts=new s.default.Timeline,this._timeoutIds=0,this.on("tick",this._timeoutLoop.bind(this)),this._context.onstatechange=function(t){this.emit
5189("statechange",t)}.bind(this)},s.default.extend(s.default.Context,s.default.Emitter),s.default.Emitter.mixin(s.default.Context),s.default.Context.defaults={clockSource:"worker",latencyHint:"interactive",lookAhead:.1,updateInterval:.03},s.default.Context.prototype.isContext=!0,s.default.Context.prototype._defineProperty=function(t,e){s.default.isUndef(this[e])&&Object.defineProperty(this,e,{get:function(){return t[e]},set:function(i){t[e]=i}})},s.default.Context.prototype._defineMethod=function(t,e){s.default.isUndef(this[e])&&Object.defineProperty(this,e,{get:function(){return t[e].bind(t)}})},s.default.Context.prototype.now=function(){return this._context.currentTime+this.lookAhead},Object.defineProperty(s.default.Context.prototype,"destination",{get:function(){return this.master?this.master:this._context.destination}}),s.default.Context.prototype.resume=function(){return"suspended"===this._context.state&&this._context instanceof AudioContext?this._context.resume():Promise.resolve()},s.default.Context.prototype.close=function(){var t=Promise.resolve();return this!==s.default.global.TONE_AUDIO_CONTEXT&&(t=this.rawContext.close()),t.then(function(){s.default.Context.emit("close",this)}.bind(this))},s.default.Context.prototype.getConstant=function(t){if(this._constants[t])return this._constants[t];for(var e=this._context.createBuffer(1,128,this._context.sampleRate),i=e.getChannelData(0),s=0;s<i.length;s++)i[s]=t;var n=this._context.createBufferSource();return n.channelCount=1,n.channelCountMode="explicit",n.buffer=e,n.loop=!0,n.start(0),this._constants[t]=n,n},s.default.Context.prototype._timeoutLoop=function(){for(var t=this.now();this._timeouts&&this._timeouts.length&&this._timeouts.peek().time<=t;)this._timeouts.shift().callback()},s.default.Context.prototype.setTimeout=function(t,e){this._timeoutIds++;var i=this.now();return this._timeouts.add({callback:t,time:i+e,id:this._timeoutIds}),this._timeoutIds},s.default.Context.prototype.clearTimeout=function(t){return this._timeouts.forEach(function(e){e.id===t&&this.remove(e)}),this},Object.defineProperty(s.default.Context.prototype,"updateInterval",{get:function(){return this._ticker.updateInterval},set:function(t){this._ticker.updateInterval=t}}),Object.defineProperty(s.default.Context.prototype,"rawContext",{get:function(){return this._context}}),Object.defineProperty(s.default.Context.prototype,"clockSource",{get:function(){return this._ticker.type},set:function(t){this._ticker.type=t}}),Object.defineProperty(s.default.Context.prototype,"latencyHint",{get:function(){return this._latencyHint},set:function(t){var e=t;if(this._latencyHint=t,s.default.isString(t))switch(t){case"interactive":e=.1,this._context.latencyHint=t;break;case"playback":e=.8,this._context.latencyHint=t;break;case"balanced":e=.25,this._context.latencyHint=t;break;case"fastest":this._context.latencyHint="interactive",e=.01}this.lookAhead=e,this.updateInterval=e/3}}),s.default.Context.prototype.dispose=function(){return this.close().then(function(){for(var t in s.default.Emitter.prototype.dispose.call(this),this._ticker.dispose(),this._ticker=null,this._timeouts.dispose(),this._timeouts=null,this._constants)this._constants[t].disconnect();this._constants=null}.bind(this))};var a=function(t,e,i){this._type=e,this._updateInterval=i,this._callback=s.default.defaultArg(t,s.default.noOp),this._createClock()};if(a.Type={Worker:"worker",Timeout:"timeout",Offline:"offline"},a.prototype._createWorker=function(){s.default.global.URL=s.default.global.URL||s.default.global.webkitURL;var t=new Blob(["var timeoutTime = "+(1e3*this._updateInterval).toFixed(1)+";self.onmessage = function(msg){\ttimeoutTime = parseInt(msg.data);};function tick(){\tsetTimeout(tick, timeoutTime);\tself.postMessage('tick');}tick();"]),e=URL.createObjectURL(t),i=new Worker(e);i.onmessage=this._callback.bind(this),this._worker=i},a.prototype._createTimeout=function(){this._timeout=setTimeout(function(){this._createTimeout(),this._callback()}.bind(this),1e3*this._updateInterval)},a.prototype._createClock=function(){if(this._type===a.Type.Worker)try{this._createWorker()}catch(t){this._type=a.Type.Timeout,this._createClock()}else this._type===a.Type.Timeout&&this._createTimeout()},Object.defineProperty(a.prototype,"updateInterval",{get:function(){return this._updateInterval},set:function(t){this._updateInterval=Math.max(t,128/44100),this._type===a.Type.Worker&&this._worker.postMessage(Math.max(1e3*t,1))}}),Object.defineProperty(a.prototype,"type",{get:function(){return this._type},set:function(t){this._disposeClock(),this._type=t,this._createClock()}}),a.prototype._disposeClock=function(){this._timeout&&(clearTimeout(this._timeout),this._timeout=null),this._worker&&(this._worker.terminate(),this._worker.onmessage=null,this._worker=null)},a.prototype.dispose=function(){this._disposeClock(),this._callback=null},s.default.supported&&!s.default.initialized){if(s.default.global.TONE_AUDIO_CONTEXT||(s.default.global.TONE_AUDIO_CONTEXT=new s.default.Context),s.default.context=s.default.global.TONE_AUDIO_CONTEXT,!s.default.global.TONE_SILENCE_LOGGING){var r="v";"dev"===s.default.version&&(r="");var l=" * Tone.js "+r+s.default.version+" * ";console.log("%c"+l,"background: #000; color: #fff")}}else s.default.supported||s.default.global.TONE_SILENCE_LOGGING||console.warn("This browser does not support Tone.js");e.default=s.default.Context}
5189,function(t,e,i){"use strict";i.r(e);var s=i(0);i(4),i(40);s.default.Instrument=function(t){t=s.default.defaultArg(t,s.default.Instrument.defaults),s.default.AudioNode.call(this),this._volume=this.output=new s.default.Volume(t.volume),this.volume=this._volume.volume,this._readOnly("volume"),this._scheduledEvents=[]},s.default.extend(s.default.Instrument,s.default.AudioNode),s.default.Instrument.defaults={volume:0},s.default.Instrument.prototype.triggerAttack=s.default.noOp,s.default.Instrument.prototype.triggerRelease=s.default.noOp,s.default.Instrument.prototype.sync=function(){return this._syncMethod("triggerAttack",1),this._syncMethod("triggerRelease",0),this},s.default.Instrument.prototype._syncMethod=function(t,e){var i=this["_original_"+t]=this[t];this[t]=function(){var t=Array.prototype.slice.call(arguments),n=t[e],o=s.default.Transport.schedule(function(s){t[e]=s,i.apply(this,t)}.bind(this),n);this._scheduledEvents.push(o)}.bind(this)},s.default.Instrument.prototype.unsync=function(){return this._scheduledEvents.forEach(function(t){s.default.Transport.clear(t)}),this._scheduledEvents=[],this._original_triggerAttack&&(this.triggerAttack=this._original_triggerAttack,this.triggerRelease=this._original_triggerRelease),this},s.default.Instrument.prototype.triggerAttackRelease=function(t,e,i,s){return i=this.toSeconds(i),e=this.toSeconds(e),this.triggerAttack(t,i,s),this.triggerRelease(i+e),this},s.default.Instrument.prototype.dispose=function(){return s.default.AudioNode.prototype.dispose.call(this),this._volume.dispose(),this._volume=null,this._writable(["volume"]),this.volume=null,this.unsync(),this._scheduledEvents=null,this},e.default=s.default.Instrument},function(t,e,i){"use strict";i.r(e);var s=i(0);i(7),i(2);s.default.AudioToGain=function(){s.default.SignalBase.call(this),this._norm=this.input=this.output=new s.default.WaveShaper(function(t){return(t+1)/2})},s.default.extend(s.default.AudioToGain,s.default.SignalBase),s.default.AudioToGain.prototype.dispose=function(){return s.default.SignalBase.prototype.dispose.call(this),this._norm.dispose(),this._norm=null,this},e.default=s.default.AudioToGain},function(t,e,i){"use strict";i.r(e);var s=i(0);i(2),i(13),i(89),i(3),i(1);s.default.CrossFade=function(t){s.default.AudioNode.call(this),this.createInsOuts(2,1),this.a=this.input[0]=new s.default.Gain,this.b=this.input[1]=new s.default.Gain,this.fade=new s.default.Signal(s.default.defaultArg(t,.5),s.default.Type.NormalRange),this._equalPowerA=new s.default.EqualPowerGain,this._equalPowerB=new s.default.EqualPowerGain,this._one=this.context.getConstant(1),this._invert=new s.default.Subtract,this.a.connect(this.output),this.b.connect(this.output),this.fade.chain(this._equalPowerB,this.b.gain),s.default.connect(this._one,this._invert,0,0),this.fade.connect(this._invert,0,1),this._invert.chain(this._equalPowerA,this.a.gain),this._readOnly("fade")},s.default.extend(s.default.CrossFade,s.default.AudioNode),s.default.CrossFade.prototype.dispose=function(){return s.default.AudioNode.prototype.dispose.call(this),this._writable("fade"),this._equalPowerA.dispose(),this._equalPowerA=null,this._equalPowerB.dispose(),this._equalPowerB=null,this.fade.dispose(),this.fade=null,this._invert.dispose(),this._invert=null,this._one=null,this.a.dispose(),this.a=null,this.b.dispose(),this.b=null,this},e.default=s.default.CrossFade},function(t,e,i){"use strict";i.r(e);var s=i(0);s.default.Timeline=function(){var t=s.default.defaults(arguments,["memory"],s.default.Timeline);s.default.call(this),this._timeline=[],this.memory=t.memory},s.default.extend(s.default.Timeline),s.default.Timeline.defaults={memory:1/0},Object.defineProperty(s.default.Timeline.prototype,"length",{get:function(){return this._timeline.length}}),s.default.Timeline.prototype.add=function(t){if(s.default.isUndef(t.time))throw new Error("Tone.Timeline: events must have a time attribute");t.time=t.time.valueOf();var e=this._search(t.time);if(this._timeline.splice(e+1,0,t),this.length>this.memory){var i=this.length-this.memory;this._timeline.splice(0,i)}return this},s.default.Timeline.prototype.remove=function(t){var e=this._timeline.indexOf(t);return-1!==e&&this._timeline.splice(e,1),this},s.default.Timeline.prototype.get=function(t,e){e=s.default.defaultArg(e,"t
5189ime");var i=this._search(t,e);return-1!==i?this._timeline[i]:null},s.default.Timeline.prototype.peek=function(){return this._timeline[0]},s.default.Timeline.prototype.shift=function(){return this._timeline.shift()},s.default.Timeline.prototype.getAfter=function(t,e){e=s.default.defaultArg(e,"time");var i=this._search(t,e);return i+1<this._timeline.length?this._timeline[i+1]:null},s.default.Timeline.prototype.getBefore=function(t,e){e=s.default.defaultArg(e,"time");var i=this._timeline.length;if(i>0&&this._timeline[i-1][e]<t)return this._timeline[i-1];var n=this._search(t,e);return n-1>=0?this._timeline[n-1]:null},s.default.Timeline.prototype.cancel=function(t){if(this._timeline.length>1){var e=this._search(t);if(e>=0)if(this._timeline[e].time===t){for(var i=e;i>=0&&this._timeline[i].time===t;i--)e=i;this._timeline=this._timeline.slice(0,e)}else this._timeline=this._timeline.slice(0,e+1);else this._timeline=[]}else 1===this._timeline.length&&this._timeline[0].time>=t&&(this._timeline=[]);return this},s.default.Timeline.prototype.cancelBefore=function(t){var e=this._search(t);return e>=0&&(this._timeline=this._timeline.slice(e+1)),this},s.default.Timeline.prototype.previousEvent=function(t){var e=this._timeline.indexOf(t);return e>0?this._timeline[e-1]:null},s.default.Timeline.prototype._search=function(t,e){if(0===this._timeline.length)return-1;e=s.default.defaultArg(e,"time");var i=0,n=this._timeline.length,o=n;if(n>0&&this._timeline[n-1][e]<=t)return n-1;for(;i<o;){var a=Math.floor(i+(o-i)/2),r=this._timeline[a],l=this._timeline[a+1];if(r[e]===t){for(var u=a;u<this._timeline.length;u++){this._timeline[u][e]===t&&(a=u)}return a}if(r[e]<t&&l[e]>t)return a;r[e]>t?o=a:i=a+1}return-1},s.default.Timeline.prototype._iterate=function(t,e,i){e=s.default.defaultArg(e,0),i=s.default.defaultArg(i,this._timeline.length-1),this._timeline.slice(e,i+1).forEach(function(e){t.call(this,e)}.bind(this))},s.default.Timeline.prototype.forEach=function(t){return this._iterate(t),this},s.default.Timeline.prototype.forEachBefore=function(t,e){var i=this._search(t);return-1!==i&&this._iterate(e,0,i),this},s.default.Timeline.prototype.forEachAfter=function(t,e){var i=this._search(t);return this._iterate(e,i+1),this},s.default.Timeline.prototype.forEachBetween=function(t,e,i){var s=this._search(t),n=this._search(e);return-1!==s&&-1!==n?(this._timeline[s].time!==t&&(s+=1),this._timeline[n].time===e&&(n-=1),this._iterate(i,s,n)):-1===s&&this._iterate(i,0,n),this},s.default.Timeline.prototype.forEachFrom=function(t,e){for(var i=this._search(t);i>=0&&this._timeline[i].time>=t;)i--;return this._iterate(e,i+1),this},s.default.Timeline.prototype.forEachAtTime=function(t,e){var i=this._search(t);return-1!==i&&this._iterate(function(i){i.time===t&&e.call(this,i)},0,i),this},s.default.Timeline.prototype.dispose=function(){return s.default.prototype.dispose.call(this),this._timeline=null,this},e.default=s.default.Timeline},function(t,e,i){"use strict";i.r(e);var s=i(0);i(21),i(2);s.default.Monophonic=function(t){t=s.default.defaultArg(t,s.default.Monophonic.defaults),s.default.Instrument.call(this,t),this.portamento=t.portamento},s.default.extend(s.default.Monophonic,s.default.Instrument),s.default.Monophonic.defaults={portamento:0},s.default.Monophonic.prototype.triggerAttack=function(t,e,i){return this.log("triggerAttack",t,e,i),e=this.toSeconds(e),this._triggerEnvelopeAttack(e,i),this.setNote(t,e),this},s.default.Monophonic.prototype.triggerRelease=function(t){return this.log("triggerRelease",t),t=this.toSeconds(t),this._triggerEnvelopeRelease(t),this},s.default.Monophonic.prototype._triggerEnvelopeAttack=function(){},s.default.Monophonic.prototype._triggerEnvelopeRelease=function(){},s.default.Monophonic.prototype.getLevelAtTime=function(t){return t=this.toSeconds(t),this.envelope.getValueAtTime(t)},s.default.Monophonic.prototype.setNote=function(t,e){if(e=this.toSeconds(e),this.portamento>0&&this.getLevelAtTime(e)>.05){var i=this.toSeconds(this.portamento);this.frequency.exponentialRampTo(t,i,e)}else this.frequency.setValueAtTime(t,e);return this},e.default=s.default.Monophonic}
5189,function(t,e,i){"use strict";i.r(e);var s=i(0);i(29),i(5),i(2);s.default.Scale=function(t,e){s.default.SignalBase.call(this),this._outputMin=s.default.defaultArg(t,0),this._outputMax=s.default.defaultArg(e,1),this._scale=this.input=new s.default.Multiply(1),this._add=this.output=new s.default.Add(0),this._scale.connect(this._add),this._setRange()},s.default.extend(s.default.Scale,s.default.SignalBase),Object.defineProperty(s.default.Scale.prototype,"min",{get:function(){return this._outputMin},set:function(t){this._outputMin=t,this._setRange()}}),Object.defineProperty(s.default.Scale.prototype,"max",{get:function(){return this._outputMax},set:function(t){this._outputMax=t,this._setRange()}}),s.default.Scale.prototype._setRange=function(){this._add.value=this._outputMin,this._scale.value=this._outputMax-this._outputMin},s.default.Scale.prototype.dispose=function(){return s.default.SignalBase.prototype.dispose.call(this),this._add.dispose(),this._add=null,this._scale.dispose(),this._scale=null,this},e.default=s.default.Scale},function(t,e,i){"use strict";i.r(e);var s=i(0);i(2),i(3),i(1);s.default.Volume=function(){var t=s.default.defaults(arguments,["volume"],s.default.Volume);s.default.AudioNode.call(this,t),this.output=this.input=new s.default.Gain(t.volume,s.default.Type.Decibels),this._unmutedVolume=t.volume,this.volume=this.output.gain,this._readOnly("volume"),this.mute=t.mute},s.default.extend(s.default.Volume,s.default.AudioNode),s.default.Volume.defaults={volume:0,mute:!1},Object.defineProperty(s.default.Volume.prototype,"mute",{get:function(){return this.volume.value===-1/0},set:function(t){!this.mute&&t?(this._unmutedVolume=this.volume.value,this.volume.value=-1/0):this.mute&&!t&&(this.volume.value=this._unmutedVolume)}}),s.default.Volume.prototype.dispose=function(){return this.input.dispose(),s.default.AudioNode.prototype.dispose.call(this),this._writable("volume"),this.volume.dispose(),this.volume=null,this},e.default=s.default.Volume},function(t,e,i){"use strict";i.r(e);var s=i(0);i(3),i(30);s.default.Zero=function(){s.default.SignalBase.call(this),this._gain=this.input=this.output=new s.default.Gain,s.default.connect(this.context.getConstant(0),this._gain)},s.default.extend(s.default.Zero,s.default.SignalBase),s.default.Zero.prototype.dispose=function(){return s.default.SignalBase.prototype.dispose.call(this),this._gain.dispose(),this._gain=null,this},e.default=s.default.Zero},function(t,e,i){"use strict";i.r(e);var s=i(0);i(2),i(3);s.default.Add=function(t){s.default.Signal.call(this),this.createInsOuts(2,0),this._sum=this.input[0]=this.input[1]=this.output=new s.default.Gain,this._param=this.input[1]=new s.default.Signal(t),this._param.connect(this._sum)},s.default.extend(s.default.Add,s.default.Signal),s.default.Add.prototype.dispose=function(){return s.default.Signal.prototype.dispose.call(this),this._sum.dispose(),this._sum=null,this},e.default=s.default.Add},function(t,e,i){"use strict";i.r(e);var s=i(0);i(1);s.default.SignalBase=function(){s.default.AudioNode.call(this)},s.default.extend(s.default.SignalBase,s.default.AudioNode),s.default.SignalBase.prototype.connect=function(t,e,i){return s.default.Signal&&s.default.Signal===t.constructor||s.default.Param&&s.default.Param===t.constructor?(t._param.cancelScheduledValues(0),t._param.setValueAtTime(0,0),t.overridden=!0):t instanceof AudioParam&&(t.cancelScheduledValues(0),t.setValueAtTime(0,0)),s.default.AudioNode.prototype.connect.call(this,t,e,i),this},e.default=s.default.SignalBase},function(t,e,i){"use strict";i.r(e);var s=i(0);i(47),i(3);s.default.AmplitudeEnvelope=function(){s.default.Envelope.apply(this,arguments),this.input=this.output=new s.default.Gain,this._sig.connect(this.output.gain)},s.default.extend(s.default.AmplitudeEnvelope,s.default.Envelope),s.default.AmplitudeEnvelope.prototype.dispose=function(){return s.default.Envelope.prototype.dispose.call(this),this},e.default=s.default.AmplitudeEnvelope},function(t,e,i){"use strict";i.r(e);var s=i(0);i(11),i(6),i(3),i(1);s.default.BufferSource=function(){var t=s.default.defaults(arguments,["buffer","onload"],s.default.BufferSource);s.default.AudioNode.call(this,t),this.onended=t.onended,this._startTime=-1,this._sourceStarted=!1,this._sourceStopped=!1,this._stopTime=-1,this._gainNode=this.output=new s.default.Gain(0),this._source=this.context.createBufferSource(),s.default.connect(this._source,this._gainNode),this._source.onended=this._onended.bind(this),this._buffer=new s.default.Buffer(t.buffer,t.onload),this.playbackRate=new s.default.Param({param:this._source.playbackRate,units:s.default.Type.Positive,value:t.playbackRate}),this.fadeIn=t.fadeIn,this.fadeOut=t.fadeOut,this.curve=t.curve,this._onendedTimeout=-1,this.loop=t.loop,this.loopStart=t.loopStart,this.loopEnd=t.loopEnd},s.default.extend(s.default.BufferSource,s.default.AudioNode),s.default.BufferSource.defaults={one
5189nded:s.default.noOp,onload:s.default.noOp,loop:!1,loopStart:0,loopEnd:0,fadeIn:0,fadeOut:0,curve:"linear",playbackRate:1},Object.defineProperty(s.default.BufferSource.prototype,"state",{get:function(){return this.getStateAtTime(this.now())}}),s.default.BufferSource.prototype.getStateAtTime=function(t){return t=this.toSeconds(t),-1!==this._startTime&&this._startTime<=t&&(-1===this._stopTime||t<this._stopTime)&&!this._sourceStopped?s.default.State.Started:s.default.State.Stopped},s.default.BufferSource.prototype.start=function(t,e,i,n){this.log("start",t,e,i,n),this.assert(-1===this._startTime,"can only be started once"),this.assert(this.buffer.loaded,"buffer is either not set or not loaded"),this.assert(!this._sourceStopped,"source is already stopped"),t=this.toSeconds(t),e=this.loop?s.default.defaultArg(e,this.loopStart):s.default.defaultArg(e,0),e=this.toSeconds(e),e=Math.max(e,0),n=s.default.defaultArg(n,1);var o=this.toSeconds(this.fadeIn);if(o>0?(this._gainNode.gain.setValueAtTime(0,t),"linear"===this.curve?this._gainNode.gain.linearRampToValueAtTime(n,t+o):this._gainNode.gain.exponentialApproachValueAtTime(n,t,o)):this._gainNode.gain.setValueAtTime(n,t),this._startTime=t,s.default.isDefined(i)){var a=this.toSeconds(i);a=Math.max(a,0),this.stop(t+a)}if(this.loop){var r=this.loopEnd||this.buffer.duration,l=this.loopStart;e>=r&&(e=(e-l)%(r-l)+l)}return this._source.buffer=this.buffer.get(),this._source.loopEnd=this.loopEnd||this.buffer.duration,e<this.buffer.duration&&(this._sourceStarted=!0,this._source.start(t,e)),this},s.default.BufferSource.prototype.stop=function(t){this.log("stop",t),this.assert(this.buffer.loaded,"buffer is either not set or not loaded"),this.assert(!this._sourceStopped,"source is already stopped"),t=this.toSeconds(t),-1!==this._stopTime&&this.cancelStop();var e=this.toSeconds(this.fadeOut);return this._stopTime=t+e,e>0?"linear"===this.curve?this._gainNode.gain.linearRampTo(0,e,t):this._gainNode.gain.targetRampTo(0,e,t):(this._gainNode.gain.cancelAndHoldAtTime(t),this._gainNode.gain.setValueAtTime(0,t)),s.default.context.clearTimeout(this._onendedTimeout),this._onendedTimeout=s.default.context.setTimeout(this._onended.bind(this),this._stopTime-this.now()),this},s.default.BufferSource.prototype.cancelStop=function(){if(-1!==this._startTime&&!this._sourceStopped){var t=this.toSeconds(this.fadeIn);this._gainNode.gain.cancelScheduledValues(this._startTime+t+this.sampleTime),this.context.clearTimeout(this._onendedTimeout),this._stopTime=-1}return this},s.default.BufferSource.prototype._onended=function(){if(!this._sourceStopped){this._sourceStopped=!0;var t="exponential"===this.curve?2*this.fadeOut:0;this._sourceStarted&&-1!==this._stopTime&&this._source.stop(this._stopTime+t),this.onended(this),setTimeout(function(){this._source&&(this._source.disconnect(),this._gainNode.disconnect())}.bind(this),1e3*t+100)}},Object.defineProperty(s.default.BufferSource.prototype,"loopStart",{get:function(){return this._source.loopStart},set:function(t){this._source.loopStart=this.toSeconds(t)}}),Object.defineProperty(s.default.BufferSource.prototype,"loopEnd",{get:function(){return this._source.loopEnd},set:function(t){this._source.loopEnd=this.toSeconds(t)}}),Object.defineProperty(s.default.BufferSource.prototype,"buffer",{get:function(){return this._buffer},set:function(t){this._buffer.set(t)}}),Object.defineProperty(s.default.BufferSource.prototype,"loop",{get:function(){return this._source.loop},set:function(t){this._source.loop=t,this.cancelStop()}}),s.default.BufferSource.prototype.dispose=function(){return this._wasDisposed||(this._wasDisposed=!0,s.default.AudioNode.prototype.dispose.call(this),this.onended=null,this._source.onended=null,this._source.disconnect(),this._source=null,this._gainNode.dis
5189pose(),this._gainNode=null,this._buffer.dispose(),this._buffer=null,this._startTime=-1,this.playbackRate=null,s.default.context.clearTimeout(this._onendedTimeout)),this},e.default=s.default.BufferSource},function(t,e,i){"use strict";i.r(e);var s=i(0);i(8),i(2),i(5),i(3);s.default.FeedbackEffect=function(){var t=s.default.defaults(arguments,["feedback"],s.default.FeedbackEffect);s.default.Effect.call(this,t),this._feedbackGain=new s.default.Gain(t.feedback,s.default.Type.NormalRange),this.feedback=this._feedbackGain.gain,this.effectReturn.chain(this._feedbackGain,this.effectSend),this._readOnly(["feedback"])},s.default.extend(s.default.FeedbackEffect,s.default.Effect),s.default.FeedbackEffect.defaults={feedback:.125},s.default.FeedbackEffect.prototype.dispose=function(){return s.default.Effect.prototype.dispose.call(this),this._writable(["feedback"]),this._feedbackGain.dispose(),this._feedbackGain=null,this.feedback=null,this},e.default=s.default.FeedbackEffect},function(t,e,i){"use strict";i.r(e);var s=i(0);i(24),i(4);s.default.TimelineState=function(t){s.default.Timeline.call(this),this._initial=t},s.default.extend(s.default.TimelineState,s.default.Timeline),s.default.TimelineState.prototype.getValueAtTime=function(t){var e=this.get(t);return null!==e?e.state:this._initial},s.default.TimelineState.prototype.setStateAtTime=function(t,e){return this.add({state:t,time:e}),this},s.default.TimelineState.prototype.getLastState=function(t,e){e=this.toSeconds(e);for(var i=this._search(e);i>=0;i--){var s=this._timeline[i];if(s.state===t)return s}},s.default.TimelineState.prototype.getNextState=function(t,e){e=this.toSeconds(e);var i=this._search(e);if(-1!==i)for(var s=i;s<this._timeline.length;s++){var n=this._timeline[s];if(n.state===t)return n}},e.default=s.default.TimelineState},function(t,e,i){"use strict";i.r(e);var s=i(0);s.default.Emitter=function(){s.default.call(this),this._events={}},s.default.extend(s.default.Emitter),s.default.Emitter.prototype.on=function(t,e){for(var i=t.split(/\W+/),s=0;s<i.length;s++){var n=i[s];this._events.hasOwnProperty(n)||(this._events[n]=[]),this._events[n].push(e)}return this},s.default.Emitter.prototype.once=function(t,e){var i=function(){e.apply(this,arguments),this.off(t,i)}.bind(this);return this.on(t,i),this},s.default.Emitter.prototype.off=function(t,e){for(var i=t.split(/\W+/),n=0;n<i.length;n++)if(t=i[n],this._events.hasOwnProperty(t))if(s.default.isUndef(e))this._events[t]=[];else for(var o=this._events[t],a=0;a<o.length;a++)o[a]===e&&o.splice(a,1);return this},s.default.Emitter.prototype.emit=function(t){if(this._events){var e=Array.apply(null,arguments).slice(1);if(this._events.hasOwnProperty(t))for(var i=this._events[t].slice(0),s=0,n=i.length;s<n;s++)i[s].apply(this,e)}return this},s.default.Emitter.mixin=function(t){var e=["on","once","off","emit"];t._events={};for(var i=0;i<e.length;i++){var n=e[i],o=s.default.Emitter.prototype[n];t[n]=o}return s.default.Emitter},s.default.Emitter.prototype.dispose=function(){return s.default.prototype.dispose.call(this),this._events=null,this},e.default=s.default.Emitter},function(t,e,i){"use strict";i.r(e);var s=i(0);i(1),i(44);s.default.supported&&(AnalyserNode.prototype.getFloatTimeDomainData||(AnalyserNode.prototype.getFloatTimeDomainData=function(t){var e=new Uint8Array(t.length);this.getByteTimeDomainData(e);for(var i=0;i<e.length;i++)t[i]=(e[i]-128)/128})),s.default.Analyser=function(){var t=s.default.defaults(arguments,["type","size"],s.default.Analyser);s.default.AudioNode.call(this),this._analyser=this.input=this.output=this.context.createAnalyser(),this._type=t.type,this._buffer=null,this.size=t.size,this.type=t.type},s.default.extend(s.default.Analyser,s.default.AudioNode),s.default.Analyser.defaults={size:1024,type:"fft",smoothing:.8},s.default.Analyser.Type={Waveform:"waveform",FFT:"fft"},s.default.Analyser.prototype.getValue=function(){return this._type===s.default.Analyser.Type.FFT?this._analyser.getFloatFrequencyData(this._buffer):this._type===s.default.Analyser.Type.Waveform&&this._analyser.getFloatTimeDomainData(this._buffer),this._buffer},Object.defineProperty(s.default.Analyser.prototype,"size",{get:function(){return this._analyser.frequencyBinCount},set:function(t){this._analyser.fftSize=2*t,this._buffer=new Float32Array(t)}}),Object.defineProperty(s.default.Analyser.prototype,"type",{get:function(){return this._type},set:function(t){if(t!==s.default.Analyser.Type.Waveform&&t!==s.default.Analyser.Type.FFT)throw new TypeError("Tone.Analyser: invalid type: "+t);this._type=t}}),Object.defineProperty(s.default.Analyser.prototype,"smoothing",{get:function(){return this._analyser.smoothingTimeConstant},set:function(t){this._analyser.smoothingTimeConstant=t}}),s.default.Analyser.prototype.dispose=function(){s.default.AudioNode.prototype.dispose.call(this),this._analyser.disconnect(),this._analyser=null,this._buffer=null};e.default=s.default.Analyser}
5189,function(t,e,i){"use strict";i.r(e);var s=i(0);i(6),i(17),i(50),i(69),i(49),i(68),i(67);s.default.OmniOscillator=function(){var t=s.default.defaults(arguments,["frequency","type"],s.default.OmniOscillator);s.default.Source.call(this,t),this.frequency=new s.default.Signal(t.frequency,s.default.Type.Frequency),this.detune=new s.default.Signal(t.detune,s.default.Type.Cents),this._sourceType=void 0,this._oscillator=null,this.type=t.type,this._readOnly(["frequency","detune"]),this.set(t)},s.default.extend(s.default.OmniOscillator,s.default.Source),s.default.OmniOscillator.defaults={frequency:440,detune:0,type:"sine",phase:0};var n="PulseOscillator",o="PWMOscillator",a="Oscillator",r="FMOscillator",l="AMOscillator",u="FatOscillator";s.default.OmniOscillator.prototype._start=function(t){this._oscillator.start(t)},s.default.OmniOscillator.prototype._stop=function(t){this._oscillator.stop(t)},s.default.OmniOscillator.prototype.restart=function(t){this._oscillator.restart(t)},Object.defineProperty(s.default.OmniOscillator.prototype,"type",{get:function(){var t="";return this._sourceType===r?t="fm":this._sourceType===l?t="am":this._sourceType===u&&(t="fat"),t+this._oscillator.type},set:function(t){"fm"===t.substr(0,2)?(this._createNewOscillator(r),this._oscillator.type=t.substr(2)):"am"===t.substr(0,2)?(this._createNewOscillator(l),this._oscillator.type=t.substr(2)):"fat"===t.substr(0,3)?(this._createNewOscillator(u),this._oscillator.type=t.substr(3)):"pwm"===t?this._createNewOscillator(o):"pulse"===t?this._createNewOscillator(n):(this._createNewOscillator(a),this._oscillator.type=t)}}),Object.defineProperty(s.default.OmniOscillator.prototype,"partials",{get:function(){return this._oscillator.partials},set:function(t){this._oscillator.partials=t}}),Object.defineProperty(s.default.OmniOscillator.prototype,"partialCount",{get:function(){return this._oscillator.partialCount},set:function(t){this._oscillator.partialCount=t}}),s.default.OmniOscillator.prototype.set=function(t,e){return"type"===t?this.type=e:s.default.isObject(t)&&t.hasOwnProperty("type")&&(this.type=t.type),s.default.prototype.set.apply(this,arguments),this},s.default.OmniOscillator.prototype.get=function(t){var e=this._oscillator.get(t);return e.type=this.type,e},s.default.OmniOscillator.prototype._createNewOscillator=function(t){if(t!==this._sourceType){this._sourceType=t;var e=s.default[t],i=this.now();if(null!==this._oscillator){var n=this._oscillator;n.stop(i),this.context.setTimeout(function(){n.dispose(),n=null},this.blockTime)}this._oscillator=new e,this.frequency.connect(this._oscillator.frequency),this.detune.connect(this._oscillator.detune),this._oscillator.connect(this.output),this.state===s.default.State.Started&&this._oscillator.start(i)}},Object.defineProperty(s.default.OmniOscillator.prototype,"phase",{get:function(){return this._oscillator.phase},set:function(t){this._oscillator.phase=t}});var d={PulseOscillator:"pulse",PWMOscillator:"pwm",Oscillator:"oscillator",FMOscillator:"fm",AMOscillator:"am",FatOscillator:"fat"};Object.defineProperty(s.default.OmniOscillator.prototype,"sourceType",{get:function(){return d[this._sourceType]},set:function(t){var e="sine";"pwm"!==this._oscillator.type&&"pulse"!==this._oscillator.type&&(e=this._oscillator.type),t===d.FMOscillator?this.type="fm"+e:t===d.AMOscillator?this.type="am"+e:t===d.FatOscillator?this.type="fat"+e:t===d.Oscillator?this.type=e:t===d.PulseOscillator?this.type="pulse":t===d.PWMOscillator&&(this.type="pwm")}}),Object.defineProperty(s.default.OmniOscillator.prototype,"baseType",{get:function(){return this._oscillator.baseType},set:function(t){this.sourceType!==d.PulseOscillator&&this.sourceType!==d.PWMOscillator&&(this._oscillator.baseType=t)}}),Object.defineProperty(s.default.OmniOscillator.prototype,"width",{get:function(){return this._sourceType===n?this._oscillator.width:void 0}}),Object.defineProperty(s.default.OmniOscillator.prototype,"count",{get:function(){return this._sourceType===u?this._oscillator.count:void 0},set:function(t){this._sourceType===u&&(this._oscillator.count=t)}}),Object.defineProperty(s.default.OmniOscillator.prototype,"spread",{get:function(){return this._sourceType===u?this._oscillator.spread:void 0},set:function(t){this._sourceType===u&&(this._oscillator.spread=t)}}),Object.defineProperty(s.default.OmniOscillator.prototype,"modulationType",{get:function(){return this._sourceType===r||this._sourceType===l?this._oscillator.modulationType:void 0},set:function(t){this._sourceType!==r&&this._sourceType!==l||(this._oscillator.modulationType=t)}}),Object.defineProperty(s.default.OmniOscillator.prototype,"modulationIndex",{get:function(){return this._sourceType===r?this._oscillator.modulationIndex:void 0}}),Object.defineProperty(s.default.OmniOscillator.prototype,"harmonicity",{get:function(){return this._sourceType===r||this._sourceType===l?this._oscillator.harmonicity:void 0}}),Object.defineProperty(s.default.OmniOscillator.prototype,"modulationFrequency",{get:function(){return this._sourceType===o?this._oscillator.modulationFrequency:void 0}}),s.default.OmniOscillator.prototype.dispose=function(){return s.default.Source.prototype.dispose.call(this),this._writable(["frequency","detune"]),this.detune.dispose(),this.detune=null,this.frequency.dispose(),this.frequency=null,this._oscillator.dispose(),this._oscillator=null,this._sourceType=null,this},e.default=s.default.OmniOscillator}
5189,function(t,e,i){"use strict";i.r(e);var s=i(0);i(31),i(37),i(25);s.default.Synth=function(t){t=s.default.defaultArg(t,s.default.Synth.defaults),s.default.Monophonic.call(this,t),this.oscillator=new s.default.OmniOscillator(t.oscillator),this.frequency=this.oscillator.frequency,this.detune=this.oscillator.detune,this.envelope=new s.default.AmplitudeEnvelope(t.envelope),this.oscillator.chain(this.envelope,this.output),this._readOnly(["oscillator","frequency","detune","envelope"])},s.default.extend(s.default.Synth,s.default.Monophonic),s.default.Synth.defaults={oscillator:{type:"triangle"},envelope:{attack:.005,decay:.1,sustain:.3,release:1}},s.default.Synth.prototype._triggerEnvelopeAttack=function(t,e){return this.envelope.triggerAttack(t,e),this.oscillator.start(t),0===this.envelope.sustain&&this.oscillator.stop(t+this.toSeconds(this.envelope.attack)+this.toSeconds(this.envelope.decay)),this},s.default.Synth.prototype._triggerEnvelopeRelease=function(t){return t=this.toSeconds(t),this.envelope.triggerRelease(t),this.oscillator.stop(t+this.toSeconds(this.envelope.release)),this},s.default.Synth.prototype.dispose=function(){return s.default.Monophonic.prototype.dispose.call(this),this._writable(["oscillator","frequency","detune","envelope"]),this.oscillator.dispose(),this.oscillator=null,this.envelope.dispose(),this.envelope=null,this.frequency=null,this.detune=null,this},e.default=s.default.Synth},function(t,e,i){"use strict";i.r(e);var s=i(0);i(6),i(11),i(32);s.default.Noise=function(){var t=s.default.defaults(arguments,["type"],s.default.Noise);s.default.Source.call(this,t),this._source=null,this._type=t.type,this._playbackRate=t.playbackRate},s.default.extend(s.default.Noise,s.default.Source),s.default.Noise.defaults={type:"white",playbackRate:1},Object.defineProperty(s.default.Noise.prototype,"type",{get:function(){return this._type},set:function(t){if(this._type!==t){if(!(t in n))throw new TypeError("Tone.Noise: invalid type: "+t);if(this._type=t,this.state===s.default.State.Started){var e=this.now();this._stop(e),this._start(e)}}}}),Object.defineProperty(s.default.Noise.prototype,"playbackRate",{get:function(){return this._playbackRate},set:function(t){this._playbackRate=t,this._source&&(this._source.playbackRate.value=t)}}),s.default.Noise.prototype._start=function(t){var e=n[this._type];this._source=new s.default.BufferSource(e).connect(this.output),this._source.loop=!0,this._source.playbackRate.value=this._playbackRate,this._source.start(this.toSeconds(t),Math.random()*(e.duration-.001))},s.default.Noise.prototype._stop=function(t){this._source&&(this._source.stop(this.toSeconds(t)),this._source=null)},s.default.Noise.prototype.restart=function(t){return this._stop(t),this._start(t),this},s.default.Noise.prototype.dispose=function(){return s.default.Source.prototype.dispose.call(this),null!==this._source&&(this._source.disconnect(),this._source=null),this._buffer=null,this};var n={},o={};Object.defineProperty(n,"pink",{get:function(){if(!o.pink){for(var t=[],e=0;e<2;e++){var i,n,a,r,l,u,d,f=new Float32Array(220500);t[e]=f,i=n=a=r=l=u=d=0;for(var h=0;h<220500;h++){var c=2*Math.random()-1;i=.99886*i+.0555179*c,n=.99332*n+.0750759*c,a=.969*a+.153852*c,r=.8665*r+.3104856*c,l=.55*l+.5329522*c,u=-.7616*u-.016898*c,f[h]=i+n+a+r+l+u+d+.5362*c,f[h]*=.11,d=.115926*c}}o.pink=(new s.default.Buffer).fromArray(t)}return o.pink}}),Object.defineProperty(n,"brown",{get:function(){if(!o.brown){for(var t=[],e=0;e<2;e++){var i=new Float32Array(220500);t[e]=i;for(var n=0,a=0;a<220500;a++){var r=2*Math.random()-1;i[a]=(n+.02*r)/1.02,n=i[a],i[a]*=3.5}}o.brown=(new s.default.Buffer).fromArray(t)}return o.brown}}),Object.defineProperty(n,"white",{get:function(){if(!o.white){for(var t=[],e=0;e<2;e++){var i=new Float32Array(220500);t[e]=i;for(var n=0;n<220500;n++)i[n]=2*Math.random()-1}o.white=(new s.default.Buffer).fromArray(t)}return o.white}}),e.default=s.default.Noise},function(t,e,i){"use strict";i.r(e);var s=i(0);i(27),i(20),i(1);s.default.Master=function(){s.default.AudioNode.call(this),s.default.getContext(function(){this.createInsOuts(1,0),this._volume=this.output=new s.default.Volume,this.volume=this._volume.volume,this._readOnly("volume"),s.default.connectSeries(this.input,this.output,this.context.destination),this.context.master=this}.bind(this))},s.default.extend(s.default.Master,s.default.AudioNode),s.default.Master.defaults={volume:0,mute:!1},s.default.Master.prototype.isMaster=!0,Object.defineProperty(s.default.Master.prototype,"mute",{get:function(){return this._volume.mute},set:function(t){this._volume.mute=t}}),s.default.Master.prototype.chain=function(){this.input.disconnect();var t=Array.from(arguments);t.unshift(this.input),t.push(this.output),s.default.connectSeries.apply(void 0,t)},s.default.Master.prototype.dispose=function(){s.default.AudioNode.prototype.dispose.call(this),this._writable("volume"),this._volume.dispose(),this._volume=null,this.volume=null},s.default.AudioNode.prototype.toMaster=function(){return this.connect(this.context.master),this};var n=s.default.Master;s.default.Master=new n,s.default.Context.on("init",function(t){t.master&&t.master.isMaster?s.default.Master=t.master:s.default.Master=new n}),s.default.Context.on("close",function(t){t.master&&t.master.isMaster&&t.master.dispose()}),e.default=s.default.Master}
5189,function(t,e,i){"use strict";i.r(e);var s=i(0);i(86),i(47);s.default.FrequencyEnvelope=function(){var t=s.default.defaults(arguments,["attack","decay","sustain","release"],s.default.Envelope);t=s.default.defaultArg(t,s.default.FrequencyEnvelope.defaults),s.default.ScaledEnvelope.call(this,t),this._octaves=t.octaves,this.baseFrequency=t.baseFrequency,this.octaves=t.octaves,this.exponent=t.exponent},s.default.extend(s.default.FrequencyEnvelope,s.default.Envelope),s.default.FrequencyEnvelope.defaults={baseFrequency:200,octaves:4,exponent:1},Object.defineProperty(s.default.FrequencyEnvelope.prototype,"baseFrequency",{get:function(){return this._scale.min},set:function(t){this._scale.min=this.toFrequency(t),this.octaves=this._octaves}}),Object.defineProperty(s.default.FrequencyEnvelope.prototype,"octaves",{get:function(){return this._octaves},set:function(t){this._octaves=t,this._scale.max=this.baseFrequency*Math.pow(2,t)}}),Object.defineProperty(s.default.FrequencyEnvelope.prototype,"exponent",{get:function(){return this._exp.value},set:function(t){this._exp.value=t}}),s.default.FrequencyEnvelope.prototype.dispose=function(){return s.default.ScaledEnvelope.prototype.dispose.call(this),this},e.default=s.default.FrequencyEnvelope},function(t,e,i){"use strict";i.r(e);var s=i(0);i(26),i(61);s.default.ScaleExp=function(t,e,i){s.default.SignalBase.call(this),this._scale=this.output=new s.default.Scale(t,e),this._exp=this.input=new s.default.Pow(s.default.defaultArg(i,2)),this._exp.connect(this._scale)}
5189,s.default.extend(s.default.ScaleExp,s.default.SignalBase),Object.defineProperty(s.default.ScaleExp.prototype,"exponent",{get:function(){return this._exp.value},set:function(t){this._exp.value=t}}),Object.defineProperty(s.default.ScaleExp.prototype,"min",{get:function(){return this._scale.min},set:function(t){this._scale.min=t}}),Object.defineProperty(s.default.ScaleExp.prototype,"max",{get:function(){return this._scale.max},set:function(t){this._scale.max=t}}),s.default.ScaleExp.prototype.dispose=function(){return s.default.SignalBase.prototype.dispose.call(this),this._scale.dispose(),this._scale=null,this._exp.dispose(),this._exp=null,this},e.default=s.default.ScaleExp},function(t,e,i){"use strict";i.r(e);var s=i(0);i(14),i(1);s.default.Compressor=function(){var t=s.default.defaults(arguments,["threshold","ratio"],s.default.Compressor);s.default.AudioNode.call(this),this._compressor=this.input=this.output=this.context.createDynamicsCompressor(),this.threshold=new s.default.Param({param:this._compressor.threshold,units:s.default.Type.Decibels,convert:!1}),this.attack=new s.default.Param(this._compressor.attack,s.default.Type.Time),this.release=new s.default.Param(this._compressor.release,s.default.Type.Time),this.knee=new s.default.Param({param:this._compressor.knee,units:s.default.Type.Decibels,convert:!1}),this.ratio=new s.default.Param({param:this._compressor.ratio,convert:!1}),this._readOnly(["knee","release","attack","ratio","threshold"]),this.set(t)},s.default.extend(s.default.Compressor,s.default.AudioNode),s.default.Compressor.defaults={ratio:12,threshold:-24,release:.25,attack:.003,knee:30},s.default.Compressor.prototype.dispose=function(){return s.default.AudioNode.prototype.dispose.call(this),this._writable(["knee","release","attack","ratio","threshold"]),this._compressor.disconnect(),this._compressor=null,this.attack.dispose(),this.attack=null,this.release.dispose(),this.release=null,this.threshold.dispose(),this.threshold=null,this.ratio.dispose(),this.ratio=null,this.knee.dispose(),this.knee=null,this},e.default=s.default.Compressor},function(t,e,i){"use strict";var s=i(0);i(92);if(s.default.supported){!s.default.global.hasOwnProperty("AudioContext")&&s.default.global.hasOwnProperty("webkitAudioContext")&&(s.default.global.AudioContext=s.default.global.webkitAudioContext),AudioContext.prototype.close||(AudioContext.prototype.close=function(){return s.default.isFunction(this.suspend)&&this.suspend(),Promise.resolve()}),AudioContext.prototype.resume||(AudioContext.prototype.resume=function(){var t=this.createBuffer(1,1,this.sampleRate),e=this.createBufferSource();return e.buffer=t,e.connect(this.destination),e.start(0),Promise.resolve()}),!AudioContext.prototype.createGain&&AudioContext.prototype.createGainNode&&(AudioContext.prototype.createGain=AudioContext.prototype.createGainNode),!AudioContext.prototype.createDelay&&AudioContext.prototype.createDelayNode&&(AudioContext.prototype.createDelay=AudioContext.prototype.createDelayNode);var n=!1,o=new OfflineAudioContext(1,1,44100),a=new Uint32Array([1179011410,48,1163280727,544501094,16,131073,44100,176400,1048580,1635017060,8,0,0,0,0]).buffer;try{var r=o.decodeAudioData(a);r&&s.default.isFunction(r.then)&&(n=!0)}catch(t){n=!1}n||(AudioContext.prototype._native_decodeAudioData=AudioContext.prototype.decodeAudioData,AudioContext.prototype.decodeAudioData=function(t){return new Promise(function(e,i){this._native_decodeAudioData(t,e,i)}.bind(this))})}},function(t,e,i){"use strict";i.r(e);var s=i(0);i(63);s.default.TransportTime=function(t,e){if(!(this instanceof s.default.TransportTime))return new s.default.TransportTime(t,e);s.default.Time.call(this,t,e)},s.default.extend(s.default.TransportTime,s.default.Time),s.default.TransportTime.prototype._now=function(){return s.default.Transport.seconds},e.default=s.default.TransportTime},function(t,e,i){"use strict";i.r(e);var s=i(0);i(62);s.default.Frequency=function(t,e){if(!(this instanceof s.default.Frequency))return new s.default.Frequency(t,e);s.default.TimeBase.call(this,t,e)},s.default.extend(s.default.Frequency,s.default.TimeBase),s.default.Frequency.prototype._expressions=Object.assign({},s.default.TimeBase.prototype._expressions,{midi:{regexp:/^(\d+(?:\.\d+)?midi)/,method:function(t){return"midi"===this._defaultUnits?t
5189:s.default.Frequency.mtof(t)}},note:{regexp:/^([a-g]{1}(?:b|#|x|bb)?)(-?[0-9]+)/i,method:function(t,e){var i=n[t.toLowerCase()]+12*(parseInt(e)+1);return"midi"===this._defaultUnits?i:s.default.Frequency.mtof(i)}},tr:{regexp:/^(\d+(?:\.\d+)?):(\d+(?:\.\d+)?):?(\d+(?:\.\d+)?)?/,method:function(t,e,i){var s=1;return t&&"0"!==t&&(s*=this._beatsToUnits(this._getTimeSignature()*parseFloat(t))),e&&"0"!==e&&(s*=this._beatsToUnits(parseFloat(e))),i&&"0"!==i&&(s*=this._beatsToUnits(parseFloat(i)/4)),s}}}),s.default.Frequency.prototype.transpose=function(t){return new this.constructor(this.valueOf()*s.default.intervalToFrequencyRatio(t))},s.default.Frequency.prototype.harmonize=function(t){return t.map(function(t){return this.transpose(t)}.bind(this))},s.default.Frequency.prototype.toMidi=function(){return s.default.Frequency.ftom(this.valueOf())},s.default.Frequency.prototype.toNote=function(){var t=this.toFrequency(),e=Math.log2(t/s.default.Frequency.A4),i=Math.round(12*e)+57,n=Math.floor(i/12);return n<0&&(i+=-12*n),o[i%12]+n.toString()},s.default.Frequency.prototype.toSeconds=function(){return 1/s.default.TimeBase.prototype.toSeconds.call(this)},s.default.Frequency.prototype.toFrequency=function(){return s.default.TimeBase.prototype.toFrequency.call(this)},s.default.Frequency.prototype.toTicks=function(){var t=this._beatsToUnits(1),e=this.valueOf()/t;return Math.floor(e*s.default.Transport.PPQ)},s.default.Frequency.prototype._noArg=function(){return 0},s.default.Frequency.prototype._frequencyToUnits=function(t){return t},s.default.Frequency.prototype._ticksToUnits=function(t){return 1/(60*t/(s.default.Transport.bpm.value*s.default.Transport.PPQ))},s.default.Frequency.prototype._beatsToUnits=function(t){return 1/s.default.TimeBase.prototype._beatsToUnits.call(this,t)},s.default.Frequency.prototype._secondsToUnits=function(t){return 1/t},s.default.Frequency.prototype._defaultUnits="hz";var n={cbb:-2,cb:-1,c:0,"c#":1,cx:2,dbb:0,db:1,d:2,"d#":3,dx:4,ebb:2,eb:3,e:4,"e#":5,ex:6,fbb:3,fb:4,f:5,"f#":6,fx:7,gbb:5,gb:6,g:7,"g#":8,gx:9,abb:7,ab:8,a:9,"a#":10,ax:11,bbb:9,bb:10,b:11,"b#":12,bx:13},o=["C","C#","D","D#","E","F","F#","G","G#","A","A#","B"];s.default.Frequency.A4=440,s.default.Frequency.mtof=function(t){return s.default.Frequency.A4*Math.pow(2,(t-69)/12)},s.default.Frequency.ftom=function(t){return 69+Math.round(12*Math.log2(t/s.default.Frequency.A4))},e.default=s.default.Frequency},function(t,e,i){"use strict";i.r(e);var s=i(0);i(2),i(61),i(4),i(1);s.default.Envelope=function(){var t=s.default.defaults(arguments,["attack","decay","sustain","release"],s.default.Envelope);s.default.AudioNode.call(this),this.attack=t.attack,this.decay=t.decay,this.sustain=t.sustain,this.release=t.release,this._attackCurve="linear",this._releaseCurve="exponential",this._sig=this.output=new s.default.Signal(0),this.attackCurve=t.attackCurve,this.releaseCurve=t.releaseCurve,this.decayCurve=t.decayCurve},s.default.extend(s.default.Envelope,s.default.AudioNode),s.default.Envelope.defaults={attack:.01,decay:.1,sustain:.5,release:1,attackCurve:"linear",decayCurve:"exponential",releaseCurve:"exponential"},Object.defineProperty(s.default.Envelope.prototype,"value",{get:function(){return this.getValueAtTime(this.now())}}),s.default.Envelope.prototype._getCurve=function(t,e){if(s.default.isString(t))return t;if(s.default.isArray(t))for(var i in s.default.Envelope.Type)if(s.default.Envelope.Type[i][e]===t)return i},s.default.Envelope.prototype._setCurve=function(t,e,i){if(s.default.Envelope.Type.hasOwnProperty(i)){var n=s.default.Envelope.Type[i];s.default.isObject(n)?this[t]=n[e]:this[t]=n}else{if(!s.default.isArray(i))throw new Error("Tone.Envelope: invalid curve: "+i);this[t]=i}},Object.defineProperty(s.default.Envelope.prototype,"attackCurve",{get:function(){return this._getCurve(this._attackCurve,"In")},set:function(t){this._setCurve("_attackCurve","In",t)}}),Object.defineProperty(s.default.Envelope.prototype,"releaseCurve",{get:function(){return this._getCurve(this._releaseCurve,"Out")},set:function(t){this._setCurve("_releaseCurve","Out",t)}}),Object.defineProperty(s.default.Envelope.prototype,"decayCurve",{get:function(){return this._decayCurve},set:function(t){if(!["linear","exponential"].includes(t))throw new Error("Tone.Envelope: invalid curve: "+t);this._decayCurve=t}}),s.default.Envelope.prototype.triggerAttack=function(t,e){this.log("triggerAttack",t,e),t=this.toSeconds(t);var i=this.toSeconds(this.attack),n=this.toSeconds(this.decay);e=s.default.defaultArg(e,1);var o=this.getValueAtTime(t);o>0&&(i=(1-o)/(1/i));if(0===i)this._sig.setValueAtTime(e,t);else if("linear"===this._attackCurve)this._sig.linearRampTo(e,i,t);else if("exponential"===this._attackCurve)this._sig.targetRampTo(e,i,t);else if(i>0){this._sig.cancelAndHoldAtTime(t);for(var a=this._attackCurve,r=1;r<a.length;r++)if(a[r-1]<=o&&o<=a[r]){(a=this._attackCurve.slice(r))[0]=o;break}this._sig.setValueCurveAtTime(a,t,i,e)}if(n){var l=e*this.sustain,u=t+i;this.log("decay",u),"linear"===this._decayCurve?this._sig.linearRampTo(l,n,u+this.sampleTime):"exponential"===this._decayCurve&&this._sig.exponentialApproachValueAtTime(l,u,n)}return this},s.default.Envelope.prototype.triggerRelease=function(t){this.log("triggerRelease",t),t=this.toSeconds(t);var e=this.getValueAtTime(t);if(e>0){var i=this.toSeconds(this.release);if("linear"===this._releaseCurve)this._sig.linearRampTo(0,i,t);else if("exponential"===this._releaseCurve)this._sig.targetRampTo(0,i,t);else{var n=this._releaseCurve;s.default.isArray(n)&&(this._sig.cancelAndHoldAtTime(t),this._sig.setValueCurveAtTime(n,t,i,e))}}return this},s.default.Envelope.prototype.getValueAtTime=function(t){return this._sig.getValueAtTime(t)},s.default.Envelope.prototype.triggerAttackRelease=function(t,e,
5189i){return e=this.toSeconds(e),this.triggerAttack(e,i),this.triggerRelease(e+this.toSeconds(t)),this},s.default.Envelope.prototype.cancel=function(t){return this._sig.cancelScheduledValues(t),this},s.default.Envelope.prototype.connect=s.default.SignalBase.prototype.connect,function(){var t,e,i=[];for(t=0;t<128;t++)i[t]=Math.sin(t/127*(Math.PI/2));var n=[];for(t=0;t<127;t++){e=t/127;var o=Math.sin(e*(2*Math.PI)*6.4-Math.PI/2)+1;n[t]=o/10+.83*e}n[127]=1;var a=[];for(t=0;t<128;t++)a[t]=Math.ceil(t/127*5)/5;var r=[];for(t=0;t<128;t++)e=t/127,r[t]=.5*(1-Math.cos(Math.PI*e));var l,u=[];for(t=0;t<128;t++){e=t/127;var d=4*Math.pow(e,3)+.2,f=Math.cos(d*Math.PI*2*e);u[t]=Math.abs(f*(1-e))}function h(t){for(var e=new Array(t.length),i=0;i<t.length;i++)e[i]=1-t[i];return e}s.default.Envelope.Type={linear:"linear",exponential:"exponential",bounce:{In:h(u),Out:u},cosine:{In:i,Out:(l=i,l.slice(0).reverse())},step:{In:a,Out:h(a)},ripple:{In:n,Out:h(n)},sine:{In:r,Out:h(r)}}}(),s.default.Envelope.prototype.dispose=function(){return s.default.AudioNode.prototype.dispose.call(this),this._sig.dispose(),this._sig=null,this._attackCurve=null,this._releaseCurve=null,this},e.default=s.default.Envelope},function(t,e,i){"use strict";i.r(e);var s=i(0);i(23),i(10),i(19),i(7),i(28),i(3),i(2),i(20);if(s.default.supported&&!s.default.global.AudioContext.prototype.createStereoPanner){var n=function(t){this.context=t,this.pan=new s.default.Signal(0,s.default.Type.AudioRange);var e=new s.default.WaveShaper(function(t){return s.default.equalPowerScale((t+1)/2)},4096),i=new s.default.WaveShaper(function(t){return s.default.equalPowerScale(1-(t+1)/2)},4096),n=new s.default.Gain,o=new s.default.Gain,a=this.input=new s.default.Split;a._splitter.channelCountMode="explicit",(new s.default.Zero).fan(e,i);var r=this.output=new s.default.Merge;a.left.chain(n,r.left),a.right.chain(o,r.right),this.pan.chain(i,n.gain),this.pan.chain(e,o.gain)};n.prototype.disconnect=function(){this.output.disconnect.apply(this.output,arguments)},n.prototype.connect=function(){this.output.connect.apply(this.output,arguments)},AudioContext.prototype.createStereoPanner=function(){return new n(this)},s.default.Context.prototype.createStereoPanner=function(){return new n(this)}}i(22),i(1);s.default.Panner=function(){var t=s.default.defaults(arguments,["pan"],s.default.Panner);s.default.AudioNode.call(this),this._panner=this.input=this.output=this.context.createStereoPanner(),this.pan=this._panner.pan,this.pan.value=t.pan,this._readOnly("pan")},s.default.extend(s.default.Panner,s.default.AudioNode),s.default.Panner.defaults={pan:0},s.default.Panner.prototype.dispose=function(){return s.default.AudioNode.prototype.dispose.call(this),this._writable("pan"),this._panner.disconnect(),this._panner=null,this.pan=null,this};e.default=s.default.Panner},function(t,e,i){"use strict";i.r(e);var s=i(0);i(6),i(17),i(5),i(3);s.default.FMOscillator=function(){var t=s.default.defaults(arguments,["frequency","type","modulationType"],s.default.FMOscillator);s.default.Source.call(this,t),this._carrier=new s.default.Oscillator(t.frequency,t.type),this.frequency=new s.default.Signal(t.frequency,s.default.Type.Frequency),this.detune=this._carrier.detune,this.detune.value=t.detune,this.modulationIndex=new s.default.Multiply(t.modulationIndex),this.modulationIndex.units=s.default.Type.Positive,this._modulator=new s.default.Oscillator(t.frequency,t.modulationType),this.harmonicity=new s.default.Multiply(t.harmonicity),this.harmonicity.units=s.default.Type.Positive,this._modulationNode=new s.default.Gain(0),this.frequency.connect(this._carrier.frequency),this.frequency.chain(this.harmonicity,this._modulator.frequency),this.frequency.chain(this.modulationIndex,this._modulationNode),this._modulator.connect(this._modulationNode.gain),this._modulationNode.connect(this._carrier.frequency),this._carrier.connect(this.output),this.detune.connect(this._modulator.detune),this.phase=t.phase,this._readOnly(["modulationIndex","frequency","detune","harmonicity"])},s.default.extend(s.default.FMOscillator,s.default.Source),s.default.FMOscillator.defaults={frequency:440,detune:0,phase:0,type:"sine",modulationIndex:2,modulationType:"square",harmonicity:1},s.default.FMOscillator.prototype._start=function(t){this._modulator.start(t),this._carrier.start(t)},s.default.FMOscillator.prototype._stop=function(t){this._modulator.stop(t),this._carrier.stop(t)},s.default.FMOscillator.prototype.restart=function(t){this._modulator.restart(t),this._carrier.restart(t)},Object.defineProperty(s.default.FMOscillator.prototype,"type",{get:function(){return this._carrier.type},set:function(t){this._carrier.type=t}}),Object.defineProperty(s.default.FMOscillator.prototype,"baseType",{get:function(){return this._carrier.baseType},set:function(t){this._carrier.baseType=t}}),Object.defineProperty(s.default.FMOscillator.prototype,"partialCount",{get:function(){return this._carrier.partialCount},set:function(t){this._carrier.partialCount=t}}),Object.defineProperty(s.default.FMOscillator.prototype,"modulationType",{get:function(){return this._modulator.type},set:function(t){this._modulator.type=t}}),Object.defineProperty(s.default.FMOscillator.prototype,"phase",{get:function(){return this._carrier.phase},set:function(t){this._carrier.phase=t,this._modulator.phase=t}}),Object.defineProperty(s.default.FMOscillator.prototype,"partials",{get:function(){return this._carrier.partials},set:function(t){this._carrier.partials=t}}),s.default.FMOscillator.prototype.dispose=function(){return s.default.Source.prototype.dispose.call(this),this._writable(["modulationIndex","frequency","detune","harmonicity"]),this.frequency.dispose(),this.frequency=null,this.detune=null,this.harmonicity.dispose(),this.harmonicity=null,this._carrier.dispose(),this._carrier=null,this._modulator.dispose(),this._modulator=null,this._modulationNode.dis
5189pose(),this._modulationNode=null,this.modulationIndex.dispose(),this.modulationIndex=null,this},e.default=s.default.FMOscillator},function(t,e,i){"use strict";i.r(e);var s=i(0);i(6),i(17),i(2),i(7),i(3);s.default.PulseOscillator=function(){var t=s.default.defaults(arguments,["frequency","width"],s.default.Oscillator);s.default.Source.call(this,t),this.width=new s.default.Signal(t.width,s.default.Type.NormalRange),this._widthGate=new s.default.Gain(0),this._sawtooth=new s.default.Oscillator({frequency:t.frequency,detune:t.detune,type:"sawtooth",phase:t.phase}),this.frequency=this._sawtooth.frequency,this.detune=this._sawtooth.detune,this._thresh=new s.default.WaveShaper(function(t){return t<0?-1:1}),this._sawtooth.chain(this._thresh,this.output),this.width.chain(this._widthGate,this._thresh),this._readOnly(["width","frequency","detune"])},s.default.extend(s.default.PulseOscillator,s.default.Source),s.default.PulseOscillator.defaults={frequency:440,detune:0,phase:0,width:.2},s.default.PulseOscillator.prototype._start=function(t){t=this.toSeconds(t),this._sawtooth.start(t),this._widthGate.gain.setValueAtTime(1,t)},s.default.PulseOscillator.prototype._stop=function(t){t=this.toSeconds(t),this._sawtooth.stop(t),this._widthGate.gain.setValueAtTime(0,t)},s.default.PulseOscillator.prototype.restart=function(t){this._sawtooth.restart(t),this._widthGate.gain.cancelScheduledValues(t),this._widthGate.gain.setValueAtTime(1,t)},Object.defineProperty(s.default.PulseOscillator.prototype,"phase",{get:function(){return this._sawtooth.phase},set:function(t){this._sawtooth.phase=t}}),Object.defineProperty(s.default.PulseOscillator.prototype,"type",{get:function(){return"pulse"}}),Object.defineProperty(s.default.PulseOscillator.prototype,"baseType",{get:function(){return"pulse"}}),Object.defineProperty(s.default.PulseOscillator.prototype,"partials",{get:function(){return[]}}),s.default.PulseOscillator.prototype.dispose=function(){return s.default.Source.prototype.dispose.call(this),this._sawtooth.dispose(),this._sawtooth=null,this._writable(["width","frequency","detune"]),this.width.dispose(),this.width=null,this._widthGate.dispose(),this._widthGate=null,this._thresh.dispose(),this._thresh=null,this.frequency=null,this.detune=null,this},e.default=s.default.PulseOscillator},function(t,e,i){"use strict";i.r(e);var s=i(0);i(16),i(4),i(34);s.default.Event=function(){var t=s.default.defaults(arguments,["callback","value"],s.default.Event);s.default.call(this),this._loop=t.loop,this.callback=t.callback,this.value=t.value,this._loopStart=this.toTicks(t.loopStart),this._loopEnd=this.toTicks(t.loopEnd),this._state=new s.default.TimelineState(s.default.State.Stopped),this._playbackRate=1,this._startOffset=0,this._probability=t.probability,this._humanize=t.humanize,this.mute=t.mute,this.playbackRate=t.playbackRate},s.default.extend(s.default.Event),s.default.Event.defaults={callback:s.default.noOp,loop:!1,loopEnd:"1m",loopStart:0,playbackRate:1,value:null,probability:1,mute:!1,humanize:!1},s.default.Event.prototype._rescheduleEvents=function(t){return t=s.default.defaultArg(t,-1),this._state.forEachFrom(t,function(t){var e;if(t.state===s.default.State.Started){s.default.isDefined(t.id)&&s.default.Transport.clear(t.id);var i=t.time+Math.round(this.startOffset/this._playbackRate);if(!0===this._loop||s.default.isNumber(this._loop)&&this._loop>1){e=1/0,s.default.isNumber(this._loop)&&(e=this._loop*this._getLoopDuration());var n=this._state.getAfter(i);null!==n&&(e=Math.min(e,n.time-i)),e!==1/0&&(this._state.setStateAtTime(s.default.State.Stopped,i+e+1),e=s.default.Ticks(e));var o=s.default.Ticks(this._getLoopDuration());t.id=s.default.Transport.scheduleRepeat(this._tick.bind(this),o,s.default.Ticks(i),e)}else t.id=s.default.Transport.schedule(this._tick.bind(this),s.default.Ticks(i))}}.bind(this)),this},Object.defineProperty(s.default.Event.prototype,"state",{get:function(){return this._state.getValueAtTime(s.default.Transport.ticks)}}),Object.defineProperty(s.default.Event.prototype,"startOffset",{get:function(){return this._startOffset},set:function(t){this._startOffset=t}}),Object.defineProperty(s.default.Event.prototype,"probability",{get:function(){return this._probability},set:function(t){this._probability=t}}),Object.defineProperty(s.default.Event.prototype,"humanize",{get:function(){return this._humanize},set:function(t){this._humanize=t}}
5189),s.default.Event.prototype.start=function(t){return t=this.toTicks(t),this._state.getValueAtTime(t)===s.default.State.Stopped&&(this._state.add({state:s.default.State.Started,time:t,id:void 0}),this._rescheduleEvents(t)),this},s.default.Event.prototype.stop=function(t){if(this.cancel(t),t=this.toTicks(t),this._state.getValueAtTime(t)===s.default.State.Started){this._state.setStateAtTime(s.default.State.Stopped,t);var e=this._state.getBefore(t),i=t;null!==e&&(i=e.time),this._rescheduleEvents(i)}return this},s.default.Event.prototype.cancel=function(t){return t=s.default.defaultArg(t,-1/0),t=this.toTicks(t),this._state.forEachFrom(t,function(t){s.default.Transport.clear(t.id)}),this._state.cancel(t),this},s.default.Event.prototype._tick=function(t){var e=s.default.Transport.getTicksAtTime(t);if(!this.mute&&this._state.getValueAtTime(e)===s.default.State.Started){if(this.probability<1&&Math.random()>this.probability)return;if(this.humanize){var i=.02;s.default.isBoolean(this.humanize)||(i=this.toSeconds(this.humanize)),t+=(2*Math.random()-1)*i}this.callback(t,this.value)}},s.default.Event.prototype._getLoopDuration=function(){return Math.round((this._loopEnd-this._loopStart)/this._playbackRate)},Object.defineProperty(s.default.Event.prototype,"loop",{get:function(){return this._loop},set:function(t){this._loop=t,this._rescheduleEvents()}}),Object.defineProperty(s.default.Event.prototype,"playbackRate",{get:function(){return this._playbackRate},set:function(t){this._playbackRate=t,this._rescheduleEvents()}}),Object.defineProperty(s.default.Event.prototype,"loopEnd",{get:function(){return s.default.Ticks(this._loopEnd).toSeconds()},set:function(t){this._loopEnd=this.toTicks(t),this._loop&&this._rescheduleEvents()}}),Object.defineProperty(s.default.Event.prototype,"loopStart",{get:function(){return s.default.Ticks(this._loopStart).toSeconds()},set:function(t){this._loopStart=this.toTicks(t),this._loop&&this._rescheduleEvents()}}),Object.defineProperty(s.default.Event.prototype,"progress",{get:function(){if(this._loop){var t=s.default.Transport.ticks,e=this._state.get(t);if(null!==e&&e.state===s.default.State.Started){var i=this._getLoopDuration();return(t-e.time)%i/i}return 0}return 0}}),s.default.Event.prototype.dispose=function(){this.cancel(),this._state.dispose(),this._state=null,this.callback=null,this.value=null},e.default=s.default.Event},function(t,e,i){"use strict";i.r(e);var s=i(0);i(2),i(13),i(29),i(10),i(3),i(1);s.default.MidSideMerge=function(){s.default.AudioNode.call(this),this.createInsOuts(2,0),this.mid=this.input[0]=new s.default.Gain,this._left=new s.default.Add,this._timesTwoLeft=new s.default.Multiply(Math.SQRT1_2),this.side=this.input[1]=new s.default.Gain,this._right=new s.default.Subtract,this._timesTwoRight=new s.default.Multiply(Math.SQRT1_2),this._merge=this.output=new s.default.Merge,this.mid.connect(this._left,0,0),this.side.connect(this._left,0,1),this.mid.connect(this._right,0,0),this.side.connect(this._right,0,1),this._left.connect(this._timesTwoLeft),this._right.connect(this._timesTwoRight),this._timesTwoLeft.connect(this._merge,0,0),this._timesTwoRight.connect(this._merge,0,1)},s.default.extend(s.default.MidSideMerge,s.default.AudioNode),s.default.MidSideMerge.prototype.dispose=function(){return s.default.AudioNode.prototype.dispose.call(this),this.mid.dispose(),this.mid=null,this.side.dispose(),this.side=null,this._left.dispose(),this._left=null,this._timesTwoLeft.dispose(),this._timesTwoLeft=null,this._right.dispose(),this._right=null,this._timesTwoRight.dispose(),this._timesTwoRight=null,this._merge.dispose(),this._merge=null,this},e.default=s.default.MidSideMerge},function(t,e,i){"use strict";i.r(e);var s=i(0);i(29),i(13),i(2),i(19),i(1);s.default.MidSideSplit=function(){s.default.AudioNode.call(this),this.createInsOuts(0,2),this._split=this.input=new s.default.Split,this._midAdd=new s.default.Add,this.mid=this.output[0]=new s.default.Multiply(Math.SQRT1_2),this._sideSubtract=new s.default.Subtract,this.side=this.output[1]=new s.default.Multiply(Math.SQRT1_2),this._split.connect(this._midAdd,0,0),this._split.connect(this._midAdd,1,1),this._split.connect(this._sideSubtract,0,0
5189),this._split.connect(this._sideSubtract,1,1),this._midAdd.connect(this.mid),this._sideSubtract.connect(this.side)},s.default.extend(s.default.MidSideSplit,s.default.AudioNode),s.default.MidSideSplit.prototype.dispose=function(){return s.default.AudioNode.prototype.dispose.call(this),this.mid.dispose(),this.mid=null,this.side.dispose(),this.side=null,this._midAdd.dispose(),this._midAdd=null,this._sideSubtract.dispose(),this._sideSubtract=null,this._split.dispose(),this._split=null,this},e.default=s.default.MidSideSplit},function(t,e,i){"use strict";i.r(e);var s=i(0);i(2),i(9),i(1),i(59);s.default.LowpassCombFilter=function(){var t=s.default.defaults(arguments,["delayTime","resonance","dampening"],s.default.LowpassCombFilter);s.default.AudioNode.call(this),this._combFilter=this.output=new s.default.FeedbackCombFilter(t.delayTime,t.resonance),this.delayTime=this._combFilter.delayTime,this._lowpass=this.input=new s.default.Filter({frequency:t.dampening,type:"lowpass",Q:0,rolloff:-12}),this.dampening=this._lowpass.frequency,this.resonance=this._combFilter.resonance,this._lowpass.connect(this._combFilter),this._readOnly(["dampening","resonance","delayTime"])},s.default.extend(s.default.LowpassCombFilter,s.default.AudioNode),s.default.LowpassCombFilter.defaults={delayTime:.1,resonance:.5,dampening:3e3},s.default.LowpassCombFilter.prototype.dispose=function(){return s.default.AudioNode.prototype.dispose.call(this),this._writable(["dampening","resonance","delayTime"]),this._combFilter.dispose(),this._combFilter=null,this.resonance=null,this.delayTime=null,this._lowpass.dispose(),this._lowpass=null,this.dampening=null,this},e.default=s.default.LowpassCombFilter},function(t,e,i){"use strict";i.r(e);var s=i(0);i(45);s.default.Ticks=function(t,e){if(!(this instanceof s.default.Ticks))return new s.default.Ticks(t,e);s.default.TransportTime.call(this,t,e)},s.default.extend(s.default.Ticks,s.default.TransportTime),s.default.Ticks.prototype._defaultUnits="i",s.default.Ticks.prototype._now=function(){return s.default.Transport.ticks},s.default.Ticks.prototype._beatsToUnits=function(t){return this._getPPQ()*t},s.default.Ticks.prototype._secondsToUnits=function(t){return Math.floor(t/(60/this._getBpm())*this._getPPQ())},s.default.Ticks.prototype._ticksToUnits=function(t){return t},s.default.Ticks.prototype.toTicks=function(){return this.valueOf()},s.default.Ticks.prototype.toSeconds=function(){return this.valueOf()/this._getPPQ()*(60/this._getBpm())},e.default=s.default.Ticks},function(t,e,i){"use strict";i.r(e);var s=i(0);i(55);s.default.TransportEvent=function(t,e){e=s.default.defaultArg(e,s.default.TransportEvent.defaults),s.default.call(this),this.Trans
5189port=t,this.id=s.default.TransportEvent._eventId++,this.time=s.default.Ticks(e.time),this.callback=e.callback,this._once=e.once},s.default.extend(s.default.TransportEvent),s.default.TransportEvent.defaults={once:!1,callback:s.default.noOp},s.default.TransportEvent._eventId=0,s.default.TransportEvent.prototype.invoke=function(t){this.callback&&(this.callback(t),this._once&&this.Transport&&this.Transport.clear(this.id))},s.default.TransportEvent.prototype.dispose=function(){return s.default.prototype.dispose.call(this),this.Transport=null,this.callback=null,this.time=null,this},e.default=s.default.TransportEvent},function(t,e,i){"use strict";i.r(e);var s=i(0);i(82),i(34),i(24),i(14);s.default.TickSource=function(){var t=s.default.defaults(arguments,["frequency"],s.default.TickSource);this.frequency=new s.default.TickSignal(t.frequency),this._readOnly("frequency"),this._state=new s.default.TimelineState(s.default.State.Stopped),this._state.setStateAtTime(s.default.State.Stopped,0),this._tickOffset=new s.default.Timeline,this.setTicksAtTime(0,0)},s.default.extend(s.default.TickSource),s.default.TickSource.defaults={frequency:1},Object.defineProperty(s.default.TickSource.prototype,"state",{get:function(){return this._state.getValueAtTime(this.now())}}),s.default.TickSource.prototype.start=function(t,e){return t=this.toSeconds(t),this._state.getValueAtTime(t)!==s.default.State.Started&&(this._state.setStateAtTime(s.default.State.Started,t),s.default.isDefined(e)&&this.setTicksAtTime(e,t)),this},s.default.TickSource.prototype.stop=function(t){if(t=this.toSeconds(t),this._state.getValueAtTime(t)===s.default.State.Stopped){var e=this._state.get(t);e.time>0&&(this._tickOffset.cancel(e.time),this._state.cancel(e.time))}return this._state.cancel(t),this._state.setStateAtTime(s.default.State.Stopped,t),this.setTicksAtTime(0,t),this},s.default.TickSource.prototype.pause=function(t){return t=this.toSeconds(t),this._state.getValueAtTime(t)===s.default.State.Started&&this._state.setStateAtTime(s.default.State.Paused,t),this},s.default.TickSource.prototype.cancel=function(t){return t=this.toSeconds(t),this._state.cancel(t),this._tickOffset.cancel(t),this},s.default.TickSource.prototype.getTicksAtTime=function(t){t=this.toSeconds(t);var e=this._state.getLastState(s.default.State.Stopped,t),i={state:s.default.State.Paused,time:t};this._state.add(i);var n=e,o=0;return this._state.forEachBetween(e.time,t+this.sampleTime,function(t){var e=n.time,i=this._tickOffset.get(t.time);i.time>=n.time&&(o=i.ticks,e=i.time),n.state===s.default.State.Started&&t.state!==s.default.State.Started&&(o+=this.frequency.getTicksAtTime(t.time)-this.frequency.getTicksAtTime(e)),n=t}.bind(this)),this._state.remove(i),o},Object.defineProperty(s.default.TickSource.prototype,"ticks",{get:function(){return this.getTicksAtTime(this.now())},set:function(t){this.setTicksAtTime(t,this.now())}}),Object.defineProperty(s.default.TickSource.prototype,"seconds",{get:function(){return this.getSecondsAtTime(this.now())},set:function(t){var e=this.now(),i=this.frequency.timeToTicks(t,e);this.setTicksAtTime(i,e)}}),s.default.TickSource.prototype.getSecondsAtTime=function(t){t=this.toSeconds(t);var e=this._state.getLastState(s.default.State.Stopped,t),i={state:s.default.State.Paused,time:t};this._state.add(i);var n=e,o=0;return this._state.forEachBetween(e.time,t+this.sampleTime,function(t){var e=n.time,i=this._tickOffset.get(t.time);i.time>=n.time&&(o=i.seconds,e=i.time),n.state===s.default.State.Started&&t.state!==s.default.State.Started&&(o+=t.time-e),n=t}.bind(this)),this._state.remove(i),o},s.default.TickSource.prototype.setTicksAtTime=function(t,e){return e=this.toSeconds(e),this._tickOffset.cancel(e),this._tickOffset.add({time:e,ticks:t,seconds:this.frequency.getDurationOfTicks(t,e)}),this},s.default.TickSource.prototype.getStateAtTime=function(t){return t=this.toSeconds(t),this._state.getValueAtTime(t)},s.default.TickSource.prototype.getTimeOfTick=function(t,e){e=s.default.defaultArg(e,this.now());var i=this._tickOffset.get(e),n=this._state.get(e),o=Math.max(i.time,n.time),a=this.frequency.getTicksAtTime(o)+t-i.ticks;return this.frequency.getTimeOfTick(a)},s.default.TickSource.prototype.forEachTickBetween=function(t,e,
5189i){var n=this._state.get(t);if(this._state.forEachBetween(t,e,function(e){n.state===s.default.State.Started&&e.state!==s.default.State.Started&&this.forEachTickBetween(Math.max(n.time,t),e.time-this.sampleTime,i),n=e}.bind(this)),t=Math.max(n.time,t),n.state===s.default.State.Started&&this._state){var o=this.frequency.getTicksAtTime(t),a=(o-this.frequency.getTicksAtTime(n.time))%1;0!==a&&(a=1-a);for(var r=this.frequency.getTimeOfTick(o+a),l=null;r<e&&this._state;){try{i(r,Math.round(this.getTicksAtTime(r)))}catch(t){l=t;break}this._state&&(r+=this.frequency.getDurationOfTicks(1,r))}}if(l)throw l;return this},s.default.TickSource.prototype.dispose=function(){return s.default.Param.prototype.dispose.call(this),this._state.dispose(),this._state=null,this._tickOffset.dispose(),this._tickOffset=null,this._writable("frequency"),this.frequency.dispose(),this.frequency=null,this},e.default=s.default.TickSource},function(t,e,i){"use strict";i.r(e);var s=i(0);i(87),i(13),i(2),i(4),i(18),i(1);s.default.Follower=function(){var t=s.default.defaults(arguments,["smoothing"],s.default.Follower);s.default.AudioNode.call(this),this.createInsOuts(1,1),this._abs=new s.default.Abs,this._filter=this.context.createBiquadFilter(),this._filter.type="lowpass",this._filter.frequency.value=0,this._filter.Q.value=0,this._sub=new s.default.Subtract,this._delay=new s.default.Delay(this.blockTime),this._smoothing=t.smoothing,s.default.connect(this.input,this._delay),s.default.connect(this.input,this._sub,0,1),this._sub.chain(this._abs,this._filter,this.output),this.smoothing=t.smoothing},s.default.extend(s.default.Follower,s.default.AudioNode),s.default.Follower.defaults={smoothing:.05},Object.defineProperty(s.default.Follower.prototype,"smoothing",{get:function(){return this._smoothing},set:function(t){this._smoothing=t,this._filter.frequency.value=.5*s.default.Time(t).toFrequency()}}),s.default.Follower.prototype.connect=s.default.SignalBase.prototype.connect,s.default.Follower.prototype.dispose=function(){return s.default.AudioNode.prototype.dispose.call(this),this._filter.disconnect(),this._filter=null,this._delay.dispose(),this._delay=null,this._sub.disconnect(),this._sub=null,this._abs.dispose(),this._abs=null,this},e.default=s.default.Follower},function(t,e,i){"use strict";i.r(e);var s=i(0);i(42),i(2),i(14),i(18),i(3),i(1);s.default.FeedbackCombFilter=function(){var t=s.default.defaults(arguments,["delayTime","resonance"],s.default.FeedbackCombFilter);s.default.AudioNode.call(this),this._delay=this.input=this.output=new s.default.Delay(t.delayTime),this.delayTime=this._delay.delayTime,this._feedback=new s.default.Gain(t.resonance,s.default.Type.NormalRange),this.resonance=this._feedback.gain,this._delay.chain(this._feedback,this._delay),this._readOnly(["resonance","delayTime"])},s.default.extend(s.default.FeedbackCombFilter,s.default.AudioNode),s.default.FeedbackCombFilter.defaults={delayTime:.1,resonance:.5},s.default.FeedbackCombFilter.prototype.dispose=function(){return s.default.AudioNode.prototype.dispose.call(this),this._writable(["resonance","delayTime"]),this._delay.dispose(),this._delay=null,this.delayTime=null,this._feedback.dispose(),this._feedback=null,this.resonance=null,this},e.default=s.default.FeedbackCombFilter},function(t,e,i){"use strict";i.r(e);var s=i(0);i(9),i(2),i(3),i(1);s.default.MultibandSplit=function(){var t=s.default.defaults(arguments,["lowFrequency","highFrequency"],s.default.MultibandSplit);s.default.AudioNode.call(this),this.input=new s.default.Gain,this.output=new Array(3),this.low=this.output[0]=new s.default.Filter(0,"lowpass"),this._lowMidFilter=new s.default.Filter(0,"highpass"),this.mid=this.output[1]=new s.default.Filter(0,"lowpass"),this.high=this.output[2]=new s.default.Filter(0,"highpass"),this.lowFrequency=new s.default.Signal(t.lowFrequency,s.default.Type.Frequency),this.highFrequency=new s.default.Signal(t.highFrequency,s.default.Type.Frequency),this.Q=new s.default.Signal(t.Q),this.input.fan(this.low,this.high),this.input.chain(this._lowMidFilter,this.mid),this.lowFrequency.connect(this.low.frequency),this.lowFrequency.connect(this._lowMidFilter.frequency),this.highFrequency.connect(this.mid.frequency),this.highFrequency.connect(this.high.frequency),this.Q.connect(this.low.Q),this.Q.connect(this._lowMidFilter.Q),this.Q.connect(this.mid.Q),this.Q.connect(this.high.Q),this._readOnly(["high","mid","low","highFrequency","lowFrequency"])},s.default.extend(s.default.MultibandSplit,s.default.AudioNode),s.default.MultibandSplit.defaults={lowFrequency:400,highFrequency:2500,Q:1},s.default.MultibandSplit.prototype.dispose=function(){return s.default.AudioNode.prototype.dispose.call(this),this._writable(["high","mid","low","highFrequency","lowFrequency"]),this.low.dispose(),this.low=null,this._lowMidFilter.dispose(),this._lowMidFilter=null,this.mid.dispose(),this.mid=null,this.high.dispose(),this.high=null,this.lowFrequency.dispose(),this.lowFrequency=null,this.highFrequency.dispose(),this.highFrequency=null,this.Q.dispose(),this.Q=null,this},e.default=s.default.MultibandSplit}
5189,function(t,e,i){"use strict";i.r(e);var s=i(0);i(7);s.default.Pow=function(t){s.default.SignalBase.call(this),this._exp=s.default.defaultArg(t,1),this._expScaler=this.input=this.output=new s.default.WaveShaper(this._expFunc(this._exp),8192)},s.default.extend(s.default.Pow,s.default.SignalBase),Object.defineProperty(s.default.Pow.prototype,"value",{get:function(){return this._exp},set:function(t){this._exp=t,this._expScaler.setMap(this._expFunc(this._exp))}}),s.default.Pow.prototype._expFunc=function(t){return function(e){return Math.pow(Math.abs(e),t)}},s.default.Pow.prototype.dispose=function(){return s.default.SignalBase.prototype.dispose.call(this),this._expScaler.dispose(),this._expScaler=null,this},e.default=s.default.Pow},function(t,e,i){"use strict";i.r(e);var s=i(0);s.default.TimeBase=function(t,e){if(!(this instanceof s.default.TimeBase))return new s.default.TimeBase(t,e);if(this._val=t,this._units=e,s.default.isUndef(this._units)&&s.default.isString(this._val)&&parseFloat(this._val)==this._val&&"+"!==this._val.charAt(0))this._val=parseFloat(this._val),this._units=this._defaultUnits;else if(t&&t.constructor===this.constructor)this._val=t._val,this._units=t._units;else if(t instanceof s.default.TimeBase)switch(this._defaultUnits){case"s":this._val=t.toSeconds();break;case"i":this._val=t.toTicks();break;case"hz":this._val=t.toFrequency();break;case"midi":this._val=t.toMidi();break;default:throw new Error("Unrecognized default units "+this._defaultUnits)}},s.default.extend(s.default.TimeBase),s.default.TimeBase.prototype._expressions={n:{regexp:/^(\d+)n(\.?)$/i,method:function(t,e){t=parseInt(t);var i="."===e?1.5:1;return 1===t?this._beatsToUnits(this._getTimeSignature())*i:this._beatsToUnits(4/t)*i}},t:{regexp:/^(\d+)t$/i,method:function(t){return t=parseInt(t),this._beatsToUnits(8/(3*parseInt(t)))}},m:{regexp:/^(\d+)m$/i,method:function(t){return this._beatsToUnits(parseInt(t)*this._getTimeSignature())}},i:{regexp:/^(\d+)i$/i,method:function(t){return this._ticksToUnits(parseInt(t))}},hz:{regexp:/^(\d+(?:\.\d+)?)hz$/i,method:function(t){return this._frequencyToUnits(parseFloat(t))}},tr:{regexp:/^(\d+(?:\.\d+)?):(\d+(?:\.\d+)?):?(\d+(?:\.\d+)?)?$/,method:function(t,e,i){var s=0;return t&&"0"!==t&&(s+=this._beatsToUnits(this._getTimeSignature()*parseFloat(t))),e&&"0"!==e&&(s+=this._beatsToUnits(parseFloat(e))),i&&"0"!==i&&(s+=this._beatsToUnits(parseFloat(i)/4)),s}},s:{regexp:/^(\d+(?:\.\d+)?)s$/,method:function(t){return this._secondsToUnits(parseFloat(t))}},samples:{regexp:/^(\d+)samples$/,method:function(t){return parseInt(t)/this.context.sampleRate}},default:{regexp:/^(\d+(?:\.\d+)?)$/,method:function(t){return this._expressions[this._defaultUnits].method.call(this,t)}}},s.default.TimeBase.prototype._defaultUnits="s",s.default.TimeBase.prototype._getBpm=function(){return s.default.Transport?s.default.Transport.bpm.value:120},s.default.TimeBase.prototype._getTimeSignature=function(){return s.default.Transport?s.default.Transport.timeSignature:4},s.default.TimeBase.prototype._getPPQ=function(){return s.default.Transport?s.default.Transport.PPQ:192},s.default.TimeBase.prototype._now=function(){return this.now()},s.default.TimeBase.prototype._frequencyToUnits=function(t){return 1/t},s.default.TimeBase.prototype._beatsToUnits=function(t){return 60/this._getBpm()*t},s.default.TimeBase.prototype._secondsToUnits=function(t){return t},s.default.TimeBase.prototype._ticksToUnits=function(t){return t*(this._beatsToUnits(1)/this._getPPQ())},s.default.TimeBase.prototype._noArg=function(){return this._now()},s.default.TimeBase.prototype.valueOf=function(){if(s.default.isUndef(this._val))return this._noArg();if(s.default.isString(this._val)&&s.default.isUndef(this._units)){for(var t in this._expressions)if(this._expressions[t].regexp.test(this._val.trim())){this._units=t;break}}else if(s.default.isObject(this._val)){var e=0;for(var i in this._val){var n=this._val[i];e+=new this.constructor(i).valueOf()*n}return e}if(s.default.isDefined(this._units)){var o=this._expressions[this._units],a=this._val.toString().trim().match(o.regexp);return a?o.method.apply(this,a.slice(1)):o.method.call(this,parseFloat(this._val))}return this._val},s.default.TimeBase.prototype.toSeconds=function(){return this.valueOf()},s.default.TimeBase.prototype.toFrequency=function(){return 1/this.toSeconds()},s.default.TimeBase.prototype.toSamples=function(){return this.toSeconds()*this.context.sampleRate},s.default.TimeBase.prototype.toMilliseconds=function(){return 1e3*this.toSeconds()},s.default.TimeBase.prototype.dispose=function(){this._val=null,this._units=null},e.default=s.default.TimeBase}
5189,function(t,e,i){"use strict";i.r(e);var s=i(0);i(62),i(46);s.default.Time=function(t,e){if(!(this instanceof s.default.Time))return new s.default.Time(t,e);s.default.TimeBase.call(this,t,e)},s.default.extend(s.default.Time,s.default.TimeBase),s.default.Time.prototype._expressions=Object.assign({},s.default.TimeBase.prototype._expressions,{quantize:{regexp:/^@(.+)/,method:function(t){if(s.default.Transport){var e=new this.constructor(t);return this._secondsToUnits(s.default.Transport.nextSubdivision(e))}return 0}},now:{regexp:/^\+(.+)/,method:function(t){return this._now()+new this.constructor(t)}}}),s.default.Time.prototype.quantize=function(t,e){e=s.default.defaultArg(e,1);var i=new this.constructor(t),n=this.valueOf();return n+(Math.round(n/i)*i-n)*e},s.default.Time.prototype.toNotation=function(){for(var t=this.toSeconds(),e=["1m"],i=1;i<8;i++){var n=Math.pow(2,i);e.push(n+"n."),e.push(n+"n"),e.push(n+"t")}e.push("0");var o=e[0],a=s.default.Time(e[0]).toSeconds();return e.forEach(function(e){var i=s.default.Time(e).toSeconds();Math.abs(i-t)<Math.abs(a-t)&&(o=e,a=i)}),o},s.default.Time.prototype.toBarsBeatsSixteenths=function(){var t=this._beatsToUnits(1),e=this.valueOf()/t;e=parseFloat(e.toFixed(4));var i=Math.floor(e/this._getTimeSignature()),s=e%1*4;return e=Math.floor(e)%this._getTimeSignature(),(s=s.toString()).length>3&&(s=parseFloat(parseFloat(s).toFixed(3))),[i,e,s].join(":")},s.default.Time.prototype.toTicks=function(){var t=this._beatsToUnits(1),e=this.valueOf()/t;return Math.round(e*this._getPPQ())},s.default.Time.prototype.toSeconds=function(){return this.valueOf()},s.default.Time.prototype.toMidi=function(){return s.default.Frequency.ftom(this.toFrequency())},e.default=s.default.Time},function(t,e,i){"use strict";i.r(e);var s=i(0);i(11),i(6),i(3),i(1);s.default.supported&&(OscillatorNode.prototype.setPeriodicWave||(OscillatorNode.prototype.setPeriodicWave=OscillatorNode.prototype.setWaveTable),AudioContext.prototype.createPeriodicWave||(AudioContext.prototype.createPeriodicWave=AudioContext.prototype.createWaveTable)),s.default.OscillatorNode=function(){var t=s.default.defaults(arguments,["frequency","type"],s.default.OscillatorNode);s.default.AudioNode.call(this,t),this.onended=t.onended,this._startTime=-1,this._stopTime=-1,this._gainNode=this.output=new s.default.Gain(0),this._oscillator=this.context.createOscillator(),s.default.connect(this._oscillator,this._gainNode),this.type=t.type,this.frequency=new s.default.Param({param:this._oscillator.frequency,units:s.default.Type.Frequency,value:t.frequency}),this.detune=new s.default.Param({param:this._oscillator.detune,units:s.default.Type.Cents,value:t.detune}),this._gain=1},s.default.extend(s.default.OscillatorNode,s.default.AudioNode),s.default.OscillatorNode.defaults={frequency:440,detune:0,type:"sine",onended:s.default.noOp},Object.defineProperty(s.default.OscillatorNode.prototype,"state",{get:function(){return this.getStateAtTime(this.now())}}),s.default.OscillatorNode.prototype.getStateAtTime=function(t){return t=this.toSeconds(t),-1!==this._startTime&&t>=this._startTime&&(-1===this._stopTime||t<=this._stopTime)?s.default.State.Started:s.default.State.Stopped},s.default.OscillatorNode.prototype.start=function(t){if(this.log("start",t),-1!==this._startTime)throw new Error("cannot call OscillatorNode.start more than once");return this._startTime=this.toSeconds(t),this._startTime=Math.max(this._startTime,this.context.currentTime),this._oscillator.start(this._startTime),this._gainNode.gain.setValueAtTime(1,this._startTime),this},s.default.OscillatorNode.prototype.setPeriodicWave=function(t){return this._oscillator.setPeriodicWave(t),this},s.default.OscillatorNode.prototype.stop=function(t){return this.log("stop",t),this.assert(-1!==this._startTime,"'start' must be called before 'stop'"),this.cancelStop(),this._stopTime=this.toSeconds(t),this._stopTime=Math.max(this._stopTime,this.context.currentTime),this._stopTime>this._startTime?(this._gainNode.gain.setValueAtTime(0,this._stopTime),this.context.clearTimeout(this._timeout),this._timeout=this.context.setTimeout(function(){this._oscillator.stop(this.now()),this.onended(),setTimeout(function(){this._oscillator&&(this._oscillator.disconnect(),this._gainNode.disconnect())}.bind(this),100)}.bind(this),this._stopTime-this.context.currentTime)):this._gainNode.gain.cancelScheduledValues(this._startTime),this},s.default.OscillatorNode.prototype.cancelStop=function(){return-1!==this._startTime&&(this._gainNode.gain.cancelScheduledValues(this._startTime+this.sampleTime),this.context.clearTimeout(this._timeout),this._stopTime=-1),this},Object.defineProperty(s.default.OscillatorNode.prototype,"type",{get:function(){return this._oscillator.type},set:function(t){this._oscillator.type=t}}),s.default.OscillatorNode.prototype.dispose=function(){return this._wasDisposed||(this._wasDisposed=!0,this.context.clearTimeout(this._timeout),s.default.AudioNode.prototype.dispose.call(this),this.onended=null,this._oscillator.disconnect(),this._oscillator=null,this._gainNode.dis
5189pose(),this._gainNode=null,this.frequency.dispose(),this.frequency=null,this.detune.dispose(),this.detune=null),this};e.default=s.default.OscillatorNode},function(t,e,i){"use strict";i.r(e);var s=i(0);i(11),i(6),i(57),i(32);s.default.Player=function(t){var e;t instanceof s.default.Buffer&&t.loaded?(t=t.get(),e=s.default.Player.defaults):e=s.default.defaults(arguments,["url","onload"],s.default.Player),s.default.Source.call(this,e),this.autostart=e.autostart,this._buffer=new s.default.Buffer({url:e.url,onload:this._onload.bind(this,e.onload),reverse:e.reverse}),t instanceof AudioBuffer&&this._buffer.set(t),this._loop=e.loop,this._loopStart=e.loopStart,this._loopEnd=e.loopEnd,this._playbackRate=e.playbackRate,this._activeSources=[],this.fadeIn=e.fadeIn,this.fadeOut=e.fadeOut},s.default.extend(s.default.Player,s.default.Source),s.default.Player.defaults={onload:s.default.noOp,playbackRate:1,loop:!1,autostart:!1,loopStart:0,loopEnd:0,reverse:!1,fadeIn:0,fadeOut:0},s.default.Player.prototype.load=function(t,e){return this._buffer.load(t,this._onload.bind(this,e))},s.default.Player.prototype._onload=function(t){(t=s.default.defaultArg(t,s.default.noOp))(this),this.autostart&&this.start()},s.default.Player.prototype._onSourceEnd=function(t){var e=this._activeSources.indexOf(t);this._activeSources.splice(e,1),0!==this._activeSources.length||this._synced||this._state.setStateAtTime(s.default.State.Stopped,s.default.now())},s.default.Player.prototype._start=function(t,e,i){e=this._loop?s.default.defaultArg(e,this._loopStart):s.default.defaultArg(e,0),e=this.toSeconds(e),this._synced&&(e*=this._playbackRate);var n=s.default.defaultArg(i,Math.max(this._buffer.duration-e,0));n=this.toSeconds(n),n/=this._playbackRate,t=this.toSeconds(t);var o=new s.default.BufferSource({buffer:this._buffer,loop:this._loop,loopStart:this._loopStart,loopEnd:this._loopEnd,onended:this._onSourceEnd.bind(this),playbackRate:this._playbackRate,fadeIn:this.fadeIn,fadeOut:this.fadeOut}).connect(this.output);return this._loop||this._synced||this._state.setStateAtTime(s.default.State.Stopped,t+n),this._activeSources.push(o),this._loop&&s.default.isUndef(i)?o.start(t,e):o.start(t,e,n-this.toSeconds(this.fadeOut)),this},s.default.Player.prototype._stop=function(t){return t=this.toSeconds(t),this._activeSources.forEach(function(e){e.stop(t)}),this},s.default.Player.prototype.restart=function(t,e,i){return this._stop(t),this._start(t,e,i),this},s.default.Player.prototype.seek=function(t,e){return e=this.toSeconds(e),this._state.getValueAtTime(e)===s.default.State.Started&&(t=this.toSeconds(t),this._stop(e),this._start(e,t)),this},s.default.Player.prototype.setLoopPoints=function(t,e){return this.loopStart=t,this.loopEnd=e,this},Object.defineProperty(s.default.Player.prototype,"loopStart",{get:function(){return this._loopStart},set:function(t){this._loopStart=t,this._activeSources.forEach(function(e){e.loopStart=t})}}),Object.defineProperty(s.default.Player.prototype,"loopEnd",{get:function(){return this._loopEnd},set:function(t){this._loopEnd=t,this._activeSources.forEach(function(e){e.loopEnd=t})}}),Object.defineProperty(s.default.Player.prototype,"buffer",{get:function(){return this._buffer},set:function(t){this._buffer.set(t)}}),Object.defineProperty(s.default.Player.prototype,"loop",{get:function(){return this._loop},set:function(t){if(this._loop!==t&&(this._loop=t,this._activeSources.forEach(function(e){e.loop=t}),t)){var e=this._state.getNextState(s.default.State.Stopped,this.now());e&&this._state.cancel(e.time)}}}),Object.defineProperty(s.default.Player.prototype,"playbackRate",{get:function(){return this._playbackRate},set:function(t){this._playbackRate=t;var e=this.now(),i=this._state.getNextState(s.default.State.Stopped,e);i&&this._state.cancel(i.time),this._activeSources.forEach(function(i){i.cancelStop(),i.playbackRate.setValueAtTime(t,e)})}}),Object.defineProperty(s.default.Player.prototype,"reverse",{get:function(){return this._buffer.reverse},set:function(t){this._buffer.reverse=t}}),Object.defineProperty(s.default.Player.prototype,"loaded",{get:function(){return this._buffer.loaded}}),s.default.Player.prototype.dispose=function(){return this._activeSources.forEac
5189h(function(t){t.dispose()}),this._activeSources=null,s.default.Source.prototype.dispose.call(this),this._buffer.dispose(),this._buffer=null,this},e.default=s.default.Player},function(t,e,i){"use strict";i.r(e);var s=i(0);i(31),i(41),i(37),i(2),i(9),i(25);s.default.MonoSynth=function(t){t=s.default.defaultArg(t,s.default.MonoSynth.defaults),s.default.Monophonic.call(this,t),this.oscillator=new s.default.OmniOscillator(t.oscillator),this.frequency=this.oscillator.frequency,this.detune=this.oscillator.detune,this.filter=new s.default.Filter(t.filter),this.filter.frequency.value=5e3,this.filterEnvelope=new s.default.FrequencyEnvelope(t.filterEnvelope),this.envelope=new s.default.AmplitudeEnvelope(t.envelope),this.oscillator.chain(this.filter,this.envelope,this.output),this.filterEnvelope.connect(this.filter.frequency),this._readOnly(["oscillator","frequency","detune","filter","filterEnvelope","envelope"])},s.default.extend(s.default.MonoSynth,s.default.Monophonic),s.default.MonoSynth.defaults={frequency:"C4",detune:0,oscillator:{type:"square"},filter:{Q:6,type:"lowpass",rolloff:-24},envelope:{attack:.005,decay:.1,sustain:.9,release:1},filterEnvelope:{attack:.06,decay:.2,sustain:.5,release:2,baseFrequency:200,octaves:7,exponent:2}},s.default.MonoSynth.prototype._triggerEnvelopeAttack=function(t,e){return t=this.toSeconds(t),this.envelope.triggerAttack(t,e),this.filterEnvelope.triggerAttack(t),this.oscillator.start(t),0===this.envelope.sustain&&this.oscillator.stop(t+this.envelope.attack+this.envelope.decay),this},s.default.MonoSynth.prototype._triggerEnvelopeRelease=function(t){return this.envelope.triggerRelease(t),this.filterEnvelope.triggerRelease(t),this.oscillator.stop(t+this.envelope.release),this},s.default.MonoSynth.prototype.dispose=function(){return s.default.Monophonic.prototype.dispose.call(this),this._writable(["oscillator","frequency","detune","filter","filterEnvelope","envelope"]),this.oscillator.dispose(),this.oscillator=null,this.envelope.dispose(),this.envelope=null,this.filterEnvelope.dispose(),this.filterEnvelope=null,this.filter.dispose(),this.filter=null,this.frequency=null,this.detune=null,this},e.default=s.default.MonoSynth},function(t,e,i){"use strict";i.r(e);var s=i(0);i(6),i(17),i(5),i(3);s.default.FatOscillator=function(){var t=s.default.defaults(arguments,["frequency","type","spread"],s.default.FatOscillator);s.default.Source.call(this,t),this.frequency=new s.default.Signal(t.frequency,s.default.Type.Frequency),this.detune=new s.default.Signal(t.detune,s.default.Type.Cents),this._oscillators=[],this._spread=t.spread,this._type=t.type,this._phase=t.phase,this._partials=t.partials,this._partialCount=t.partialCount,this.count=t.count,this._readOnly(["frequency","detune"])},s.default.extend(s.default.FatOscillator,s.default.Source),s.default.FatOscillator.defaults={frequency:440,detune:0,phase:0,spread:20,count:3,type:"sawtooth",partials:[],partialCount:0},s.default.FatOscillator.prototype._start=function(t){t=this.toSeconds(t),this._forEach(function(e){e.start(t)})},s.default.FatOscillator.prototype._stop=function(t){t=this.toSeconds(t),this._forEach(function(e){e.stop(t)})},s.default.FatOscillator.prototype.restart=function(t){t=this.toSeconds(t),this._forEach(function(e){e.restart(t)})},s.default.FatOscillator.prototype._forEach=function(t){for(var e=0;e<this._oscillators.length;e++)t.call(this,this._oscillators[e],e)},Object.defineProperty(s.default.FatOscillator.prototype,"type",{get:function(){return this._type},set:function(t){this._type=t,this._forEach(function(e){e.type=t})}}),Object.defineProperty(s.default.FatOscillator.prototype,"spread",{get:function(){return this._spread},set:function(t){if(this._spread=t,this._oscillators.length>1){var e=-t/2,i=t/(this._oscillators.length-1);this._forEach(function(t,s){t.detune.value=e+i*s})}}}),Object.defineProperty(s.default.FatOscillator.prototype,"count",{get:function(){return this._oscillators.length},set:function(t){if(t=Math.max(t,1),this._oscillators.length!==t){this._forEach(function(t){t.dispose()}),this._oscillators=[];for(var e=0;e<t;e++){var i=new s.default.Oscillator;this.type===s.default.Oscillator.Type.Custom?i.partials=this._partials:i.type=this._type,i.partialCount=this._partialCount,i.phase=this._phase+e/t*360,i.volume.value=-6-1.1*t,this.frequency.connect(i.frequency),this.detune.connect(i.detune),i.connect(this.output),this._oscillators[e]=i}this.spread=this._spread,this.state===s.default.State.Started&&this._forEac
5189h(function(t){t.start()})}}}),Object.defineProperty(s.default.FatOscillator.prototype,"phase",{get:function(){return this._phase},set:function(t){this._phase=t,this._forEach(function(e){e.phase=t})}}),Object.defineProperty(s.default.FatOscillator.prototype,"baseType",{get:function(){return this._oscillators[0].baseType},set:function(t){this._forEach(function(e){e.baseType=t}),this._type=this._oscillators[0].type}}),Object.defineProperty(s.default.FatOscillator.prototype,"partials",{get:function(){return this._oscillators[0].partials},set:function(t){this._partials=t,this._type=s.default.Oscillator.Type.Custom,this._forEach(function(e){e.partials=t})}}),Object.defineProperty(s.default.FatOscillator.prototype,"partialCount",{get:function(){return this._oscillators[0].partialCount},set:function(t){this._partialCount=t,this._forEach(function(e){e.partialCount=t}),this._type=this._oscillators[0].type}}),s.default.FatOscillator.prototype.dispose=function(){return s.default.Source.prototype.dispose.call(this),this._writable(["frequency","detune"]),this.frequency.dispose(),this.frequency=null,this.detune.dispose(),this.detune=null,this._forEach(function(t){t.dispose()}),this._oscillators=null,this._partials=null,this},e.default=s.default.FatOscillator},function(t,e,i){"use strict";i.r(e);var s=i(0);i(6),i(17),i(5),i(3),i(22);s.default.AMOscillator=function(){var t=s.default.defaults(arguments,["frequency","type","modulationType"],s.default.AMOscillator);s.default.Source.call(this,t),this._carrier=new s.default.Oscillator(t.frequency,t.type),this.frequency=this._carrier.frequency,this.detune=this._carrier.detune,this.detune.value=t.detune,this._modulator=new s.default.Oscillator(t.frequency,t.modulationType),this._modulationScale=new s.default.AudioToGain,this.harmonicity=new s.default.Multiply(t.harmonicity),this.harmonicity.units=s.default.Type.Positive,this._modulationNode=new s.default.Gain(0),this.frequency.chain(this.harmonicity,this._modulator.frequency),this.detune.connect(this._modulator.detune),this._modulator.chain(this._modulationScale,this._modulationNode.gain),this._carrier.chain(this._modulationNode,this.output),this.phase=t.phase,this._readOnly(["frequency","detune","harmonicity"])},s.default.extend(s.default.AMOscillator,s.default.Oscillator),s.default.AMOscillator.defaults={frequency:440,detune:0,phase:0,type:"sine",modulationType:"square",harmonicity:1},s.default.AMOscillator.prototype._start=function(t){this._modulator.start(t),this._carrier.start(t)},s.default.AMOscillator.prototype._stop=function(t){this._modulator.stop(t),this._carrier.stop(t)},s.default.AMOscillator.prototype.restart=function(t){this._modulator.restart(t),this._carrier.restart(t)},Object.defineProperty(s.default.AMOscillator.prototype,"type",{get:function(){return this._carrier.type},set:function(t){this._carrier.type=t}}),Object.defineProperty(s.default.AMOscillator.prototype,"baseType",{get:function(){return this._carrier.baseType},set:function(t){this._carrier.baseType=t}}),Object.defineProperty(s.default.AMOscillator.prototype,"partialCount",{get:function(){return this._carrier.partialCount},set:function(t){this._carrier.partialCount=t}}),Object.defineProperty(s.default.AMOscillator.prototype,"modulationType",{get:function(){return this._modulator.type},set:function(t){this._modulator.type=t}}),Object.defineProperty(s.default.AMOscillator.prototype,"phase",{get:function(){return this._carrier.phase},set:function(t){this._carrier.phase=t,this._modulator.phase=t}}),Object.defineProperty(s.default.AMOscillator.prototype,"partials",{get:function(){return this._carrier.partials},set:function(t){this._carrier.partials=t}}),s.default.AMOscillator.prototype.dispose=function(){return s.default.Source.prototype.dispose.call(this),this._writable(["frequency","detune","harmonicity"]),this.frequency=null,this.detune=null,this.harmonicity.dispose(),this.harmonicity=null,this._carrier.dispose(),this._carrier=null,this._modulator.dispose(),this._modulator=null,this._modulationNode.dispose(),this._modulationNode=null,this._modulationScale.dispose(),this._modulationScale=null,this},e.default=s.default.AMOscillator}
5189,function(t,e,i){"use strict";i.r(e);var s=i(0);i(6),i(50),i(17),i(5);s.default.PWMOscillator=function(){var t=s.default.defaults(arguments,["frequency","modulationFrequency"],s.default.PWMOscillator);s.default.Source.call(this,t),this._pulse=new s.default.PulseOscillator(t.modulationFrequency),this._pulse._sawtooth.type="sine",this._modulator=new s.default.Oscillator({frequency:t.frequency,detune:t.detune,phase:t.phase}),this._scale=new s.default.Multiply(2),this.frequency=this._modulator.frequency,this.detune=this._modulator.detune,this.modulationFrequency=this._pulse.frequency,this._modulator.chain(this._scale,this._pulse.width),this._pulse.connect(this.output),this._readOnly(["modulationFrequency","frequency","detune"])},s.default.extend(s.default.PWMOscillator,s.default.Source),s.default.PWMOscillator.defaults={frequency:440,detune:0,phase:0,modulationFrequency:.4},s.default.PWMOscillator.prototype._start=function(t){t=this.toSeconds(t),this._modulator.start(t),this._pulse.start(t)},s.default.PWMOscillator.prototype._stop=function(t){t=this.toSeconds(t),this._modulator.stop(t),this._pulse.stop(t)},s.default.PWMOscillator.prototype.restart=function(t){this._modulator.restart(t),this._pulse.restart(t)},Object.defineProperty(s.default.PWMOscillator.prototype,"type",{get:function(){return"pwm"}}),Object.defineProperty(s.default.PWMOscillator.prototype,"baseType",{get:function(){return"pwm"}}),Object.defineProperty(s.default.PWMOscillator.prototype,"partials",{get:function(){return[]}}),Object.defineProperty(s.default.PWMOscillator.prototype,"phase",{get:function(){return this._modulator.phase},set:function(t){this._modulator.phase=t}}),s.default.PWMOscillator.prototype.dispose=function(){return s.default.Source.prototype.dispose.call(this),this._pulse.dispose(),this._pulse=null,this._scale.dispose(),this._scale=null,this._modulator.dispose(),this._modulator=null,this._writable(["modulationFrequency","frequency","detune"]),this.frequency=null,this.detune=null,this.modulationFrequency=null,this},e.default=s.default.PWMOscillator},function(t,e,i){"use strict";i.r(e);var s=i(0);i(51),i(4),i(16);s.default.Part=function(){var t=s.default.defaults(arguments,["callback","events"],s.default.Part);s.default.Event.call(this,t),this._events=[];for(var e=0;e<t.events.length;e++)Array.isArray(t.events[e])?this.add(t.events[e][0],t.events[e][1]):this.add(t.events[e])},s.default.extend(s.default.Part,s.default.Event),s.default.Part.defaults={callback:s.default.noOp,loop:!1,loopEnd:"1m",loopStart:0,playbackRate:1,probability:1,humanize:!1,mute:!1,events:[]},s.default.Part.prototype.start=function(t,e){var i=this.toTicks(t);return this._state.getValueAtTime(i)!==s.default.State.Started&&(e=this._loop?s.default.defaultArg(e,this._loopStart):s.default.defaultArg(e,0),e=this.toTicks(e),this._state.add({state:s.default.State.Started,time:i,offset:e}),this._forEach(function(t){this._startNote(t,i,e)})),this},s.default.Part.prototype._startNote=function(t,e,i){e-=i,this._loop?t.startOffset>=this._loopStart&&t.startOffset<this._loopEnd?(t.startOffset<i&&(e+=this._getLoopDuration()),t.start(s.default.Ticks(e))):t.startOffset<this._loopStart&&t.startOffset>=i&&(t.loop=!1,t.start(s.default.Ticks(e))):t.startOffset>=i&&t.start(s.default.Ticks(e))},Object.defineProperty(s.default.Part.prototype,"startOffset",{get:function(){return this._startOffset},set:function(t){this._startOffset=t,this._forEach(function(t){t.startOffset+=this._startOffset})}}),s.default.Part.prototype.stop=function(t){var e=this.toTicks(t);return this._state.cancel(e),this._state.setStateAtTime(s.default.State.Stopped,e),this._forEach(function(e){e.stop(t)}),this},s.default.Part.prototype.at=function(t,e){t=s.default.TransportTime(t);for(var i=s.default.Ticks(1).toSeconds(),n=0;n<this._events.length;n++){var o=this._events[n];if(Math.abs(t.toTicks()-o.startOffset)<i)return s.default.isDefined(e)&&(o.value=e),o}return s.default.isDefined(e)?(this.add(t,e),this._events[this._events.length-1]):null},s.default.Part.prototype.add=function(t,e){var i;
5189return t.hasOwnProperty("time")&&(t=(e=t).time),t=this.toTicks(t),e instanceof s.default.Event?(i=e).callback=this._tick.bind(this):i=new s.default.Event({callback:this._tick.bind(this),value:e}),i.startOffset=t,i.set({loopEnd:this.loopEnd,loopStart:this.loopStart,loop:this.loop,humanize:this.humanize,playbackRate:this.playbackRate,probability:this.probability}),this._events.push(i),this._restartEvent(i),this},s.default.Part.prototype._restartEvent=function(t){this._state.forEach(function(e){e.state===s.default.State.Started?this._startNote(t,e.time,e.offset):t.stop(s.default.Ticks(e.time))}.bind(this))},s.default.Part.prototype.remove=function(t,e){t.hasOwnProperty("time")&&(t=(e=t).time),t=this.toTicks(t);for(var i=this._events.length-1;i>=0;i--){var n=this._events[i];n.startOffset===t&&(s.default.isUndef(e)||s.default.isDefined(e)&&n.value===e)&&(this._events.splice(i,1),n.dispose())}return this},s.default.Part.prototype.removeAll=function(){return this._forEach(function(t){t.dispose()}),this._events=[],this},s.default.Part.prototype.cancel=function(t){return this._forEach(function(e){e.cancel(t)}),this._state.cancel(this.toTicks(t)),this},s.default.Part.prototype._forEach=function(t,e){if(this._events){e=s.default.defaultArg(e,this);for(var i=this._events.length-1;i>=0;i--){var n=this._events[i];n instanceof s.default.Part?n._forEach(t,e):t.call(e,n)}}return this},s.default.Part.prototype._setAll=function(t,e){this._forEach(function(i){i[t]=e})},s.default.Part.prototype._tick=function(t,e){this.mute||this.callback(t,e)},s.default.Part.prototype._testLoopBoundries=function(t){this._loop&&(t.startOffset<this._loopStart||t.startOffset>=this._loopEnd)?t.cancel(0):t.state===s.default.State.Stopped&&this._restartEvent(t)},Object.defineProperty(s.default.Part.prototype,"probability",{get:function(){return this._probability},set:function(t){this._probability=t,this._setAll("probability",t)}}),Object.defineProperty(s.default.Part.prototype,"humanize",{get:function(){return this._humanize},set:function(t){this._humanize=t,this._setAll("humanize",t)}}),Object.defineProperty(s.default.Part.prototype,"loop",{get:function(){return this._loop},set:function(t){this._loop=t,this._forEach(function(e){e._loopStart=this._loopStart,e._loopEnd=this._loopEnd,e.loop=t,this._testLoopBoundries(e)})}}),Object.defineProperty(s.default.Part.prototype,"loopEnd",{get:function(){return s.default.Ticks(this._loopEnd).toSeconds()},set:function(t){this._loopEnd=this.toTicks(t),this._loop&&this._forEach(function(e){e.loopEnd=t,this._testLoopBoundries(e)})}}),Object.defineProperty(s.default.Part.prototype,"loopStart",{get:function(){return s.default.Ticks(this._loopStart).toSeconds()},set:function(t){this._loopStart=this.toTicks(t),this._loop&&this._forEach(function(t){t.loopStart=this.loopStart,this._testLoopBoundries(t)})}}),Object.defineProperty(s.default.Part.prototype,"playbackRate",{get:function(){return this._playbackRate},set:function(t){this._playbackRate=t,this._setAll("playbackRate",t)}}),Object.defineProperty(s.default.Part.prototype,"length",{get:function(){return this._events.length}}),s.default.Part.prototype.dispose=function(){return s.default.Event.prototype.dispose.call(this),this.removeAll(),this.callback=null,this._events=null,this},e.default=s.default.Part},function(t,e,i){"use strict";i.r(e);var s=i(0);i(51);s.default.Loop=function(){var t=s.default.defaults(arguments,["callback","interval"],s.default.Loop);s.default.call(this),this._event=new s.default.Event({callback:this._tick.bind(this),loop:!0,loopEnd:t.interval,playbackRate:t.playbackRate,probability:t.probability}),this.callback=t.callback,this.iterations=t.iterations},s.default.extend(s.default.Loop),s.default.Loop.defaults={interval:"4n",callback:s.default.noOp,playbackRate:1,iterations:1/0,probability:!0,mute:!1},s.default.Loop.prototype.start=function(t){return this._event.start(t),this},s.default.Loop.prototype.stop=function(t){return this._event.stop(t),this},s.default.Loop.prototype.cancel=function(t){return this._event.cancel(t),this},s.default.Loop.prototype._tick=function(t){this.callback(t)},Object.defineProperty(s.default.Loop.prototype,"state",{get:function(){return this._event.state}}),Object.defineProperty(s.default.Loop.prototype,"progress",{get:function(){return this._event.progress}}),Object.defineProperty(s.default.Loop.prototype,"interval",{get:function(){return this._event.loopEnd},set:function(t){this._event.loopEnd=t}}),Object.defineProperty(s.default.Loop.prototype,"playbackRate",{get:function(){return this._event.playbackRate},set:function(t){this._event.playbackRate=t}}),Object.defineProperty(s.default.Loop.prototype,"humanize",{get:function(){return this._event.humanize},set:function(t){this._event.humanize=t}}),Object.defineProperty(s.default.Loop.prototype,"probability",{get:function(){return this._event.probability},set:function(t){this._event.probability=t}}),Object.defineProperty(s.default.Loop.prototype,"mute",{get:function(){return this._event.mute},set:function(t){this._event.mute=t}}),Object.defineProperty(s.default.Loop.prototype,"iterations",{get:function(){return!0===this._event.loop?1/0:this._event.loop},set:function(t){this._event.loop=t===1/0||t}}),s.default.Loop.prototype.dispose=function(){this._event.dispose(),this._event=null,this.callback=null},e.default=s.default.Loop}
5189,function(t,e,i){"use strict";i.r(e);var s=i(0);i(15),i(33);s.default.StereoXFeedbackEffect=function(){var t=s.default.defaults(arguments,["feedback"],s.default.FeedbackEffect);s.default.StereoEffect.call(this,t),this.feedback=new s.default.Signal(t.feedback,s.default.Type.NormalRange),this._feedbackLR=new s.default.Gain,this._feedbackRL=new s.default.Gain,this.effectReturnL.chain(this._feedbackLR,this.effectSendR),this.effectReturnR.chain(this._feedbackRL,this.effectSendL),this.feedback.fan(this._feedbackLR.gain,this._feedbackRL.gain),this._readOnly(["feedback"])},s.default.extend(s.default.StereoXFeedbackEffect,s.default.StereoEffect),s.default.StereoXFeedbackEffect.prototype.dispose=function(){return s.default.StereoEffect.prototype.dispose.call(this),this._writable(["feedback"]),this.feedback.dispose(),this.feedback=null,this._feedbackLR.dispose(),this._feedbackLR=null,this._feedbackRL.dispose(),this._feedbackRL=null,this},e.default=s.default.StereoXFeedbackEffect},function(t,e,i){"use strict";i.r(e);var s=i(0);i(8),i(53),i(52);s.default.MidSideEffect=function(){s.default.Effect.apply(this,arguments),this._midSideSplit=new s.default.MidSideSplit,this._midSideMerge=new s.default.MidSideMerge,this.midSend=this._midSideSplit.mid,this.sideSend=this._midSideSplit.side,this.midReturn=this._midSideMerge.mid,this.sideReturn=this._midSideMerge.side,this.effectSend.connect(this._midSideSplit),this._midSideMerge.connect(this.effectReturn)},s.default.extend(s.default.MidSideEffect,s.default.Effect),s.default.MidSideEffect.prototype.dispose=function(){return s.default.Effect.prototype.dispose.call(this),this._midSideSplit.dispose(),this._midSideSplit=null,this._midSideMerge.dispose(),this._midSideMerge=null,this.midSend=null,this.sideSend=null,this.midReturn=null,this.sideReturn=null,this},e.default=s.default.MidSideEffect},function(t,e,i){"use strict";i.r(e);var s=i(0);i(11),i(8);s.default.Convolver=function(){var t=s.default.defaults(arguments,["url","onload"],s.default.Convolver);s.default.Effect.call(this,t),this._convolver=this.context.createConvolver(),this._buffer=new s.default.Buffer(t.url,function(e){this.buffer=e.get(),t.onload()}.bind(this)),this._buffer.loaded&&(this.buffer=this._buffer),this.normalize=t.normalize,this.connectEffect(this._convolver)},s.default.extend(s.default.Convolver,s.default.Effect),s.default.Convolver.defaults={onload:s.default.noOp,normalize:!0},Object.defineProperty(s.default.Convolver.prototype,"buffer",{get:function(){return this._buffer.length?this._buffer:null},set:function(t){this._buffer.set(t),this._convolver.buffer&&(this.effectSend.disconnect(),this._convolver.disconnect(),this._convolver=this.context.createConvolver(),this.connectEffect(this._convolver)),this._convolver.buffer=this._buffer.get()}}),Object.defineProperty(s.default.Convolver.prototype,"normalize",{get:function(){return this._convolver.normalize},set:function(t){this._convolver.normalize=t}}),s.default.Convolver.prototype.load=function(t,e){return this._buffer.load(t,function(t){this.buffer=t,e&&e()}.bind(this))},s.default.Convolver.prototype.dispose=function(){return s.default.Effect.prototype.dispose.call(this),this._buffer.dispose(),this._buffer=null,this._convolver.disconnect(),this._convolver=null,this},e.default=s.default.Convolver},function(t,e,i){"use strict";i.r(e);var s=i(0);i(7),i(5),i(13);s.default.Modulo=function(t){s.default.SignalBase.call(this),this.createInsOuts(1,0),this._shaper=new s.default.WaveShaper(Math.pow(2,16)),this._multiply=new s.default.Multiply,this._subtract=this.output=new s.default.Subtract,this._modSignal=new s.default.Signal(t),s.default.connect(this.input,this._shaper),s.default.connect(this.input,this._subtract),this._modSignal.connect(this._multiply,0,0),this._shaper.connect(this._multiply,0,1),this._multiply.connect(this._subtract,0,1),this._setWaveShaper(t)},s.default.extend(s.default.Modulo,s.default.SignalBase),s.default.Modulo.prototype._setWaveShaper=function(t){this._shaper.setMap(function(e){return Math.floor((e+1e-4)/t)})},Object.defineProperty(s.default.Modulo.prototype,"value",{get:function(){return this._modSignal.value},set:function(t){this._modSignal.value=t,this._setWaveShaper(t)}}),s.default.Modulo.prototype.dispose=function(){return s.default.SignalBase.prototype.dispose.call(this),this._shaper.dispose(),this._shaper=null,this._multiply.dispose(),this._multiply=null,this._subtract.dispose(),this._subtract=null,this._modSignal.dis
5189pose(),this._modSignal=null,this},e.default=s.default.Modulo},function(t,e,i){"use strict";i.r(e);var s=i(0);i(20),i(92);s.default.OfflineContext=function(t,e,i){var n=new OfflineAudioContext(t,e*i,i);s.default.Context.call(this,{context:n,clockSource:"offline",lookAhead:0,updateInterval:128/i}),this._duration=e,this._currentTime=0},s.default.extend(s.default.OfflineContext,s.default.Context),s.default.OfflineContext.prototype.now=function(){return this._currentTime},s.default.OfflineContext.prototype.resume=function(){return Promise.resolve()},s.default.OfflineContext.prototype.render=function(){for(;this._duration-this._currentTime>=0;)this.emit("tick"),this._currentTime+=.005;return this._context.startRendering()},s.default.OfflineContext.prototype.close=function(){return this._context=null,Promise.resolve()},e.default=s.default.OfflineContext},function(t,e,i){"use strict";i.r(e);var s=i(0);i(16),i(11),i(76),i(40);s.default.Offline=function(t,e){var i=s.default.context.sampleRate,n=s.default.context,o=new s.default.OfflineContext(2,e,i);s.default.context=o;var a=t(s.default.Transport),r=null;return r=a&&s.default.isFunction(a.then)?a.then(function(){return o.render()}):o.render(),s.default.context=n,r.then(function(t){return new s.default.Buffer(t)})},e.default=s.default.Offline},function(t,e,i){"use strict";i.r(e);var s=i(0);i(11);s.default.Buffers=function(t){var e=Array.prototype.slice.call(arguments);e.shift();var i=s.default.defaults(e,["onload","baseUrl"],s.default.Buffers);for(var n in s.default.call(this),this._buffers={},this.baseUrl=i.baseUrl,this._loadingCount=0,t)this._loadingCount++,this.add(n,t[n],this._bufferLoaded.bind(this,i.onload))},s.default.extend(s.default.Buffers),s.default.Buffers.defaults={onload:s.default.noOp,baseUrl:""},s.default.Buffers.prototype.has=function(t){return this._buffers.hasOwnProperty(t)},s.default.Buffers.prototype.get=function(t){if(this.has(t))return this._buffers[t];throw new Error("Tone.Buffers: no buffer named "+t)},s.default.Buffers.prototype._bufferLoaded=function(t){this._loadingCount--,0===this._loadingCount&&t&&t(this)},Object.defineProperty(s.default.Buffers.prototype,"loaded",{get:function(){var t=!0;for(var e in this._buffers){var i=this.get(e);t=t&&i.loaded}return t}}),s.default.Buffers.prototype.add=function(t,e,i){return i=s.default.defaultArg(i,s.default.noOp),e instanceof s.default.Buffer?(this._buffers[t]=e,i(this)):e instanceof AudioBuffer?(this._buffers[t]=new s.default.Buffer(e),i(this)):s.default.isString(e)&&(this._buffers[t]=new s.default.Buffer(this.baseUrl+e,i)),this},s.default.Buffers.prototype.dispose=function(){for(var t in s.default.prototype.dispose.call(this),this._buffers)this._buffers[t].dispose();return this._buffers=null,this},e.default=s.default.Buffers},function(t,e,i){"use strict";i.r(e);var s=i(0);s.default.CtrlPattern=function(){var t=s.default.defaults(arguments,["values","type"],s.default.CtrlPattern);s.default.call(this),this.values=t.values,this.index=0,this._type=null,this._shuffled=null,this._direction=null,this.type=t.type},s.default.extend(s.default.CtrlPattern),s.default.CtrlPattern.Type={Up:"up",Down:"down",UpDown:"upDown",DownUp:"downUp",AlternateUp:"alternateUp",AlternateDown:"alternateDown",Random:"random",RandomWalk:"randomWalk",RandomOnce:"randomOnce"},s.default.CtrlPattern.defaults={type:s.default.CtrlPattern.Type.Up,values:[]},Object.defineProperty(s.default.CtrlPattern.prototype,"value",{get:function(){if(0!==this.values.length){if(1===this.values.length)return this.values[0];this.index=Math.min(this.index,this.values.length-1);var t=this.values[this.index];return this.type===s.default.CtrlPattern.Type.RandomOnce&&(this.values.length!==this._shuffled.length&&this._shuffleValues(),t=this.values[this._shuffled[this.index]]),t}}}),Object.defineProperty(s.default.CtrlPattern.prototype,"type",{get:function(){return this._type},set:function(t){this._type=t,this._shuffled=null,this._type===s.default.CtrlPattern.Type.Up||this._type===s.default.CtrlPattern.Type.UpDown||this._type===s.default.CtrlPattern.Type.RandomOnce||this._type===s.default.CtrlPattern.Type.AlternateUp?this.index=0:this._type!==s.default.CtrlPattern.Type.Down&&this._type!==s.default.CtrlPattern.Type.DownUp&&this._type!==s.default.CtrlPattern.Type.AlternateDown||(this.index=this.values.length-1),this._type===s.default.CtrlPattern.Type.UpDown||this._type===s.default.CtrlPattern.Type.AlternateUp?this._direction=s.default.CtrlPattern.Type.Up:this._type!==s.default.CtrlPattern.Type.DownUp&&this._type!==s.default.CtrlPattern.Type.AlternateDown||(this._direction=s.default.CtrlPattern.Type.Down),this._type===s.default.CtrlPattern.Type.RandomOnce?this._shuffleValues():this._type===s.default.CtrlPattern.Type.Random&&(this.index=Math.floor(Math.random()*this.values.length))}}
5189),s.default.CtrlPattern.prototype.next=function(){var t=this.type;return t===s.default.CtrlPattern.Type.Up?(this.index++,this.index>=this.values.length&&(this.index=0)):t===s.default.CtrlPattern.Type.Down?(this.index--,this.index<0&&(this.index=this.values.length-1)):t===s.default.CtrlPattern.Type.UpDown||t===s.default.CtrlPattern.Type.DownUp?(this._direction===s.default.CtrlPattern.Type.Up?this.index++:this.index--,this.index<0?(this.index=1,this._direction=s.default.CtrlPattern.Type.Up):this.index>=this.values.length&&(this.index=this.values.length-2,this._direction=s.default.CtrlPattern.Type.Down)):t===s.default.CtrlPattern.Type.Random?this.index=Math.floor(Math.random()*this.values.length):t===s.default.CtrlPattern.Type.RandomWalk?Math.random()<.5?(this.index--,this.index=Math.max(this.index,0)):(this.index++,this.index=Math.min(this.index,this.values.length-1)):t===s.default.CtrlPattern.Type.RandomOnce?(this.index++,this.index>=this.values.length&&(this.index=0,this._shuffleValues())):t===s.default.CtrlPattern.Type.AlternateUp?(this._direction===s.default.CtrlPattern.Type.Up?(this.index+=2,this._direction=s.default.CtrlPattern.Type.Down):(this.index-=1,this._direction=s.default.CtrlPattern.Type.Up),this.index>=this.values.length&&(this.index=0,this._direction=s.default.CtrlPattern.Type.Up)):t===s.default.CtrlPattern.Type.AlternateDown&&(this._direction===s.default.CtrlPattern.Type.Up?(this.index+=1,this._direction=s.default.CtrlPattern.Type.Down):(this.index-=2,this._direction=s.default.CtrlPattern.Type.Up),this.index<0&&(this.index=this.values.length-1,this._direction=s.default.CtrlPattern.Type.Down)),this.value},s.default.CtrlPattern.prototype._shuffleValues=function(){var t=[];this._shuffled=[];for(var e=0;e<this.values.length;e++)t[e]=e;for(;t.length>0;){var i=t.splice(Math.floor(t.length*Math.random()),1);this._shuffled.push(i[0])}},s.default.CtrlPattern.prototype.dispose=function(){this._shuffled=null,this.values=null},e.default=s.default.CtrlPattern},function(t,e,i){"use strict";i.r(e);var s=i(0);i(56),i(55);s.default.TransportRepeatEvent=function(t,e){s.default.TransportEvent.call(this,t,e),e=s.default.defaultArg(e,s.default.TransportRepeatEvent.defaults),this.duration=s.default.Ticks(e.duration),this._interval=s.default.Ticks(e.interval),this._currentId=-1,this._nextId=-1,this._nextTick=this.time,this._boundRestart=this._restart.bind(this),this.Trans
5189port.on("start loopStart",this._boundRestart),this._restart()},s.default.extend(s.default.TransportRepeatEvent,s.default.TransportEvent),s.default.TransportRepeatEvent.defaults={duration:1/0,interval:1},s.default.TransportRepeatEvent.prototype.invoke=function(t){this._createEvents(t),s.default.TransportEvent.prototype.invoke.call(this,t)},s.default.TransportRepeatEvent.prototype._createEvents=function(t){var e=this.Transport.getTicksAtTime(t);e>=this.time&&e>=this._nextTick&&this._nextTick+this._interval<this.time+this.duration&&(this._nextTick+=this._interval,this._currentId=this._nextId,this._nextId=this.Transport.scheduleOnce(this.invoke.bind(this),s.default.Ticks(this._nextTick)))},s.default.TransportRepeatEvent.prototype._restart=function(t){this.Transport.clear(this._currentId),this.Transport.clear(this._nextId),this._nextTick=this.time;var e=this.Transport.getTicksAtTime(t);e>this.time&&(this._nextTick=this.time+Math.ceil((e-this.time)/this._interval)*this._interval),this._currentId=this.Transport.scheduleOnce(this.invoke.bind(this),s.default.Ticks(this._nextTick)),this._nextTick+=this._interval,this._nextId=this.Transport.scheduleOnce(this.invoke.bind(this),s.default.Ticks(this._nextTick))},s.default.TransportRepeatEvent.prototype.dispose=function(){return this.Transport.clear(this._currentId),this.Trans
5189port.clear(this._nextId),this.Transport.off("start loopStart",this._boundRestart),this._boundCreateEvents=null,s.default.TransportEvent.prototype.dispose.call(this),this.duration=null,this._interval=null,this},e.default=s.default.TransportRepeatEvent},function(t,e,i){"use strict";i.r(e);var s=i(0);i(4);s.default.IntervalTimeline=function(){s.default.call(this),this._root=null,this._length=0},s.default.extend(s.default.IntervalTimeline),s.default.IntervalTimeline.prototype.add=function(t){if(s.default.isUndef(t.time)||s.default.isUndef(t.duration))throw new Error("Tone.IntervalTimeline: events must have time and duration parameters");t.time=t.time.valueOf();var e=new n(t.time,t.time+t.duration,t);for(null===this._root?this._root=e:this._root.insert(e),this._length++;null!==e;)e.updateHeight(),e.updateMax(),this._rebalance(e),e=e.parent;return this},s.default.IntervalTimeline.prototype.remove=function(t){if(null!==this._root){var e=[];this._root.search(t.time,e);for(var i=0;i<e.length;i++){var s=e[i];if(s.event===t){this._removeNode(s),this._length--;break}}}return this},Object.defineProperty(s.default.IntervalTimeline.prototype,"length",{get:function(){return this._length}}),s.default.IntervalTimeline.prototype.cancel=function(t){return this.forEachFrom(t,function(t){this.remove(t)}.bind(this)),this},s.default.IntervalTimeline.prototype._setRoot=function(t){this._root=t,null!==this._root&&(this._root.parent=null)},s.default.IntervalTimeline.prototype._replaceNodeInParent=function(t,e){null!==t.parent?(t.isLeftChild()?t.parent.left=e:t.parent.right=e,this._rebalance(t.parent)):this._setRoot(e)},s.default.IntervalTimeline.prototype._removeNode=function(t){if(null===t.left&&null===t.right)this._replaceNodeInParent(t,null);else if(null===t.right)this._replaceNodeInParent(t,t.left);else if(null===t.left)this._replaceNodeInParent(t,t.right);else{var e,i;if(t.getBalance()>0)if(null===t.left.right)(e=t.left).right=t.right,i=e;else{for(e=t.left.right;null!==e.right;)e=e.right;e.parent.right=e.left,i=e.parent,e.left=t.left,e.right=t.right}else if(null===t.right.left)(e=t.right).left=t.left,i=e;else{for(e=t.right.left;null!==e.left;)e=e.left;e.parent.left=e.right,i=e.parent,e.left=t.left,e.right=t.right}null!==t.parent?t.isLeftChild()?t.parent.left=e:t.parent.right=e:this._setRoot(e),this._rebalance(i)}t.dispose()},s.default.IntervalTimeline.prototype._rotateLeft=function(t){var e=t.parent,i=t.isLeftChild(),s=t.right;t.right=s.left,s.left=t,null!==e?i?e.left=s:e.right=s:this._setRoot(s)},s.default.IntervalTimeline.prototype._rotateRight=function(t){var e=t.parent,i=t.isLeftChild(),s=t.left;t.left=s.right,s.right=t,null!==e?i?e.left=s:e.right=s:this._setRoot(s)},s.default.IntervalTimeline.prototype._rebalance=function(t){var e=t.getBalance();e>1?t.left.getBalance()<0?this._rotateLeft(t.left):this._rotateRight(t):e<-1&&(t.right.getBalance()>0?this._rotateRight(t.right):this._rotateLeft(t))},s.default.IntervalTimeline.prototype.get=function(t){if(null!==this._root){var e=[];if(this._root.search(t,e),e.length>0){for(var i=e[0],s=1;s<e.length;s++)e[s].low>i.low&&(i=e[s]);return i.event}}return null},s.default.IntervalTimeline.prototype.forEach=function(t){if(null!==this._root){var e=[];this._root.traverse(function(t){e.push(t)});for(var i=0;i<e.length;i++){var s=e[i].event;s&&t(s)}}return this},s.default.IntervalTimeline.prototype.forEachAtTime=function(t,e){if(null!==this._root){var i=[];this._root.search(t,i);for(var s=i.length-1;s>=0;s--){var n=i[s].event;n&&e(n)}}return this},s.default.IntervalTimeline.prototype.forEachFrom=function(t,e){if(null!==this._root){var i=[];this._root.searchAfter(t,i);for(var s=i.length-1;s>=0;s--){e(i[s].event)}}return this},s.default.IntervalTimeline.prototype.dispose=function(){var t=[];null!==this._root&&this._root.traverse(function(e){t.push(e)});for(var e=0;e<t.length;e++)t[e].dispose();return t=null,this._root=null,this};var n=function(t,e,i){this.event=i,this.low=t,this.high=e,this.max=this.high,this._left=null,this._right=null,this.parent=null,this.height=0};n.prototype.insert=function(t){t.low<=this.low?null===this.left?this.left=t:this.left.insert(t):null===this.right?this.right=t:this.right.insert(t)},n.prototype.search=function(t,e){t>this.max||(null!==this.left&&this.left.search(t,e),this.low<=t&&this.high>t&&e.push(this),this.low>t||null!==this.right&&this.right.search(t,e))},n.prototype.searchAfter=function(t,e){this.low>=t&&(e.push(this),null!==this.left&&this.left.searchAfter(t,e)),null!==this.right&&this.right.searchAfter(t,e)},n.prototype.traverse=function(t){t(this),null!==this.left&&this.left.traverse(t),null!==this.right&&this.right.traverse(t)},n.prototype.updateHeight=function(){null!==this.left&&null!==this.right?this.height=Math.max(this.left.height,this.right.height)+1:null!==this.right?this.height=this.right.height+1:null!==this.left?this.height=this.left.height+1:this.height=0},n.prototype.updateMax=function(){this.max=this.high,null!==this.left&&(this.max=Math.max(this.max,this.left.max)),null!==this.right&&(this.max=Math.max(this.max,this.right.max))},n.prototype.getBalance=function(){var t=0;return null!==this.left&&null!==this.right?t=this.left.height-this.right.height:null!==this.left?t=this.left.height+1:null!==this.right&&(t=-(this.right.height+1)),t},n.prototype.isLeftChild=function(){return null!==this.parent&&this.parent.left===this},Object.defineProperty(n.prototype,"left",{get:function(){return this._left},set:function(t){this._left=t,null!==t&&(t.parent=this),this.updateHeight(),this.updateMax()}}),Object.defineProperty(n.prototype,"right",{get:function(){return this._right},set:function(t){this._right=t,null!==t&&(t.parent=this),this.updateHeight(),this.updateMax()}}),n.prototype.dispose=function(){this.parent=null,this._left=null,this._right=null,this.event=null},e.default=s.default.IntervalTimeline}
5189,function(t,e,i){"use strict";i.r(e);var s=i(0);i(2);function n(t){return function(e,i){i=this.toSeconds(i),t.apply(this,arguments);var s=this._events.get(i),n=this._events.previousEvent(s),o=this._getTicksUntilEvent(n,i);return s.ticks=Math.max(o,0),this}}s.default.TickSignal=function(t){t=s.default.defaultArg(t,1),s.default.Signal.call(this,{units:s.default.Type.Ticks,value:t}),this._events.memory=1/0,this.cancelScheduledValues(0),this._events.add({type:s.default.Param.AutomationType.SetValue,time:0,value:t})},s.default.extend(s.default.TickSignal,s.default.Signal),s.default.TickSignal.prototype.setValueAtTime=n(s.default.Signal.prototype.setValueAtTime),s.default.TickSignal.prototype.linearRampToValueAtTime=n(s.default.Signal.prototype.linearRampToValueAtTime),s.default.TickSignal.prototype.setTargetAtTime=function(t,e,i){e=this.toSeconds(e),this.setRampPoint(e),t=this._fromUnits(t);for(var s=this._events.get(e),n=Math.round(Math.max(1/i,1)),o=0;o<=n;o++){var a=i*o+e,r=this._exponentialApproach(s.time,s.value,t,i,a);this.linearRampToValueAtTime(this._toUnits(r),a)}return this},s.default.TickSignal.prototype.exponentialRampToValueAtTime=function(t,e){e=this.toSeconds(e),t=this._fromUnits(t);for(var i=this._events.get(e),s=Math.round(Math.max(10*(e-i.time),1)),n=(e-i.time)/s,o=0;o<=s;o++){var a=n*o+i.time,r=this._exponentialInterpolate(i.time,i.value,e,t,a);this.linearRampToValueAtTime(this._toUnits(r),a)}return this},s.default.TickSignal.prototype._getTicksUntilEvent=function(t,e){if(null===t)t={ticks:0,time:0};else if(s.default.isUndef(t.ticks)){var i=this._events.previousEvent(t);t.ticks=this._getTicksUntilEvent(i,t.time)}var n=this.getValueAtTime(t.time),o=this.getValueAtTime(e);return this._events.get(e).time===e&&this._events.get(e).type===s.default.Param.AutomationType.SetValue&&(o=this.getValueAtTime(e-this.sampleTime)),.5*(e-t.time)*(n+o)+t.ticks},s.default.TickSignal.prototype.getTicksAtTime=function(t){t=this.toSeconds(t);var e=this._events.get(t);return Math.max(this._getTicksUntilEvent(e,t),0)},s.default.TickSignal.prototype.getDurationOfTicks=function(t,e){e=this.toSeconds(e);var i=this.getTicksAtTime(e);return this.getTimeOfTick(i+t)-e},s.default.TickSignal.prototype.getTimeOfTick=function(t){var e=this._events.get(t,"ticks"),i=this._events.getAfter(t,"ticks");if(e&&e.ticks===t)return e.time;if(e&&i&&i.type===s.default.Param.AutomationType.Linear&&e.value!==i.value){var n=this.getValueAtTime(e.time),o=(this.getValueAtTime(i.time)-n)/(i.time-e.time),a=Math.sqrt(Math.pow(n,2)-2*o*(e.ticks-t)),r=(-n+a)/o;return(r>0?r:(-n-a)/o)+e.time}return e?0===e.value?1/0:e.time+(t-e.ticks)/e.value:t/this._initialValue},s.default.TickSignal.prototype.ticksToTime=function(t,e){return e=this.toSeconds(e),new s.default.Time(this.getDurationOfTicks(t,e))},s.default.TickSignal.prototype.timeToTicks=function(t,e){e=this.toSeconds(e),t=this.toSeconds(t);var i=this.getTicksAtTime(e),n=this.getTicksAtTime(e+t);return new s.default.Ticks(n-i)},e.default=s.default.TickSignal},function(t,e,i){"use strict";i.r(e);var s=i(0);i(57),i(34),i(35),i(20);s.default.Clock=function(){var t=s.default.defaults(arguments,["callback","frequency"],s.default.Clock);s.default.Emitter.call(this),this.callback=t.callback,this._nextTick=0,this._tickSource=new s.default.TickSource(t.frequency),this._lastUpdate=0,this.frequency=this._tickSource.frequency,this._readOnly("frequency"),this._state=new s.default.TimelineState(s.default.State.Stopped),this._state.setStateAtTime(s.default.State.Stopped,0),this._boundLoop=this._loop.bind(this),this.context.on("tick",this._boundLoop)},s.default.extend(s.default.Clock,s.default.Emitter),s.default.Clock.defaults={callback:s.default.noOp,frequency:1},Object.defineProperty(s.default.Clock.prototype,"state",{get:function(){return this._state.getValueAtTime(this.now())}}),s.default.Clock.prototype.start=function(t,e){return this.context.resume(),t=this.toSeconds(t),this._state.getValueAtTime(t)!==s.default.State.Started&&(this._state.setStateAtTime(s.default.State.Started,t),this._tickSource.start(t,e),t<this._lastUpdate&&this.emit
5189("start",t,e)),this},s.default.Clock.prototype.stop=function(t){return t=this.toSeconds(t),this._state.cancel(t),this._state.setStateAtTime(s.default.State.Stopped,t),this._tickSource.stop(t),t<this._lastUpdate&&this.emit("stop",t),this},s.default.Clock.prototype.pause=function(t){return t=this.toSeconds(t),this._state.getValueAtTime(t)===s.default.State.Started&&(this._state.setStateAtTime(s.default.State.Paused,t),this._tickSource.pause(t),t<this._lastUpdate&&this.emit("pause",t)),this},Object.defineProperty(s.default.Clock.prototype,"ticks",{get:function(){return Math.ceil(this.getTicksAtTime(this.now()))},set:function(t){this._tickSource.ticks=t}}),Object.defineProperty(s.default.Clock.prototype,"seconds",{get:function(){return this._tickSource.seconds},set:function(t){this._tickSource.seconds=t}}),s.default.Clock.prototype.getSecondsAtTime=function(t){return this._tickSource.getSecondsAtTime(t)},s.default.Clock.prototype.setTicksAtTime=function(t,e){return this._tickSource.setTicksAtTime(t,e),this},s.default.Clock.prototype.getTicksAtTime=function(t){return this._tickSource.getTicksAtTime(t)},s.default.Clock.prototype.nextTickTime=function(t,e){e=this.toSeconds(e);var i=this.getTicksAtTime(e);return this._tickSource.getTimeOfTick(i+t,e)},s.default.Clock.prototype._loop=function(){var t=this._lastUpdate,e=this.now();this._lastUpdate=e,t!==e&&(this._state.forEachBetween(t,e,function(t){switch(t.state){case s.default.State.Started:var e=this._tickSource.getTicksAtTime(t.time);this.emit("start",t.time,e);break;case s.default.State.Stopped:0!==t.time&&this.emit("stop",t.time);break;case s.default.State.Paused:this.emit("pause",t.time)}}.bind(this)),this._tickSource.forEachTickBetween(t,e,function(t,e){this.callback(t,e)}.bind(this)))},s.default.Clock.prototype.getStateAtTime=function(t){return t=this.toSeconds(t),this._state.getValueAtTime(t)},s.default.Clock.prototype.dispose=function(){s.default.Emitter.prototype.dispose.call(this),this.context.off("tick",this._boundLoop),this._writable("frequency"),this._tickSource.dispose(),this._tickSource=null,this.frequency=null,this._boundLoop=null,this._nextTick=1/0,this.callback=null,this._state.dispose(),this._state=null},e.default=s.default.Clock},function(t,e,i){"use strict";i.r(e);var s=i(0);i(2),i(5),i(7);s.default.GreaterThanZero=function(){s.default.SignalBase.call(this),this._thresh=this.output=new s.default.WaveShaper(function(t){return t<=0?0:1},127),this._scale=this.input=new s.default.Multiply(1e4),this._scale.connect(this._thresh)},s.default.extend(s.default.GreaterThanZero,s.default.SignalBase),s.default.GreaterThanZero.prototype.dispose=function(){return s.default.SignalBase.prototype.dispose.call(this),this._scale.dispose(),this._scale=null,this._thresh.dispose(),this._thresh=null,this},e.default=s.default.GreaterThanZero},function(t,e,i){"use strict";i.r(e);var s=i(0);i(84),i(13),i(2);s.default.GreaterThan=function(t){s.default.Signal.call(this),this.createInsOuts(2,0),this._param=this.input[0]=new s.default.Subtract(t),this.input[1]=this._param.input[1],this._gtz=this.output=new s.default.GreaterThanZero,this._param.connect(this._gtz)},s.default.extend(s.default.GreaterThan,s.default.Signal),s.default.GreaterThan.prototype.dispose=function(){return s.default.Signal.prototype.dispose.call(this),this._gtz.dispose(),this._gtz=null,this},e.default=s.default.GreaterThan},function(t,e,i){"use strict";i.r(e);var s=i(0);i(47),i(26);s.default.ScaledEnvelope=function(){var t=s.default.defaults(arguments,["attack","decay","sustain","release"],s.default.Envelope);s.default.Envelope.call(this,t),t=s.default.defaultArg(t,s.default.ScaledEnvelope.defaults),this._exp=this.output=new s.default.Pow(t.exponent),this._scale=this.output=new s.default.Scale(t.min,t.max),this._sig.chain(this._exp,this._scale)},s.default.extend(s.default.ScaledEnvelope,s.default.Envelope),s.default.ScaledEnvelope.defaults={min:0,max:1,exponent:1},Object.defineProperty(s.default.ScaledEnvelope.prototype,"min",{get:function(){return this._scale.min},set:function(t){this._scale.min=t}}),Object.defineProperty(s.default.ScaledEnvelope.prototype,"max",{get:function(){return this._scale.max},set:function(t){this._scale.max=t}}),Object.defineProperty(s.default.ScaledEnvelope.prototype,"exponent",{get:function(){return this._exp.value},set:function(t){this._exp.value=t}}),s.default.ScaledEnvelope.prototype.dispose=function(){return s.default.Envelope.prototype.dispose.call(this),this._scale.dispose(),this._scale=null,this._exp.dispose(),this._exp=null,this},e.default=s.default.ScaledEnvelope}
5189,function(t,e,i){"use strict";i.r(e);var s=i(0);i(7),i(30);s.default.Abs=function(){s.default.SignalBase.call(this),this._abs=this.input=this.output=new s.default.WaveShaper(function(t){return Math.abs(t)<.001?0:Math.abs(t)},1024)},s.default.extend(s.default.Abs,s.default.SignalBase),s.default.Abs.prototype.dispose=function(){return s.default.SignalBase.prototype.dispose.call(this),this._abs.dispose(),this._abs=null,this},e.default=s.default.Abs},function(t,e,i){"use strict";i.r(e);var s=i(0);i(3),i(1);s.default.Solo=function(){var t=s.default.defaults(arguments,["solo"],s.default.Solo);s.default.AudioNode.call(this),this.input=this.output=new s.default.Gain,this._soloBind=this._soloed.bind(this),this.context.on("solo",this._soloBind),this.solo=t.solo},s.default.extend(s.default.Solo,s.default.AudioNode),s.default.Solo.defaults={solo:!1},Object.defineProperty(s.default.Solo.prototype,"solo",{get:function(){return this._isSoloed()},set:function(t){t?this._addSolo():this._removeSolo(),this.context.emit("solo",this)}}),Object.defineProperty(s.default.Solo.prototype,"muted",{get:function(){return 0===this.input.gain.value}}),s.default.Solo.prototype._addSolo=function(){s.default.isArray(this.context._currentSolo)||(this.context._currentSolo=[]),this._isSoloed()||this.context._currentSolo.push(this)},s.default.Solo.prototype._removeSolo=function(){if(this._isSoloed()){var t=this.context._currentSolo.indexOf(this);this.context._currentSolo.splice(t,1)}},s.default.Solo.prototype._isSoloed=function(){return!!s.default.isArray(this.context._currentSolo)&&(0!==this.context._currentSolo.length&&-1!==this.context._currentSolo.indexOf(this))},s.default.Solo.prototype._noSolos=function(){return!s.default.isArray(this.context._currentSolo)||0===this.context._currentSolo.length},s.default.Solo.prototype._soloed=function(){this._isSoloed()?this.input.gain.value=1:this._noSolos()?this.input.gain.value=1:this.input.gain.value=0},s.default.Solo.prototype.dispose=function(){return this.context.off("solo",this._soloBind),this._removeSolo(),this._soloBind=null,s.default.AudioNode.prototype.dispose.call(this),this},e.default=s.default.Solo},function(t,e,i){"use strict";i.r(e);var s=i(0);i(7);s.default.EqualPowerGain=function(){s.default.SignalBase.call(this),this._eqPower=this.input=this.output=new s.default.WaveShaper(function(t){return Math.abs(t)<.001?0:s.default.equalPowerScale(t)}.bind(this),4096)},s.default.extend(s.default.EqualPowerGain,s.default.SignalBase),s.default.EqualPowerGain.prototype.dispose=function(){return s.default.SignalBase.prototype.dispose.call(this),this._eqPower.dispose(),this._eqPower=null,this},e.default=s.default.EqualPowerGain},function(t,e,i){"use strict";i.r(e);var s=i(0);i(5),i(2);s.default.Negate=function(){s.default.SignalBase.call(this),this._multiply=this.input=this.output=new s.default.Multiply(-1)},s.default.extend(s.default.Negate,s.default.SignalBase),s.default.Negate.prototype.dispose=function(){return s.default.SignalBase.prototype.dispose.call(this),this._multiply.dispose(),this._multiply=null,this},e.default=s.default.Negate},function(t,e,i){"use strict";i.r(e);var s=i(0);i(48),i(27),i(1);s.default.PanVol=function(){var t=s.default.defaults(arguments,["pan","volume"],s.default.PanVol);s.default.AudioNode.call(this),this._panner=this.input=new s.default.Panner(t.pan),this.pan=this._panner.pan,this._volume=this.output=new s.default.Volume(t.volume),this.volume=this._volume.volume,this._panner.connect(this._volume),this.mute=t.mute,this._readOnly(["pan","volume"])},s.default.extend(s.default.PanVol,s.default.AudioNode),s.default.PanVol.defaults={pan:0,volume:0,mute:!1},Object.defineProperty(s.default.PanVol.prototype,"mute",{get:function(){return this._volume.mute},set:function(t){this._volume.mute=t}}),s.default.PanVol.prototype.dispose=function(){return s.default.AudioNode.prototype.dispose.call(this),this._writable(["pan","volume"]),this._panner.dispose(),this._panner=null,this.pan=null,this._volume.dispose(),this._volume=null,this.volume=null,this},e.default=s.default.PanVol},function(t,e,i){"use strict";var s=i(0);if(s.default.supported){!s.default.global.hasOwnProperty("OfflineAudioContext")&&s.default.global.hasOwnProperty("webkitOfflineAudioContext")&&(s.default.global.OfflineAudioContext=s.default.global.webkitOfflineAudioContext);var n=new OfflineAudioContext(1,1,44100).startRendering();n&&s.default.isFunction(n.then)||(OfflineAudioContext.prototype._native_startRendering=OfflineAudioContext.prototype.startRendering,OfflineAudioContext.prototype.startRendering=function(){return new Promise(function(t){this.oncomplete=function(e){t(e.renderedBuffer)},this._native_startRendering()}.bind(this))})}}
5189,function(t,e,i){"use strict";e.a="13.8.25"},function(t,e,i){"use strict";i.r(e);var s=i(0);i(46);s.default.Midi=function(t,e){if(!(this instanceof s.default.Midi))return new s.default.Midi(t,e);s.default.Frequency.call(this,t,e)},s.default.extend(s.default.Midi,s.default.Frequency),s.default.Midi.prototype._defaultUnits="midi",s.default.Midi.prototype._frequencyToUnits=function(t){return s.default.Frequency.ftom(s.default.Frequency.prototype._frequencyToUnits.call(this,t))},s.default.Midi.prototype._ticksToUnits=function(t){return s.default.Frequency.ftom(s.default.Frequency.prototype._ticksToUnits.call(this,t))},s.default.Midi.prototype._beatsToUnits=function(t){return s.default.Frequency.ftom(s.default.Frequency.prototype._beatsToUnits.call(this,t))},s.default.Midi.prototype._secondsToUnits=function(t){return s.default.Frequency.ftom(s.default.Frequency.prototype._secondsToUnits.call(this,t))},s.default.Midi.prototype.toMidi=function(){return this.valueOf()},s.default.Midi.prototype.toFrequency=function(){return s.default.Frequency.mtof(this.toMidi())},s.default.Midi.prototype.transpose=function(t){return new this.constructor(this.toMidi()+t)},e.default=s.default.Midi},function(t,e,i){"use strict";i.r(e);var s=i(0);i(27),i(1);s.default.UserMedia=function(){var t=s.default.defaults(arguments,["volume"],s.default.UserMedia);s.default.AudioNode.call(this),this._mediaStream=null,this._stream=null,this._device=null,this._volume=this.output=new s.default.Volume(t.volume),this.volume=this._volume.volume,this._readOnly("volume"),this.mute=t.mute},s.default.extend(s.default.UserMedia,s.default.AudioNode),s.default.UserMedia.defaults={volume:0,mute:!1},s.default.UserMedia.prototype.open=function(t){return this.state===s.default.State.Started&&this.close(),s.default.UserMedia.enumerateDevices().then(function(e){var i;if(s.default.isNumber(t))i=e[t];else if(!(i=e.find(function(e){return e.label===t||e.deviceId===t}))&&e.length>0)i=e[0];else if(!i&&s.default.isDefined(t))throw new Error("Tone.UserMedia: no matching device: "+t);this._device=i;var n={audio:{echoCancellation:!1,sampleRate:this.context.sampleRate,noiseSuppression:!1,mozNoiseSuppression:!1}};return i&&(n.audio.deviceId=i.deviceId),navigator.mediaDevices.getUserMedia(n).then(function(t){return this._stream||(this._stream=t,this._mediaStream=this.context.createMediaStreamSource(t),s.default.connect(this._mediaStream,this.output)),this}.bind(this))}.bind(this))},s.default.UserMedia.prototype.close=function(){return this._stream&&(this._stream.getAudioTracks().forEach(function(t){t.stop()}),this._stream=null,this._mediaStream.disconnect(),this._mediaStream=null),this._device=null,this},s.default.UserMedia.enumerateDevices=function(){return navigator.mediaDevices.enumerateDevices().then(function(t){return t.filter(function(t){return"audioinput"===t.kind})})},Object.defineProperty(s.default.UserMedia.prototype,"state",{get:function(){return this._stream&&this._stream.active?s.default.State.Started:s.default.State.Stopped}}),Object.defineProperty(s.default.UserMedia.prototype,"deviceId",{get:function(){return this._device?this._device.deviceId:null}}),Object.defineProperty(s.default.UserMedia.prototype,"groupId",{get:function(){return this._device?this._device.groupId:null}}),Object.defineProperty(s.default.UserMedia.prototype,"label",{get:function(){return this._device?this._device.label:null}}),Object.defineProperty(s.default.UserMedia.prototype,"mute",{get:function(){return this._volume.mute},set:function(t){this._volume.mute=t}}),s.default.UserMedia.prototype.dispose=function(){return s.default.AudioNode.prototype.dispose.call(this),this.close(),this._writable("volume"),this._volume.dispose(),this._volume=null,this.volume=null,this},Object.defineProperty(s.default.UserMedia,"supported",{get:function(){return s.default.isDefined(navigator.mediaDevices)&&s.default.isFunction(navigator.mediaDevices.getUserMedia)}}),e.default=s.default.UserMedia},function(t,e,i){"use strict";i.r(e);var s=i(0);i(65),i(27),i(1);s.default.Players=function(t){var e=Array.prototype.slice.call(arguments);e.shift();var i=s.default.defaults(e,["onload"],s.default.Players);for(var n in s.default.AudioNode.call(this,i),this._volume=this.output=new s.default.Volume(i.volume),this.volume=this._volume.volume,this._readOnly("volume"),this._volume.output.output.channelCount=2,this._volume.output.output.channelCountMode="explicit",this.mute=i.mute,this._players={},this._loadingCount=0,this._fadeIn=i.fadeIn,this._fadeOut=i.fadeOut,t)this._loadingCount++,this.add(n,t[n],this._bufferLoaded.bind(this,i.onload))},s.default.extend(s.default.Players,s.default.AudioNode),s.default.Players.defaults={volume:0,mute:!1,onload:s.default.noOp,fadeIn:0,fadeOut:0},s.default.Players.prototype._bufferLoaded=function(t){this._loadingCount--,0===this._loadingCount&&t&&t(this)},Object.defineProperty(s.default.Players.prototype,"mute",{get:function(){return this._volume.mute},set:function(t){this._volume.mute=t}}),Object.defineProperty(s.default.Players.prototype,"fadeIn",{get:function(){return this._fadeIn}
5189,set:function(t){this._fadeIn=t,this._forEach(function(e){e.fadeIn=t})}}),Object.defineProperty(s.default.Players.prototype,"fadeOut",{get:function(){return this._fadeOut},set:function(t){this._fadeOut=t,this._forEach(function(e){e.fadeOut=t})}}),Object.defineProperty(s.default.Players.prototype,"state",{get:function(){var t=!1;return this._forEach(function(e){t=t||e.state===s.default.State.Started}),t?s.default.State.Started:s.default.State.Stopped}}),s.default.Players.prototype.has=function(t){return this._players.hasOwnProperty(t)},s.default.Players.prototype.get=function(t){if(this.has(t))return this._players[t];throw new Error("Tone.Players: no player named "+t)},s.default.Players.prototype._forEach=function(t){for(var e in this._players)t(this._players[e],e);return this},Object.defineProperty(s.default.Players.prototype,"loaded",{get:function(){var t=!0;return this._forEach(function(e){t=t&&e.loaded}),t}}),s.default.Players.prototype.add=function(t,e,i){return this._players[t]=new s.default.Player(e,i).connect(this.output),this._players[t].fadeIn=this._fadeIn,this._players[t].fadeOut=this._fadeOut,this},s.default.Players.prototype.stopAll=function(t){this._forEach(function(e){e.stop(t)})},s.default.Players.prototype.dispose=function(){return s.default.AudioNode.prototype.dispose.call(this),this._volume.dispose(),this._volume=null,this._writable("volume"),this.volume=null,this.output=null,this._forEach(function(t){t.dispose()}),this._players=null,this},e.default=s.default.Players},function(t,e,i){"use strict";i.r(e);var s=i(0);i(6),i(11),i(32);s.default.GrainPlayer=function(){var t=s.default.defaults(arguments,["url","onload"],s.default.GrainPlayer);s.default.Source.call(this,t),this.buffer=new s.default.Buffer(t.url,t.onload.bind(void 0,this)),this._clock=new s.default.Clock(this._tick.bind(this),t.grainSize),this._loopStart=0,this._loopEnd=0,this._activeSources=[],this._playbackRate=t.playbackRate,this._grainSize=t.grainSize,this._overlap=t.overlap,this.detune=t.detune,this.overlap=t.overlap,this.loop=t.loop,this.playbackRate=t.playbackRate,this.grainSize=t.grainSize,this.loopStart=t.loopStart,this.loopEnd=t.loopEnd,this.reverse=t.reverse,this._clock.on("stop",this._onstop.bind(this))},s.default.extend(s.default.GrainPlayer,s.default.Source),s.default.GrainPlayer.defaults={onload:s.default.noOp,overlap:.1,grainSize:.2,playbackRate:1,detune:0,loop:!1,loopStart:0,loopEnd:0,reverse:!1},s.default.GrainPlayer.prototype._start=function(t,e,i){e=s.default.defaultArg(e,0),e=this.toSeconds(e),t=this.toSeconds(t),this._offset=e,this._clock.start(t),i&&this.stop(t+this.toSeconds(i))},s.default.GrainPlayer.prototype._stop=function(t){this._clock.stop(t)},s.default.GrainPlayer.prototype._onstop=function(t){this._activeSources.forEach(function(e){e.fadeOut=0,e.stop(t)})},s.default.GrainPlayer.prototype._tick=function(t){if(!this.loop&&this._offset>this.buffer.duration)this.stop(t);else{var e=this._offset<this._overlap?0:this._overlap,i=new s.default.BufferSource({buffer:this.buffer,fadeIn:e,fadeOut:this._overlap,loop:this.loop,loopStart:this._loopStart,loopEnd:this._loopEnd,playbackRate:s.default.intervalToFrequencyRatio(this.detune/100)}).connect(this.output);i.start(t,this._offset),this._offset+=this.grainSize,i.stop(t+this.grainSize/this.playbackRate),this._activeSources.push(i),i.onended=function(){var t=this._activeSources.indexOf(i);-1!==t&&this._activeSources.splice(t,1)}.bind(this)}},Object.defineProperty(s.default.GrainPlayer.prototype,"playbackRate",{get:function(){return this._playbackRate},set:function(t){this._playbackRate=t,this.grainSize=this._grainSize}}),Object.defineProperty(s.default.GrainPlayer.prototype,"loopStart",{get:function(){return this._loopStart},set:function(t){this._loopStart=this.toSeconds(t)}}),Object.defineProperty(s.default.GrainPlayer.prototype,"loopEnd",{get:function(){return this._loopEnd},set:function(t){this._loopEnd=this.toSeconds(t)}}),Object.defineProperty(s.default.GrainPlayer.prototype,"reverse",{get:function(){return this.buffer.reverse},set:function(t){this.buffer.reverse=t}}),Object.defineProperty(s.default.GrainPlayer.prototype,"grainSize",{get:function(){return this._grainSize},set:function(t){this._grainSize=this.toSeconds(t),this._clock.frequency.value=this._playbackRate/this._grainSize}}),Object.defineProperty(s.default.GrainPlayer.prototype,"overlap",{get:function(){return this._overlap},set:function(t){this._overlap=this.toSeconds(t)}}),Object.defineProperty(s.default.GrainPlayer.prototype,"loaded",{get:function(){return this.buffer.loaded}}),s.default.GrainPlayer.prototype.dispose=function(){return s.default.Source.prototype.dispose.call(this),this.buffer.dispose(),this.buffer=null,this._clock.dispose(),this._clock=null,this._activeSources.forEac
5189h(function(t){t.dispose()}),this._activeSources=null,this},e.default=s.default.GrainPlayer},function(t,e,i){"use strict";i.r(e);var s=i(0);i(16),i(2),i(45);s.default.TransportTimelineSignal=function(){s.default.Signal.apply(this,arguments),this.output=this._outputSig=new s.default.Signal(this._initialValue),this._lastVal=this.value,this._synced=s.default.Transport.scheduleRepeat(this._onTick.bind(this),"1i"),this._bindAnchorValue=this._anchorValue.bind(this),s.default.Transport.on("start stop pause",this._bindAnchorValue),this._events.memory=1/0},s.default.extend(s.default.TransportTimelineSignal,s.default.Signal),s.default.TransportTimelineSignal.prototype._onTick=function(t){var e=this.getValueAtTime(s.default.Transport.seconds);this._lastVal!==e&&(this._lastVal=e,this._outputSig.linearRampToValueAtTime(e,t))},s.default.TransportTimelineSignal.prototype._anchorValue=function(t){var e=this.getValueAtTime(s.default.Transport.seconds);return this._lastVal=e,this._outputSig.cancelScheduledValues(t),this._outputSig.setValueAtTime(e,t),this},s.default.TransportTimelineSignal.prototype.getValueAtTime=function(t){return t=s.default.TransportTime(t),s.default.Signal.prototype.getValueAtTime.call(this,t)},s.default.TransportTimelineSignal.prototype.setValueAtTime=function(t,e){return e=s.default.TransportTime(e),s.default.Signal.prototype.setValueAtTime.call(this,t,e),this},s.default.TransportTimelineSignal.prototype.linearRampToValueAtTime=function(t,e){return e=s.default.TransportTime(e),s.default.Signal.prototype.linearRampToValueAtTime.call(this,t,e),this},s.default.TransportTimelineSignal.prototype.exponentialRampToValueAtTime=function(t,e){return e=s.default.TransportTime(e),s.default.Signal.prototype.exponentialRampToValueAtTime.call(this,t,e),this},s.default.TransportTimelineSignal.prototype.setTargetAtTime=function(t,e,i){return e=s.default.TransportTime(e),s.default.Signal.prototype.setTargetAtTime.call(this,t,e,i),this},s.default.TransportTimelineSignal.prototype.cancelScheduledValues=function(t){return t=s.default.TransportTime(t),s.default.Signal.prototype.cancelScheduledValues.call(this,t),this},s.default.TransportTimelineSignal.prototype.setValueCurveAtTime=function(t,e,i,n){return e=s.default.TransportTime(e),i=s.default.TransportTime(i),s.default.Signal.prototype.setValueCurveAtTime.call(this,t,e,i,n),this},s.default.TransportTimelineSignal.prototype.cancelAndHoldAtTime=function(t){return s.default.Signal.prototype.cancelAndHoldAtTime.call(this,s.default.TransportTime(t))},s.default.TransportTimelineSignal.prototype.dispose=function(){s.default.Transport.clear(this._synced),s.default.Transport.off("start stop pause",this._syncedCallback),this._events.cancel(0),s.default.Signal.prototype.dispose.call(this),this._outputSig.dispose(),this._outputSig=null},e.default=s.default.TransportTimelineSignal},function(t,e,i){"use strict";i.r(e);var s=i(0);i(29),i(5);s.default.Normalize=function(t,e){s.default.SignalBase.call(this),this._inputMin=s.default.defaultArg(t,0),this._inputMax=s.default.defaultArg(e,1),this._sub=this.input=new s.default.Add(0),this._div=this.output=new s.default.Multiply(1),this._sub.connect(this._div),this._setRange()},s.default.extend(s.default.Normalize,s.default.SignalBase),Object.defineProperty(s.default.Normalize.prototype,"min",{get:function(){return this._inputMin},set:function(t){this._inputMin=t,this._setRange()}}),Object.defineProperty(s.default.Normalize.prototype,"max",{get:function(){return this._inputMax},set:function(t){this._inputMax=t,this._setRange()}}),s.default.Normalize.prototype._setRange=function(){this._sub.value=-this._inputMin,this._div.value=1/(this._inputMax-this._inputMin)},s.default.Normalize.prototype.dispose=function(){return s.default.SignalBase.prototype.dispose.call(this),this._sub.dispose(),this._sub=null,this._div.dispose(),this._div=null,this},e.default=s.default.Normalize},function(t,e,i){"use strict";i.r(e);var s=i(0);i(7),i(2);s.default.GainToAudio=function(){s.default.SignalBase.call(this),this._norm=this.input=this.output=new s.default.WaveShaper(function(t){return 2*Math.abs(t)-1})},s.default.extend(s.default.GainToAudio,s.default.SignalBase),s.default.GainToAudio.prototype.dispose=function(){return s.default.SignalBase.prototype.dispose.call(this),this._norm.dispose(),this._norm=null,this},e.default=s.default.GainToAudio}
5189,function(t,e,i){"use strict";i.r(e);var s=i(0);i(21),i(78),i(32);s.default.Sampler=function(t){var e=Array.prototype.slice.call(arguments);e.shift();var i=s.default.defaults(e,["onload","baseUrl"],s.default.Sampler);s.default.Instrument.call(this,i);var n={};for(var o in t)if(s.default.isNote(o)){n[s.default.Frequency(o).toMidi()]=t[o]}else{if(isNaN(parseFloat(o)))throw new Error("Tone.Sampler: url keys must be the note's pitch");n[o]=t[o]}this._buffers=new s.default.Buffers(n,i.onload,i.baseUrl),this._activeSources={},this.attack=i.attack,this.release=i.release,this.curve=i.curve},s.default.extend(s.default.Sampler,s.default.Instrument),s.default.Sampler.defaults={attack:0,release:.1,onload:s.default.noOp,baseUrl:"",curve:"exponential"},s.default.Sampler.prototype._findClosest=function(t){for(var e=0;e<96;){if(this._buffers.has(t+e))return-e;if(this._buffers.has(t-e))return e;e++}throw new Error("No available buffers for note: "+t)},s.default.Sampler.prototype.triggerAttack=function(t,e,i){this.log("triggerAttack",t,e,i),Array.isArray(t)||(t=[t]);for(var n=0;n<t.length;n++){var o=s.default.Frequency(t[n]).toMidi(),a=this._findClosest(o),r=o-a,l=this._buffers.get(r),u=s.default.intervalToFrequencyRatio(a),d=new s.default.BufferSource({buffer:l,playbackRate:u,fadeIn:this.attack,fadeOut:this.release,curve:this.curve}).connect(this.output);d.start(e,0,l.duration/u,i),s.default.isArray(this._activeSources[o])||(this._activeSources[o]=[]),this._activeSources[o].push(d),d.onended=function(){if(this._activeSources&&this._activeSources[o]){var t=this._activeSources[o].indexOf(d);-1!==t&&this._activeSources[o].splice(t,1)}}.bind(this)}return this},s.default.Sampler.prototype.triggerRelease=function(t,e){this.log("triggerRelease",t,e),Array.isArray(t)||(t=[t]);for(var i=0;i<t.length;i++){var n=s.default.Frequency(t[i]).toMidi();this._activeSources[n]&&this._activeSources[n].length&&(e=this.toSeconds(e),this._activeSources[n].forEach(function(t){t.stop(e)}),this._activeSources[n]=[])}return this},s.default.Sampler.prototype.releaseAll=function(t){for(var e in t=this.toSeconds(t),this._activeSources)for(var i=this._activeSources[e];i.length;){i.shift().stop(t)}return this},s.default.Sampler.prototype.sync=function(){return this._syncMethod("triggerAttack",1),this._syncMethod("triggerRelease",1),this},s.default.Sampler.prototype.triggerAttackRelease=function(t,e,i,n){if(i=this.toSeconds(i),this.triggerAttack(t,i,n),s.default.isArray(e)&&s.default.isArray(t))for(var o=0;o<t.length;o++){var a=e[Math.min(o,e.length-1)];this.triggerRelease(t[o],i+this.toSeconds(a))}else this.triggerRelease(t,i+this.toSeconds(e));return this},s.default.Sampler.prototype.add=function(t,e,i){if(s.default.isNote(t)){var n=s.default.Frequency(t).toMidi();this._buffers.add(n,e,i)}else{if(isNaN(parseFloat(t)))throw new Error("Tone.Sampler: note must be the note's pitch. Instead got "+t);this._buffers.add(t,e,i)}},Object.defineProperty(s.default.Sampler.prototype,"loaded",{get:function(){return this._buffers.loaded}}),s.default.Sampler.prototype.dispose=function(){for(var t in s.default.Instrument.prototype.dispose.call(this),this._buffers.dispose(),this._buffers=null,this._activeSources)this._activeSources[t].forEach(function(t){t.dispose()});return this._activeSources=null,this},e.default=s.default.Sampler},function(t,e,i){"use strict";i.r(e);var s=i(0);i(38),i(6);s.default.PolySynth=function(){var t=s.default.defaults(arguments,["polyphony","voice"],s.default.PolySynth);s.default.Instrument.call(this,t),(t=s.default.defaultArg(t,s.default.Instrument.defaults)).polyphony=Math.min(s.default.PolySynth.MAX_POLYPHONY,t.polyphony),this.voices=new Array(t.polyphony),this.assert(t.polyphony>0,"polyphony must be greater than 0"),this.detune=new s.default.Signal(t.detune,s.default.Type.Cents),this._readOnly("detune");for(var e=0;e<t.polyphony;e++){var i=new t.voice(arguments[2],arguments[3]);if(!(i instanceof s.default.Monophonic))throw new Error("Synth constructor must be instance of Tone.Monophonic");this.voices[e]=i,i.index=e,i.connect(this.output),i.hasOwnProperty("detune")&&this.detune.connect(i.detune)}},s.default.extend(s.default.PolySynth,s.default.Instrument),s.default.PolySynth.defaults={polyphony:4,volume:0,detune:0,voice:s.default.Synth},s.default.PolySynth.prototype._getClosestVoice=function(t,e){var i=this.voices.find(function(i){if(Math.abs(i.frequency.getValueAtTime(t)-s.default.Frequency(e))<1e-4&&i.getLevelAtTime(t)>1e-5)return i});return i||this.voices.slice().sort(function(e,i){var s=e.getLevelAtTime(t+this.blockTime),n=i.getLevelAtTime(t+this.blockTime);return s<1e-5&&(s=0),n<1e-5&&(n=0),s-n}.bind(this))[0]}
5189,s.default.PolySynth.prototype.triggerAttack=function(t,e,i){return Array.isArray(t)||(t=[t]),e=this.toSeconds(e),t.forEach(function(t){var s=this._getClosestVoice(e,t);s.triggerAttack(t,e,i),this.log("triggerAttack",s.index,t)}.bind(this)),this},s.default.PolySynth.prototype.triggerRelease=function(t,e){return Array.isArray(t)||(t=[t]),e=this.toSeconds(e),t.forEach(function(t){var i=this._getClosestVoice(e,t);this.log("triggerRelease",i.index,t),i.triggerRelease(e)}.bind(this)),this},s.default.PolySynth.prototype.triggerAttackRelease=function(t,e,i,n){if(i=this.toSeconds(i),this.triggerAttack(t,i,n),s.default.isArray(e)&&s.default.isArray(t))for(var o=0;o<t.length;o++){var a=e[Math.min(o,e.length-1)];this.triggerRelease(t[o],i+this.toSeconds(a))}else this.triggerRelease(t,i+this.toSeconds(e));return this},s.default.PolySynth.prototype.sync=function(){return this._syncMethod("triggerAttack",1),this._syncMethod("triggerRelease",1),this},s.default.PolySynth.prototype.set=function(t,e,i){for(var s=0;s<this.voices.length;s++)this.voices[s].set(t,e,i);return this},s.default.PolySynth.prototype.get=function(t){return this.voices[0].get(t)},s.default.PolySynth.prototype.releaseAll=function(t){return t=this.toSeconds(t),this.voices.forEach(function(e){e.triggerRelease(t)}),this},s.default.PolySynth.prototype.dispose=function(){return s.default.Instrument.prototype.dispose.call(this),this.voices.forEach(function(t){t.dispose()}),this._writable("detune"),this.detune.dispose(),this.detune=null,this.voices=null,this},s.default.PolySynth.MAX_POLYPHONY=20,e.default=s.default.PolySynth},function(t,e,i){"use strict";i.r(e);var s=i(0);i(21),i(39),i(54);s.default.PluckSynth=function(t){t=s.default.defaultArg(t,s.default.PluckSynth.defaults),s.default.Instrument.call(this,t),this._noise=new s.default.Noise("pink"),this.attackNoise=t.attackNoise,this._lfcf=new s.default.LowpassCombFilter({resonance:t.resonance,dampening:t.dampening}),this.resonance=this._lfcf.resonance,this.dampening=this._lfcf.dampening,this._noise.connect(this._lfcf),this._lfcf.connect(this.output),this._readOnly(["resonance","dampening"])},s.default.extend(s.default.PluckSynth,s.default.Instrument),s.default.PluckSynth.defaults={attackNoise:1,dampening:4e3,resonance:.7},s.default.PluckSynth.prototype.triggerAttack=function(t,e){t=this.toFrequency(t),e=this.toSeconds(e);var i=1/t;return this._lfcf.delayTime.setValueAtTime(i,e),this._noise.start(e),this._noise.stop(e+i*this.attackNoise),this},s.default.PluckSynth.prototype.dispose=function(){return s.default.Instrument.prototype.dispose.call(this),this._noise.dispose(),this._lfcf.dispose(),this._noise=null,this._lfcf=null,this._writable(["resonance","dampening"]),this.dampening=null,this.resonance=null,this},e.default=s.default.PluckSynth},function(t,e,i){"use strict";i.r(e);var s=i(0);i(31),i(41),i(39),i(2),i(9),i(21);s.default.NoiseSynth=function(t){t=s.default.defaultArg(t,s.default.NoiseSynth.defaults),s.default.Instrument.call(this,t),this.noise=new s.default.Noise(t.noise),this.envelope=new s.default.AmplitudeEnvelope(t.envelope),this.noise.chain(this.envelope,this.output),this._readOnly(["noise","envelope"])},s.default.extend(s.default.NoiseSynth,s.default.Instrument),s.default.NoiseSynth.defaults={noise:{type:"white"},envelope:{attack:.005,decay:.1,sustain:0}},s.default.NoiseSynth.prototype.triggerAttack=function(t,e){return t=this.toSeconds(t),this.envelope.triggerAttack(t,e),this.noise.start(t),0===this.envelope.sustain&&this.noise.stop(t+this.envelope.attack+this.envelope.decay),this},s.default.NoiseSynth.prototype.triggerRelease=function(t){return t=this.toSeconds(t),this.envelope.triggerRelease(t),this.noise.stop(t+this.envelope.release),this},s.default.NoiseSynth.prototype.sync=function(){return this._syncMethod("triggerAttack",0),this._syncMethod("triggerRelease",0),this},s.default.NoiseSynth.prototype.triggerAttackRelease=function(t,e,i){return e=this.toSeconds(e),t=this.toSeconds(t),this.triggerAttack(e,i),this.triggerRelease(e+t),this},s.default.NoiseSynth.prototype.dispose=function(){return s.default.Instrument.prototype.dispose.call(this),this._writable(["noise","envelope"]),this.noise.dispose(),this.noise=null,this.envelope.dis
5189pose(),this.envelope=null,this},e.default=s.default.NoiseSynth},function(t,e,i){"use strict";i.r(e);var s=i(0),n=(i(21),i(49),i(9),i(41),i(31),i(3),i(26),i(5),[1,1.483,1.932,2.546,2.63,3.897]);s.default.MetalSynth=function(t){t=s.default.defaultArg(t,s.default.MetalSynth.defaults),s.default.Instrument.call(this,t),this.frequency=new s.default.Signal(t.frequency,s.default.Type.Frequency),this._oscillators=[],this._freqMultipliers=[],this._amplitue=new s.default.Gain(0).connect(this.output),this._highpass=new s.default.Filter({type:"highpass",Q:-3.0102999566398125}).connect(this._amplitue),this._octaves=t.octaves,this._filterFreqScaler=new s.default.Scale(t.resonance,7e3),this.envelope=new s.default.Envelope({attack:t.envelope.attack,attackCurve:"linear",decay:t.envelope.decay,sustain:0,release:t.envelope.release}).chain(this._filterFreqScaler,this._highpass.frequency),this.envelope.connect(this._amplitue.gain);for(var e=0;e<n.length;e++){var i=new s.default.FMOscillator({type:"square",modulationType:"square",harmonicity:t.harmonicity,modulationIndex:t.modulationIndex});i.connect(this._highpass),this._oscillators[e]=i;var o=new s.default.Multiply(n[e]);this._freqMultipliers[e]=o,this.frequency.chain(o,i.frequency)}this.octaves=t.octaves},s.default.extend(s.default.MetalSynth,s.default.Instrument),s.default.MetalSynth.defaults={frequency:200,envelope:{attack:.001,decay:1.4,release:.2},harmonicity:5.1,modulationIndex:32,resonance:4e3,octaves:1.5},s.default.MetalSynth.prototype.triggerAttack=function(t,e){return t=this.toSeconds(t),e=s.default.defaultArg(e,1),this.envelope.triggerAttack(t,e),this._oscillators.forEach(function(e){e.start(t)}),0===this.envelope.sustain&&this._oscillators.forEach(function(e){e.stop(t+this.envelope.attack+this.envelope.decay)}.bind(this)),this},s.default.MetalSynth.prototype.triggerRelease=function(t){return t=this.toSeconds(t),this.envelope.triggerRelease(t),this._oscillators.forEach(function(e){e.stop(t+this.envelope.release)}.bind(this)),this},s.default.MetalSynth.prototype.sync=function(){return this._syncMethod("triggerAttack",0),this._syncMethod("triggerRelease",0),this},s.default.MetalSynth.prototype.triggerAttackRelease=function(t,e,i){return e=this.toSeconds(e),t=this.toSeconds(t),this.triggerAttack(e,i),this.triggerRelease(e+t),this},Object.defineProperty(s.default.MetalSynth.prototype,"modulationIndex",{get:function(){return this._oscillators[0].modulationIndex.value},set:function(t){for(var e=0;e<this._oscillators.length;e++)this._oscillators[e].modulationIndex.value=t}}),Object.defineProperty(s.default.MetalSynth.prototype,"harmonicity",{get:function(){return this._oscillators[0].harmonicity.value},set:function(t){for(var e=0;e<this._oscillators.length;e++)this._oscillators[e].harmonicity.value=t}}),Object.defineProperty(s.default.MetalSynth.prototype,"resonance",{get:function(){return this._filterFreqScaler.min},set:function(t){this._filterFreqScaler.min=t,this.octaves=this._octaves}}),Object.defineProperty(s.default.MetalSynth.prototype,"octaves",{get:function(){return this._octaves},set:function(t){this._octaves=t,this._filterFreqScaler.max=this._filterFreqScaler.min*Math.pow(2,t)}}),s.default.MetalSynth.prototype.dispose=function(){s.default.Instrument.prototype.dispose.call(this);for(var t=0;t<this._oscillators.length;t++)this._oscillators[t].dispose(),this._freqMultipliers[t].dispose();this._oscillators=null,this._freqMultipliers=null,this.frequency.dispose(),this.frequency=null,this._filterFreqScaler.dispose(),this._filterFreqScaler=null,this._amplitue.dispose(),this._amplitue=null,this.envelope.dispose(),this.envelope=null,this._highpass.dispose(),this._highpass=null},e.default=s.default.MetalSynth},function(t,e,i){"use strict";i.r(e);var s=i(0);i(37),i(21),i(31);s.default.MembraneSynth=function(t){t=s.default.defaultArg(t,s.default.MembraneSynth.defaults),s.default.Instrument.call(this,t),this.oscillator=new s.default.OmniOscillator(t.oscillator),this.envelope=new s.default.AmplitudeEnvelope(t.envelope),this.octaves=t.octaves,this.pitchDecay=t.pitchDecay,this.oscillator.chain(this.envelope,this.output),this._readOnly(["oscillator","envelope"])},s.default.extend(s.default.MembraneSynth,s.default.Instrument),s.default.MembraneSynth.defaults={pitchDecay:.05,octaves:10,oscillator:{type:"sine"},envelope:{attack:.001,decay:.4,sustain:.01,release:1.4,attackCurve:"exponential"}}
5189,s.default.MembraneSynth.prototype.triggerAttack=function(t,e,i){e=this.toSeconds(e);var s=(t=this.toFrequency(t))*this.octaves;return this.oscillator.frequency.setValueAtTime(s,e),this.oscillator.frequency.exponentialRampToValueAtTime(t,e+this.toSeconds(this.pitchDecay)),this.envelope.triggerAttack(e,i),this.oscillator.start(e),0===this.envelope.sustain&&this.oscillator.stop(e+this.envelope.attack+this.envelope.decay),this},s.default.MembraneSynth.prototype.triggerRelease=function(t){return t=this.toSeconds(t),this.envelope.triggerRelease(t),this.oscillator.stop(t+this.envelope.release),this},s.default.MembraneSynth.prototype.dispose=function(){return s.default.Instrument.prototype.dispose.call(this),this._writable(["oscillator","envelope"]),this.oscillator.dispose(),this.oscillator=null,this.envelope.dispose(),this.envelope=null,this},e.default=s.default.MembraneSynth},function(t,e,i){"use strict";i.r(e);var s=i(0);i(38),i(2),i(5),i(25);s.default.FMSynth=function(t){t=s.default.defaultArg(t,s.default.FMSynth.defaults),s.default.Monophonic.call(this,t),this._carrier=new s.default.Synth(t.carrier),this._carrier.volume.value=-10,this.oscillator=this._carrier.oscillator,this.envelope=this._carrier.envelope.set(t.envelope),this._modulator=new s.default.Synth(t.modulator),this._modulator.volume.value=-10,this.modulation=this._modulator.oscillator.set(t.modulation),this.modulationEnvelope=this._modulator.envelope.set(t.modulationEnvelope),this.frequency=new s.default.Signal(440,s.default.Type.Frequency),this.detune=new s.default.Signal(t.detune,s.default.Type.Cents),this.harmonicity=new s.default.Multiply(t.harmonicity),this.harmonicity.units=s.default.Type.Positive,this.modulationIndex=new s.default.Multiply(t.modulationIndex),this.modulationIndex.units=s.default.Type.Positive,this._modulationNode=new s.default.Gain(0),this.frequency.connect(this._carrier.frequency),this.frequency.chain(this.harmonicity,this._modulator.frequency),this.frequency.chain(this.modulationIndex,this._modulationNode),this.detune.fan(this._carrier.detune,this._modulator.detune),this._modulator.connect(this._modulationNode.gain),this._modulationNode.connect(this._carrier.frequency),this._carrier.connect(this.output),this._readOnly(["frequency","harmonicity","modulationIndex","oscillator","envelope","modulation","modulationEnvelope","detune"])},s.default.extend(s.default.FMSynth,s.default.Monophonic),s.default.FMSynth.defaults={harmonicity:3,modulationIndex:10,detune:0,oscillator:{type:"sine"},envelope:{attack:.01,decay:.01,sustain:1,release:.5},modulation:{type:"square"},modulationEnvelope:{attack:.5,decay:0,sustain:1,release:.5}},s.default.FMSynth.prototype._triggerEnvelopeAttack=function(t,e){return t=this.toSeconds(t),this._carrier._triggerEnvelopeAttack(t,e),this._modulator._triggerEnvelopeAttack(t),this},s.default.FMSynth.prototype._triggerEnvelopeRelease=function(t){return t=this.toSeconds(t),this._carrier._triggerEnvelopeRelease(t),this._modulator._triggerEnvelopeRelease(t),this},s.default.FMSynth.prototype.dispose=function(){return s.default.Monophonic.prototype.dispose.call(this),this._writable(["frequency","harmonicity","modulationIndex","oscillator","envelope","modulation","modulationEnvelope","detune"]),this._carrier.dispose(),this._carrier=null,this._modulator.dispose(),this._modulator=null,this.frequency.dispose(),this.frequency=null,this.detune.dispose(),this.detune=null,this.modulationIndex.dispose(),this.modulationIndex=null,this.harmonicity.dispose(),this.harmonicity=null,this._modulationNode.dispose(),this._modulationNode=null,this.oscillator=null,this.envelope=null,this.modulationEnvelope=null,this.modulation=null,this},e.default=s.default.FMSynth},function(t,e,i){"use strict";i.r(e);var s=i(0);i(66),i(12),i(2),i(5),i(25),i(14);s.default.DuoSynth=function(t){t=s.default.defaultArg(t,s.default.DuoSynth.defaults),s.default.Monophonic.call(this,t),this.voice0=new s.default.MonoSynth(t.voice0),this.voice0.volume.value=-10,this.voice1=new s.default.MonoSynth(t.voice1),this.voice1.volume.value=-10,this._vibrato=new s.default.LFO(t.vibratoRate,-50,50),this._vibrato.start(),this.vibratoRate=this._vibrato.frequency,this._vibratoGain=new s.default.Gain(t.vibratoAmount,s.default.Type.Positive),this.vibratoAmount=this._vibratoGain.gain,this.frequency=new s.default.Signal(440,s.default.Type.Frequency),this.harmonicity=new s.default.Multiply(t.harmonicity),this.harmonicity.units=s.default.Type.Positive,this.frequency.connect(this.voice0.frequency),this.frequency.chain(this.harmonicity,this.voice1.frequency),this._vibrato.connect(this._vibratoGain),this._vibratoGain.fan(this.voice0.detune,this.voice1.detune),this.voice0.connect(this.output),this.voice1.connect(this.output),this._readOnly(["voice0","voice1","frequency","vibratoAmount","vibratoRate"])},s.default.extend(s.default.DuoSynth,s.default.Monophonic),s.default.DuoSynth.defaults={vibratoAmount:.5,vibratoRate:5,harmonicity:1.5,voice0:{volume:-10,portamento:0,oscillator:{type:"sine"},filterEnvelope:{attack:.01,decay:0,sustain:1,release:.5},envelope:{attack:.01,decay:0,sustain:1,release:.5}},voice1:{volume:-10,portamento:0,oscillator:{type:"sine"},filterEnvelope:{attack:.01,decay:0,sustain:1,release:.5},envelope:{attack:.01,decay:0,sustain:1,release:.5}}},s.default.DuoSynth.prototype._triggerEnvelopeAttack=function(t,e){return t=this.toSeconds(t),this.voice0._triggerEnvelopeAttack(t,e),this.voice1._triggerEnvelopeAttack(t,e),this},s.default.DuoSynth.prototype._triggerEnvelopeRelease=function(t){return this.voice0._triggerEnvelopeRelease(t),this.voice1._triggerEnvelopeRelease(t),this},s.default.DuoSynth.prototype.getLevelAtTime=function(t){return(this.voice0.getLevelAtTime(t)+this.voice1.getLevelAtTime(t))/2},s.default.DuoSynth.prototype.dispose=function(){return s.default.Monophonic.prototype.dispose.call(this),this._writable(["voice0","voice1","frequency","vibratoAmount","vibratoRate"]),this.voice0.dispose(),this.voice0=null,this.voice1.dispose(),this.voice1=null,this.frequency.dispose(),this.frequency=null,this._vibratoGain.dispose(),this._vibratoGain=null,this._vibrato=null,this.harmonicity.dispose(),this.harmonicity=null,this.vibratoAmount.dispose(),this.vibratoAmount=null,this.vibratoRate=null,this},e.default=s.default.DuoSynth}
5189,function(t,e,i){"use strict";i.r(e);var s=i(0);i(38),i(2),i(5),i(25),i(22),i(3);s.default.AMSynth=function(t){t=s.default.defaultArg(t,s.default.AMSynth.defaults),s.default.Monophonic.call(this,t),this._carrier=new s.default.Synth,this._carrier.volume.value=-10,this.oscillator=this._carrier.oscillator.set(t.oscillator),this.envelope=this._carrier.envelope.set(t.envelope),this._modulator=new s.default.Synth,this._modulator.volume.value=-10,this.modulation=this._modulator.oscillator.set(t.modulation),this.modulationEnvelope=this._modulator.envelope.set(t.modulationEnvelope),this.frequency=new s.default.Signal(440,s.default.Type.Frequency),this.detune=new s.default.Signal(t.detune,s.default.Type.Cents),this.harmonicity=new s.default.Multiply(t.harmonicity),this.harmonicity.units=s.default.Type.Positive,this._modulationScale=new s.default.AudioToGain,this._modulationNode=new s.default.Gain,this.frequency.connect(this._carrier.frequency),this.frequency.chain(this.harmonicity,this._modulator.frequency),this.detune.fan(this._carrier.detune,this._modulator.detune),this._modulator.chain(this._modulationScale,this._modulationNode.gain),this._carrier.chain(this._modulationNode,this.output),this._readOnly(["frequency","harmonicity","oscillator","envelope","modulation","modulationEnvelope","detune"])},s.default.extend(s.default.AMSynth,s.default.Monophonic),s.default.AMSynth.defaults={harmonicity:3,detune:0,oscillator:{type:"sine"},envelope:{attack:.01,decay:.01,sustain:1,release:.5},modulation:{type:"square"},modulationEnvelope:{attack:.5,decay:0,sustain:1,release:.5}},s.default.AMSynth.prototype._triggerEnvelopeAttack=function(t,e){return t=this.toSeconds(t),this._carrier._triggerEnvelopeAttack(t,e),this._modulator._triggerEnvelopeAttack(t),this},s.default.AMSynth.prototype._triggerEnvelopeRelease=function(t){return this._carrier._triggerEnvelopeRelease(t),this._modulator._triggerEnvelopeRelease(t),this},s.default.AMSynth.prototype.dispose=function(){return s.default.Monophonic.prototype.dispose.call(this),this._writable(["frequency","harmonicity","oscillator","envelope","modulation","modulationEnvelope","detune"]),this._carrier.dispose(),this._carrier=null,this._modulator.dispose(),this._modulator=null,this.frequency.dispose(),this.frequency=null,this.detune.dispose(),this.detune=null,this.harmonicity.dispose(),this.harmonicity=null,this._modulationScale.dispose(),this._modulationScale=null,this._modulationNode.dispose(),this._modulationNode=null,this.oscillator=null,this.envelope=null,this.modulationEnvelope=null,this.modulation=null,this},e.default=s.default.AMSynth},function(t,e,i){"use strict";i.r(e);var s=i(0);i(70),i(16);s.default.Sequence=function(){var t=s.default.defaults(arguments,["callback","events","subdivision"],s.default.Sequence),e=t.events;if(delete t.events,s.default.Part.call(this,t),this._subdivision=this.toTicks(t.subdivision),s.default.isUndef(t.loopEnd)&&s.default.isDefined(e)&&(this._loopEnd=e.length*this._subdivision),this._loop=!0,s.default.isDefined(e))for(var i=0;i<e.length;i++)this.add(i,e[i])},s.default.extend(s.default.Sequence,s.default.Part),s.default.Sequence.defaults={subdivision:"4n"},Object.defineProperty(s.default.Sequence.prototype,"subdivision",{get:function(){return s.default.Ticks(this._subdivision).toSeconds()}}),s.default.Sequence.prototype.at=function(t,e){return s.default.isArray(e)&&this.remove(t),s.default.Part.prototype.at.call(this,this._indexTime(t),e)},s.default.Sequence.prototype.add=function(t,e){if(null===e)return this;if(s.default.isArray(e)){var i=Math.round(this._subdivision/e.length);e=new s.default.Sequence(this._tick.bind(this),e,s.default.Ticks(i))}return s.default.Part.prototype.add.call(this,this._indexTime(t),e),this},s.default.Sequence.prototype.remove=function(t,e){return s.default.Part.prototype.remove.call(this,this._indexTime(t),e),this},s.default.Sequence.prototype._indexTime=function(t){return t instanceof s.default.TransportTime?t:s.default.Ticks(t*this._subdivision+this.startOffset).toSeconds()},s.default.Sequence.prototype.dispose=function(){return s.default.Part.prototype.dispose.call(this),this},e.default=s.default.Sequence}
5189,function(t,e,i){"use strict";i.r(e);var s=i(0);i(71),i(79);s.default.Pattern=function(){var t=s.default.defaults(arguments,["callback","values","pattern"],s.default.Pattern);s.default.Loop.call(this,t),this._pattern=new s.default.CtrlPattern({values:t.values,type:t.pattern,index:t.index})},s.default.extend(s.default.Pattern,s.default.Loop),s.default.Pattern.defaults={pattern:s.default.CtrlPattern.Type.Up,callback:s.default.noOp,values:[]},s.default.Pattern.prototype._tick=function(t){this.callback(t,this._pattern.value),this._pattern.next()},Object.defineProperty(s.default.Pattern.prototype,"index",{get:function(){return this._pattern.index},set:function(t){this._pattern.index=t}}),Object.defineProperty(s.default.Pattern.prototype,"values",{get:function(){return this._pattern.values},set:function(t){this._pattern.values=t}}),Object.defineProperty(s.default.Pattern.prototype,"value",{get:function(){return this._pattern.value}}),Object.defineProperty(s.default.Pattern.prototype,"pattern",{get:function(){return this._pattern.type},set:function(t){this._pattern.type=t}}),s.default.Pattern.prototype.dispose=function(){s.default.Loop.prototype.dispose.call(this),this._pattern.dispose(),this._pattern=null},e.default=s.default.Pattern},function(t,e,i){"use strict";i.r(e);var s=i(0);i(8),i(18),i(12);s.default.Vibrato=function(){var t=s.default.defaults(arguments,["frequency","depth"],s.default.Vibrato);s.default.Effect.call(this,t),this._delayNode=new s.default.Delay(0,t.maxDelay),this._lfo=new s.default.LFO({type:t.type,min:0,max:t.maxDelay,frequency:t.frequency,phase:-90}).start().connect(this._delayNode.delayTime),this.frequency=this._lfo.frequency,this.depth=this._lfo.amplitude,this.depth.value=t.depth,this._readOnly(["frequency","depth"]),this.effectSend.chain(this._delayNode,this.effectReturn)},s.default.extend(s.default.Vibrato,s.default.Effect),s.default.Vibrato.defaults={maxDelay:.005,frequency:5,depth:.1,type:"sine"},Object.defineProperty(s.default.Vibrato.prototype,"type",{get:function(){return this._lfo.type},set:function(t){this._lfo.type=t}}),s.default.Vibrato.prototype.dispose=function(){s.default.Effect.prototype.dispose.call(this),this._delayNode.dispose(),this._delayNode=null,this._lfo.dispose(),this._lfo=null,this._writable(["frequency","depth"]),this.frequency=null,this.depth=null},e.default=s.default.Vibrato},function(t,e,i){"use strict";i.r(e);var s=i(0);i(12),i(15);s.default.Tremolo=function(){var t=s.default.defaults(arguments,["frequency","depth"],s.default.Tremolo);s.default.StereoEffect.call(this,t),this._lfoL=new s.default.LFO({phase:t.spread,min:1,max:0}),this._lfoR=new s.default.LFO({phase:t.spread,min:1,max:0}),this._amplitudeL=new s.default.Gain,this._amplitudeR=new s.default.Gain,this.frequency=new s.default.Signal(t.frequency,s.default.Type.Frequency),this.depth=new s.default.Signal(t.depth,s.default.Type.NormalRange),this._readOnly(["frequency","depth"]),this.effectSendL.chain(this._amplitudeL,this.effectReturnL),this.effectSendR.chain(this._amplitudeR,this.effectReturnR),this._lfoL.connect(this._amplitudeL.gain),this._lfoR.connect(this._amplitudeR.gain),this.frequency.fan(this._lfoL.frequency,this._lfoR.frequency),this.depth.fan(this._lfoR.amplitude,this._lfoL.amplitude),this.type=t.type,this.spread=t.spread},s.default.extend(s.default.Tremolo,s.default.StereoEffect),s.default.Tremolo.defaults={frequency:10,type:"sine",depth:.5,spread:180},s.default.Tremolo.prototype.start=function(t){return this._lfoL.start(t),this._lfoR.start(t),this},s.default.Tremolo.prototype.stop=function(t){return this._lfoL.stop(t),this._lfoR.stop(t),this},s.default.Tremolo.prototype.sync=function(t){return this._lfoL.sync(t),this._lfoR.sync(t),s.default.Transport.syncSignal(this.frequency),this},s.default.Tremolo.prototype.unsync=function(){return this._lfoL.unsync(),this._lfoR.unsync(),s.default.Transport.unsyncSignal(this.frequency),this},Object.defineProperty(s.default.Tremolo.prototype,"type",{get:function(){return this._lfoL.type},set:function(t){this._lfoL.type=t,this._lfoR.type=t}}),Object.defineProperty(s.default.Tremolo.prototype,"spread",{get:function(){return this._lfoR.phase-this._lfoL.phase},set:function(t){this._lfoL.phase=90-t/2,this._lfoR.phase=t/2+90}}),s.default.Tremolo.prototype.dispose=function(){return s.default.StereoEffect.prototype.dispose.call(this),this._writable(["frequency","depth"]),this._lfoL.dispose(),this._lfoL=null,this._lfoR.dispose(),this._lfoR=null,this._amplitudeL.dispose(),this._amplitudeL=null,this._amplitudeR.dispose(),this._amplitudeR=null,this.frequency=null,this.depth=null,this},e.default=s.default.Tremolo}
5189,function(t,e,i){"use strict";i.r(e);var s=i(0);i(73),i(2),i(5),i(13);s.default.StereoWidener=function(){var t=s.default.defaults(arguments,["width"],s.default.StereoWidener);s.default.MidSideEffect.call(this,t),this.width=new s.default.Signal(t.width,s.default.Type.NormalRange),this._readOnly(["width"]),this._twoTimesWidthMid=new s.default.Multiply(2),this._twoTimesWidthSide=new s.default.Multiply(2),this._midMult=new s.default.Multiply,this._twoTimesWidthMid.connect(this._midMult,0,1),this.midSend.chain(this._midMult,this.midReturn),this._oneMinusWidth=new s.default.Subtract,this._oneMinusWidth.connect(this._twoTimesWidthMid),s.default.connect(this.context.getConstant(1),this._oneMinusWidth,0,0),this.width.connect(this._oneMinusWidth,0,1),this._sideMult=new s.default.Multiply,this.width.connect(this._twoTimesWidthSide),this._twoTimesWidthSide.connect(this._sideMult,0,1),this.sideSend.chain(this._sideMult,this.sideReturn)},s.default.extend(s.default.StereoWidener,s.default.MidSideEffect),s.default.StereoWidener.defaults={width:.5},s.default.StereoWidener.prototype.dispose=function(){return s.default.MidSideEffect.prototype.dispose.call(this),this._writable(["width"]),this.width.dispose(),this.width=null,this._midMult.dispose(),this._midMult=null,this._sideMult.dispose(),this._sideMult=null,this._twoTimesWidthMid.dispose(),this._twoTimesWidthMid=null,this._twoTimesWidthSide.dispose(),this._twoTimesWidthSide=null,this._oneMinusWidth.dispose(),this._oneMinusWidth=null,this},e.default=s.default.StereoWidener},function(t,e,i){"use strict";i.r(e);var s=i(0);i(15),i(33),i(3);s.default.StereoFeedbackEffect=function(){var t=s.default.defaults(arguments,["feedback"],s.default.FeedbackEffect);s.default.StereoEffect.call(this,t),this.feedback=new s.default.Signal(t.feedback,s.default.Type.NormalRange),this._feedbackL=new s.default.Gain,this._feedbackR=new s.default.Gain,this.effectReturnL.chain(this._feedbackL,this.effectSendL),this.effectReturnR.chain(this._feedbackR,this.effectSendR),this.feedback.fan(this._feedbackL.gain,this._feedbackR.gain),this._readOnly(["feedback"])},s.default.extend(s.default.StereoFeedbackEffect,s.default.StereoEffect),s.default.StereoFeedbackEffect.prototype.dispose=function(){return s.default.StereoEffect.prototype.dispose.call(this),this._writable(["feedback"]),this.feedback.dispose(),this.feedback=null,this._feedbackL.dispose(),this._feedbackL=null,this._feedbackR.dispose(),this._feedbackR=null,this},e.default=s.default.StereoFeedbackEffect},function(t,e,i){"use strict";i.r(e);var s=i(0);i(77),i(9),i(10),i(39),i(3),i(74);s.default.Reverb=function(){var t=s.default.defaults(arguments,["decay"],s.default.Reverb);s.default.Effect.call(this,t),this._convolver=this.context.createConvolver(),this.decay=t.decay,this.preDelay=t.preDelay,this.connectEffect(this._convolver)},s.default.extend(s.default.Reverb,s.default.Effect),s.default.Reverb.defaults={decay:1.5,preDelay:.01},s.default.Reverb.prototype.generate=function(){return s.default.Offline(function(){var t=new s.default.Noise,e=new s.default.Noise,i=new s.default.Merge;t.connect(i.left),e.connect(i.right);var n=(new s.default.Gain).toMaster();i.connect(n),t.start(0),e.start(0),n.gain.setValueAtTime(0,0),n.gain.setValueAtTime(1,this.preDelay),n.gain.exponentialApproachValueAtTime(0,this.preDelay,this.decay+this.preDelay)}.bind(this),this.decay+this.preDelay).then(function(t){return this._convolver.buffer=t.get(),this}.bind(this))},s.default.Reverb.prototype.dispose=function(){return s.default.Effect.prototype.dispose.call(this),this._convolver.disconnect(),this._convolver=null,this},e.default=s.default.Reverb},function(t,e,i){"use strict";i.r(e);var s=i(0);i(12),i(23),i(2),i(33),i(18);s.default.PitchShift=function(){var t=s.default.defaults(arguments,["pitch"],s.default.PitchShift);s.default.FeedbackEffect.call(this,t),this._frequency=new s.default.Signal(0),this._delayA=new s.default.Delay(0,1),this._lfoA=new s.default.LFO({min:0,max:.1,type:"sawtooth"}).connect(this._delayA.delayTime),this._delayB=new s.default.Delay(0,1),this._lfoB=new s.default.LFO({min:0,max:.1,type:"sawtooth",phase:180}).connect(this._delayB.delayTime),this._crossFade=new s.default.CrossFade,this._crossFadeLFO=new s.default.LFO({min:0,max:1,type:"triangle",phase:90}).connect(this._crossFade.fade),this._feedbackDelay=new s.default.Delay(t.delayTime),this.delayTime=this._feedbackDelay.delayTime,this._readOnly("delayTime"),this._pitch=t.pitch,this._windowSize=t.windowSize,this._delayA.connect(this._crossFade.a),this._delayB.connect(this._crossFade.b),this._frequency.fan(this._lfoA.frequency,this._lfoB.frequency,this._crossFadeLFO.frequency),this.effectSend.fan(this._delayA,this._delayB),this._crossFade.chain(this._feedbackDelay,this.effectReturn);var e=this.now();this._lfoA.start(e),this._lfoB.start(e),this._crossFadeLFO.start(e),this.windowSize=this._windowSize},s.default.extend(s.default.PitchShift,s.default.FeedbackEffect),s.default.PitchShift.defaults={pitch:0,windowSize:.1,delayTime:0,feedback:0},Object.defineProperty(s.default.PitchShift.prototype,"pitch",{get:function(){return this._pitch},set:function(t){this._pitch=t;var e=0;t<0?(this._lfoA.min=0,this._lfoA.max=this._windowSize,this._lfoB.min=0,this._lfoB.max=this._windowSize,e=s.default.intervalToFrequencyRatio(t-1)+1):(this._lfoA.min=this._windowSize,this._lfoA.max=0,this._lfoB.min=this._windowSize,this._lfoB.max=0,e=s.default.intervalToFrequencyRatio(t)-1),this._frequency.value=e*(1.2/this._windowSize)}}),Object.defineProperty(s.default.PitchShift.prototype,"windowSize",{get:function(){return this._windowSize},set:function(t){this._windowSize=this.toSeconds(t),this.pitch=this._pitch}}),s.default.PitchShift.prototype.dispose=function(){return s.default.FeedbackEffect.prototype.dispose.call(this),this._frequency.dispose(),this._frequency=null,this._delayA.disconnect(),this._delayA=null,this._delayB.disconnect(),this._delayB=null,this._lfoA.dispose(),this._lfoA=null,this._lfoB.dispose(),this._lfoB=null,this._crossFade.dispose(),this._crossFade=null,this._crossFadeLFO.dispose(),this._crossFadeLFO=null,this._writable("delayTime"),this._feedbackDelay.dispose(),this._feedbackDelay=null,this.delayTime=null,this},e.default=s.default.PitchShift}
5189,function(t,e,i){"use strict";i.r(e);var s=i(0);i(72),i(2),i(18);s.default.PingPongDelay=function(){var t=s.default.defaults(arguments,["delayTime","feedback"],s.default.PingPongDelay);s.default.StereoXFeedbackEffect.call(this,t),this._leftDelay=new s.default.Delay(0,t.maxDelayTime),this._rightDelay=new s.default.Delay(0,t.maxDelayTime),this._rightPreDelay=new s.default.Delay(0,t.maxDelayTime),this.delayTime=new s.default.Signal(t.delayTime,s.default.Type.Time),this.effectSendL.chain(this._leftDelay,this.effectReturnL),this.effectSendR.chain(this._rightPreDelay,this._rightDelay,this.effectReturnR),this.delayTime.fan(this._leftDelay.delayTime,this._rightDelay.delayTime,this._rightPreDelay.delayTime),this._feedbackLR.disconnect(),this._feedbackLR.connect(this._rightDelay),this._readOnly(["delayTime"])},s.default.extend(s.default.PingPongDelay,s.default.StereoXFeedbackEffect),s.default.PingPongDelay.defaults={delayTime:.25,maxDelayTime:1},s.default.PingPongDelay.prototype.dispose=function(){return s.default.StereoXFeedbackEffect.prototype.dispose.call(this),this._leftDelay.dispose(),this._leftDelay=null,this._rightDelay.dispose(),this._rightDelay=null,this._rightPreDelay.dispose(),this._rightPreDelay=null,this._writable(["delayTime"]),this.delayTime.dispose(),this.delayTime=null,this},e.default=s.default.PingPongDelay},function(t,e,i){"use strict";i.r(e);var s=i(0);i(12),i(9),i(15);s.default.Phaser=function(){var t=s.default.defaults(arguments,["frequency","octaves","baseFrequency"],s.default.Phaser);s.default.StereoEffect.call(this,t),this._lfoL=new s.default.LFO(t.frequency,0,1),this._lfoR=new s.default.LFO(t.frequency,0,1),this._lfoR.phase=180,this._baseFrequency=t.baseFrequency,this._octaves=t.octaves,this.Q=new s.default.Signal(t.Q,s.default.Type.Positive),this._filtersL=this._makeFilters(t.stages,this._lfoL,this.Q),this._filtersR=this._makeFilters(t.stages,this._lfoR,this.Q),this.frequency=this._lfoL.frequency,this.frequency.value=t.frequency,this.effectSendL.connect(this._filtersL[0]),this.effectSendR.connect(this._filtersR[0]),s.default.connect(this._filtersL[t.stages-1],this.effectReturnL),s.default.connect(this._filtersR[t.stages-1],this.effectReturnR),this._lfoL.frequency.connect(this._lfoR.frequency),this.baseFrequency=t.baseFrequency,this.octaves=t.octaves,this._lfoL.start(),this._lfoR.start(),this._readOnly(["frequency","Q"])},s.default.extend(s.default.Phaser,s.default.StereoEffect),s.default.Phaser.defaults={frequency:.5,octaves:3,stages:10,Q:10,baseFrequency:350},s.default.Phaser.prototype._makeFilters=function(t,e,i){for(var n=new Array(t),o=0;o<t;o++){var a=this.context.createBiquadFilter();a.type="allpass",i.connect(a.Q),e.connect(a.frequency),n[o]=a}return s.default.connectSeries.apply(s.default,n),n},Object.defineProperty(s.default.Phaser.prototype,"octaves",{get:function(){return this._octaves},set:function(t){this._octaves=t;var e=this._baseFrequency*Math.pow(2,t);this._lfoL.max=e,this._lfoR.max=e}}),Object.defineProperty(s.default.Phaser.prototype,"baseFrequency",{get:function(){return this._baseFrequency},set:function(t){this._baseFrequency=t,this._lfoL.min=t,this._lfoR.min=t,this.octaves=this._octaves}}),s.default.Phaser.prototype.dispose=function(){s.default.StereoEffect.prototype.dispose.call(this),this._writable(["frequency","Q"]),this.Q.dispose(),this.Q=null,this._lfoL.dispose(),this._lfoL=null,this._lfoR.dispose(),this._lfoR=null;for(var t=0;t<this._filtersL.length;t++)this._filtersL[t].disconnect(),this._filtersL[t]=null;this._filtersL=null;for(var e=0;e<this._filtersR.length;e++)this._filtersR[e].disconnect(),this._filtersR[e]=null;return this._filtersR=null,this.frequency=null,this},e.default=s.default.Phaser},function(t,e,i){"use strict";i.r(e);var s=i(0),n=(i(59),i(15),i(26),[.06748,.06404,.08212,.09004]),o=[.773,.802,.753,.733],a=[347,113,37];s.default.JCReverb=function(){var t=s.default.defaults(arguments,["roomSize"],s.default.JCReverb);s.default.StereoEffect.call(this,t),this.roomSize=new s.default.Signal(t.roomSize,s.default.Type.NormalRange),this._scaleRoomSize=new s.default.Scale(-.733,.197),this._allpassFilters=[],this._feedbackCombFilters=[];for(var e=0;e<a.length;e++){var i=this.context.createBiquadFilter();i.type="allpass",i.frequency.value=a[e],this._allpassFilters.push(i)}for(var r=0;r<n.length;r++){var l=new s.default.FeedbackCombFilter(n[r],.1);this._scaleRoomSize.connect(l.resonance),l.resonance.value=o[r],s.default.connect(this._allpassFilters[this._allpassFilters.length-1],l),r<n.length/2?l.connect(this.effectReturnL):l.connect(this.effectReturn
5189R),this._feedbackCombFilters.push(l)}this.roomSize.connect(this._scaleRoomSize),s.default.connectSeries.apply(s.default,this._allpassFilters),this.effectSendL.connect(this._allpassFilters[0]),this.effectSendR.connect(this._allpassFilters[0]),this._readOnly(["roomSize"])},s.default.extend(s.default.JCReverb,s.default.StereoEffect),s.default.JCReverb.defaults={roomSize:.5},s.default.JCReverb.prototype.dispose=function(){s.default.StereoEffect.prototype.dispose.call(this);for(var t=0;t<this._allpassFilters.length;t++)this._allpassFilters[t].disconnect(),this._allpassFilters[t]=null;this._allpassFilters=null;for(var e=0;e<this._feedbackCombFilters.length;e++)this._feedbackCombFilters[e].dispose(),this._feedbackCombFilters[e]=null;return this._feedbackCombFilters=null,this._writable(["roomSize"]),this.roomSize.dispose(),this.roomSize=null,this._scaleRoomSize.dispose(),this._scaleRoomSize=null,this},e.default=s.default.JCReverb},function(t,e,i){"use strict";i.r(e);var s=i(0),n=(i(54),i(15),i(2),i(19),i(10),i(42),[1557/44100,1617/44100,1491/44100,1422/44100,1277/44100,1356/44100,1188/44100,1116/44100]),o=[225,556,441,341];s.default.Freeverb=function(){var t=s.default.defaults(arguments,["roomSize","dampening"],s.default.Freeverb);s.default.StereoEffect.call(this,t),this.roomSize=new s.default.Signal(t.roomSize,s.default.Type.NormalRange),this.dampening=new s.default.Signal(t.dampening,s.default.Type.Frequency),this._combFilters=[],this._allpassFiltersL=[],this._allpassFiltersR=[];for(var e=0;e<o.length;e++){var i=this.context.createBiquadFilter();i.type="allpass",i.frequency.value=o[e],this._allpassFiltersL.push(i)}for(var a=0;a<o.length;a++){var r=this.context.createBiquadFilter();r.type="allpass",r.frequency.value=o[a],this._allpassFiltersR.push(r)}for(var l=0;l<n.length;l++){var u=new s.default.LowpassCombFilter(n[l]);l<n.length/2?this.effectSendL.chain(u,this._allpassFiltersL[0]):this.effectSendR.chain(u,this._allpassFiltersR[0]),this.roomSize.connect(u.resonance),this.dampening.connect(u.dampening),this._combFilters.push(u)}s.default.connectSeries.apply(s.default,this._allpassFiltersL),s.default.connectSeries.apply(s.default,this._allpassFiltersR),s.default.connect(this._allpassFiltersL[this._allpassFiltersL.length-1],this.effectReturnL),s.default.connect(this._allpassFiltersR[this._allpassFiltersR.length-1],this.effectReturnR),this._readOnly(["roomSize","dampening"])},s.default.extend(s.default.Freeverb,s.default.StereoEffect),s.default.Freeverb.defaults={roomSize:.7,dampening:3e3},s.default.Freeverb.prototype.dispose=function(){s.default.StereoEffect.prototype.dispose.call(this);for(var t=0;t<this._allpassFiltersL.length;t++)this._allpassFiltersL[t].disconnect(),this._allpassFiltersL[t]=null;this._allpassFiltersL=null;for(var e=0;e<this._allpassFiltersR.length;e++)this._allpassFiltersR[e].disconnect(),this._allpassFiltersR[e]=null;this._allpassFiltersR=null;for(var i=0;i<this._combFilters.length;i++)this._combFilters[i].dispose(),this._combFilters[i]=null;return this._combFilters=null,this._writable(["roomSize","dampening"]),this.roomSize.dispose(),this.roomSize=null,this.dampening.dispose(),this.dampening=null,this},e.default=s.default.Freeverb},function(t,e,i){"use strict";i.r(e);var s=i(0);i(33),i(2),i(18);s.default.FeedbackDelay=function(){var t=s.default.defaults(arguments,["delayTime","feedback"],s.default.FeedbackDelay);s.default.FeedbackEffect.call(this,t),this._delayNode=new s.default.Delay(t.delayTime,t.maxDelay),this.delayTime=this._delayNode.delayTime,this.connectEffect(this._delayNode),this._readOnly(["delayTime"])},s.default.extend(s.default.FeedbackDelay,s.default.FeedbackEffect),s.default.FeedbackDelay.defaults={delayTime:.25,maxDelay:1},s.default.FeedbackDelay.prototype.dispose=function(){return s.default.FeedbackEffect.prototype.dispose.call(this),this._delayNode.dispose(),this._delayNode=null,this._writable(["delayTime"]),this.delayTime=null,this},e.default=s.default.FeedbackDelay},function(t,e,i){"use strict";i.r(e);var s=i(0);i(8),i(7);s.default.Distortion=function(){var t=s.default.defaults(arguments,["distortion"],s.default.Distortion);s.default.Effect.call(this,t),this._shaper=new s.default.WaveShaper(4096),this._distortion=t.distortion,this.connectEffect(this._shaper),this.distortion=t.distortion,this.oversample=t.oversample},s.default.extend(s.default.Distortion,s.default.Effect),s.default.Distortion.defaults={distortion:.4,oversample:"none"},Object.defineProperty(s.default.Distortion.prototype,"distortion",{get:function(){return this._distortion},set:function(t){this._distortion=t;var e=100*t,i=Math.PI/180;this._shaper.setMap(function(t){return Math.abs(t)<.001?0:(3+e)*t*20*i/(Math.PI+e*Math.abs(t))})}}),Object.defineProperty(s.default.Distortion.prototype,"oversample",{get:function(){return this._shaper.oversample},set:function(t){this._shaper.oversample=t}}),s.default.Distortion.prototype.dispose=function(){return s.default.Effect.prototype.dispose.call(this),this._shaper.dispose(),this._shaper=null,this},e.default=s.default.Distortion}
5189,function(t,e,i){"use strict";i.r(e);var s=i(0);i(12),i(15),i(18);s.default.Chorus=function(){var t=s.default.defaults(arguments,["frequency","delayTime","depth"],s.default.Chorus);s.default.StereoEffect.call(this,t),this._depth=t.depth,this._delayTime=t.delayTime/1e3,this._lfoL=new s.default.LFO({frequency:t.frequency,min:0,max:1}),this._lfoR=new s.default.LFO({frequency:t.frequency,min:0,max:1,phase:180}),this._delayNodeL=new s.default.Delay,this._delayNodeR=new s.default.Delay,this.frequency=this._lfoL.frequency,this.effectSendL.chain(this._delayNodeL,this.effectReturnL),this.effectSendR.chain(this._delayNodeR,this.effectReturnR),this.effectSendL.connect(this.effectReturnL),this.effectSendR.connect(this.effectReturnR),this._lfoL.connect(this._delayNodeL.delayTime),this._lfoR.connect(this._delayNodeR.delayTime),this._lfoL.start(),this._lfoR.start(),this._lfoL.frequency.connect(this._lfoR.frequency),this.depth=this._depth,this.frequency.value=t.frequency,this.type=t.type,this._readOnly(["frequency"]),this.spread=t.spread},s.default.extend(s.default.Chorus,s.default.StereoEffect),s.default.Chorus.defaults={frequency:1.5,delayTime:3.5,depth:.7,type:"sine",spread:180},Object.defineProperty(s.default.Chorus.prototype,"depth",{get:function(){return this._depth},set:function(t){this._depth=t;var e=this._delayTime*t;this._lfoL.min=Math.max(this._delayTime-e,0),this._lfoL.max=this._delayTime+e,this._lfoR.min=Math.max(this._delayTime-e,0),this._lfoR.max=this._delayTime+e}}),Object.defineProperty(s.default.Chorus.prototype,"delayTime",{get:function(){return 1e3*this._delayTime},set:function(t){this._delayTime=t/1e3,this.depth=this._depth}}),Object.defineProperty(s.default.Chorus.prototype,"type",{get:function(){return this._lfoL.type},set:function(t){this._lfoL.type=t,this._lfoR.type=t}}),Object.defineProperty(s.default.Chorus.prototype,"spread",{get:function(){return this._lfoR.phase-this._lfoL.phase},set:function(t){this._lfoL.phase=90-t/2,this._lfoR.phase=t/2+90}}),s.default.Chorus.prototype.dispose=function(){return s.default.StereoEffect.prototype.dispose.call(this),this._lfoL.dispose(),this._lfoL=null,this._lfoR.dispose(),this._lfoR=null,this._delayNodeL.dispose(),this._delayNodeL=null,this._delayNodeR.dispose(),this._delayNodeR=null,this._writable("frequency"),this.frequency=null,this},e.default=s.default.Chorus},function(t,e,i){"use strict";i.r(e);var s=i(0);i(8),i(7);s.default.Chebyshev=function(){var t=s.default.defaults(arguments,["order"],s.default.Chebyshev);s.default.Effect.call(this,t),this._shaper=new s.default.WaveShaper(4096),this._order=t.order,this.connectEffect(this._shaper),this.order=t.order,this.oversample=t.oversample},s.default.extend(s.default.Chebyshev,s.default.Effect),s.default.Chebyshev.defaults={order:1,oversample:"none"},s.default.Chebyshev.prototype._getCoefficient=function(t,e,i){return i.hasOwnProperty(e)?i[e]:(i[e]=0===e?0:1===e?t:2*t*this._getCoefficient(t,e-1,i)-this._getCoefficient(t,e-2,i),i[e])},Object.defineProperty(s.default.Chebyshev.prototype,"order",{get:function(){return this._order},set:function(t){this._order=t;for(var e=new Array(4096),i=e.length,s=0;s<i;++s){var n=2*s/i-1;e[s]=0===n?0:this._getCoefficient(n,t,{})}this._shaper.curve=e}}),Object.defineProperty(s.default.Chebyshev.prototype,"oversample",{get:function(){return this._shaper.oversample},set:function(t){this._shaper.oversample=t}}),s.default.Chebyshev.prototype.dispose=function(){return s.default.Effect.prototype.dispose.call(this),this._shaper.dispose(),this._shaper=null,this},e.default=s.default.Chebyshev},function(t,e,i){"use strict";i.r(e);var s=i(0);i(8),i(13),i(75);s.default.BitCrusher=function(){var t=s.default.defaults(arguments,["bits"],s.default.BitCrusher);s.default.Effect.call(this,t);var e=1/Math.pow(2,t.bits-1);this._subtract=new s.default.Subtract,this._modulo=new s.default.Modulo(e),this._bits=t.bits,this.effectSend.fan(this._subtract,this._modulo),this._modulo.connect(this._subtract,0,1),this._subtract.connect(this.effectReturn)},s.default.extend(s.default.BitCrusher,s.default.Effect),s.default.BitCrusher.defaults={bits:4},Object.defineProperty(s.default.BitCrusher.prototype,"bits",{get:function(){return this._bits},set:function(t){this._bits=t;var e=1/Math.pow(2,t-1);this._modulo.value=e}}),s.default.BitCrusher.prototype.dispose=function(){return s.default.Effect.prototype.dispose.call(this),this._subtract.dispose(),this._subtract=null,this._modulo.dispose(),this._modulo=null,this},e.default=s.default.BitCrusher}
5189,function(t,e,i){"use strict";i.r(e);var s=i(0);i(58),i(42),i(8),i(9);s.default.AutoWah=function(){var t=s.default.defaults(arguments,["baseFrequency","octaves","sensitivity"],s.default.AutoWah);s.default.Effect.call(this,t),this.follower=new s.default.Follower(t.follower),this._sweepRange=new s.default.ScaleExp(0,1,.5),this._baseFrequency=t.baseFrequency,this._octaves=t.octaves,this._inputBoost=new s.default.Gain,this._bandpass=new s.default.Filter({rolloff:-48,frequency:0,Q:t.Q}),this._peaking=new s.default.Filter(0,"peaking"),this._peaking.gain.value=t.gain,this.gain=this._peaking.gain,this.Q=this._bandpass.Q,this.effectSend.chain(this._inputBoost,this.follower,this._sweepRange),this._sweepRange.connect(this._bandpass.frequency),this._sweepRange.connect(this._peaking.frequency),this.effectSend.chain(this._bandpass,this._peaking,this.effectReturn),this._setSweepRange(),this.sensitivity=t.sensitivity,this._readOnly(["gain","Q"])},s.default.extend(s.default.AutoWah,s.default.Effect),s.default.AutoWah.defaults={baseFrequency:100,octaves:6,sensitivity:0,Q:2,gain:2,follower:{attack:.3,release:.5}},Object.defineProperty(s.default.AutoWah.prototype,"octaves",{get:function(){return this._octaves},set:function(t){this._octaves=t,this._setSweepRange()}}),Object.defineProperty(s.default.AutoWah.prototype,"baseFrequency",{get:function(){return this._baseFrequency},set:function(t){this._baseFrequency=t,this._setSweepRange()}}),Object.defineProperty(s.default.AutoWah.prototype,"sensitivity",{get:function(){return s.default.gainToDb(1/this._inputBoost.gain.value)},set:function(t){this._inputBoost.gain.value=1/s.default.dbToGain(t)}}),s.default.AutoWah.prototype._setSweepRange=function(){this._sweepRange.min=this._baseFrequency,this._sweepRange.max=Math.min(this._baseFrequency*Math.pow(2,this._octaves),this.context.sampleRate/2)},s.default.AutoWah.prototype.dispose=function(){return s.default.Effect.prototype.dispose.call(this),this.follower.dispose(),this.follower=null,this._sweepRange.dispose(),this._sweepRange=null,this._bandpass.dispose(),this._bandpass=null,this._peaking.dispose(),this._peaking=null,this._inputBoost.dispose(),this._inputBoost=null,this._writable(["gain","Q"]),this.gain=null,this.Q=null,this},e.default=s.default.AutoWah},function(t,e,i){"use strict";i.r(e);var s=i(0);i(8),i(12),i(48);s.default.AutoPanner=function(){var t=s.default.defaults(arguments,["frequency"],s.default.AutoPanner);s.default.Effect.call(this,t),this._lfo=new s.default.LFO({frequency:t.frequency,amplitude:t.depth,min:-1,max:1}),this.depth=this._lfo.amplitude,this._panner=new s.default.Panner,this.frequency=this._lfo.frequency,this.connectEffect(this._panner),this._lfo.connect(this._panner.pan),this.type=t.type,this._readOnly(["depth","frequency"])},s.default.extend(s.default.AutoPanner,s.default.Effect),s.default.AutoPanner.defaults={frequency:1,type:"sine",depth:1},s.default.AutoPanner.prototype.start=function(t){return this._lfo.start(t),this},s.default.AutoPanner.prototype.stop=function(t){return this._lfo.stop(t),this},s.default.AutoPanner.prototype.sync=function(t){return this._lfo.sync(t),this},s.default.AutoPanner.prototype.unsync=function(){return this._lfo.unsync(),this},Object.defineProperty(s.default.AutoPanner.prototype,"type",{get:function(){return this._lfo.type},set:function(t){this._lfo.type=t}}),s.default.AutoPanner.prototype.dispose=function(){return s.default.Effect.prototype.dispose.call(this),this._lfo.dispose(),this._lfo=null,this._panner.dispose(),this._panner=null,this._writable(["depth","frequency"]),this.frequency=null,this.depth=null,this},e.default=s.default.AutoPanner},function(t,e,i){"use strict";i.r(e);var s=i(0);i(8),i(12),i(9);s.default.AutoFilter=function(){var t=s.default.defaults(arguments,["frequency","baseFrequency","octaves"],s.default.AutoFilter);s.default.Effect.call(this,t),this._lfo=new s.default.LFO({frequency:t.frequency,amplitude:t.depth}),this.depth=this._lfo.amplitude,this.frequency=this._lfo.frequency,this.filter=new s.default.Filter(t.filter),this._octaves=0,this.connectEffect(this.filter),this._lfo.connect(this.filter.frequency),this.type=t.type,this._readOnly(["frequency","depth"]),this.octaves=t.octaves,this.baseFrequency=t.baseFrequency},s.default.extend(s.default.AutoFilter,s.default.Effect),s.default.AutoFilter.defaults={frequency:1,type:"sine",depth:1,baseFrequency:200,octaves:2.6,filter:{type:"lowpass",rolloff:-12,Q:1}},s.default.AutoFilter.prototype.start=function(t){return this._lfo.start(t),this},s.default.AutoFilter.prototype.stop=function(t){return this._lfo.stop(t),this},s.default.AutoFilter.prototype.sync=function(t){return this._lfo.sync(t),this},s.default.AutoFilter.prototype.unsync=function(){return this._lfo.unsync(),this},Object.defineProperty(s.default.AutoFilter.prototype,"type",{get:function(){return this._lfo.type},set:function(t){this._lfo.type=t}}),Object.defineProperty(s.default.AutoFilter.prototype,"baseFrequency",{get:function(){return this._lfo.min},set:function(t){this._lfo.min=this.toFrequency(t),this.octaves=this._octaves}}),Object.defineProperty(s.default.AutoFilter.prototype,"octaves",{get:function(){return this._octaves},set:function(t){this._octaves=t,this._lfo.max=this.baseFrequency*Math.pow(2,t)}}),s.default.AutoFilter.prototype.dispose=function(){return s.default.Effect.prototype.dispose.call(this),this._lfo.dispose(),this._lfo=null,this.filter.dispose(),this.filter=null,this._writable(["frequency","depth"]),this.frequency=null,this.depth=null,this},e.default=s.default.AutoFilter}
5189,function(t,e,i){"use strict";i.r(e);var s=i(0);i(23),i(10),i(19),i(2),i(22),i(28);s.default.Listener=function(){s.default.call(this),this._orientation=[0,0,0,0,0,0],this._position=[0,0,0],s.default.getContext(function(){this.set(n.defaults)}.bind(this))},s.default.extend(s.default.Listener),s.default.Listener.defaults={positionX:0,positionY:0,positionZ:0,forwardX:0,forwardY:0,forwardZ:1,upX:0,upY:1,upZ:0},s.default.Listener.prototype.isListener=!0,s.default.Listener.prototype._rampTimeConstant=.01,s.default.Listener.prototype.setPosition=function(t,e,i){if(this.context.rawContext.listener.positionX){var s=this.now();this.context.rawContext.listener.positionX.setTargetAtTime(t,s,this._rampTimeConstant),this.context.rawContext.listener.positionY.setTargetAtTime(e,s,this._rampTimeConstant),this.context.rawContext.listener.positionZ.setTargetAtTime(i,s,this._rampTimeConstant)}else this.context.rawContext.listener.setPosition(t,e,i);return this._position=Array.prototype.slice.call(arguments),this},s.default.Listener.prototype.setOrientation=function(t,e,i,s,n,o){if(this.context.rawContext.listener.forwardX){var a=this.now();this.context.rawContext.listener.forwardX.setTargetAtTime(t,a,this._rampTimeConstant),this.context.rawContext.listener.forwardY.setTargetAtTime(e,a,this._rampTimeConstant),this.context.rawContext.listener.forwardZ.setTargetAtTime(i,a,this._rampTimeConstant),this.context.rawContext.listener.upX.setTargetAtTime(s,a,this._rampTimeConstant),this.context.rawContext.listener.upY.setTargetAtTime(n,a,this._rampTimeConstant),this.context.rawContext.listener.upZ.setTargetAtTime(o,a,this._rampTimeConstant)}else this.context.rawContext.listener.setOrientation(t,e,i,s,n,o);return this._orientation=Array.prototype.slice.call(arguments),this},Object.defineProperty(s.default.Listener.prototype,"positionX",{set:function(t){this._position[0]=t,this.setPosition.apply(this,this._position)},get:function(){return this._position[0]}}),Object.defineProperty(s.default.Listener.prototype,"positionY",{set:function(t){this._position[1]=t,this.setPosition.apply(this,this._position)},get:function(){return this._position[1]}}),Object.defineProperty(s.default.Listener.prototype,"positionZ",{set:function(t){this._position[2]=t,this.setPosition.apply(this,this._position)},get:function(){return this._position[2]}}),Object.defineProperty(s.default.Listener.prototype,"forwardX",{set:function(t){this._orientation[0]=t,this.setOrientation.apply(this,this._orientation)},get:function(){return this._orientation[0]}}),Object.defineProperty(s.default.Listener.prototype,"forwardY",{set:function(t){this._orientation[1]=t,this.setOrientation.apply(this,this._orientation)},get:function(){return this._orientation[1]}}),Object.defineProperty(s.default.Listener.prototype,"forwardZ",{set:function(t){this._orientation[2]=t,this.setOrientation.apply(this,this._orientation)},get:function(){return this._orientation[2]}}),Object.defineProperty(s.default.Listener.prototype,"upX",{set:function(t){this._orientation[3]=t,this.setOrientation.apply(this,this._orientation)},get:function(){return this._orientation[3]}}),Object.defineProperty(s.default.Listener.prototype,"upY",{set:function(t){this._orientation[4]=t,this.setOrientation.apply(this,this._orientation)},get:function(){return this._orientation[4]}}),Object.defineProperty(s.default.Listener.prototype,"upZ",{set:function(t){this._orientation[5]=t,this.setOrientation.apply(this,this._orientation)},get:function(){return this._orientation[5]}}),s.default.Listener.prototype.dispose=function(){return this._orientation=null,this._position=null,this};var n=s.default.Listener;s.default.Listener=new n,s.default.Context.on("init",function(t){t.listener&&t.listener.isListener?s.default.Listener=t.listener:s.default.Listener=new n}),e.default=s.default.Listener},function(t,e,i){"use strict";i.r(e);var s=i(0);i(24);s.default.Draw=function(){s.default.call(this),this._events=new s.default.Timeline,this.expiration=.25,this.anticipation=.008,this._boundDrawLoop=this._drawLoop.bind(this)},s.default.extend(s.default.Draw),s.default.Draw.prototype.schedule=function(t,e){return this._events.add({callback:t,time:this.toSeconds(e)}),1===this._events.length&&requestAnimationFrame(this._boundDrawLoop),this},s.default.Draw.prototype.cancel=function(t){return this._events.cancel(this.toSeconds(t)),this},s.default.Draw.prototype._drawLoop=function(){for(var t=s.default.context.currentTime;this._events.length&&this._events.peek().time-this.anticipation<=t;){var e=this._events.shift();t-e.time<=this.expiration&&e.callback()}this._events.length>0&&requestAnimationFrame(this._boundDrawLoop)},s.default.Draw=new s.default.Draw,e.default=s.default.Draw}
5189,function(t,e,i){"use strict";i.r(e);var s=i(0),n=(i(3),{});s.default.prototype.send=function(t,e){n.hasOwnProperty(t)||(n[t]=this.context.createGain()),e=s.default.defaultArg(e,0);var i=new s.default.Gain(e,s.default.Type.Decibels);return this.connect(i),i.connect(n[t]),i},s.default.prototype.receive=function(t,e){return n.hasOwnProperty(t)||(n[t]=this.context.createGain()),s.default.connect(n[t],this,0,e),this},s.default.Context.on("init",function(t){t.buses?n=t.buses:(n={},t.buses=n)}),e.default=s.default},function(t,e,i){"use strict";i.r(e);var s=i(0);i(4);s.default.CtrlRandom=function(){var t=s.default.defaults(arguments,["min","max"],s.default.CtrlRandom);s.default.call(this),this.min=t.min,this.max=t.max,this.integer=t.integer},s.default.extend(s.default.CtrlRandom),s.default.CtrlRandom.defaults={min:0,max:1,integer:!1},Object.defineProperty(s.default.CtrlRandom.prototype,"value",{get:function(){var t=this.toSeconds(this.min),e=this.toSeconds(this.max),i=Math.random(),s=i*t+(1-i)*e;return this.integer&&(s=Math.floor(s)),s}}),e.default=s.default.CtrlRandom},function(t,e,i){"use strict";i.r(e);var s=i(0);s.default.CtrlMarkov=function(t,e){s.default.call(this),this.values=s.default.defaultArg(t,{}),this.value=s.default.defaultArg(e,Object.keys(this.values)[0])},s.default.extend(s.default.CtrlMarkov),s.default.CtrlMarkov.prototype.next=function(){if(this.values.hasOwnProperty(this.value)){var t=this.values[this.value];if(s.default.isArray(t))for(var e=this._getProbDistribution(t),i=Math.random(),n=0,o=0;o<e.length;o++){var a=e[o];if(i>n&&i<n+a){var r=t[o];s.default.isObject(r)?this.value=r.value:this.value=r}n+=a}else this.value=t}return this.value},s.default.CtrlMarkov.prototype._getProbDistribution=function(t){for(var e=[],i=0,n=!1,o=0;o<t.length;o++){var a=t[o];s.default.isObject(a)?(n=!0,e[o]=a.probability):e[o]=1/t.length,i+=e[o]}if(n)for(var r=0;r<e.length;r++)e[r]=e[r]/i;return e},s.default.CtrlMarkov.prototype.dispose=function(){this.values=null},e.default=s.default.CtrlMarkov},function(t,e,i){"use strict";i.r(e);var s=i(0);i(4);s.default.CtrlInterpolate=function(){var t=s.default.defaults(arguments,["values","index"],s.default.CtrlInterpolate);s.default.call(this),this.values=t.values,this.index=t.index},s.default.extend(s.default.CtrlInterpolate),s.default.CtrlInterpolate.defaults={index:0,values:[]},Object.defineProperty(s.default.CtrlInterpolate.prototype,"value",{get:function(){var t=this.index;t=Math.min(t,this.values.length-1);var e=Math.floor(t),i=this.values[e],s=this.values[Math.ceil(t)];return this._interpolate(t-e,i,s)}}),s.default.CtrlInterpolate.prototype._interpolate=function(t,e,i){if(s.default.isArray(e)){for(var n=[],o=0;o<e.length;o++)n[o]=this._interpolate(t,e[o],i[o]);return n}if(s.default.isObject(e)){var a={};for(var r in e)a[r]=this._interpolate(t,e[r],i[r]);return a}return(1-t)*(e=this._toNumber(e))+t*(i=this._toNumber(i))},s.default.CtrlInterpolate.prototype._toNumber=function(t){return s.default.isNumber(t)?t:this.toSeconds(t)},s.default.CtrlInterpolate.prototype.dispose=function(){this.values=null},e.default=s.default.CtrlInterpolate},function(t,e,i){"use strict";i.r(e);var s=i(0);i(36),i(1);s.default.Waveform=function(){var t=s.default.defaults(arguments,["size"],s.default.Waveform);t.type=s.default.Analyser.Type.Waveform,s.default.AudioNode.call(this),this._analyser=this.input=this.output=new s.default.Analyser(t)},s.default.extend(s.default.Waveform,s.default.AudioNode),s.default.Waveform.defaults={size:1024},s.default.Waveform.prototype.getValue=function(){return this._analyser.getValue()},Object.defineProperty(s.default.Waveform.prototype,"size",{get:function(){return this._analyser.size},set:function(t){this._analyser.size=t}}),s.default.Waveform.prototype.dispose=function(){s.default.AudioNode.prototype.dispose.call(this),this._analyser.dispose(),this._analyser=null},e.default=s.default.Waveform},function(t,e,i){"use strict";i.r(e);var s=i(0);i(23),i(10),i(19),i(2),i(22),i(28),i(1);s.default.Panner3D=function(){var t=s.default.defaults(arguments,["positionX","positionY","positionZ"],s.default.Panner3D);s.default.AudioNode.call(this),this._panner=this.input=this.output=this.context.createPanner(),this._panner.panningModel=t.panningModel,this._panner.maxDistance=t.maxDistance,this._panner.distanceModel=t.distanceModel,this._panner.coneOuterGain=t.coneOuterGain,this._panner.coneOuterAngle=t.coneOuterAngle,this._panner.coneInnerAngle=t.coneInnerAngle,this._panner.refDistance=t.refDistance,this._panner.rolloffFactor=t.rolloffFactor,this._orientation=[t.orientationX,t.orientationY,t.orientationZ],this._position=[t.positionX,t.positionY,t.positionZ],this.orientationX=t.orientationX,this.orientationY=t.orientationY,this.orientationZ=t.orientationZ,this.positionX=t.positionX,this.positionY=t.positionY,this.positionZ=t.positionZ},s.default.extend(s.default.Panner3D,s.default.AudioNode),s.default.Panner3D.defaults={positionX:0,positionY:0,positionZ:0,orientationX:0,orientationY:0,orientationZ:0,panningModel:"equalpower",maxDistance:1e4,distanceModel:"inverse",coneOuterGain:0,coneOuterAngle:360,coneInnerAngle:360,refDistance:1,rolloffFactor:1},s.default.Panner3D.prototype._rampTimeConstant=.01,s.default.Panner3D.prototype.setPosition=function(t,e,
5189i){if(this._panner.positionX){var s=this.now();this._panner.positionX.setTargetAtTime(t,s,this._rampTimeConstant),this._panner.positionY.setTargetAtTime(e,s,this._rampTimeConstant),this._panner.positionZ.setTargetAtTime(i,s,this._rampTimeConstant)}else this._panner.setPosition(t,e,i);return this._position=Array.prototype.slice.call(arguments),this},s.default.Panner3D.prototype.setOrientation=function(t,e,i){if(this._panner.orientationX){var s=this.now();this._panner.orientationX.setTargetAtTime(t,s,this._rampTimeConstant),this._panner.orientationY.setTargetAtTime(e,s,this._rampTimeConstant),this._panner.orientationZ.setTargetAtTime(i,s,this._rampTimeConstant)}else this._panner.setOrientation(t,e,i);return this._orientation=Array.prototype.slice.call(arguments),this},Object.defineProperty(s.default.Panner3D.prototype,"positionX",{set:function(t){this._position[0]=t,this.setPosition.apply(this,this._position)},get:function(){return this._position[0]}}),Object.defineProperty(s.default.Panner3D.prototype,"positionY",{set:function(t){this._position[1]=t,this.setPosition.apply(this,this._position)},get:function(){return this._position[1]}}),Object.defineProperty(s.default.Panner3D.prototype,"positionZ",{set:function(t){this._position[2]=t,this.setPosition.apply(this,this._position)},get:function(){return this._position[2]}}),Object.defineProperty(s.default.Panner3D.prototype,"orientationX",{set:function(t){this._orientation[0]=t,this.setOrientation.apply(this,this._orientation)},get:function(){return this._orientation[0]}}),Object.defineProperty(s.default.Panner3D.prototype,"orientationY",{set:function(t){this._orientation[1]=t,this.setOrientation.apply(this,this._orientation)},get:function(){return this._orientation[1]}}),Object.defineProperty(s.default.Panner3D.prototype,"orientationZ",{set:function(t){this._orientation[2]=t,this.setOrientation.apply(this,this._orientation)},get:function(){return this._orientation[2]}}),s.default.Panner3D._aliasProperty=function(t){Object.defineProperty(s.default.Panner3D.prototype,t,{set
5189:function(e){this._panner[t]=e},get:function(){return this._panner[t]}})},s.default.Panner3D._aliasProperty("panningModel"),s.default.Panner3D._aliasProperty("refDistance"),s.default.Panner3D._aliasProperty("rolloffFactor"),s.default.Panner3D._aliasProperty("distanceModel"),s.default.Panner3D._aliasProperty("coneInnerAngle"),s.default.Panner3D._aliasProperty("coneOuterAngle"),s.default.Panner3D._aliasProperty("coneOuterGain"),s.default.Panner3D._aliasProperty("maxDistance"),s.default.Panner3D.prototype.dispose=function(){return s.default.AudioNode.prototype.dispose.call(this),this._panner.disconnect(),this._panner=null,this._orientation=null,this._position=null,this},e.default=s.default.Panner3D},function(t,e,i){"use strict";i.r(e);var s=i(0);i(60),i(43),i(1);s.default.MultibandCompressor=function(t){s.default.AudioNode.call(this),t=s.default.defaultArg(arguments,s.default.MultibandCompressor.defaults),this._splitter=this.input=new s.default.MultibandSplit({lowFrequency:t.lowFrequency,highFrequency:t.highFrequency}),this.lowFrequency=this._splitter.lowFrequency,this.highFrequency=this._splitter.highFrequency,this.output=new s.default.Gain,this.low=new s.default.Compressor(t.low),this.mid=new s.default.Compressor(t.mid),this.high=new s.default.Compressor(t.high),this._splitter.low.chain(this.low,this.output),this._splitter.mid.chain(this.mid,this.output),this._splitter.high.chain(this.high,this.output),this._readOnly(["high","mid","low","highFrequency","lowFrequency"])},s.default.extend(s.default.MultibandCompressor,s.default.AudioNode),s.default.MultibandCompressor.defaults={low:s.default.Compressor.defaults,mid:s.default.Compressor.defaults,high:s.default.Compressor.defaults,lowFrequency:250,highFrequency:2e3},s.default.MultibandCompressor.prototype.dispose=function(){return s.default.AudioNode.prototype.dispose.call(this),this._splitter.dispose(),this._writable(["high","mid","low","highFrequency","lowFrequency"]),this.low.dispose(),this.mid.dispose(),this.high.dispose(),this._splitter=null,this.low=null,this.mid=null,this.high=null,this.lowFrequency=null,this.highFrequency=null,this},e.default=s.default.MultibandCompressor},function(t,e,i){"use strict";i.r(e);var s=i(0);i(10),i(1);s.default.Mono=function(){s.default.AudioNode.call(this),this.createInsOuts(1,0),this._merge=this.output=new s.default.Merge,s.default.connect(this.input,this._merge,0,0),s.default.connect(this.input,this._merge,0,1)},s.default.extend(s.default.Mono,s.default.AudioNode),s.default.Mono.prototype.dispose=function(){return s.default.AudioNode.prototype.dispose.call(this),this._merge.dispose(),this._merge=null,this},e.default=s.default.Mono},function(t,e,i){"use strict";i.r(e);var s=i(0);i(53),i(52),i(43),i(1);s.default.MidSideCompressor=function(t){s.default.AudioNode.call(this),t=s.default.defaultArg(t,s.default.MidSideCompressor.defaults),this._midSideSplit=this.input=new s.default.MidSideSplit,this._midSideMerge=this.output=new s.default.MidSideMerge,this.mid=new s.default.Compressor(t.mid),this.side=new s.default.Compressor(t.side),this._midSideSplit.mid.chain(this.mid,this._midSideMerge.mid),this._midSideSplit.side.chain(this.side,this._midSideMerge.side),this._readOnly(["mid","side"])},s.default.extend(s.default.MidSideCompressor,s.default.AudioNode),s.default.MidSideCompressor.defaults={mid:{ratio:3,threshold:-24,release:.03,attack:.02,knee:16},side:{ratio:6,threshold:-30,release:.25,attack:.03,knee:10}},s.default.MidSideCompressor.prototype.dispose=function(){return s.default.AudioNode.prototype.dispose.call(this),this._writable(["mid","side"]),this.mid.dispose(),this.mid=null,this.side.dispose(),this.side=null,this._midSideSplit.dispose(),this._midSideSplit=null,this._midSideMerge.dispose(),this._midSideMerge=null,this},e.default=s.default.MidSideCompressor},function(t,e,i){"use strict";i.r(e);var s=i(0);i(36),i(1);s.default.Meter=function(){var t=s.default.defaults(arguments,["smoothing"],s.default.Meter);s.default.AudioNode.call(this),this.smoothing=t.smoothing,this._rms=0,this.input=this.output=this._analyser=new s.default.Analyser("waveform",256)},s.default.extend(s.default.Meter,s.default.AudioNode),s.default.Meter.defaults={smoothing:.8},s.default.Meter.prototype.getLevel=function(){for(var t=this._analyser.getValue(),e=0,i=0;i<t.length;i++){var n=t[i];e+=n*n}var o=Math.sqrt(e/t.length);return this._rms=Math.max(o,this._rms*this.smoothing),s.default.gainToDb(this._rms)},s.default.Meter.prototype.getValue=function(){return this._analyser.getValue()[0]},s.default.Meter.prototype.dispose=function(){return s.default.AudioNode.prototype.dispose.call(this),this._analyser.dispose(),this._analyser=null,this},e.default=s.default.Meter}
5189,function(t,e,i){"use strict";i.r(e);var s=i(0);i(43),i(1);s.default.Limiter=function(){var t=s.default.defaults(arguments,["threshold"],s.default.Limiter);s.default.AudioNode.call(this),this._compressor=this.input=this.output=new s.default.Compressor({attack:.001,decay:.001,threshold:t.threshold}),this.threshold=this._compressor.threshold,this._readOnly("threshold")},s.default.extend(s.default.Limiter,s.default.AudioNode),s.default.Limiter.defaults={threshold:-12},s.default.Limiter.prototype.dispose=function(){return s.default.AudioNode.prototype.dispose.call(this),this._compressor.dispose(),this._compressor=null,this._writable("threshold"),this.threshold=null,this},e.default=s.default.Limiter},function(t,e,i){"use strict";i.r(e);var s=i(0);i(58),i(85),i(1);s.default.Gate=function(){var t=s.default.defaults(arguments,["threshold","smoothing"],s.default.Gate);s.default.AudioNode.call(this),this.createInsOuts(1,1),this._follower=new s.default.Follower(t.smoothing),this._gt=new s.default.GreaterThan(s.default.dbToGain(t.threshold)),s.default.connect(this.input,this.output),s.default.connectSeries(this.input,this._follower,this._gt,this.output.gain)},s.default.extend(s.default.Gate,s.default.AudioNode),s.default.Gate.defaults={smoothing:.1,threshold:-40},Object.defineProperty(s.default.Gate.prototype,"threshold",{get:function(){return s.default.gainToDb(this._gt.value)},set:function(t){this._gt.value=s.default.dbToGain(t)}}),Object.defineProperty(s.default.Gate.prototype,"smoothing",{get:function(){return this._follower.smoothing},set:function(t){this._follower.smoothing=t}}),s.default.Gate.prototype.dispose=function(){return s.default.AudioNode.prototype.dispose.call(this),this._follower.dispose(),this._gt.dispose(),this._follower=null,this._gt=null,this},e.default=s.default.Gate},function(t,e,i){"use strict";i.r(e);var s=i(0);i(36),i(1);s.default.FFT=function(){var t=s.default.defaults(arguments,["size"],s.default.FFT);t.type=s.default.Analyser.Type.FFT,s.default.AudioNode.call(this),this._analyser=this.input=this.output=new s.default.Analyser(t)},s.default.extend(s.default.FFT,s.default.AudioNode),s.default.FFT.defaults={size:1024},s.default.FFT.prototype.getValue=function(){return this._analyser.getValue()},Object.defineProperty(s.default.FFT.prototype,"size",{get:function(){return this._analyser.size},set:function(t){this._analyser.size=t}}),s.default.FFT.prototype.dispose=function(){s.default.AudioNode.prototype.dispose.call(this),this._analyser.dispose(),this._analyser=null},e.default=s.default.FFT},function(t,e,i){"use strict";i.r(e);var s=i(0);i(60),i(3),i(1);s.default.EQ3=function(){var t=s.default.defaults(arguments,["low","mid","high"],s.default.EQ3);s.default.AudioNode.call(this),this.output=new s.default.Gain,this._multibandSplit=this.input=new s.default.MultibandSplit({lowFrequency:t.lowFrequency,highFrequency:t.highFrequency}),this._lowGain=new s.default.Gain(t.low,s.default.Type.Decibels),this._midGain=new s.default.Gain(t.mid,s.default.Type.Decibels),this._highGain=new s.default.Gain(t.high,s.default.Type.Decibels),this.low=this._lowGain.gain,this.mid=this._midGain.gain,this.high=this._highGain.gain,this.Q=this._multibandSplit.Q,this.lowFrequency=this._multibandSplit.lowFrequency,this.highFrequency=this._multibandSplit.highFrequency,this._multibandSplit.low.chain(this._lowGain,this.output),this._multibandSplit.mid.chain(this._midGain,this.output),this._multibandSplit.high.chain(this._highGain,this.output),this._readOnly(["low","mid","high","lowFrequency","highFrequency"])},s.default.extend(s.default.EQ3,s.default.AudioNode),s.default.EQ3.defaults={low:0,mid:0,high:0,lowFrequency:400,highFrequency:2500},s.default.EQ3.prototype.dispose=function(){return s.default.AudioNode.prototype.dispose.call(this),this._writable(["low","mid","high","lowFrequency","highFrequency"]),this._multibandSplit.dispose(),this._multibandSplit=null,this.lowFrequency=null,this.highFrequency=null,this._lowGain.dispose(),this._lowGain=null,this._midGain.dispose(),this._midGain=null,this._highGain.dispose(),this._highGain=null,this.low=null,this.mid=null,this.high=null,this.Q=null,this},e.default=s.default.EQ3}
5189,function(t,e,i){"use strict";i.r(e);var s=i(0);i(91),i(88),i(1);s.default.Channel=function(){var t=s.default.defaults(arguments,["volume","pan"],s.default.PanVol);s.default.AudioNode.call(this,t),this._solo=this.input=new s.default.Solo(t.solo),this._panVol=this.output=new s.default.PanVol({pan:t.pan,volume:t.volume,mute:t.mute}),this.pan=this._panVol.pan,this.volume=this._panVol.volume,this._solo.connect(this._panVol),this._readOnly(["pan","volume"])},s.default.extend(s.default.Channel,s.default.AudioNode),s.default.Channel.defaults={pan:0,volume:0,mute:!1,solo:!1},Object.defineProperty(s.default.Channel.prototype,"solo",{get:function(){return this._solo.solo},set:function(t){this._solo.solo=t}}),Object.defineProperty(s.default.Channel.prototype,"muted",{get:function(){return this._solo.muted||this.mute}}),Object.defineProperty(s.default.Channel.prototype,"mute",{get:function(){return this._panVol.mute},set:function(t){this._panVol.mute=t}}),s.default.Channel.prototype.dispose=function(){return s.default.AudioNode.prototype.dispose.call(this),this._writable(["pan","volume"]),this._panVol.dispose(),this._panVol=null,this.pan=null,this.volume=null,this._solo.dispose(),this._solo=null,this},e.default=s.default.Channel},function(t,e){var i;i=function(){return this}();try{i=i||Function("return this")()||(0,eval)("this")}catch(t){"object"==typeof window&&(i=window)}t.exports=i},function(t,e,i){i(31),i(36),i(146),i(43),i(23),i(47),i(145),i(59),i(144),i(9),i(58),i(41),i(143),i(12),i(142),i(54),i(10),i(141),i(140),i(52),i(53),i(139),i(138),i(60),i(48),i(137),i(91),i(86),i(88),i(19),i(27),i(136),i(135),i(134),i(79),i(133),i(1),i(11),i(78),i(132),i(83),i(20),i(18),i(131),i(35),i(3),i(81),i(130),i(40),i(77),i(76),i(14),i(24),i(34),i(16),i(56),i(80),i(129),i(128),i(127),i(126),i(125),i(124),i(74),i(123),i(8),i(122),i(33),i(121),i(120),i(73),i(119),i(118),i(117),i(116),i(15),i(115),i(114),i(72),i(113),i(112),i(51),i(71),i(70),i(111),i(110),i(109),i(108),i(107),i(21),i(106),i(105),i(25),i(66),i(104),i(103),i(102),i(101),i(38),i(87),i(29),i(22),i(89),i(100),i(85),i(84),i(75),i(5),i(90),i(99),i(61),i(26),i(42),i(2),i(30),i(13),i(82),i(98),i(7),i(28),i(68),i(32),i(67),i(49),i(97),i(39),i(37),i(17),i(64),i(65),i(96),i(50),i(69),i(6),i(57),i(95),i(46),i(94),i(55),i(63),i(62),i(45),i(4),t.exports=i(0).default}])});
5190//# sourceMappingURL=Tone.js.map
5191
5192/***/ }),
5193/* 17 */
5194/***/ (function(module, __webpack_exports__, __webpack_require__) {
5195
5196"use strict";
5197/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _objectWithoutPropertiesLoose; });
5198function _objectWithoutPropertiesLoose(source, excluded) {
5199  if (source == null) return {};
5200  var target = {};
5201  var sourceKeys = Object.keys(source);
5202  var key, i;
5203
5204  for (i = 0; i < sourceKeys.length; i++) {
5205    key = sourceKeys[i];
5206    if (excluded.indexOf(key) >= 0) continue;
5207    target[key] = source[key];
5208  }
5209
5210  return target;
5211}
5212
5213/***/ }),
5214/* 18 */
5215/***/ (function(module, exports, __webpack_require__) {
5216
5217"use strict";
5218
5219Object.defineProperty(exports, "__esModule", { value: true });
5220var deep_diff_1 = __webpack_require__(82);
5221// @ts-ignore
5222var nested_property_1 = __webpack_require__(83);
5223function isPlainObj() {
5224    var args = [];
5225    for (var _i = 0; _i < arguments.length; _i++) {
5226        args[_i] = arguments[_i];
5227    }
5228    return args.every(function (d) {
5229        if (!d) {
5230            return false;
5231        }
5232        var prototype = Object.getPrototypeOf(d);
5233        return (Object.prototype.toString.call(d).slice(8, -1) === 'Object' &&
5234            (prototype === null || prototype === Object.getPrototypeOf({})));
5235    });
5236}
5237function isArray() {
5238    var args = [];
5239    for (var _i = 0; _i < arguments.length; _i++) {
5240        args[_i] = arguments[_i];
5241    }
5242    return args.every(Array.isArray);
5243}
5244function isNumber() {
5245    var args = [];
5246    for (var _i = 0; _i < arguments.length; _i++) {
5247        args[_i] = arguments[_i];
5248    }
5249    return args.every(function (d) { return typeof d === 'number'; });
5250}
5251function treeChanges(data, nextData) {
5252    if (!data || !nextData) {
5253        throw new Error('Missing required parameters');
5254    }
5255    return {
5256        changed: function (key) {
5257            var left = nested_property_1.get(data, key);
5258            var right = nested_property_1.get(nextData, key);
5259            if (isArray(left, right) || isPlainObj(left, right)) {
5260                return !!deep_diff_1.diff(left, right);
5261            }
5262            return left !== right;
5263        },
5264        changedFrom: function (key, previous, actual) {
5265            if (typeof key === 'undefined') {
5266                throw new Error('Key parameter is required');
5267            }
5268            var useActual = typeof previous !== 'undefined' && typeof actual !== 'undefined';
5269            var left = nested_property_1.get(data, key);
5270            var right = nested_property_1.get(nextData, key);
5271            var leftComparator = Array.isArray(previous)
5272                ? previous.indexOf(left) >= 0
5273                : left === previous;
5274            var rightComparator = Array.isArray(actual) ? actual.indexOf(right) >= 0 : right === actual;
5275            return leftComparator && (useActual ? rightComparator : !useActual);
5276        },
5277        changedTo: function (key, actual) {
5278            if (typeof key === 'undefined') {
5279                throw new Error('Key parameter is required');
5280            }
5281            var left = nested_property_1.get(data, key);
5282            var right = nested_property_1.get(nextData, key);
5283            var leftComparator = Array.isArray(actual) ? actual.indexOf(left) < 0 : left !== actual;
5284            var rightComparator = Array.isArray(actual) ? actual.indexOf(right) >= 0 : right === actual;
5285            return leftComparator && rightComparator;
5286        },
5287        increased: function (key) {
5288            if (typeof key === 'undefined') {
5289                throw new Error('Key parameter is required');
5290            }
5291            return (isNumber(nested_property_1.get(data, key), nested_property_1.get(nextData, key)) &&
5292                nested_property_1.get(data, key) < nested_property_1.get(nextData, key));
5293        },
5294        decreased: function (key) {
5295            if (typeof key === 'undefined') {
5296                throw new Error('Key parameter is required');
5297            }
5298            return (isNumber(nested_property_1.get(data, key), nested_property_1.get(nextData, key)) &&
5299                nested_property_1.get(data, key) > nested_property_1.get(nextData, key));
5300        },
5301    };
5302}
5303exports.default = treeChanges;
5304//# sourceMappingURL=index.js.map
5305
5306/***/ }),
5307/* 19 */
5308/***/ (function(module, exports, __webpack_require__) {
5309
5310"use strict";
5311
5312var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
5313    if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
5314    return cooked;
5315};
5316var __assign = (this && this.__assign) || function () {
5317    __assign = Object.assign || function(t) {
5318        for (var s, i = 1, n = arguments.length; i < n; i++) {
5319            s = arguments[i];
5320            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
5321                t[p] = s[p];
5322        }
5323        return t;
5324    };
5325    return __assign.apply(this, arguments);
5326};
5327Object.defineProperty(exports, "__esModule", { value: true });
5328var React = __webpack_require__(0);
5329var styled_components_1 = __webpack_require__(13);
5330var context_1 = __webpack_require__(9);
5331var _constants_1 = __webpack_require__(1);
5332var _utils_1 = __webpack_require__(65);
5333var DesktopEventsContext_1 = __webpack_require__(35);
5334var buttonLight = function (color) { return ("background: " + color + ";\n  box-shadow: 0px 0px 9px " + color + ";"); };
5335var active = buttonLight('radial-gradient(#efaaaa 40%, #e8e8e8 75%)');
5336var temp = buttonLight('#9999d0');
5337var highlight = buttonLight('#ffd0d0');
5338var DefaultCell = styled_components_1.default('button')(templateObject_1 || (templateOb
5338ject_1 = __makeTemplateObject(["\n  @keyframes flash {\n    0% { box-shadow: initial; }\n    20% { box-shadow: 0px 0px 50px red; }\n    70% { box-shadow: intiial; }\n  }\n  background-color: #e8e8e8;  \n  margin: 5px;\n  word-wrap: break-word;\n  padding: 0px;\n\n  ", "\n  ", "\n  &[data-live] {\n    ", "\n  }\n  &[data-active]:not(:active) {\n    ", "\n  }\n  &:focus {\n    outline: none;\n  }\n  &:active, &[data-active] {\n    ", "\n  }\n  &[data-held] {\n    ", "\n  }\n  &[data-held][data-active] {\n    background-color: #aae0aa;\n    box-shadow: 0px 0px 9px #9999d0, inset 0px 0px 4px 4px #9999d0;\n  }\n  .pad & {\n    &[data-active], &:focus {\n      border: none;\n      padding-top: 2px;\n      padding-left: 2px;\n      background-color: #eeeeee;\n      box-shadow: 0px 0px 2px white;\n    }\n  }\n  &::after {\n    display: inline-block;\n    content: attr(data-display);  background-repeat: no-repeat;\n    background-size: 24px;\n    background-position: center;\n    ", "\n    ", "\n  }\n  &:active::after {\n    transform: translate(1px, 1px);\n  }\n\n"], ["\n  @keyframes flash {\n    0% { box-shadow: initial; }\n    20% { box-shadow: 0px 0px 50px red; }\n    70% { box-shadow: intiial; }\n  }\n  background-color: #e8e8e8;  \n  margin: 5px;\n  word-wrap: break-word;\n  padding: 0px;\n\n  ", "\n  ", "\n  &[data-live] {\n    ", "\n  }\n  &[data-active]:not(:active) {\n    ", "\n  }\n  &:focus {\n    outline: none;\n  }\n  &:active, &[data-active] {\n    ", "\n  }\n  &[data-held] {\n    ", "\n  }\n  &[data-held][data-active] {\n    background-color: #aae0aa;\n    box-shadow: 0px 0px 9px #9999d0, inset 0px 0px 4px 4px #9999d0;\n  }\n  .pad & {\n    &[data-active], &:focus {\n      border: none;\n      padding-top: 2px;\n      padding-left: 2px;\n      background-color: #eeeeee;\n      box-shadow: 0px 0px 2px white;\n    }\n  }\n  &::after {\n    display: inline-block;\n    content: attr(data-display);  background-repeat: no-repeat;\n    background-size: 24px;\n    background-position: center;\n    ", "\n    ",
5339    "\n  }\n  &:active::after {\n    transform: translate(1px, 1px);\n  }\n\n"])), function (_a) {
5340    var height = _a.height;
5341    return height ? "grid-row: span " + height + ";" : '';
5342}, function (_a) {
5343    var width = _a.width;
5344    return width ? "grid-column: span " + width + ";" : '';
5345}, highlight, active, active, temp, function (_a) {
5346    var icon = _a.icon;
5347    return icon ? "background-image: url(" + icon + "); content: ''; width: 100%; height: 100%;" : '';
5348}, function (_a) {
5349    var isDataDisplay = _a.isDataDisplay;
5350    return isDataDisplay
5351        ? "font-family: monospace; font-size: 8px; line-height: 16px;"
5352        : '';
5353});
5354var holdTime = 400;
5355/**
5356 * As desktop cannot do multitouch, a secondary system involving holding down buttons is required too
5357 */
5358var Cell = React.forwardRef(function (props, ref) {
5359    var holdTimer = React.useRef(null);
5360    var dispatch = React.useContext(context_1.default).dispatch;
5361    var desktop = React.useContext(DesktopEventsContext_1.default);
5362    var isHeld = React.useMemo(function () {
5363        var checkValue = typeof props.value !== 'undefined'
5364            ? props.value
5365            : (props.id || undefined);
5366        return (props.secondaryAction
5367            && desktop.held
5368            && (desktop.held.secondary === props.secondaryAction)
5369            && (desktop.held.value === checkValue)
5370            ? true
5371            : undefined);
5372    }, [desktop.held, props.secondaryAction, props.value]);
5373    var onMouseDown = React.useCallback(function (e) {
5374        var buttonData = _utils_1.getButtonData(e.target);
5375        holdTimer.current = setTimeout(function () {
5376            if (holdTimer.current && props.secondaryAction) {
5377                desktop.onHold(buttonData);
5378            }
5379            holdTimer.current = null;
5380        }, holdTime);
5381    }, []);
5382    var onMouseUp = React.useCallback(function () {
5383        if (holdTimer.current && !props.onClick) {
5384            clearTimeout(holdTimer.current);
5385            holdTimer.current = null;
5386        }
5387    }, []);
5388    var onClick = React.useCallback(function (e) {
5389        var buttonData = _utils_1.getButtonData(e.target);
5390        if (desktop.held.secondary
5391            && (holdTimer.current
5392                || (desktop.held.secondary !== buttonData.secondary))) {
5393            clearTimeout(holdTimer.current);
5394            holdTimer.current = null;
5395            desktop.holdAction(buttonData);
5396        }
5397        else if (holdTimer.current) {
5398            clearTimeout(holdTimer.current);
5399            holdTimer.current = null;
5400            if (props.onClick) {
5401                props.onClick(e);
5402            }
5403            return;
5404        }
5405        else if (props.onHold && props.onClick) {
5406            props.onClick(e);
5407        }
5408    }, [props.onClick, desktop.held]);
5409    var onTouchStart = React.useCallback(function (e) {
5410        holdTimer.current = setTimeout(function () {
5411            holdTimer.current = null;
5412        }, holdTime);
5413        if (isHeld) {
5414            return;
5415        }
5416        else {
5417            console.log(_utils_1.getTouchValues(e));
5418            dispatch({
5419                type: _constants_1.MULTI_TOUCH,
5420                value: _utils_1.getTouchValues(e),
5421            });
5422        }
5423    }, [desktop.held, isHeld]);
5424    var actionProps = React.useMemo(function () {
5425        return {
5426            onClick: onClick,
5427            onMouseDown: props.onHold || onMouseDown,
5428            onMouseUp: props.onRelease || onMouseUp,
5429            onTouchStart: props.noTouch ? undefined : (props.onHold || onTouchStart),
5430            onTouchEnd: props.noTouch ? undefined : (props.onRelease || onMouseUp),
5431            onMouseEnter: props.onMouseEnter,
5432            onMouseLeave: props.onMouseLeave,
5433        };
5434    }, [
5435        props.onClick,
5436        props.onMouseEnter,
5437        props.onMouseLeave,
5438        desktop.held,
5439    ]);
5440    return (React.createElement(props.Component, __assign({ type: "button" }, actionProps, { "data-secondary": props.secondaryAction, "data-display": props.icon ? undefined : props.display, "data-value": typeof props.value !== 'undefined'
5441            ? props.value
5442            : props.id, "data-action": props.action, "data-active": props.isActive ? true : undefined, "data-held": isHeld, "data-idx": props.idx, "data-live": props.highlight || undefined, ref: ref, id: props.buttonId, height: props.height, width: props.width, icon: props.icon, isDataDisplay: props.isDataDisplay && typeof props.display !== 'undefined' }), props.children));
5443});
5444Cell.defaultProps = {
5445    Component: DefaultCell,
5446};
5447exports.default = Cell;
5448var templateObject_1;
5449
5450
5451/***/ }),
5452/* 20 */
5453/***/ (function(module, exports, __webpack_require__) {
5454
5455"use strict";
5456
5457var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
5458    if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
5459    return cooked;
5460};
5461var __assign = (this && this.__assign) || function () {
5462    __assign = Object.assign || function(t) {
5463        for (var s, i = 1, n = arguments.length; i < n; i++) {
5464            s = arguments[i];
5465            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
5466                t[p] = s[p];
5467        }
5468        return t;
5469    };
5470    return __assign.apply(this, arguments);
5471};
5472var __rest = (this && this.__rest) || function (s, e) {
5473    var t = {};
5474    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5475        t[p] = s[p];
5476    if (s != null && typeof Object.getOwnPropertySymbols === "function")
5477        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
5478            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
5479                t[p[i]] = s[p[i]];
5480        }
5481    return t;
5482};
5483Object.defineProperty(exports, "__esModule", { value: true });
5484var React = __webpack_require__(0);
5485var styled_components_1 = __webpack_require__(13);
5486var margin = 8;
5487var playerWidth = 450;
5488var columns = 8;
5489var padActiveTransparent = 'radial-gradient(#efaaaa 40%, rgba(255, 255, 255, 0.7) 75%)';
5490// buttons located in the pad need some translucency to allow fiddling with the StatusPad colors underneath
5491// pretty hacky but I think it opens up some design freedom that can be totally divorced from reach
5492// and that's kinda neat???
5493var Pad = styled_components_1.default('div')(templateObject_1 || (templateOb
5493ject_1 = __makeTemplateObject(["\n  position: relative;\n  display: flex;\n  flex-wrap: wrap;\n  width: 100%;\n  height: 100vw;\n  max-height: ", "px;\n  grid-column: 1 / ", ";\n  grid-row: 4 / 5;\n  justify-content: space-evenly;\n  > button, > .cell {\n    border-radius: 4px;\n    margin: ", "px;\n    width: calc(25% - ", "px);\n    height: calc(", "% - ", "px);\n  }\n  > button {\n    background-color: rgba(255, 255, 255, 0.7);  \n  }\n  > button:active {\n    padding-top: 1px;\n    padding-left: 1px;\n  }\n  > button[data-active] {\n    background: ", " !important;\n  }\n  > buttons {\n    border-bottom: 2px solid #bbb;\n    border-right: 2px solid #bbb;\n    &:active {\n      border: none;\n      border-top: 1px solid #222;\n      border-left: 1px solid #222;\n    }\n  }\n  ", "\n  ", "\n  ", "\n"], ["\n  position: relative;\n  display: flex;\n  flex-wrap: wrap;\n  width: 100%;\n  height: 100vw;\n  max-height: ", "px;\n  grid-column: 1 / ", ";\n  grid-row: 4 / 5;\n  justify-content: space-evenly;\n  > button, > .cell {\n    border-radius: 4px;\n    margin: ", "px;\n    width: calc(25% - ", "px);\n    height: calc(", "% - ", "px);\n  }\n  > button {\n    background-color: rgba(255, 255, 255, 0.7);  \n  }\n  > button:active {\n    padding-top: 1px;\n    padding-left: 1px;\n  }\n  > button[data-active] {\n    background: ", " !important;\n  }\n  > buttons {\n    border-bottom: 2px solid #bbb;\n    border-right: 2px solid #bbb;\n    &:active {\n      border: none;\n      border-top: 1px solid #222;\n      border-left: 1px solid #222;\n    }\n  }\n  ", "\n  ", "\n  ",
5494    "\n"])), playerWidth, columns + 1, margin, margin * 2, function (_a) {
5495    var _b = _a.entries, entries = _b === void 0 ? 16 : _b;
5496    return (100 / (entries / 4));
5497}, margin * 2, padActiveTransparent, function (_a) {
5498    var bold = _a.bold;
5499    return bold ? " *::after { font-weight: bold }" : '';
5500}, function (_a) {
5501    var italic = _a.italic;
5502    return italic ? " *::after { font-style: italic; }" : '';
5503}, function (_a) {
5504    var activeChildIdx = _a.activeChildIdx;
5505    return typeof activeChildIdx === 'number'
5506        ? ">*:nth-child(" + (activeChildIdx + 1) + ") { box-shadow: inset 0px 0px 4px 2px blue; } "
5507        : '';
5508});
5509var AbstractPad = function (_a) {
5510    var children = _a.children, props = __rest(_a, ["children"]);
5511    return (React.createElement(Pad, __assign({}, props, { className: "Pad " + (props.className || '') }), React.Children.map(children, function (child, idx) { return (React.useMemo(function () { return (React.cloneElement(child, { idx: idx })); }, [props])); })));
5512};
5513exports.default = AbstractPad;
5514var templateObject_1;
5515
5516
5517/***/ }),
5518/* 21 */
5519/***/ (function(module, __webpack_exports__, __webpack_require__) {
5520
5521"use strict";
5522__webpack_require__.r(__webpack_exports__);
5523/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BrowserRouter", function() { return BrowserRouter; });
5524/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "HashRouter", function() { return HashRouter; });
5525/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Link", function() { return Link; });
5526/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NavLink", function() { return NavLink; });
5527/* harmony import */ var react_router__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4);
5528/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MemoryRouter", function() { return react_router__WEBPACK_IMPORTED_MODULE_0__["MemoryRouter"]; });
5529
5530/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Prompt", function() { return react_router__WEBPACK_IMPORTED_MODULE_0__["Prompt"]; });
5531
5532/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Redirect", function() { return react_router__WEBPACK_IMPORTED_MODULE_0__["Redirect"]; });
5533
5534/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Route", function() { return react_router__WEBPACK_IMPORTED_MODULE_0__["Route"]; });
5535
5536/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Router", function() { return react_router__WEBPACK_IMPORTED_MODULE_0__["Router"]; });
5537
5538/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "StaticRouter", function() { return react_router__WEBPACK_IMPORTED_MODULE_0__["StaticRouter"]; });
5539
5540/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Switch", function() { return react_router__WEBPACK_IMPORTED_MODULE_0__["Switch"]; });
5541
5542/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "generatePath", function() { return react_router__WEBPACK_IMPORTED_MODULE_0__["generatePath"]; });
5543
5544/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "matchPath", function() { return react_router__WEBPACK_IMPORTED_MODULE_0__["matchPath"]; });
5545
5546/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "useHistory", function() { return react_router__WEBPACK_IMPORTED_MODULE_0__["useHistory"]; });
5547
5548/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "useLocation", function() { return react_router__WEBPACK_IMPORTED_MODULE_0__["useLocation"]; });
5549
5550/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "useParams", function() { return react_router__WEBPACK_IMPORTED_MODULE_0__["useParams"]; });
5551
5552/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "useRouteMatch", function() { return react_router__WEBPACK_IMPORTED_MODULE_0__["useRouteMatch"]; });
5553
5554/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "withRouter", function() { return react_router__WEBPACK_IMPORTED_MODULE_0__["withRouter"]; });
5555
5556/* harmony import */ var _babel_runtime_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6);
5557/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(0);
5558/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);
5559/* harmony import */ var history__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(8);
5560/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(2);
5561/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_4__);
5562/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(5);
5563/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(17);
5564/* harmony import */ var tiny_invariant__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(7);
5565
5566
5567
5568
5569
5570
5571
5572
5573
5574
5575
5576/**
5577 * The public API for a <Router> that uses HTML5 history.
5578 */
5579
5580var BrowserRouter =
5581/*#__PURE__*/
5582function (_React$Component) {
5583  Object(_babel_runtime_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"])(BrowserRouter, _React$Component);
5584
5585  function BrowserRouter() {
5586    var _this;
5587
5588    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
5589      args[_key] = arguments[_key];
5590    }
5591
5592    _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;
5593    _this.history = Object(history__WEBPACK_IMPORTED_MODULE_3__["createBrowserHistory"])(_this.props);
5594    return _this;
5595  }
5596
5597  var _proto = BrowserRouter.prototype;
5598
5599  _proto.render = function render() {
5600    return react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(react_router__WEBPACK_IMPORTED_MODULE_0__["Router"], {
5601      history: this.history,
5602      children: this.props.children
5603    });
5604  };
5605
5606  return BrowserRouter;
5607}(react__WEBPACK_IMPORTED_MODULE_2___default.a.Component);
5608
5609if (false) {}
5610
5611/**
5612 * The public API for a <Router> that uses window.location.hash.
5613 */
5614
5615var HashRouter =
5616/*#__PURE__*/
5617function (_React$Component) {
5618  Object(_babel_runtime_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"])(HashRouter, _React$Component);
5619
5620  function HashRouter() {
5621    var _this;
5622
5623    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
5624      args[_key] = arguments[_key];
5625    }
5626
5627    _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;
5628    _this.history = Object(history__WEBPACK_IMPORTED_MODULE_3__["createHashHistory"])(_this.props);
5629    return _this;
5630  }
5631
5632  var _proto = HashRouter.prototype;
5633
5634  _proto.render = function render() {
5635    return react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(react_router__WEBPACK_IMPORTED_MODULE_0__["Router"], {
5636      history: this.history,
5637      children: this.props.children
5638    });
5639  };
5640
5641  return HashRouter;
5642}(react__WEBPACK_IMPORTED_MODULE_2___default.a.Component);
5643
5644if (false) {}
5645
5646var resolveToLocation = function resolveToLocation(to, currentLocation) {
5647  return typeof to === "function" ? to(currentLocation) : to;
5648};
5649var normalizeToLocation = function normalizeToLocation(to, currentLocation) {
5650  return typeof to === "string" ? Object(history__WEBPACK_IMPORTED_MODULE_3__["createLocation"])(to, null, null, currentLocation) : to;
5651};
5652
5653var forwardRefShim = function forwardRefShim(C) {
5654  return C;
5655};
5656
5657var forwardRef = react__WEBPACK_IMPORTED_MODULE_2___default.a.forwardRef;
5658
5659if (typeof forwardRef === "undefined") {
5660  forwardRef = forwardRefShim;
5661}
5662
5663function isModifiedEvent(event) {
5664  return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);
5665}
5666
5667var LinkAnchor = forwardRef(function (_ref, forwardedRef) {
5668  var innerRef = _ref.innerRef,
5669      navigate = _ref.navigate,
5670      _onClick = _ref.onClick,
5671      rest = Object(_babel_runtime_helpers_esm_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_6__[/* default */ "a"])(_ref, ["innerRef", "navigate", "onClick"]);
5672
5673  var target = rest.target;
5674
5675  var props = Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"])({}, rest, {
5676    onClick: function onClick(event) {
5677      try {
5678        if (_onClick) _onClick(event);
5679      } catch (ex) {
5680        event.preventDefault();
5681        throw ex;
5682      }
5683
5684      if (!event.defaultPrevented && // onClick prevented default
5685      event.button === 0 && ( // ignore everything but left clicks
5686      !target || target === "_self") && // let browser handle "target=_blank" etc.
5687      !isModifiedEvent(event) // ignore clicks with modifier keys
5688      ) {
5689          event.preventDefault();
5690          navigate();
5691        }
5692    }
5693  }); // React 15 compat
5694
5695
5696  if (forwardRefShim !== forwardRef) {
5697    props.ref = forwardedRef || innerRef;
5698  } else {
5699    props.ref = innerRef;
5700  }
5701  /* eslint-disable-next-line jsx-a11y/anchor-has-content */
5702
5703
5704  return react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement("a", props);
5705});
5706
5707if (false) {}
5708/**
5709 * The public API for rendering a history-aware <a>.
5710 */
5711
5712
5713var Link = forwardRef(function (_ref2, forwardedRef) {
5714  var _ref2$component = _ref2.component,
5715      component = _ref2$component === void 0 ? LinkAnchor : _ref2$component,
5716      replace = _ref2.replace,
5717      to = _ref2.to,
5718      innerRef = _ref2.innerRef,
5719      rest = Object(_babel_runtime_helpers_esm_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_6__[/* default */ "a"])(_ref2, ["component", "replace", "to", "innerRef"]);
5720
5721  return react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(react_router__WEBPACK_IMPORTED_MODULE_0__["__RouterContext"].Consumer, null, function (context) {
5722    !context ?  false ? undefined : Object(tiny_invariant__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"])(false) : void 0;
5723    var history = context.history;
5724    var location = normalizeToLocation(resolveToLocation(to, context.location), context.location);
5725    var href = location ? history.createHref(location) : "";
5726
5727    var props = Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"])({}, rest, {
5728      href: href,
5729      navigate: function navigate() {
5730        var location = resolveToLocation(to, context.location);
5731        var method = replace ? history.replace : history.push;
5732        method(location);
5733      }
5734    }); // React 15 compat
5735
5736
5737    if (forwardRefShim !== forwardRef) {
5738      props.ref = forwardedRef || innerRef;
5739    } else {
5740      props.innerRef = innerRef;
5741    }
5742
5743    return react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(component, props);
5744  });
5745});
5746
5747if (false) { var refType, toType; }
5748
5749var forwardRefShim$1 = function forwardRefShim(C) {
5750  return C;
5751};
5752
5753var forwardRef$1 = react__WEBPACK_IMPORTED_MODULE_2___default.a.forwardRef;
5754
5755if (typeof forwardRef$1 === "undefined") {
5756  forwardRef$1 = forwardRefShim$1;
5757}
5758
5759function joinClassnames() {
5760  for (var _len = arguments.length, classnames = new Array(_len), _key = 0; _key < _len; _key++) {
5761    classnames[_key] = arguments[_key];
5762  }
5763
5764  return classnames.filter(function (i) {
5765    return i;
5766  }).join(" ");
5767}
5768/**
5769 * A <Link> wrapper that knows if it's "active" or not.
5770 */
5771
5772
5773var NavLink = forwardRef$1(function (_ref, forwardedRef) {
5774  var _ref$ariaCurrent = _ref["aria-current"],
5775      ariaCurrent = _ref$ariaCurrent === void 0 ? "page" : _ref$ariaCurrent,
5776      _ref$activeClassName = _ref.activeClassName,
5777      activeClassName = _ref$activeClassName === void 0 ? "active" : _ref$activeClassName,
5778      activeStyle = _ref.activeStyle,
5779      classNameProp = _ref.className,
5780      exact = _ref.exact,
5781      isActiveProp = _ref.isActive,
5782      locationProp = _ref.location,
5783      sensitive = _ref.sensitive,
5784      strict = _ref.strict,
5785      styleProp = _ref.style,
5786      to = _ref.to,
5787      innerRef = _ref.innerRef,
5788      rest = Object(_babel_runtime_helpers_esm_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_6__[/* default */ "a"])(_ref, ["aria-current", "activeClassName", "activeStyle", "className", "exact", "isActive", "location", "sensitive", "strict", "style", "to", "innerRef"]);
5789
5790  return react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(react_router__WEBPACK_IMPORTED_MODULE_0__["__RouterContext"].Consumer, null, function (context) {
5791    !context ?  false ? undefined : Object(tiny_invariant__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"])(false) : void 0;
5792    var currentLocation = locationProp || context.location;
5793    var toLocation = normalizeToLocation(resolveToLocation(to, currentLocation), currentLocation);
5794    var path = toLocation.pathname; // Regex taken from: https://github.com/pillarjs/path-to-regexp/blob/master/index.js#L202
5795
5796    var escapedPath = path && path.replace(/([.+*?=^!:${}()[\]|/\\])/g, "\\$1");
5797    var match = escapedPath ? Object(react_router__WEBPACK_IMPORTED_MODULE_0__["matchPath"])(currentLocation.pathname, {
5798      path: escapedPath,
5799      exact: exact,
5800      sensitive: sensitive,
5801      strict: strict
5802    }) : null;
5803    var isActive = !!(isActiveProp ? isActiveProp(match, currentLocation) : match);
5804    var className = isActive ? joinClassnames(classNameProp, activeClassName) : classNameProp;
5805    var style = isActive ? Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"])({}, styleProp, {}, activeStyle) : styleProp;
5806
5807    var props = Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"])({
5808      "aria-current": isActive && ariaCurrent || null,
5809      className: className,
5810      style: style,
5811      to: toLocation
5812    }, rest); // React 15 compat
5813
5814
5815    if (forwardRefShim$1 !== forwardRef$1) {
5816      props.ref = forwardedRef || innerRef;
5817    } else {
5818      props.innerRef = innerRef;
5819    }
5820
5821    return react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(Link, props);
5822  });
5823});
5824
5825if (false) { var ariaCurrentType; }
5826
5827
5828//# sourceMappingURL=react-router-dom.js.map
5829
5830
5831/***/ }),
5832/* 22 */
5833/***/ (function(module, exports, __webpack_require__) {
5834
5835var __WEBPACK_AMD_DEFINE_RESULT__;/*!
5836  Copyright (c) 2015 Jed Watson.
5837  Based on code that is Copyright 2013-2015, Facebook, Inc.
5838  All rights reserved.
5839*/
5840/* global define */
5841
5842(function () {
5843	'use strict';
5844
5845	var canUseDOM = !!(
5846		typeof window !== 'undefined' &&
5847		window.document &&
5848		window.document.createElement
5849	);
5850
5851	var ExecutionEnvironment = {
5852
5853		canUseDOM: canUseDOM,
5854
5855		canUseWorkers: typeof Worker !== 'undefined',
5856
5857		canUseEventListeners:
5858			canUseDOM && !!(window.addEventListener || window.attachEvent),
5859
5860		canUseViewport: canUseDOM && !!window.screen
5861
5862	};
5863
5864	if (true) {
5865		!(__WEBPACK_AMD_DEFINE_RESULT__ = (function () {
5866			return ExecutionEnvironment;
5867		}).call(exports, __webpack_require__, exports, module),
5868				__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
5869	} else {}
5870
5871}());
5872
5873
5874/***/ }),
5875/* 23 */,
5876/* 24 */
5877/***/ (function(module, exports) {
5878
5879var g;
5880
5881// This works in non-strict mode
5882g = (function() {
5883	return this;
5884})();
5885
5886try {
5887	// This works if eval is allowed (see CSP)
5888	g = g || new Function("return this")();
5889} catch (e) {
5890	// This works if the window reference is available
5891	if (typeof window === "object") g = window;
5892}
5893
5894// g can still be undefined, but nothing to do about it...
5895// We return undefined, instead of nothing here, so it's
5896// easier to handle this case. if(!global) { ...}
5897
5898module.exports = g;
5899
5900
5901/***/ }),
5902/* 25 */
5903/***/ (function(module, __webpack_exports__, __webpack_require__) {
5904
5905"use strict";
5906/* WEBPACK VAR INJECTION */(function(global) {/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);
5907/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
5908/* harmony import */ var _babel_runtime_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6);
5909/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(2);
5910/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_2__);
5911
5912
5913
5914
5915
5916var MAX_SIGNED_31_BIT_INT = 1073741823;
5917var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : {};
5918
5919function getUniqueId() {
5920  var key = '__global_unique_id__';
5921  return commonjsGlobal[key] = (commonjsGlobal[key] || 0) + 1;
5922}
5923
5924function objectIs(x, y) {
5925  if (x === y) {
5926    return x !== 0 || 1 / x === 1 / y;
5927  } else {
5928    return x !== x && y !== y;
5929  }
5930}
5931
5932function createEventEmitter(value) {
5933  var handlers = [];
5934  return {
5935    on: function on(handler) {
5936      handlers.push(handler);
5937    },
5938    off: function off(handler) {
5939      handlers = handlers.filter(function (h) {
5940        return h !== handler;
5941      });
5942    },
5943    get: function get() {
5944      return value;
5945    },
5946    set: function set(newValue, changedBits) {
5947      value = newValue;
5948      handlers.forEach(function (handler) {
5949        return handler(value, changedBits);
5950      });
5951    }
5952  };
5953}
5954
5955function onlyChild(children) {
5956  return Array.isArray(children) ? children[0] : children;
5957}
5958
5959function createReactContext(defaultValue, calculateChangedBits) {
5960  var _Provider$childContex, _Consumer$contextType;
5961
5962  var contextProp = '__create-react-context-' + getUniqueId() + '__';
5963
5964  var Provider = /*#__PURE__*/function (_Component) {
5965    Object(_babel_runtime_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"])(Provider, _Component);
5966
5967    function Provider() {
5968      var _this;
5969
5970      _this = _Component.apply(this, arguments) || this;
5971      _this.emitter = createEventEmitter(_this.props.value);
5972      return _this;
5973    }
5974
5975    var _proto = Provider.prototype;
5976
5977    _proto.getChildContext = function getChildContext() {
5978      var _ref;
5979
5980      return _ref = {}, _ref[contextProp] = this.emitter, _ref;
5981    };
5982
5983    _proto.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {
5984      if (this.props.value !== nextProps.value) {
5985        var oldValue = this.props.value;
5986        var newValue = nextProps.value;
5987        var changedBits;
5988
5989        if (objectIs(oldValue, newValue)) {
5990          changedBits = 0;
5991        } else {
5992          changedBits = typeof calculateChangedBits === 'function' ? calculateChangedBits(oldValue, newValue) : MAX_SIGNED_31_BIT_INT;
5993
5994          if (false) {}
5995
5996          changedBits |= 0;
5997
5998          if (changedBits !== 0) {
5999            this.emitter.set(nextProps.value, changedBits);
6000          }
6001        }
6002      }
6003    };
6004
6005    _proto.render = function render() {
6006      return this.props.children;
6007    };
6008
6009    return Provider;
6010  }(react__WEBPACK_IMPORTED_MODULE_0__["Component"]);
6011
6012  Provider.childContextTypes = (_Provider$childContex = {}, _Provider$childContex[contextProp] = prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.object.isRequired, _Provider$childContex);
6013
6014  var Consumer = /*#__PURE__*/function (_Component2) {
6015    Object(_babel_runtime_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"])(Consumer, _Component2);
6016
6017    function Consumer() {
6018      var _this2;
6019
6020      _this2 = _Component2.apply(this, arguments) || this;
6021      _this2.state = {
6022        value: _this2.getValue()
6023      };
6024
6025      _this2.onUpdate = function (newValue, changedBits) {
6026        var observedBits = _this2.observedBits | 0;
6027
6028        if ((observedBits & changedBits) !== 0) {
6029          _this2.setState({
6030            value: _this2.getValue()
6031          });
6032        }
6033      };
6034
6035      return _this2;
6036    }
6037
6038    var _proto2 = Consumer.prototype;
6039
6040    _proto2.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {
6041      var observedBits = nextProps.observedBits;
6042      this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits;
6043    };
6044
6045    _proto2.componentDidMount = function componentDidMount() {
6046      if (this.context[contextProp]) {
6047        this.context[contextProp].on(this.onUpdate);
6048      }
6049
6050      var observedBits = this.props.observedBits;
6051      this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits;
6052    };
6053
6054    _proto2.componentWillUnmount = function componentWillUnmount() {
6055      if (this.context[contextProp]) {
6056        this.context[contextProp].off(this.onUpdate);
6057      }
6058    };
6059
6060    _proto2.getValue = function getValue() {
6061      if (this.context[contextProp]) {
6062        return this.context[contextProp].get();
6063      } else {
6064        return defaultValue;
6065      }
6066    };
6067
6068    _proto2.render = function render() {
6069      return onlyChild(this.props.children)(this.state.value);
6070    };
6071
6072    return Consumer;
6073  }(react__WEBPACK_IMPORTED_MODULE_0__["Component"]);
6074
6075  Consumer.contextTypes = (_Consumer$contextType = {}, _Consumer$contextType[contextProp] = prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.object, _Consumer$contextType);
6076  return {
6077    Provider: Provider,
6078    Consumer: Consumer
6079  };
6080}
6081
6082var index = react__WEBPACK_IMPORTED_MODULE_0___default.a.createContext || createReactContext;
6083
6084/* harmony default export */ __webpack_exports__["a"] = (index);
6085
6086/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(24)))
6087
6088/***/ }),
6089/* 26 */
6090/***/ (function(module, exports, __webpack_require__) {
6091
6092var isarray = __webpack_require__(55)
6093
6094/**
6095 * Expose `pathToRegexp`.
6096 */
6097module.exports = pathToRegexp
6098module.exports.parse = parse
6099module.exports.compile = compile
6100module.exports.tokensToFunction = tokensToFunction
6101module.exports.tokensToRegExp = tokensToRegExp
6102
6103/**
6104 * The main path matching regexp utility.
6105 *
6106 * @type {RegExp}
6107 */
6108var PATH_REGEXP = new RegExp([
6109  // Match escaped characters that would otherwise appear in future matches.
6110  // This allows the user to escape special characters that won't transform.
6111  '(\\\\.)',
6112  // Match Express-style parameters and un-named parameters with a prefix
6113  // and optional suffixes. Matches appear as:
6114  //
6115  // "/:test(\\d+)?" => ["/", "test", "\d+", undefined, "?", undefined]
6116  // "/route(\\d+)"  => [undefined, undefined, undefined, "\d+", undefined, undefined]
6117  // "/*"            => ["/", undefined, undefined, undefined, undefined, "*"]
6118  '([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))'
6119].join('|'), 'g')
6120
6121/**
6122 * Parse a string for the raw tokens.
6123 *
6124 * @param  {string}  str
6125 * @param  {Object=} options
6126 * @return {!Array}
6127 */
6128function parse (str, options) {
6129  var tokens = []
6130  var key = 0
6131  var index = 0
6132  var path = ''
6133  var defaultDelimiter = options && options.delimiter || '/'
6134  var res
6135
6136  while ((res = PATH_REGEXP.exec(str)) != null) {
6137    var m = res[0]
6138    var escaped = res[1]
6139    var offset = res.index
6140    path += str.slice(index, offset)
6141    index = offset + m.length
6142
6143    // Ignore already escaped sequences.
6144    if (escaped) {
6145      path += escaped[1]
6146      continue
6147    }
6148
6149    var next = str[index]
6150    var prefix = res[2]
6151    var name = res[3]
6152    var capture = res[4]
6153    var group = res[5]
6154    var modifier = res[6]
6155    var asterisk = res[7]
6156
6157    // Push the current path onto the tokens.
6158    if (path) {
6159      tokens.push(path)
6160      path = ''
6161    }
6162
6163    var partial = prefix != null && next != null && next !== prefix
6164    var repeat = modifier === '+' || modifier === '*'
6165    var optional = modifier === '?' || modifier === '*'
6166    var delimiter = res[2] || defaultDelimiter
6167    var pattern = capture || group
6168
6169    tokens.push({
6170      name: name || key++,
6171      prefix: prefix || '',
6172      delimiter: delimiter,
6173      optional: optional,
6174      repeat: repeat,
6175      partial: partial,
6176      asterisk: !!asterisk,
6177      pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?')
6178    })
6179  }
6180
6181  // Match any characters still remaining.
6182  if (index < str.length) {
6183    path += str.substr(index)
6184  }
6185
6186  // If the path exists, push it onto the end.
6187  if (path) {
6188    tokens.push(path)
6189  }
6190
6191  return tokens
6192}
6193
6194/**
6195 * Compile a string to a template function for the path.
6196 *
6197 * @param  {string}             str
6198 * @param  {Object=}            options
6199 * @return {!function(Object=, Object=)}
6200 */
6201function compile (str, options) {
6202  return tokensToFunction(parse(str, options), options)
6203}
6204
6205/**
6206 * Prettier encoding of URI path segments.
6207 *
6208 * @param  {string}
6209 * @return {string}
6210 */
6211function encodeURIComponentPretty (str) {
6212  return encodeURI(str).replace(/[\/?#]/g, function (c) {
6213    return '%' + c.charCodeAt(0).toString(16).toUpperCase()
6214  })
6215}
6216
6217/**
6218 * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.
6219 *
6220 * @param  {string}
6221 * @return {string}
6222 */
6223function encodeAsterisk (str) {
6224  return encodeURI(str).replace(/[?#]/g, function (c) {
6225    return '%' + c.charCodeAt(0).toString(16).toUpperCase()
6226  })
6227}
6228
6229/**
6230 * Expose a method for transforming tokens into the path function.
6231 */
6232function tokensToFunction (tokens, options) {
6233  // Compile all the tokens into regexps.
6234  var matches = new Array(tokens.length)
6235
6236  // Compile all the patterns before compilation.
6237  for (var i = 0; i < tokens.length; i++) {
6238    if (typeof tokens[i] === 'object') {
6239      matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$', flags(options))
6240    }
6241  }
6242
6243  return function (obj, opts) {
6244    var path = ''
6245    var data = obj || {}
6246    var options = opts || {}
6247    var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent
6248
6249    for (var i = 0; i < tokens.length; i++) {
6250      var token = tokens[i]
6251
6252      if (typeof token === 'string') {
6253        path += token
6254
6255        continue
6256      }
6257
6258      var value = data[token.name]
6259      var segment
6260
6261      if (value == null) {
6262        if (token.optional) {
6263          // Prepend partial segment prefixes.
6264          if (token.partial) {
6265            path += token.prefix
6266          }
6267
6268          continue
6269        } else {
6270          throw new TypeError('Expected "' + token.name + '" to be defined')
6271        }
6272      }
6273
6274      if (isarray(value)) {
6275        if (!token.repeat) {
6276          throw new TypeError('Expected "' + token.name + '" to not repeat, but received `' + JSON.stringify(value) + '`')
6277        }
6278
6279        if (value.length === 0) {
6280          if (token.optional) {
6281            continue
6282          } else {
6283            throw new TypeError('Expected "' + token.name + '" to not be empty')
6284          }
6285        }
6286
6287        for (var j = 0; j < value.length; j++) {
6288          segment = encode(value[j])
6289
6290          if (!matches[i].test(segment)) {
6291            throw new TypeError('Expected all "' + token.name + '" to match "' + token.pattern + '", but received `' + JSON.stringify(segment) + '`')
6292          }
6293
6294          path += (j === 0 ? token.prefix : token.delimiter) + segment
6295        }
6296
6297        continue
6298      }
6299
6300      segment = token.asterisk ? encodeAsterisk(value) : encode(value)
6301
6302      if (!matches[i].test(segment)) {
6303        throw new TypeError('Expected "' + token.name + '" to match "' + token.pattern + '", but received "' + segment + '"')
6304      }
6305
6306      path += token.prefix + segment
6307    }
6308
6309    return path
6310  }
6311}
6312
6313/**
6314 * Escape a regular expression string.
6315 *
6316 * @param  {string} str
6317 * @return {string}
6318 */
6319function escapeString (str) {
6320  return str.replace(/([.+*?=^!:${}()[\]|\/\\])/g, '\\$1')
6321}
6322
6323/**
6324 * Escape the capturing group by escaping special characters and meaning.
6325 *
6326 * @param  {string} group
6327 * @return {string}
6328 */
6329function escapeGroup (group) {
6330  return group.replace(/([=!:$\/()])/g, '\\$1')
6331}
6332
6333/**
6334 * Attach the keys as a property of the regexp.
6335 *
6336 * @param  {!RegExp} re
6337 * @param  {Array}   keys
6338 * @return {!RegExp}
6339 */
6340function attachKeys (re, keys) {
6341  re.keys = keys
6342  return re
6343}
6344
6345/**
6346 * Get the flags for a regexp from the options.
6347 *
6348 * @param  {Object} options
6349 * @return {string}
6350 */
6351function flags (options) {
6352  return options && options.sensitive ? '' : 'i'
6353}
6354
6355/**
6356 * Pull out keys from a regexp.
6357 *
6358 * @param  {!RegExp} path
6359 * @param  {!Array}  keys
6360 * @return {!RegExp}
6361 */
6362function regexpToRegexp (path, keys) {
6363  // Use a negative lookahead to match only capturing groups.
6364  var groups = path.source.match(/\((?!\?)/g)
6365
6366  if (groups) {
6367    for (var i = 0; i < groups.length; i++) {
6368      keys.push({
6369        name: i,
6370        prefix: null,
6371        delimiter: null,
6372        optional: false,
6373        repeat: false,
6374        partial: false,
6375        asterisk: false,
6376        pattern: null
6377      })
6378    }
6379  }
6380
6381  return attachKeys(path, keys)
6382}
6383
6384/**
6385 * Transform an array into a regexp.
6386 *
6387 * @param  {!Array}  path
6388 * @param  {Array}   keys
6389 * @param  {!Object} options
6390 * @return {!RegExp}
6391 */
6392function arrayToRegexp (path, keys, options) {
6393  var parts = []
6394
6395  for (var i = 0; i < path.length; i++) {
6396    parts.push(pathToRegexp(path[i], keys, options).source)
6397  }
6398
6399  var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options))
6400
6401  return attachKeys(regexp, keys)
6402}
6403
6404/**
6405 * Create a path regexp from string input.
6406 *
6407 * @param  {string}  path
6408 * @param  {!Array}  keys
6409 * @param  {!Object} options
6410 * @return {!RegExp}
6411 */
6412function stringToRegexp (path, keys, options) {
6413  return tokensToRegExp(parse(path, options), keys, options)
6414}
6415
6416/**
6417 * Expose a function for taking tokens and returning a RegExp.
6418 *
6419 * @param  {!Array}          tokens
6420 * @param  {(Array|Object)=} keys
6421 * @param  {Object=}         options
6422 * @return {!RegExp}
6423 */
6424function tokensToRegExp (tokens, keys, options) {
6425  if (!isarray(keys)) {
6426    options = /** @type {!Object} */ (keys || options)
6427    keys = []
6428  }
6429
6430  options = options || {}
6431
6432  var strict = options.strict
6433  var end = options.end !== false
6434  var route = ''
6435
6436  // Iterate over the tokens and create our regexp string.
6437  for (var i = 0; i < tokens.length; i++) {
6438    var token = tokens[i]
6439
6440    if (typeof token === 'string') {
6441      route += escapeString(token)
6442    } else {
6443      var prefix = escapeString(token.prefix)
6444      var capture = '(?:' + token.pattern + ')'
6445
6446      keys.push(token)
6447
6448      if (token.repeat) {
6449        capture += '(?:' + prefix + capture + ')*'
6450      }
6451
6452      if (token.optional) {
6453        if (!token.partial) {
6454          capture = '(?:' + prefix + '(' + capture + '))?'
6455        } else {
6456          capture = prefix + '(' + capture + ')?'
6457        }
6458      } else {
6459        capture = prefix + '(' + capture + ')'
6460      }
6461
6462      route += capture
6463    }
6464  }
6465
6466  var delimiter = escapeString(options.delimiter || '/')
6467  var endsWithDelimiter = route.slice(-delimiter.length) === delimiter
6468
6469  // In non-strict mode we allow a slash at the end of match. If the path to
6470  // match already ends with a slash, we remove it for consistency. The slash
6471  // is valid at the end of a path match, not in the middle. This is important
6472  // in non-ending mode, where "/test/" shouldn't match "/test//route".
6473  if (!strict) {
6474    route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?'
6475  }
6476
6477  if (end) {
6478    route += '$'
6479  } else {
6480    // In non-ending mode, we need the capturing groups to match as much as
6481    // possible by using a positive lookahead to the end or next path segment.
6482    route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)'
6483  }
6484
6485  return attachKeys(new RegExp('^' + route, flags(options)), keys)
6486}
6487
6488/**
6489 * Normalize the given path string, returning a regular expression.
6490 *
6491 * An empty array can be passed in for the keys, which will hold the
6492 * placeholder key descriptions. For example, using `/user/:id`, `keys` will
6493 * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.
6494 *
6495 * @param  {(string|RegExp|Array)} path
6496 * @param  {(Array|Object)=}       keys
6497 * @param  {Object=}               options
6498 * @return {!RegExp}
6499 */
6500function pathToRegexp (path, keys, options) {
6501  if (!isarray(keys)) {
6502    options = /** @type {!Object} */ (keys || options)
6503    keys = []
6504  }
6505
6506  options = options || {}
6507
6508  if (path instanceof RegExp) {
6509    return regexpToRegexp(path, /** @type {!Array} */ (keys))
6510  }
6511
6512  if (isarray(path)) {
6513    return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options)
6514  }
6515
6516  return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options)
6517}
6518
6519
6520/***/ }),
6521/* 27 */
6522/***/ (function(module, exports, __webpack_require__) {
6523
6524!function(e){ true?module.exports=e(null):undefined}(function e(a){"use strict";var r=/^\0+/g,c=/[\0\r\f]/g,s=/: */g,t=/zoo|gra/,i=/([,: ])(transform)/g,f=/,+\s*(?![^(]*[)])/g,n=/ +\s*(?![^(]*[)])/g,l=/ *[\0] */g,o=/,\r+?/g,h=/([\t\r\n ])*\f?&/g,u=/:global\(((?:[^\(\)\[\]]*|\[.*\]|\([^\(\)]*\))*)\)/g,d=/\W+/g,b=/@(k\w+)\s*(\S*)\s*/,p=/::(place)/g,k=/:(read-only)/g,g=/\s+(?=[{\];=:>])/g,A=/([[}=:>])\s+/g,C=/(\{[^{]+?);(?=\})/g,w=/\s{2,}/g,v=/([^\(])(:+) */g,m=/[svh]\w+-[tblr]{2}/,x=/\(\s*(.*)\s*\)/g,$=/([\s\S]*?);/g,y=/-self|flex-/g,O=/[^]*?(:[rp][el]a[\w-]+)[^]*/,j=/stretch|:\s*\w+\-(?:conte|avail)/,z=/([^-])(image-set\()/,N="-webkit-",S="-moz-",F="-ms-",W=59,q=125,B=123,D=40,E=41,G=91,H=93,I=10,J=13,K=9,L=64,M=32,P=38,Q=45,R=95,T=42,U=44,V=58,X=39,Y=34,Z=47,_=62,ee=43,ae=126,re=0,ce=12,se=11,te=107,ie=109,fe=115,ne=112,le=111,oe=105,he=99,ue=100,de=112,be=1,pe=1,ke=0,ge=1,Ae=1,Ce=1,we=0,ve=0,me=0,xe=[],$e=[],ye=0,Oe=null,je=-2,ze=-1,Ne=0,Se=1,Fe=2,We=3,qe=0,Be=1,De="",Ee="",Ge="";function He(e,a,s,t,i){for(var f,n,o=0,h=0,u=0,d=0,g=0,A=0,C=0,w=0,m=0,$=0,y=0,O=0,j=0,z=0,R=0,we=0,$e=0,Oe=0,je=0,ze=s.length,Je=ze-1,Re="",Te="",Ue="",Ve="",Xe="",Ye="";R<ze;){if(C=s.charCodeAt(R),R===Je)if(h+d+u+o!==0){if(0!==h)C=h===Z?I:Z;d=u=o=0,ze++,Je++}if(h+d+u+o===0){if(R===Je){if(we>0)Te=Te.replace(c,"");if(Te.trim().length>0){switch(C){case M:case K:case W:case J:case I:break;default:Te+=s.charAt(R)}C=W}}if(1===$e)switch(C){case B:case q:case W:case Y:case X:case D:case E:case U:$e=0;case K:case J:case I:case M:break;default:for($e=0,je=R,g=C,R--,C=W;je<ze;)switch(s.charCodeAt(je++)){case I:case J:case W:++R,C=g,je=ze;break;case V:if(we>0)++R,C=g;case B:je=ze}}switch(C){case B:for(g=(Te=Te.trim()).charCodeAt(0),y=1,je=++R;R<ze;){switch(C=s.charCodeAt(R)){case B:y++;break;case q:y--;break;case Z:switch(A=s.charCodeAt(R+1)){case T:case Z:R=Qe(A,R,Je,s)}break;case G:C++;case D:C++;case Y:case X:for(;R++<Je&&s.charCodeAt(R)!==C;);}if(0===y)break;R++}if(Ue=s.substring(je,R),g===re)g=(Te=Te.replace(r,"").trim()).charCodeAt(0);switch(g){case L:if(we>0)Te=Te.replace(c,"");switch(A=Te.charCodeAt(1)){case ue:case ie:case fe:case Q:f=a;break;default:f=xe}if(je=(Ue=He(a,f,Ue,A,i+1)).length,me>0&&0===je)je=Te.length;if(ye>
65240)if(f=Ie(xe,Te,Oe),n=Pe(We,Ue,f,a,pe,be,je,A,i,t),Te=f.join(""),void 0!==n)if(0===(je=(Ue=n.trim()).length))A=0,Ue="";if(je>0)switch(A){case fe:Te=Te.replace(x,Me);case ue:case ie:case Q:Ue=Te+"{"+Ue+"}";break;case te:if(Ue=(Te=Te.replace(b,"$1 $2"+(Be>0?De:"")))+"{"+Ue+"}",1===Ae||2===Ae&&Le("@"+Ue,3))Ue="@"+N+Ue+"@"+Ue;else Ue="@"+Ue;break;default:if(Ue=Te+Ue,t===de)Ve+=Ue,Ue=""}else Ue="";break;default:Ue=He(a,Ie(a,Te,Oe),Ue,t,i+1)}Xe+=Ue,O=0,$e=0,z=0,we=0,Oe=0,j=0,Te="",Ue="",C=s.charCodeAt(++R);break;case q:case W:if((je=(Te=(we>0?Te.replace(c,""):Te).trim()).length)>1){if(0===z)if((g=Te.charCodeAt(0))===Q||g>96&&g<123)je=(Te=Te.replace(" ",":")).length;if(ye>0)if(void 0!==(n=Pe(Se,Te,a,e,pe,be,Ve.length,t,i,t)))if(0===(je=(Te=n.trim()).length))Te="\0\0";switch(g=Te.charCodeAt(0),A=Te.charCodeAt(1),g){case re:break;case L:if(A===oe||A===he){Ye+=Te+s.charAt(R);break}default:if(Te.charCodeAt(je-1)===V)break;Ve+=Ke(Te,g,A,Te.charCodeAt(2))}}O=0,$e=0,z=0,we=0,Oe=0,Te="",C=s.charCodeAt(++R)}}switch(C){case J:case I:if(h+d+u+o+ve===0)switch($){case E:case X:case Y:case L:case ae:case _:case T:case ee:case Z:case Q:case V:case U:case W:case B:case q:break;default:if(z>0)$e=1}if(h===Z)h=0;else if(ge+O===0&&t!==te&&Te.length>0)we=1,Te+="\0";if(ye*qe>0)Pe(Ne,Te,a,e,pe,be,Ve.length,t,i,t);be=1,pe++;break;case W:case q:if(h+d+u+o===0){be++;break}default:switch(be++,Re=s.charAt(R),C){case K:case M:if(d+o+h===0)switch(w){case U:case V:case K:case M:Re="";break;default:if(C!==M)Re=" "}break;case re:Re="\\0";break;case ce:Re="\\f";break;case se:Re="\\v";break;case P:if(d+h+o===0&&ge>0)Oe=1,we=1,Re="\f"+Re;break;case 108:if(d+h+o+ke===0&&z>0)switch(R-z){case 2:if(w===ne&&s.charCodeAt(R-3)===V)ke=w;case 8:if(m===le)ke=m}break;case V:if(d+h+o===0)z=R;break;case U:if(h+u+d+o===0)we=1,Re+="\r";break;case Y:case X:if(0===h)d=d===C?0:0===d?C:d;break;case G:if(d+h+u===0)o++;break;case H:if(d+h+u===0)o--;break;case E:if(d+h+o===0)u--;break;case D:if(d+h+o===0){if(0===O)switch(2*w+3*m){case 533:break;default:y=0,O=1}u++}break;case L:if(h+u+d+o+z+j===0)j=1;break;case T:case Z:if(d+o+u>0)break;switch(h){case 0:switch(2*C+3*s.charCodeAt(R+1)){case 235:h=Z;break;case 220:je=R,h=T}break;case T:if(C===Z&&w===T&&je+2!==R){if(33===s.charCodeAt(je+2))Ve+=s.substring(je,R+1);Re="",h=0}}}if(0===h){if(ge+d+o+j===0&&t!==te&&C!==W)switch(C){case U:case ae:case _:case ee:case E:case D:if(0===O){switch(w){case K:case M:case I:case J:Re+="\0";break;default:Re="\0"+Re+(C===U?"":"\0")}we=1}else switch(C){case D:if(z+7===R&&108===w)z=0;O=++y;break;case E:if(0==(O=--y))we=1,Re+="\0"}break;case K:case M:switch(w){case re:case B:case q:case W:case U:case ce:case K:case M:case I:case J:break;default:if(0===O)we=1,Re+="\0"}}if(Te+=Re,C!==M&&C!==K)$=C}}m=w,w=C,R++}if(je=Ve.length,me>0)if(0===je&&0===Xe.length&&0===a[0].length==false)if(t!==ie||1===a.length&&(ge>0?Ee:Ge)===a[0])je=a.join(",").length+2;if(je>0){if(f=0===ge&&t!==te?function(e){for(var a,r,s=0,t=e.length,i=Array(t);s<t;++s){for(var f=e[s].split(l),n="",o=0,h=0,u=0,d=0,b=f.length;o<b;++o){if(0===(h=(r=f[o]).length)&&b>1)continue;if(u=n.charCodeAt(n.length-1),d=r.charCodeAt(0),a="",0!==o)switch(u){case T:case ae:case _:case ee:case M:case D:break;default:a=" "}switch(d){case P:r=a+Ee;case ae:case _:case ee:case M:case E:case D:break;case G:r=a+r+Ee;break;case V:switch(2*r.charCodeAt(1)+3*r.charCodeAt(2)){case 530:if(Ce>0){r=a+r.substring(8,h-1);break}default:if(o<1||f[o-1].length<1)r=a+Ee+r}break;case U:a="";default:if(h>1&&r.indexOf(":")>0)r=a+r.replace(v,"$1"+Ee+"$2");else r=a+r+Ee}n+=r}i[s]=n.replace(c,"").trim()}return i}(a):a,ye>0)if(void 0!==(n=Pe(Fe,Ve,f,e,pe,be,je,t,i,t))&&0===(Ve=n).length)return Ye+Ve+Xe;if(Ve=f.join(",")+"{"+Ve+"}",Ae*ke!=0){if(2===Ae&&!Le(Ve,2))ke=0;switch(ke){case le:Ve=Ve.replace(k,":"+S+"$1")+Ve;break;case ne:Ve=Ve.replace(p,"::"+N+"input-$1")+Ve.replace(p,"::"+S+"$1")+Ve.replace(p,":"+F+"input-$1")+Ve}ke=0}}return Ye+Ve+Xe}function Ie(e,a,r){var c=a.trim().split(o),s=c,t=c.length,i=e.length;switch(i){case 0:case 1:for(var f=0,n=0===i?"":e[0]+" ";f<t;++f)s[f]=Je(n,s[f],r,i).trim();break;default:f=0;var l=0;for(s=[];f<t;++f)for(var h=0;h<i;
6524++h)s[l++]=Je(e[h]+" ",c[f],r,i).trim()}return s}function Je(e,a,r,c){var s=a,t=s.charCodeAt(0);if(t<33)t=(s=s.trim()).charCodeAt(0);switch(t){case P:switch(ge+c){case 0:case 1:if(0===e.trim().length)break;default:return s.replace(h,"$1"+e.trim())}break;case V:switch(s.charCodeAt(1)){case 103:if(Ce>0&&ge>0)return s.replace(u,"$1").replace(h,"$1"+Ge);break;default:return e.trim()+s.replace(h,"$1"+e.trim())}default:if(r*ge>0&&s.indexOf("\f")>0)return s.replace(h,(e.charCodeAt(0)===V?"":"$1")+e.trim())}return e+s}function Ke(e,a,r,c){var l,o=0,h=e+";",u=2*a+3*r+4*c;if(944===u)return function(e){var a=e.length,r=e.indexOf(":",9)+1,c=e.substring(0,r).trim(),s=e.substring(r,a-1).trim();switch(e.charCodeAt(9)*Be){case 0:break;case Q:if(110!==e.charCodeAt(10))break;default:for(var t=s.split((s="",f)),i=0,r=0,a=t.length;i<a;r=0,++i){for(var l=t[i],o=l.split(n);l=o[r];){var h=l.charCodeAt(0);if(1===Be&&(h>L&&h<90||h>96&&h<123||h===R||h===Q&&l.charCodeAt(1)!==Q))switch(isNaN(parseFloat(l))+(-1!==l.indexOf("("))){case 1:switch(l){case"infinite":case"alternate":case"backwards":case"running":case"normal":case"forwards":case"both":case"none":case"linear":case"ease":case"ease-in":case"ease-out":case"ease-in-out":case"paused":case"reverse":case"alternate-reverse":case"inherit":case"initial":case"unset":case"step-start":case"step-end":break;default:l+=De}}o[r++]=l}s+=(0===i?"":",")+o.join(" ")}}if(s=c+s+";",1===Ae||2===Ae&&Le(s,1))return N+s+s;return s}(h);else if(0===Ae||2===Ae&&!Le(h,1))return h;switch(u){case 1015:return 97===h.charCodeAt(10)?N+h+h:h;case 951:return 116===h.charCodeAt(3)?N+h+h:h;case 963:return 110===h.charCodeAt(5)?N+h+h:h;case 1009:if(100!==h.charCodeAt(4))break;case 969:case 942:return N+h+h;case 978:return N+h+S+h+h;case 1019:case 983:return N+h+S+h+F+h+h;case 883:if(h.charCodeAt(8)===Q)return N+h+h;if(h.indexOf("image-set(",11)>0)return h.replace(z,"$1"+N+"$2")+h;return h;
vendor: 1,191 bytes, line 6524
6524case 932:if(h.charCodeAt(4)===Q)switch(h.charCodeAt(5)){case 103:return N+"box-"+h.replace("-grow","")+N+h+F+h.replace("grow","positive")+h;case 115:return N+h+F+h.replace("shrink","negative")+h;case 98:return N+h+F+h.replace("basis","preferred-size")+h}return N+h+F+h+h;case 964:return N+h+F+"flex-"+h+h;case 1023:if(99!==h.charCodeAt(8))break;return l=h.substring(h.indexOf(":",15)).replace("flex-","").replace("space-between","justify"),N+"box-pack"+l+N+h+F+"flex-pack"+l+h;case 1005:return t.test(h)?h.replace(s,":"+N)+h.replace(s,":"+S)+h:h;case 1e3:switch(o=(l=h.substring(13).trim()).indexOf("-")+1,l.charCodeAt(0)+l.charCodeAt(o)){case 226:l=h.replace(m,"tb");break;case 232:l=h.replace(m,"tb-rl");break;case 220:l=h.replace(m,"lr");break;default:return h}return N+h+F+l+h;case 1017:if(-1===h.indexOf("sticky",9))return h;case 975:switch(o=(h=e).length-10,u=(l=(33===h.charCodeAt(o)?h.substring(0,o):h).substring(e.indexOf(":",7)+1).trim()).charCodeAt(0)+(0|l.charCodeAt(7))){case 203:if(l.charCodeAt(8)<111)break;case 115:h=h.replace(l,N+l)+";"+h;break;case 207:case 102:h=h.replace(l,N+(u>102?"inline-":"")+"box")+";"+h.replace(l,N+l)+";"+h.replace(l,F+l+"box")+";"+h}return h+";";
6524case 938:if(h.charCodeAt(5)===Q)switch(h.charCodeAt(6)){case 105:return l=h.replace("-items",""),N+h+N+"box-"+l+F+"flex-"+l+h;case 115:return N+h+F+"flex-item-"+h.replace(y,"")+h;default:return N+h+F+"flex-line-pack"+h.replace("align-content","").replace(y,"")+h}break;case 973:case 989:if(h.charCodeAt(3)!==Q||122===h.charCodeAt(4))break;case 931:case 953:if(true===j.test(e))if(115===(l=e.substring(e.indexOf(":")+1)).charCodeAt(0))return Ke(e.replace("stretch","fill-available"),a,r,c).replace(":fill-available",":stretch");else return h.replace(l,N+l)+h.replace(l,S+l.replace("fill-",""))+h;break;case 962:if(h=N+h+(102===h.charCodeAt(5)?F+h:"")+h,r+c===211&&105===h.charCodeAt(13)&&h.indexOf("transform",10)>0)return h.substring(0,h.indexOf(";",27)+1).replace(i,"$1"+N+"$2")+h}return h}function Le(e,a){var r=e.indexOf(1===a?":":"{"),c=e.substring(0,3!==a?r:10),s=e.substring(r+1,e.length-1);return Oe(2!==a?c:c.replace(O,"$1"),s,a)}function Me(e,a){var r=Ke(a,a.charCodeAt(0),a.charCodeAt(1),a.charCodeAt(2));return r!==a+";"?r.replace($," or ($1)").substring(4):"("+a+")"}function Pe(e,a,r,c,s,t,i,f,n,l){for(var o,h=0,u=a;h<ye;++h)switch(o=$e[h].call(Te,e,u,r,c,s,t,i,f,n,l)){case void 0:case false:case true:case null:break;default:u=o}if(u!==a)return u}function Qe(e,a,r,c){for(var s=a+1;s<r;++s)switch(c.charCodeAt(s)){case Z:if(e===T)if(c.charCodeAt(s-1)===T&&a+2!==s)return s+1;break;case I:if(e===Z)return s+1}return s}function Re(e){for(var a in e){var r=e[a];switch(a){case"keyframe":Be=0|r;break;case"global":Ce=0|r;break;case"cascade":ge=0|r;break;case"compress":we=0|r;break;case"semicolon":ve=0|r;break;case"preserve":me=0|r;break;case"prefix":if(Oe=null,!r)Ae=0;else if("function"!=typeof r)Ae=1;else Ae=2,Oe=r}}return Re}function Te(a,r){if(void 0!==this&&this.constructor===Te)return e(a);var s=a,t=s.charCodeAt(0);if(t<33)t=(s=s.trim()).charCodeAt(0);if(Be>0)De=s.replace(d,t===G?"":"-");if(t=1,1===ge)Ge=s;else Ee=s;var i,f=[Ge];if(ye>0)if(void 0!==(i=Pe(ze,r,f,f,pe,be,0,0,0,0))&&"string"==typeof i)r=i;var n=He(xe,f,r,0,0);if(ye>0)if(void 0!==(i=Pe(je,n,f,f,pe,be,n.length,0,0,0))&&"string"!=typeof(n=i))t=0;return De="",Ge="",Ee="",ke=0,pe=1,be=1,we*t==0?n:n.replace(c,"").replace(g,"").replace(A,"$1").replace(C,"$1").replace(w," ")}if(Te.use=function e(a){switch(a){case void 0:case null:ye=$e.length=0;break;default:if("function"==typeof a)$e[ye++]=a;else if("object"==typeof a)for(var r=0,c=a.length;r<c;++r)e(a[r]);else qe=0|!!a}return e},Te.set=Re,void 0!==a)Re(a);return Te});
6525//# sourceMappingURL=stylis.min.js.map
6526
6527/***/ }),
6528/* 28 */
6529/***/ (function(module, __webpack_exports__, __webpack_require__) {
6530
6531"use strict";
6532function areInputsEqual(newInputs, lastInputs) {
6533    if (newInputs.length !== lastInputs.length) {
6534        return false;
6535    }
6536    for (var i = 0; i < newInputs.length; i++) {
6537        if (newInputs[i] !== lastInputs[i]) {
6538            return false;
6539        }
6540    }
6541    return true;
6542}
6543
6544function memoizeOne(resultFn, isEqual) {
6545    if (isEqual === void 0) { isEqual = areInputsEqual; }
6546    var lastThis;
6547    var lastArgs = [];
6548    var lastResult;
6549    var calledOnce = false;
6550    function memoized() {
6551        var newArgs = [];
6552        for (var _i = 0; _i < arguments.length; _i++) {
6553            newArgs[_i] = arguments[_i];
6554        }
6555        if (calledOnce && lastThis === this && isEqual(newArgs, lastArgs)) {
6556            return lastResult;
6557        }
6558        lastResult = resultFn.apply(this, newArgs);
6559        calledOnce = true;
6560        lastThis = this;
6561        lastArgs = newArgs;
6562        return lastResult;
6563    }
6564    return memoized;
6565}
6566
6567/* harmony default export */ __webpack_exports__["a"] = (memoizeOne);
6568
6569
6570/***/ }),
6571/* 29 */
6572/***/ (function(module, exports, __webpack_require__) {
6573
6574var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function (root, factory) {
6575  if (true) {
6576    !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),
6577				__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?
6578				(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),
6579				__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
6580  } else {}
6581}(this, function () {
6582  var regex = /(auto|scroll)/;
6583
6584  var parents = function (node, ps) {
6585    if (node.parentNode === null) { return ps; }
6586
6587    return parents(node.parentNode, ps.concat([node]));
6588  };
6589
6590  var style = function (node, prop) {
6591    return getComputedStyle(node, null).getPropertyValue(prop);
6592  };
6593
6594  var overflow = function (node) {
6595    return style(node, "overflow") + style(node, "overflow-y") + style(node, "overflow-x");
6596  };
6597
6598  var scroll = function (node) {
6599   return regex.test(overflow(node));
6600  };
6601
6602  var scrollParent = function (node) {
6603    if (!(node instanceof HTMLElement || node instanceof SVGElement)) {
6604      return ;
6605    }
6606
6607    var ps = parents(node.parentNode, []);
6608
6609    for (var i = 0; i < ps.length; i += 1) {
6610      if (scroll(ps[i])) {
6611        return ps[i];
6612      }
6613    }
6614
6615    return document.scrollingElement || document.documentElement;
6616  };
6617
6618  return scrollParent;
6619}));
6620
6621
6622/***/ }),
6623/* 30 */
6624/***/ (function(module, exports, __webpack_require__) {
6625
6626"use strict";
6627Object.defineProperty(exports,'__esModule',{value:!0});var VALIDATOR_ARG_ERROR_MESSAGE='The typeValidator argument must be a function with the signature function(props, propName, componentName).',MESSAGE_ARG_ERROR_MESSAGE='The error message is optional, but must be a string if provided.',propIsRequired=function propIsRequired(a,b,c,d){if('boolean'==typeof a)return a;return'function'==typeof a?a(b,c,d):!(!0!==!!a)&&!!a},propExists=function propExists(a,b){return Object.hasOwnProperty.call(a,b)},missingPropError=function missingPropError(a,b,c,d){return d?new Error(d):new Error('Required '+a[b]+' `'+b+'`'+(' was not specified in `'+c+'`.'))},guardAgainstInvalidArgTypes=function guardAgainstInvalidArgTypes(a,b){if('function'!=typeof a)throw new TypeError(VALIDATOR_ARG_ERROR_MESSAGE);if(!!b&&'string'!=typeof b)throw new TypeError(MESSAGE_ARG_ERROR_MESSAGE)},isRequiredIf=function isRequiredIf(a,b,c){return guardAgainstInvalidArgTypes(a,c),function(d,e,f){for(var _len=arguments.length,g=Array(3<_len?_len-3:0),_key=3;_key<_len;_key++)g[_key-3]=arguments[_key];return propIsRequired(b,d,e,f)?propExists(d,e)?a.apply(void 0,[d,e,f].concat(g)):missingPropError(d,e,f,c):a.apply(void 0,[d,e,f].concat(g));// Is not required, so just run typeValidator.
6628}};exports.default=isRequiredIf;
6629
6630//# sourceMappingURL=isRequiredIf.js.map
6631
6632/***/ }),
6633/* 31 */
6634/***/ (function(module, __webpack_exports__, __webpack_require__) {
6635
6636"use strict";
6637/* WEBPACK VAR INJECTION */(function(global) {/**!
6638 * @fileOverview Kickass library to create and place poppers near their reference elements.
6639 * @version 1.16.1
6640 * @license
6641 * Copyright (c) 2016 Federico Zivolo and contributors
6642 *
6643 * Permission is hereby granted, free of charge, to any person obtaining a copy
6644 * of this software and associated documentation files (the "Software"), to deal
6645 * in the Software without restriction, including without limitation the rights
6646 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
6647 * copies of the Software, and to permit persons to whom the Software is
6648 * furnished to do so, subject to the following conditions:
6649 *
6650 * The above copyright notice and this permission notice shall be included in all
6651 * copies or substantial portions of the Software.
6652 *
6653 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
6654 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
6655 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
6656 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
6657 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
6658 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
6659 * SOFTWARE.
6660 */
6661var isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && typeof navigator !== 'undefined';
6662
6663var timeoutDuration = function () {
6664  var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];
6665  for (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {
6666    if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {
6667      return 1;
6668    }
6669  }
6670  return 0;
6671}();
6672
6673function microtaskDebounce(fn) {
6674  var called = false;
vendor: 3,141 bytes, lines 6675-6800
6675  return function () {
6676    if (called) {
6677      return;
6678    }
6679    called = true;
6680    window.Promise.resolve().then(function () {
6681      called = false;
6682      fn();
6683    });
6684  };
6685}
6686
6687function taskDebounce(fn) {
6688  var scheduled = false;
6689  return function () {
6690    if (!scheduled) {
6691      scheduled = true;
6692      setTimeout(function () {
6693        scheduled = false;
6694        fn();
6695      }, timeoutDuration);
6696    }
6697  };
6698}
6699
6700var supportsMicroTasks = isBrowser && window.Promise;
6701
6702/**
6703* Create a debounced version of a method, that's asynchronously deferred
6704* but called in the minimum time possible.
6705*
6706* @method
6707* @memberof Popper.Utils
6708* @argument {Function} fn
6709* @returns {Function}
6710*/
6711var debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;
6712
6713/**
6714 * Check if the given variable is a function
6715 * @method
6716 * @memberof Popper.Utils
6717 * @argument {Any} functionToCheck - variable to check
6718 * @returns {Boolean} answer to: is a function?
6719 */
6720function isFunction(functionToCheck) {
6721  var getType = {};
6722  return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';
6723}
6724
6725/**
6726 * Get CSS computed property of the given element
6727 * @method
6728 * @memberof Popper.Utils
6729 * @argument {Eement} element
6730 * @argument {String} property
6731 */
6732function getStyleComputedProperty(element, property) {
6733  if (element.nodeType !== 1) {
6734    return [];
6735  }
6736  // NOTE: 1 DOM access here
6737  var window = element.ownerDocument.defaultView;
6738  var css = window.getComputedStyle(element, null);
6739  return property ? css[property] : css;
6740}
6741
6742/**
6743 * Returns the parentNode or the host of the element
6744 * @method
6745 * @memberof Popper.Utils
6746 * @argument {Element} element
6747 * @returns {Element} parent
6748 */
6749function getParentNode(element) {
6750  if (element.nodeName === 'HTML') {
6751    return element;
6752  }
6753  return element.parentNode || element.host;
6754}
6755
6756/**
6757 * Returns the scrolling parent of the given element
6758 * @method
6759 * @memberof Popper.Utils
6760 * @argument {Element} element
6761 * @returns {Element} scroll parent
6762 */
6763function getScrollParent(element) {
6764  // Return body, `getScroll` will take care to get the correct `scrollTop` from it
6765  if (!element) {
6766    return document.body;
6767  }
6768
6769  switch (element.nodeName) {
6770    case 'HTML':
6771    case 'BODY':
6772      return element.ownerDocument.body;
6773    case '#document':
6774      return element.body;
6775  }
6776
6777  // Firefox want us to check `-x` and `-y` variations as well
6778
6779  var _getStyleComputedProp = getStyleComputedProperty(element),
6780      overflow = _getStyleComputedProp.overflow,
6781      overflowX = _getStyleComputedProp.overflowX,
6782      overflowY = _getStyleComputedProp.overflowY;
6783
6784  if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {
6785    return element;
6786  }
6787
6788  return getScrollParent(getParentNode(element));
6789}
6790
6791/**
6792 * Returns the reference node of the reference object, or the reference object itself.
6793 * @method
6794 * @memberof Popper.Utils
6795 * @param {Element|Object} reference - the reference element (the popper will be relative to this)
6796 * @returns {Element} parent
6797 */
6798function getReferenceNode(reference) {
6799  return reference && reference.referenceNode ? reference.referenceNode : reference;
6800}
vendor: 3,047 bytes, lines 6800-6906
6800
6801
6802var isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);
6803var isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);
6804
6805/**
6806 * Determines if the browser is Internet Explorer
6807 * @method
6808 * @memberof Popper.Utils
6809 * @param {Number} version to check
6810 * @returns {Boolean} isIE
6811 */
6812function isIE(version) {
6813  if (version === 11) {
6814    return isIE11;
6815  }
6816  if (version === 10) {
6817    return isIE10;
6818  }
6819  return isIE11 || isIE10;
6820}
6821
6822/**
6823 * Returns the offset parent of the given element
6824 * @method
6825 * @memberof Popper.Utils
6826 * @argument {Element} element
6827 * @returns {Element} offset parent
6828 */
6829function getOffsetParent(element) {
6830  if (!element) {
6831    return document.documentElement;
6832  }
6833
6834  var noOffsetParent = isIE(10) ? document.body : null;
6835
6836  // NOTE: 1 DOM access here
6837  var offsetParent = element.offsetParent || null;
6838  // Skip hidden elements which don't have an offsetParent
6839  while (offsetParent === noOffsetParent && element.nextElementSibling) {
6840    offsetParent = (element = element.nextElementSibling).offsetParent;
6841  }
6842
6843  var nodeName = offsetParent && offsetParent.nodeName;
6844
6845  if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {
6846    return element ? element.ownerDocument.documentElement : document.documentElement;
6847  }
6848
6849  // .offsetParent will return the closest TH, TD or TABLE in case
6850  // no offsetParent is present, I hate this job...
6851  if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {
6852    return getOffsetParent(offsetParent);
6853  }
6854
6855  return offsetParent;
6856}
6857
6858function isOffsetContainer(element) {
6859  var nodeName = element.nodeName;
6860
6861  if (nodeName === 'BODY') {
6862    return false;
6863  }
6864  return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;
6865}
6866
6867/**
6868 * Finds the root node (document, shadowDOM root) of the given element
6869 * @method
6870 * @memberof Popper.Utils
6871 * @argument {Element} node
6872 * @returns {Element} root node
6873 */
6874function getRoot(node) {
6875  if (node.parentNode !== null) {
6876    return getRoot(node.parentNode);
6877  }
6878
6879  return node;
6880}
6881
6882/**
6883 * Finds the offset parent common to the two provided nodes
6884 * @method
6885 * @memberof Popper.Utils
6886 * @argument {Element} element1
6887 * @argument {Element} element2
6888 * @returns {Element} common offset parent
6889 */
6890function findCommonOffsetParent(element1, element2) {
6891  // This check is needed to avoid errors in case one of the elements isn't defined for any reason
6892  if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {
6893    return document.documentElement;
6894  }
6895
6896  // Here we make sure to give as "start" the element that comes first in the DOM
6897  var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;
6898  var start = order ? element1 : element2;
6899  var end = order ? element2 : element1;
6900
6901  // Get common ancestor container
6902  var range = document.createRange();
6903  range.setStart(start, 0);
6904  range.setEnd(end, 0);
6905  var commonAncestorContainer = range.commonAncestorContainer;
6906
vendor: 5,354 bytes, lines 6907-7084
6907  // Both nodes are inside #document
6908
6909  if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {
6910    if (isOffsetContainer(commonAncestorContainer)) {
6911      return commonAncestorContainer;
6912    }
6913
6914    return getOffsetParent(commonAncestorContainer);
6915  }
6916
6917  // one of the nodes is inside shadowDOM, find which one
6918  var element1root = getRoot(element1);
6919  if (element1root.host) {
6920    return findCommonOffsetParent(element1root.host, element2);
6921  } else {
6922    return findCommonOffsetParent(element1, getRoot(element2).host);
6923  }
6924}
6925
6926/**
6927 * Gets the scroll value of the given element in the given side (top and left)
6928 * @method
6929 * @memberof Popper.Utils
6930 * @argument {Element} element
6931 * @argument {String} side `top` or `left`
6932 * @returns {number} amount of scrolled pixels
6933 */
6934function getScroll(element) {
6935  var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';
6936
6937  var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';
6938  var nodeName = element.nodeName;
6939
6940  if (nodeName === 'BODY' || nodeName === 'HTML') {
6941    var html = element.ownerDocument.documentElement;
6942    var scrollingElement = element.ownerDocument.scrollingElement || html;
6943    return scrollingElement[upperSide];
6944  }
6945
6946  return element[upperSide];
6947}
6948
6949/*
6950 * Sum or subtract the element scroll values (left and top) from a given rect object
6951 * @method
6952 * @memberof Popper.Utils
6953 * @param {Object} rect - Rect object you want to change
6954 * @param {HTMLElement} element - The element from the function reads the scroll values
6955 * @param {Boolean} subtract - set to true if you want to subtract the scroll values
6956 * @return {Object} rect - The modifier rect object
6957 */
6958function includeScroll(rect, element) {
6959  var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
6960
6961  var scrollTop = getScroll(element, 'top');
6962  var scrollLeft = getScroll(element, 'left');
6963  var modifier = subtract ? -1 : 1;
6964  rect.top += scrollTop * modifier;
6965  rect.bottom += scrollTop * modifier;
6966  rect.left += scrollLeft * modifier;
6967  rect.right += scrollLeft * modifier;
6968  return rect;
6969}
6970
6971/*
6972 * Helper to detect borders of a given element
6973 * @method
6974 * @memberof Popper.Utils
6975 * @param {CSSStyleDeclaration} styles
6976 * Result of `getStyleComputedProperty` on the given element
6977 * @param {String} axis - `x` or `y`
6978 * @return {number} borders - The borders size of the given axis
6979 */
6980
6981function getBordersSize(styles, axis) {
6982  var sideA = axis === 'x' ? 'Left' : 'Top';
6983  var sideB = sideA === 'Left' ? 'Right' : 'Bottom';
6984
6985  return parseFloat(styles['border' + sideA + 'Width']) + parseFloat(styles['border' + sideB + 'Width']);
6986}
6987
6988function getSize(axis, body, html, computedStyle) {
6989  return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? parseInt(html['offset' + axis]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')]) : 0);
6990}
6991
6992function getWindowSizes(document) {
6993  var body = document.body;
6994  var html = document.documentElement;
6995  var computedStyle = isIE(10) && getComputedStyle(html);
6996
6997  return {
6998    height: getSize('Height', body, html, computedStyle),
6999    width: getSize('Width', body, html, computedStyle)
7000  };
7001}
7002
7003var classCallCheck = function (instance, Constructor) {
7004  if (!(instance instanceof Constructor)) {
7005    throw new TypeError("Cannot call a class as a function");
7006  }
7007};
7008
7009var createClass = function () {
7010  function defineProperties(target, props) {
7011    for (var i = 0; i < props.length; i++) {
7012      var descriptor = props[i];
7013      descriptor.enumerable = descriptor.enumerable || false;
7014      descriptor.configurable = true;
7015      if ("value" in descriptor) descriptor.writable = true;
7016      Object.defineProperty(target, descriptor.key, descriptor);
7017    }
7018  }
7019
7020  return function (Constructor, protoProps, staticProps) {
7021    if (protoProps) defineProperties(Constructor.prototype, protoProps);
7022    if (staticProps) defineProperties(Constructor, staticProps);
7023    return Constructor;
7024  };
7025}();
7026
7027
7028
7029
7030
7031var defineProperty = function (obj, key, value) {
7032  if (key in obj) {
7033    Object.defineProperty(obj, key, {
7034      value: value,
7035      enumerable: true,
7036      configurable: true,
7037      writable: true
7038    });
7039  } else {
7040    obj[key] = value;
7041  }
7042
7043  return obj;
7044};
7045
7046var _extends = Object.assign || function (target) {
7047  for (var i = 1; i < arguments.length; i++) {
7048    var source = arguments[i];
7049
7050    for (var key in source) {
7051      if (Object.prototype.hasOwnProperty.call(source, key)) {
7052        target[key] = source[key];
7053      }
7054    }
7055  }
7056
7057  return target;
7058};
7059
7060/**
7061 * Given element offsets, generate an output similar to getBoundingClientRect
7062 * @method
7063 * @memberof Popper.Utils
7064 * @argument {Object} offsets
7065 * @returns {Object} ClientRect like output
7066 */
7067function getClientRect(offsets) {
7068  return _extends({}, offsets, {
7069    right: offsets.left + offsets.width,
7070    bottom: offsets.top + offsets.height
7071  });
7072}
7073
7074/**
7075 * Get bounding client rect of given element
7076 * @method
7077 * @memberof Popper.Utils
7078 * @param {HTMLElement} element
7079 * @return {Object} client rect
7080 */
7081function getBoundingClientRect(element) {
7082  var rect = {};
7083
7084  // IE10 10 FIX: Please, don't ask, the element isn't
vendor: 4,625 bytes, lines 7085-7214
7085  // considered in DOM in some circumstances...
7086  // This isn't reproducible in IE10 compatibility mode of IE11
7087  try {
7088    if (isIE(10)) {
7089      rect = element.getBoundingClientRect();
7090      var scrollTop = getScroll(element, 'top');
7091      var scrollLeft = getScroll(element, 'left');
7092      rect.top += scrollTop;
7093      rect.left += scrollLeft;
7094      rect.bottom += scrollTop;
7095      rect.right += scrollLeft;
7096    } else {
7097      rect = element.getBoundingClientRect();
7098    }
7099  } catch (e) {}
7100
7101  var result = {
7102    left: rect.left,
7103    top: rect.top,
7104    width: rect.right - rect.left,
7105    height: rect.bottom - rect.top
7106  };
7107
7108  // subtract scrollbar size from sizes
7109  var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};
7110  var width = sizes.width || element.clientWidth || result.width;
7111  var height = sizes.height || element.clientHeight || result.height;
7112
7113  var horizScrollbar = element.offsetWidth - width;
7114  var vertScrollbar = element.offsetHeight - height;
7115
7116  // if an hypothetical scrollbar is detected, we must be sure it's not a `border`
7117  // we make this check conditional for performance reasons
7118  if (horizScrollbar || vertScrollbar) {
7119    var styles = getStyleComputedProperty(element);
7120    horizScrollbar -= getBordersSize(styles, 'x');
7121    vertScrollbar -= getBordersSize(styles, 'y');
7122
7123    result.width -= horizScrollbar;
7124    result.height -= vertScrollbar;
7125  }
7126
7127  return getClientRect(result);
7128}
7129
7130function getOffsetRectRelativeToArbitraryNode(children, parent) {
7131  var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
7132
7133  var isIE10 = isIE(10);
7134  var isHTML = parent.nodeName === 'HTML';
7135  var childrenRect = getBoundingClientRect(children);
7136  var parentRect = getBoundingClientRect(parent);
7137  var scrollParent = getScrollParent(children);
7138
7139  var styles = getStyleComputedProperty(parent);
7140  var borderTopWidth = parseFloat(styles.borderTopWidth);
7141  var borderLeftWidth = parseFloat(styles.borderLeftWidth);
7142
7143  // In cases where the parent is fixed, we must ignore negative scroll in offset calc
7144  if (fixedPosition && isHTML) {
7145    parentRect.top = Math.max(parentRect.top, 0);
7146    parentRect.left = Math.max(parentRect.left, 0);
7147  }
7148  var offsets = getClientRect({
7149    top: childrenRect.top - parentRect.top - borderTopWidth,
7150    left: childrenRect.left - parentRect.left - borderLeftWidth,
7151    width: childrenRect.width,
7152    height: childrenRect.height
7153  });
7154  offsets.marginTop = 0;
7155  offsets.marginLeft = 0;
7156
7157  // Subtract margins of documentElement in case it's being used as parent
7158  // we do this only on HTML because it's the only element that behaves
7159  // differently when margins are applied to it. The margins are included in
7160  // the box of the documentElement, in the other cases not.
7161  if (!isIE10 && isHTML) {
7162    var marginTop = parseFloat(styles.marginTop);
7163    var marginLeft = parseFloat(styles.marginLeft);
7164
7165    offsets.top -= borderTopWidth - marginTop;
7166    offsets.bottom -= borderTopWidth - marginTop;
7167    offsets.left -= borderLeftWidth - marginLeft;
7168    offsets.right -= borderLeftWidth - marginLeft;
7169
7170    // Attach marginTop and marginLeft because in some circumstances we may need them
7171    offsets.marginTop = marginTop;
7172    offsets.marginLeft = marginLeft;
7173  }
7174
7175  if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {
7176    offsets = includeScroll(offsets, parent);
7177  }
7178
7179  return offsets;
7180}
7181
7182function getViewportOffsetRectRelativeToArtbitraryNode(element) {
7183  var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
7184
7185  var html = element.ownerDocument.documentElement;
7186  var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);
7187  var width = Math.max(html.clientWidth, window.innerWidth || 0);
7188  var height = Math.max(html.clientHeight, window.innerHeight || 0);
7189
7190  var scrollTop = !excludeScroll ? getScroll(html) : 0;
7191  var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;
7192
7193  var offset = {
7194    top: scrollTop - relativeOffset.top + relativeOffset.marginTop,
7195    left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,
7196    width: width,
7197    height: height
7198  };
7199
7200  return getClientRect(offset);
7201}
7202
7203/**
7204 * Check if the given element is fixed or is inside a fixed parent
7205 * @method
7206 * @memberof Popper.Utils
7207 * @argument {Element} element
7208 * @argument {Element} customContainer
7209 * @returns {Boolean} answer to "isFixed?"
7210 */
7211function isFixed(element) {
7212  var nodeName = element.nodeName;
7213  if (nodeName === 'BODY' || nodeName === 'HTML') {
7214    return false;
vendor: 16,186 bytes, lines 7215-7724
7215  }
7216  if (getStyleComputedProperty(element, 'position') === 'fixed') {
7217    return true;
7218  }
7219  var parentNode = getParentNode(element);
7220  if (!parentNode) {
7221    return false;
7222  }
7223  return isFixed(parentNode);
7224}
7225
7226/**
7227 * Finds the first parent of an element that has a transformed property defined
7228 * @method
7229 * @memberof Popper.Utils
7230 * @argument {Element} element
7231 * @returns {Element} first transformed parent or documentElement
7232 */
7233
7234function getFixedPositionOffsetParent(element) {
7235  // This check is needed to avoid errors in case one of the elements isn't defined for any reason
7236  if (!element || !element.parentElement || isIE()) {
7237    return document.documentElement;
7238  }
7239  var el = element.parentElement;
7240  while (el && getStyleComputedProperty(el, 'transform') === 'none') {
7241    el = el.parentElement;
7242  }
7243  return el || document.documentElement;
7244}
7245
7246/**
7247 * Computed the boundaries limits and return them
7248 * @method
7249 * @memberof Popper.Utils
7250 * @param {HTMLElement} popper
7251 * @param {HTMLElement} reference
7252 * @param {number} padding
7253 * @param {HTMLElement} boundariesElement - Element used to define the boundaries
7254 * @param {Boolean} fixedPosition - Is in fixed position mode
7255 * @returns {Object} Coordinates of the boundaries
7256 */
7257function getBoundaries(popper, reference, padding, boundariesElement) {
7258  var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
7259
7260  // NOTE: 1 DOM access here
7261
7262  var boundaries = { top: 0, left: 0 };
7263  var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));
7264
7265  // Handle viewport case
7266  if (boundariesElement === 'viewport') {
7267    boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);
7268  } else {
7269    // Handle other cases based on DOM element used as boundaries
7270    var boundariesNode = void 0;
7271    if (boundariesElement === 'scrollParent') {
7272      boundariesNode = getScrollParent(getParentNode(reference));
7273      if (boundariesNode.nodeName === 'BODY') {
7274        boundariesNode = popper.ownerDocument.documentElement;
7275      }
7276    } else if (boundariesElement === 'window') {
7277      boundariesNode = popper.ownerDocument.documentElement;
7278    } else {
7279      boundariesNode = boundariesElement;
7280    }
7281
7282    var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);
7283
7284    // In case of HTML, we need a different computation
7285    if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {
7286      var _getWindowSizes = getWindowSizes(popper.ownerDocument),
7287          height = _getWindowSizes.height,
7288          width = _getWindowSizes.width;
7289
7290      boundaries.top += offsets.top - offsets.marginTop;
7291      boundaries.bottom = height + offsets.top;
7292      boundaries.left += offsets.left - offsets.marginLeft;
7293      boundaries.right = width + offsets.left;
7294    } else {
7295      // for all the other DOM elements, this one is good
7296      boundaries = offsets;
7297    }
7298  }
7299
7300  // Add paddings
7301  padding = padding || 0;
7302  var isPaddingNumber = typeof padding === 'number';
7303  boundaries.left += isPaddingNumber ? padding : padding.left || 0;
7304  boundaries.top += isPaddingNumber ? padding : padding.top || 0;
7305  boundaries.right -= isPaddingNumber ? padding : padding.right || 0;
7306  boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;
7307
7308  return boundaries;
7309}
7310
7311function getArea(_ref) {
7312  var width = _ref.width,
7313      height = _ref.height;
7314
7315  return width * height;
7316}
7317
7318/**
7319 * Utility used to transform the `auto` placement to the placement with more
7320 * available space.
7321 * @method
7322 * @memberof Popper.Utils
7323 * @argument {Object} data - The data object generated by update method
7324 * @argument {Object} options - Modifiers configuration and options
7325 * @returns {Object} The data object, properly modified
7326 */
7327function computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {
7328  var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;
7329
7330  if (placement.indexOf('auto') === -1) {
7331    return placement;
7332  }
7333
7334  var boundaries = getBoundaries(popper, reference, padding, boundariesElement);
7335
7336  var rects = {
7337    top: {
7338      width: boundaries.width,
7339      height: refRect.top - boundaries.top
7340    },
7341    right: {
7342      width: boundaries.right - refRect.right,
7343      height: boundaries.height
7344    },
7345    bottom: {
7346      width: boundaries.width,
7347      height: boundaries.bottom - refRect.bottom
7348    },
7349    left: {
7350      width: refRect.left - boundaries.left,
7351      height: boundaries.height
7352    }
7353  };
7354
7355  var sortedAreas = Object.keys(rects).map(function (key) {
7356    return _extends({
7357      key: key
7358    }, rects[key], {
7359      area: getArea(rects[key])
7360    });
7361  }).sort(function (a, b) {
7362    return b.area - a.area;
7363  });
7364
7365  var filteredAreas = sortedAreas.filter(function (_ref2) {
7366    var width = _ref2.width,
7367        height = _ref2.height;
7368    return width >= popper.clientWidth && height >= popper.clientHeight;
7369  });
7370
7371  var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;
7372
7373  var variation = placement.split('-')[1];
7374
7375  return computedPlacement + (variation ? '-' + variation : '');
7376}
7377
7378/**
7379 * Get offsets to the reference element
7380 * @method
7381 * @memberof Popper.Utils
7382 * @param {Object} state
7383 * @param {Element} popper - the popper element
7384 * @param {Element} reference - the reference element (the popper will be relative to this)
7385 * @param {Element} fixedPosition - is in fixed position mode
7386 * @returns {Object} An object containing the offsets which will be applied to the popper
7387 */
7388function getReferenceOffsets(state, popper, reference) {
7389  var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
7390
7391  var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));
7392  return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);
7393}
7394
7395/**
7396 * Get the outer sizes of the given element (offset size + margins)
7397 * @method
7398 * @memberof Popper.Utils
7399 * @argument {Element} element
7400 * @returns {Object} object containing width and height properties
7401 */
7402function getOuterSizes(element) {
7403  var window = element.ownerDocument.defaultView;
7404  var styles = window.getComputedStyle(element);
7405  var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);
7406  var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);
7407  var result = {
7408    width: element.offsetWidth + y,
7409    height: element.offsetHeight + x
7410  };
7411  return result;
7412}
7413
7414/**
7415 * Get the opposite placement of the given one
7416 * @method
7417 * @memberof Popper.Utils
7418 * @argument {String} placement
7419 * @returns {String} flipped placement
7420 */
7421function getOppositePlacement(placement) {
7422  var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };
7423  return placement.replace(/left|right|bottom|top/g, function (matched) {
7424    return hash[matched];
7425  });
7426}
7427
7428/**
7429 * Get offsets to the popper
7430 * @method
7431 * @memberof Popper.Utils
7432 * @param {Object} position - CSS position the Popper will get applied
7433 * @param {HTMLElement} popper - the popper element
7434 * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)
7435 * @param {String} placement - one of the valid placement options
7436 * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper
7437 */
7438function getPopperOffsets(popper, referenceOffsets, placement) {
7439  placement = placement.split('-')[0];
7440
7441  // Get popper node sizes
7442  var popperRect = getOuterSizes(popper);
7443
7444  // Add position, width and height to our offsets object
7445  var popperOffsets = {
7446    width: popperRect.width,
7447    height: popperRect.height
7448  };
7449
7450  // depending by the popper placement we have to compute its offsets slightly differently
7451  var isHoriz = ['right', 'left'].indexOf(placement) !== -1;
7452  var mainSide = isHoriz ? 'top' : 'left';
7453  var secondarySide = isHoriz ? 'left' : 'top';
7454  var measurement = isHoriz ? 'height' : 'width';
7455  var secondaryMeasurement = !isHoriz ? 'height' : 'width';
7456
7457  popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;
7458  if (placement === secondarySide) {
7459    popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];
7460  } else {
7461    popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];
7462  }
7463
7464  return popperOffsets;
7465}
7466
7467/**
7468 * Mimics the `find` method of Array
7469 * @method
7470 * @memberof Popper.Utils
7471 * @argument {Array} arr
7472 * @argument prop
7473 * @argument value
7474 * @returns index or -1
7475 */
7476function find(arr, check) {
7477  // use native find if supported
7478  if (Array.prototype.find) {
7479    return arr.find(check);
7480  }
7481
7482  // use `filter` to obtain the same behavior of `find`
7483  return arr.filter(check)[0];
7484}
7485
7486/**
7487 * Return the index of the matching object
7488 * @method
7489 * @memberof Popper.Utils
7490 * @argument {Array} arr
7491 * @argument prop
7492 * @argument value
7493 * @returns index or -1
7494 */
7495function findIndex(arr, prop, value) {
7496  // use native findIndex if supported
7497  if (Array.prototype.findIndex) {
7498    return arr.findIndex(function (cur) {
7499      return cur[prop] === value;
7500    });
7501  }
7502
7503  // use `find` + `indexOf` if `findIndex` isn't supported
7504  var match = find(arr, function (obj) {
7505    return obj[prop] === value;
7506  });
7507  return arr.indexOf(match);
7508}
7509
7510/**
7511 * Loop trough the list of modifiers and run them in order,
7512 * each of them will then edit the data object.
7513 * @method
7514 * @memberof Popper.Utils
7515 * @param {dataObject} data
7516 * @param {Array} modifiers
7517 * @param {String} ends - Optional modifier name used as stopper
7518 * @returns {dataObject}
7519 */
7520function runModifiers(modifiers, data, ends) {
7521  var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));
7522
7523  modifiersToRun.forEach(function (modifier) {
7524    if (modifier['function']) {
7525      // eslint-disable-line dot-notation
7526      console.warn('`modifier.function` is deprecated, use `modifier.fn`!');
7527    }
7528    var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation
7529    if (modifier.enabled && isFunction(fn)) {
7530      // Add properties to offsets to make them a complete clientRect object
7531      // we do this before each modifier to make sure the previous one doesn't
7532      // mess with these values
7533      data.offsets.popper = getClientRect(data.offsets.popper);
7534      data.offsets.reference = getClientRect(data.offsets.reference);
7535
7536      data = fn(data, modifier);
7537    }
7538  });
7539
7540  return data;
7541}
7542
7543/**
7544 * Updates the position of the popper, computing the new offsets and applying
7545 * the new style.<br />
7546 * Prefer `scheduleUpdate` over `update` because of performance reasons.
7547 * @method
7548 * @memberof Popper
7549 */
7550function update() {
7551  // if popper is destroyed, don't perform any further update
7552  if (this.state.isDestroyed) {
7553    return;
7554  }
7555
7556  var data = {
7557    instance: this,
7558    styles: {},
7559    arrowStyles: {},
7560    attributes: {},
7561    flipped: false,
7562    offsets: {}
7563  };
7564
7565  // compute reference element offsets
7566  data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed);
7567
7568  // compute auto placement, store placement inside the data object,
7569  // modifiers will be able to edit `placement` if needed
7570  // and refer to originalPlacement to know the original value
7571  data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);
7572
7573  // store the computed placement inside `originalPlacement`
7574  data.originalPlacement = data.placement;
7575
7576  data.positionFixed = this.options.positionFixed;
7577
7578  // compute the popper offsets
7579  data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);
7580
7581  data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute';
7582
7583  // run the modifiers
7584  data = runModifiers(this.modifiers, data);
7585
7586  // the first `update` will call `onCreate` callback
7587  // the other ones will call `onUpdate` callback
7588  if (!this.state.isCreated) {
7589    this.state.isCreated = true;
7590    this.options.onCreate(data);
7591  } else {
7592    this.options.onUpdate(data);
7593  }
7594}
7595
7596/**
7597 * Helper used to know if the given modifier is enabled.
7598 * @method
7599 * @memberof Popper.Utils
7600 * @returns {Boolean}
7601 */
7602function isModifierEnabled(modifiers, modifierName) {
7603  return modifiers.some(function (_ref) {
7604    var name = _ref.name,
7605        enabled = _ref.enabled;
7606    return enabled && name === modifierName;
7607  });
7608}
7609
7610/**
7611 * Get the prefixed supported property name
7612 * @method
7613 * @memberof Popper.Utils
7614 * @argument {String} property (camelCase)
7615 * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)
7616 */
7617function getSupportedPropertyName(property) {
7618  var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];
7619  var upperProp = property.charAt(0).toUpperCase() + property.slice(1);
7620
7621  for (var i = 0; i < prefixes.length; i++) {
7622    var prefix = prefixes[i];
7623    var toCheck = prefix ? '' + prefix + upperProp : property;
7624    if (typeof document.body.style[toCheck] !== 'undefined') {
7625      return toCheck;
7626    }
7627  }
7628  return null;
7629}
7630
7631/**
7632 * Destroys the popper.
7633 * @method
7634 * @memberof Popper
7635 */
7636function destroy() {
7637  this.state.isDestroyed = true;
7638
7639  // touch DOM only if `applyStyle` modifier is enabled
7640  if (isModifierEnabled(this.modifiers, 'applyStyle')) {
7641    this.popper.removeAttribute('x-placement');
7642    this.popper.style.position = '';
7643    this.popper.style.top = '';
7644    this.popper.style.left = '';
7645    this.popper.style.right = '';
7646    this.popper.style.bottom = '';
7647    this.popper.style.willChange = '';
7648    this.popper.style[getSupportedPropertyName('transform')] = '';
7649  }
7650
7651  this.disableEventListeners();
7652
7653  // remove the popper if user explicitly asked for the deletion on destroy
7654  // do not use `remove` because IE11 doesn't support it
7655  if (this.options.removeOnDestroy) {
7656    this.popper.parentNode.removeChild(this.popper);
7657  }
7658  return this;
7659}
7660
7661/**
7662 * Get the window associated with the element
7663 * @argument {Element} element
7664 * @returns {Window}
7665 */
7666function getWindow(element) {
7667  var ownerDocument = element.ownerDocument;
7668  return ownerDocument ? ownerDocument.defaultView : window;
7669}
7670
7671function attachToScrollParents(scrollParent, event, callback, scrollParents) {
7672  var isBody = scrollParent.nodeName === 'BODY';
7673  var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;
7674  target.addEventListener(event, callback, { passive: true });
7675
7676  if (!isBody) {
7677    attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);
7678  }
7679  scrollParents.push(target);
7680}
7681
7682/**
7683 * Setup needed event listeners used to update the popper position
7684 * @method
7685 * @memberof Popper.Utils
7686 * @private
7687 */
7688function setupEventListeners(reference, options, state, updateBound) {
7689  // Resize event listener on window
7690  state.updateBound = updateBound;
7691  getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });
7692
7693  // Scroll event listener on scroll parents
7694  var scrollElement = getScrollParent(reference);
7695  attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);
7696  state.scrollElement = scrollElement;
7697  state.eventsEnabled = true;
7698
7699  return state;
7700}
7701
7702/**
7703 * It will add resize/scroll events and start recalculating
7704 * position of the popper element when they are triggered.
7705 * @method
7706 * @memberof Popper
7707 */
7708function enableEventListeners() {
7709  if (!this.state.eventsEnabled) {
7710    this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);
7711  }
7712}
7713
7714/**
7715 * Remove event listeners used to update the popper position
7716 * @method
7717 * @memberof Popper.Utils
7718 * @private
7719 */
7720function removeEventListeners(reference, state) {
7721  // Remove resize event listener on window
7722  getWindow(reference).removeEventListener('resize', state.updateBound);
7723
7724  // Remove scroll event listener on scroll parents
vendor: 12,824 bytes, lines 7725-8086
7725  state.scrollParents.forEach(function (target) {
7726    target.removeEventListener('scroll', state.updateBound);
7727  });
7728
7729  // Reset state
7730  state.updateBound = null;
7731  state.scrollParents = [];
7732  state.scrollElement = null;
7733  state.eventsEnabled = false;
7734  return state;
7735}
7736
7737/**
7738 * It will remove resize/scroll events and won't recalculate popper position
7739 * when they are triggered. It also won't trigger `onUpdate` callback anymore,
7740 * unless you call `update` method manually.
7741 * @method
7742 * @memberof Popper
7743 */
7744function disableEventListeners() {
7745  if (this.state.eventsEnabled) {
7746    cancelAnimationFrame(this.scheduleUpdate);
7747    this.state = removeEventListeners(this.reference, this.state);
7748  }
7749}
7750
7751/**
7752 * Tells if a given input is a number
7753 * @method
7754 * @memberof Popper.Utils
7755 * @param {*} input to check
7756 * @return {Boolean}
7757 */
7758function isNumeric(n) {
7759  return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);
7760}
7761
7762/**
7763 * Set the style to the given popper
7764 * @method
7765 * @memberof Popper.Utils
7766 * @argument {Element} element - Element to apply the style to
7767 * @argument {Object} styles
7768 * Object with a list of properties and values which will be applied to the element
7769 */
7770function setStyles(element, styles) {
7771  Object.keys(styles).forEach(function (prop) {
7772    var unit = '';
7773    // add unit if the value is numeric and is one of the following
7774    if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {
7775      unit = 'px';
7776    }
7777    element.style[prop] = styles[prop] + unit;
7778  });
7779}
7780
7781/**
7782 * Set the attributes to the given popper
7783 * @method
7784 * @memberof Popper.Utils
7785 * @argument {Element} element - Element to apply the attributes to
7786 * @argument {Object} styles
7787 * Object with a list of properties and values which will be applied to the element
7788 */
7789function setAttributes(element, attributes) {
7790  Object.keys(attributes).forEach(function (prop) {
7791    var value = attributes[prop];
7792    if (value !== false) {
7793      element.setAttribute(prop, attributes[prop]);
7794    } else {
7795      element.removeAttribute(prop);
7796    }
7797  });
7798}
7799
7800/**
7801 * @function
7802 * @memberof Modifiers
7803 * @argument {Object} data - The data object generated by `update` method
7804 * @argument {Object} data.styles - List of style properties - values to apply to popper element
7805 * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element
7806 * @argument {Object} options - Modifiers configuration and options
7807 * @returns {Object} The same data object
7808 */
7809function applyStyle(data) {
7810  // any property present in `data.styles` will be applied to the popper,
7811  // in this way we can make the 3rd party modifiers add custom styles to it
7812  // Be aware, modifiers could override the properties defined in the previous
7813  // lines of this modifier!
7814  setStyles(data.instance.popper, data.styles);
7815
7816  // any property present in `data.attributes` will be applied to the popper,
7817  // they will be set as HTML attributes of the element
7818  setAttributes(data.instance.popper, data.attributes);
7819
7820  // if arrowElement is defined and arrowStyles has some properties
7821  if (data.arrowElement && Object.keys(data.arrowStyles).length) {
7822    setStyles(data.arrowElement, data.arrowStyles);
7823  }
7824
7825  return data;
7826}
7827
7828/**
7829 * Set the x-placement attribute before everything else because it could be used
7830 * to add margins to the popper margins needs to be calculated to get the
7831 * correct popper offsets.
7832 * @method
7833 * @memberof Popper.modifiers
7834 * @param {HTMLElement} reference - The reference element used to position the popper
7835 * @param {HTMLElement} popper - The HTML element used as popper
7836 * @param {Object} options - Popper.js options
7837 */
7838function applyStyleOnLoad(reference, popper, options, modifierOptions, state) {
7839  // compute reference element offsets
7840  var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);
7841
7842  // compute auto placement, store placement inside the data object,
7843  // modifiers will be able to edit `placement` if needed
7844  // and refer to originalPlacement to know the original value
7845  var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);
7846
7847  popper.setAttribute('x-placement', placement);
7848
7849  // Apply `position` to popper before anything else because
7850  // without the position applied we can't guarantee correct computations
7851  setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });
7852
7853  return options;
7854}
7855
7856/**
7857 * @function
7858 * @memberof Popper.Utils
7859 * @argument {Object} data - The data object generated by `update` method
7860 * @argument {Boolean} shouldRound - If the offsets should be rounded at all
7861 * @returns {Object} The popper's position offsets rounded
7862 *
7863 * The tale of pixel-perfect positioning. It's still not 100% perfect, but as
7864 * good as it can be within reason.
7865 * Discussion here: https://github.com/FezVrasta/popper.js/pull/715
7866 *
7867 * Low DPI screens cause a popper to be blurry if not using full pixels (Safari
7868 * as well on High DPI screens).
7869 *
7870 * Firefox prefers no rounding for positioning and does not have blurriness on
7871 * high DPI screens.
7872 *
7873 * Only horizontal placement and left/right values need to be considered.
7874 */
7875function getRoundedOffsets(data, shouldRound) {
7876  var _data$offsets = data.offsets,
7877      popper = _data$offsets.popper,
7878      reference = _data$offsets.reference;
7879  var round = Math.round,
7880      floor = Math.floor;
7881
7882  var noRound = function noRound(v) {
7883    return v;
7884  };
7885
7886  var referenceWidth = round(reference.width);
7887  var popperWidth = round(popper.width);
7888
7889  var isVertical = ['left', 'right'].indexOf(data.placement) !== -1;
7890  var isVariation = data.placement.indexOf('-') !== -1;
7891  var sameWidthParity = referenceWidth % 2 === popperWidth % 2;
7892  var bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;
7893
7894  var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthParity ? round : floor;
7895  var verticalToInteger = !shouldRound ? noRound : round;
7896
7897  return {
7898    left: horizontalToInteger(bothOddWidth && !isVariation && shouldRound ? popper.left - 1 : popper.left),
7899    top: verticalToInteger(popper.top),
7900    bottom: verticalToInteger(popper.bottom),
7901    right: horizontalToInteger(popper.right)
7902  };
7903}
7904
7905var isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);
7906
7907/**
7908 * @function
7909 * @memberof Modifiers
7910 * @argument {Object} data - The data object generated by `update` method
7911 * @argument {Object} options - Modifiers configuration and options
7912 * @returns {Object} The data object, properly modified
7913 */
7914function computeStyle(data, options) {
7915  var x = options.x,
7916      y = options.y;
7917  var popper = data.offsets.popper;
7918
7919  // Remove this legacy support in Popper.js v2
7920
7921  var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {
7922    return modifier.name === 'applyStyle';
7923  }).gpuAcceleration;
7924  if (legacyGpuAccelerationOption !== undefined) {
7925    console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');
7926  }
7927  var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;
7928
7929  var offsetParent = getOffsetParent(data.instance.popper);
7930  var offsetParentRect = getBoundingClientRect(offsetParent);
7931
7932  // Styles
7933  var styles = {
7934    position: popper.position
7935  };
7936
7937  var offsets = getRoundedOffsets(data, window.devicePixelRatio < 2 || !isFirefox);
7938
7939  var sideA = x === 'bottom' ? 'top' : 'bottom';
7940  var sideB = y === 'right' ? 'left' : 'right';
7941
7942  // if gpuAcceleration is set to `true` and transform is supported,
7943  //  we use `translate3d` to apply the position to the popper we
7944  // automatically use the supported prefixed version if needed
7945  var prefixedProperty = getSupportedPropertyName('transform');
7946
7947  // now, let's make a step back and look at this code closely (wtf?)
7948  // If the content of the popper grows once it's been positioned, it
7949  // may happen that the popper gets misplaced because of the new content
7950  // overflowing its reference element
7951  // To avoid this problem, we provide two options (x and y), which allow
7952  // the consumer to define the offset origin.
7953  // If we position a popper on top of a reference element, we can set
7954  // `x` to `top` to make the popper grow towards its top instead of
7955  // its bottom.
7956  var left = void 0,
7957      top = void 0;
7958  if (sideA === 'bottom') {
7959    // when offsetParent is <html> the positioning is relative to the bottom of the screen (excluding the scrollbar)
7960    // and not the bottom of the html element
7961    if (offsetParent.nodeName === 'HTML') {
7962      top = -offsetParent.clientHeight + offsets.bottom;
7963    } else {
7964      top = -offsetParentRect.height + offsets.bottom;
7965    }
7966  } else {
7967    top = offsets.top;
7968  }
7969  if (sideB === 'right') {
7970    if (offsetParent.nodeName === 'HTML') {
7971      left = -offsetParent.clientWidth + offsets.right;
7972    } else {
7973      left = -offsetParentRect.width + offsets.right;
7974    }
7975  } else {
7976    left = offsets.left;
7977  }
7978  if (gpuAcceleration && prefixedProperty) {
7979    styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';
7980    styles[sideA] = 0;
7981    styles[sideB] = 0;
7982    styles.willChange = 'transform';
7983  } else {
7984    // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties
7985    var invertTop = sideA === 'bottom' ? -1 : 1;
7986    var invertLeft = sideB === 'right' ? -1 : 1;
7987    styles[sideA] = top * invertTop;
7988    styles[sideB] = left * invertLeft;
7989    styles.willChange = sideA + ', ' + sideB;
7990  }
7991
7992  // Attributes
7993  var attributes = {
7994    'x-placement': data.placement
7995  };
7996
7997  // Update `data` attributes, styles and arrowStyles
7998  data.attributes = _extends({}, attributes, data.attributes);
7999  data.styles = _extends({}, styles, data.styles);
8000  data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);
8001
8002  return data;
8003}
8004
8005/**
8006 * Helper used to know if the given modifier depends from another one.<br />
8007 * It checks if the needed modifier is listed and enabled.
8008 * @method
8009 * @memberof Popper.Utils
8010 * @param {Array} modifiers - list of modifiers
8011 * @param {String} requestingName - name of requesting modifier
8012 * @param {String} requestedName - name of requested modifier
8013 * @returns {Boolean}
8014 */
8015function isModifierRequired(modifiers, requestingName, requestedName) {
8016  var requesting = find(modifiers, function (_ref) {
8017    var name = _ref.name;
8018    return name === requestingName;
8019  });
8020
8021  var isRequired = !!requesting && modifiers.some(function (modifier) {
8022    return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;
8023  });
8024
8025  if (!isRequired) {
8026    var _requesting = '`' + requestingName + '`';
8027    var requested = '`' + requestedName + '`';
8028    console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');
8029  }
8030  return isRequired;
8031}
8032
8033/**
8034 * @function
8035 * @memberof Modifiers
8036 * @argument {Object} data - The data object generated by update method
8037 * @argument {Object} options - Modifiers configuration and options
8038 * @returns {Object} The data object, properly modified
8039 */
8040function arrow(data, options) {
8041  var _data$offsets$arrow;
8042
8043  // arrow depends on keepTogether in order to work
8044  if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {
8045    return data;
8046  }
8047
8048  var arrowElement = options.element;
8049
8050  // if arrowElement is a string, suppose it's a CSS selector
8051  if (typeof arrowElement === 'string') {
8052    arrowElement = data.instance.popper.querySelector(arrowElement);
8053
8054    // if arrowElement is not found, don't run the modifier
8055    if (!arrowElement) {
8056      return data;
8057    }
8058  } else {
8059    // if the arrowElement isn't a query selector we must check that the
8060    // provided DOM node is child of its popper node
8061    if (!data.instance.popper.contains(arrowElement)) {
8062      console.warn('WARNING: `arrow.element` must be child of its popper element!');
8063      return data;
8064    }
8065  }
8066
8067  var placement = data.placement.split('-')[0];
8068  var _data$offsets = data.offsets,
8069      popper = _data$offsets.popper,
8070      reference = _data$offsets.reference;
8071
8072  var isVertical = ['left', 'right'].indexOf(placement) !== -1;
8073
8074  var len = isVertical ? 'height' : 'width';
8075  var sideCapitalized = isVertical ? 'Top' : 'Left';
8076  var side = sideCapitalized.toLowerCase();
8077  var altSide = isVertical ? 'left' : 'top';
8078  var opSide = isVertical ? 'bottom' : 'right';
8079  var arrowElementSize = getOuterSizes(arrowElement)[len];
8080
8081  //
8082  // extends keepTogether behavior making sure the popper and its
8083  // reference have enough pixels in conjunction
8084  //
8085
8086  // top/left side
vendor: 5,392 bytes, lines 8087-8242
8087  if (reference[opSide] - arrowElementSize < popper[side]) {
8088    data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);
8089  }
8090  // bottom/right side
8091  if (reference[side] + arrowElementSize > popper[opSide]) {
8092    data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];
8093  }
8094  data.offsets.popper = getClientRect(data.offsets.popper);
8095
8096  // compute center of the popper
8097  var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;
8098
8099  // Compute the sideValue using the updated popper offsets
8100  // take popper margin in account because we don't have this info available
8101  var css = getStyleComputedProperty(data.instance.popper);
8102  var popperMarginSide = parseFloat(css['margin' + sideCapitalized]);
8103  var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width']);
8104  var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;
8105
8106  // prevent arrowElement from being placed not contiguously to its popper
8107  sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);
8108
8109  data.arrowElement = arrowElement;
8110  data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);
8111
8112  return data;
8113}
8114
8115/**
8116 * Get the opposite placement variation of the given one
8117 * @method
8118 * @memberof Popper.Utils
8119 * @argument {String} placement variation
8120 * @returns {String} flipped placement variation
8121 */
8122function getOppositeVariation(variation) {
8123  if (variation === 'end') {
8124    return 'start';
8125  } else if (variation === 'start') {
8126    return 'end';
8127  }
8128  return variation;
8129}
8130
8131/**
8132 * List of accepted placements to use as values of the `placement` option.<br />
8133 * Valid placements are:
8134 * - `auto`
8135 * - `top`
8136 * - `right`
8137 * - `bottom`
8138 * - `left`
8139 *
8140 * Each placement can have a variation from this list:
8141 * - `-start`
8142 * - `-end`
8143 *
8144 * Variations are interpreted easily if you think of them as the left to right
8145 * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`
8146 * is right.<br />
8147 * Vertically (`left` and `right`), `start` is top and `end` is bottom.
8148 *
8149 * Some valid examples are:
8150 * - `top-end` (on top of reference, right aligned)
8151 * - `right-start` (on right of reference, top aligned)
8152 * - `bottom` (on bottom, centered)
8153 * - `auto-end` (on the side with more space available, alignment depends by placement)
8154 *
8155 * @static
8156 * @type {Array}
8157 * @enum {String}
8158 * @readonly
8159 * @method placements
8160 * @memberof Popper
8161 */
8162var placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];
8163
8164// Get rid of `auto` `auto-start` and `auto-end`
8165var validPlacements = placements.slice(3);
8166
8167/**
8168 * Given an initial placement, returns all the subsequent placements
8169 * clockwise (or counter-clockwise).
8170 *
8171 * @method
8172 * @memberof Popper.Utils
8173 * @argument {String} placement - A valid placement (it accepts variations)
8174 * @argument {Boolean} counter - Set to true to walk the placements counterclockwise
8175 * @returns {Array} placements including their variations
8176 */
8177function clockwise(placement) {
8178  var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
8179
8180  var index = validPlacements.indexOf(placement);
8181  var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));
8182  return counter ? arr.reverse() : arr;
8183}
8184
8185var BEHAVIORS = {
8186  FLIP: 'flip',
8187  CLOCKWISE: 'clockwise',
8188  COUNTERCLOCKWISE: 'counterclockwise'
8189};
8190
8191/**
8192 * @function
8193 * @memberof Modifiers
8194 * @argument {Object} data - The data object generated by update method
8195 * @argument {Object} options - Modifiers configuration and options
8196 * @returns {Object} The data object, properly modified
8197 */
8198function flip(data, options) {
8199  // if `inner` modifier is enabled, we can't use the `flip` modifier
8200  if (isModifierEnabled(data.instance.modifiers, 'inner')) {
8201    return data;
8202  }
8203
8204  if (data.flipped && data.placement === data.originalPlacement) {
8205    // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides
8206    return data;
8207  }
8208
8209  var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);
8210
8211  var placement = data.placement.split('-')[0];
8212  var placementOpposite = getOppositePlacement(placement);
8213  var variation = data.placement.split('-')[1] || '';
8214
8215  var flipOrder = [];
8216
8217  switch (options.behavior) {
8218    case BEHAVIORS.FLIP:
8219      flipOrder = [placement, placementOpposite];
8220      break;
8221    case BEHAVIORS.CLOCKWISE:
8222      flipOrder = clockwise(placement);
8223      break;
8224    case BEHAVIORS.COUNTERCLOCKWISE:
8225      flipOrder = clockwise(placement, true);
8226      break;
8227    default:
8228      flipOrder = options.behavior;
8229  }
8230
8231  flipOrder.forEach(function (step, index) {
8232    if (placement !== step || flipOrder.length === index + 1) {
8233      return data;
8234    }
8235
8236    placement = data.placement.split('-')[0];
8237    placementOpposite = getOppositePlacement(placement);
8238
8239    var popperOffsets = data.offsets.popper;
8240    var refOffsets = data.offsets.reference;
8241
8242    // using floor because the reference offsets may contain decimals we are not going to consider here
vendor: 36,132 bytes, lines 8243-9250
8243    var floor = Math.floor;
8244    var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);
8245
8246    var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);
8247    var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);
8248    var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);
8249    var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);
8250
8251    var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;
8252
8253    // flip the variation if required
8254    var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;
8255
8256    // flips variation if reference element overflows boundaries
8257    var flippedVariationByRef = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);
8258
8259    // flips variation if popper content overflows boundaries
8260    var flippedVariationByContent = !!options.flipVariationsByContent && (isVertical && variation === 'start' && overflowsRight || isVertical && variation === 'end' && overflowsLeft || !isVertical && variation === 'start' && overflowsBottom || !isVertical && variation === 'end' && overflowsTop);
8261
8262    var flippedVariation = flippedVariationByRef || flippedVariationByContent;
8263
8264    if (overlapsRef || overflowsBoundaries || flippedVariation) {
8265      // this boolean to detect any flip loop
8266      data.flipped = true;
8267
8268      if (overlapsRef || overflowsBoundaries) {
8269        placement = flipOrder[index + 1];
8270      }
8271
8272      if (flippedVariation) {
8273        variation = getOppositeVariation(variation);
8274      }
8275
8276      data.placement = placement + (variation ? '-' + variation : '');
8277
8278      // this object contains `position`, we want to preserve it along with
8279      // any additional property we may add in the future
8280      data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));
8281
8282      data = runModifiers(data.instance.modifiers, data, 'flip');
8283    }
8284  });
8285  return data;
8286}
8287
8288/**
8289 * @function
8290 * @memberof Modifiers
8291 * @argument {Object} data - The data object generated by update method
8292 * @argument {Object} options - Modifiers configuration and options
8293 * @returns {Object} The data object, properly modified
8294 */
8295function keepTogether(data) {
8296  var _data$offsets = data.offsets,
8297      popper = _data$offsets.popper,
8298      reference = _data$offsets.reference;
8299
8300  var placement = data.placement.split('-')[0];
8301  var floor = Math.floor;
8302  var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;
8303  var side = isVertical ? 'right' : 'bottom';
8304  var opSide = isVertical ? 'left' : 'top';
8305  var measurement = isVertical ? 'width' : 'height';
8306
8307  if (popper[side] < floor(reference[opSide])) {
8308    data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];
8309  }
8310  if (popper[opSide] > floor(reference[side])) {
8311    data.offsets.popper[opSide] = floor(reference[side]);
8312  }
8313
8314  return data;
8315}
8316
8317/**
8318 * Converts a string containing value + unit into a px value number
8319 * @function
8320 * @memberof {modifiers~offset}
8321 * @private
8322 * @argument {String} str - Value + unit string
8323 * @argument {String} measurement - `height` or `width`
8324 * @argument {Object} popperOffsets
8325 * @argument {Object} referenceOffsets
8326 * @returns {Number|String}
8327 * Value in pixels, or original string if no values were extracted
8328 */
8329function toValue(str, measurement, popperOffsets, referenceOffsets) {
8330  // separate value from unit
8331  var split = str.match(/((?:\-|\+)?\d*\.?\d*)(.*)/);
8332  var value = +split[1];
8333  var unit = split[2];
8334
8335  // If it's not a number it's an operator, I guess
8336  if (!value) {
8337    return str;
8338  }
8339
8340  if (unit.indexOf('%') === 0) {
8341    var element = void 0;
8342    switch (unit) {
8343      case '%p':
8344        element = popperOffsets;
8345        break;
8346      case '%':
8347      case '%r':
8348      default:
8349        element = referenceOffsets;
8350    }
8351
8352    var rect = getClientRect(element);
8353    return rect[measurement] / 100 * value;
8354  } else if (unit === 'vh' || unit === 'vw') {
8355    // if is a vh or vw, we calculate the size based on the viewport
8356    var size = void 0;
8357    if (unit === 'vh') {
8358      size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);
8359    } else {
8360      size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);
8361    }
8362    return size / 100 * value;
8363  } else {
8364    // if is an explicit pixel unit, we get rid of the unit and keep the value
8365    // if is an implicit unit, it's px, and we return just the value
8366    return value;
8367  }
8368}
8369
8370/**
8371 * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.
8372 * @function
8373 * @memberof {modifiers~offset}
8374 * @private
8375 * @argument {String} offset
8376 * @argument {Object} popperOffsets
8377 * @argument {Object} referenceOffsets
8378 * @argument {String} basePlacement
8379 * @returns {Array} a two cells array with x and y offsets in numbers
8380 */
8381function parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {
8382  var offsets = [0, 0];
8383
8384  // Use height if placement is left or right and index is 0 otherwise use width
8385  // in this way the first offset will use an axis and the second one
8386  // will use the other one
8387  var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;
8388
8389  // Split the offset string to obtain a list of values and operands
8390  // The regex addresses values with the plus or minus sign in front (+10, -20, etc)
8391  var fragments = offset.split(/(\+|\-)/).map(function (frag) {
8392    return frag.trim();
8393  });
8394
8395  // Detect if the offset string contains a pair of values or a single one
8396  // they could be separated by comma or space
8397  var divider = fragments.indexOf(find(fragments, function (frag) {
8398    return frag.search(/,|\s/) !== -1;
8399  }));
8400
8401  if (fragments[divider] && fragments[divider].indexOf(',') === -1) {
8402    console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');
8403  }
8404
8405  // If divider is found, we divide the list of values and operands to divide
8406  // them by ofset X and Y.
8407  var splitRegex = /\s*,\s*|\s+/;
8408  var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];
8409
8410  // Convert the values with units to absolute pixels to allow our computations
8411  ops = ops.map(function (op, index) {
8412    // Most of the units rely on the orientation of the popper
8413    var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';
8414    var mergeWithPrevious = false;
8415    return op
8416    // This aggregates any `+` or `-` sign that aren't considered operators
8417    // e.g.: 10 + +5 => [10, +, +5]
8418    .reduce(function (a, b) {
8419      if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {
8420        a[a.length - 1] = b;
8421        mergeWithPrevious = true;
8422        return a;
8423      } else if (mergeWithPrevious) {
8424        a[a.length - 1] += b;
8425        mergeWithPrevious = false;
8426        return a;
8427      } else {
8428        return a.concat(b);
8429      }
8430    }, [])
8431    // Here we convert the string values into number values (in px)
8432    .map(function (str) {
8433      return toValue(str, measurement, popperOffsets, referenceOffsets);
8434    });
8435  });
8436
8437  // Loop trough the offsets arrays and execute the operations
8438  ops.forEach(function (op, index) {
8439    op.forEach(function (frag, index2) {
8440      if (isNumeric(frag)) {
8441        offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);
8442      }
8443    });
8444  });
8445  return offsets;
8446}
8447
8448/**
8449 * @function
8450 * @memberof Modifiers
8451 * @argument {Object} data - The data object generated by update method
8452 * @argument {Object} options - Modifiers configuration and options
8453 * @argument {Number|String} options.offset=0
8454 * The offset value as described in the modifier description
8455 * @returns {Object} The data object, properly modified
8456 */
8457function offset(data, _ref) {
8458  var offset = _ref.offset;
8459  var placement = data.placement,
8460      _data$offsets = data.offsets,
8461      popper = _data$offsets.popper,
8462      reference = _data$offsets.reference;
8463
8464  var basePlacement = placement.split('-')[0];
8465
8466  var offsets = void 0;
8467  if (isNumeric(+offset)) {
8468    offsets = [+offset, 0];
8469  } else {
8470    offsets = parseOffset(offset, popper, reference, basePlacement);
8471  }
8472
8473  if (basePlacement === 'left') {
8474    popper.top += offsets[0];
8475    popper.left -= offsets[1];
8476  } else if (basePlacement === 'right') {
8477    popper.top += offsets[0];
8478    popper.left += offsets[1];
8479  } else if (basePlacement === 'top') {
8480    popper.left += offsets[0];
8481    popper.top -= offsets[1];
8482  } else if (basePlacement === 'bottom') {
8483    popper.left += offsets[0];
8484    popper.top += offsets[1];
8485  }
8486
8487  data.popper = popper;
8488  return data;
8489}
8490
8491/**
8492 * @function
8493 * @memberof Modifiers
8494 * @argument {Object} data - The data object generated by `update` method
8495 * @argument {Object} options - Modifiers configuration and options
8496 * @returns {Object} The data object, properly modified
8497 */
8498function preventOverflow(data, options) {
8499  var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);
8500
8501  // If offsetParent is the reference element, we really want to
8502  // go one step up and use the next offsetParent as reference to
8503  // avoid to make this modifier completely useless and look like broken
8504  if (data.instance.reference === boundariesElement) {
8505    boundariesElement = getOffsetParent(boundariesElement);
8506  }
8507
8508  // NOTE: DOM access here
8509  // resets the popper's position so that the document size can be calculated excluding
8510  // the size of the popper element itself
8511  var transformProp = getSupportedPropertyName('transform');
8512  var popperStyles = data.instance.popper.style; // assignment to help minification
8513  var top = popperStyles.top,
8514      left = popperStyles.left,
8515      transform = popperStyles[transformProp];
8516
8517  popperStyles.top = '';
8518  popperStyles.left = '';
8519  popperStyles[transformProp] = '';
8520
8521  var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed);
8522
8523  // NOTE: DOM access here
8524  // restores the original style properties after the offsets have been computed
8525  popperStyles.top = top;
8526  popperStyles.left = left;
8527  popperStyles[transformProp] = transform;
8528
8529  options.boundaries = boundaries;
8530
8531  var order = options.priority;
8532  var popper = data.offsets.popper;
8533
8534  var check = {
8535    primary: function primary(placement) {
8536      var value = popper[placement];
8537      if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {
8538        value = Math.max(popper[placement], boundaries[placement]);
8539      }
8540      return defineProperty({}, placement, value);
8541    },
8542    secondary: function secondary(placement) {
8543      var mainSide = placement === 'right' ? 'left' : 'top';
8544      var value = popper[mainSide];
8545      if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {
8546        value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));
8547      }
8548      return defineProperty({}, mainSide, value);
8549    }
8550  };
8551
8552  order.forEach(function (placement) {
8553    var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';
8554    popper = _extends({}, popper, check[side](placement));
8555  });
8556
8557  data.offsets.popper = popper;
8558
8559  return data;
8560}
8561
8562/**
8563 * @function
8564 * @memberof Modifiers
8565 * @argument {Object} data - The data object generated by `update` method
8566 * @argument {Object} options - Modifiers configuration and options
8567 * @returns {Object} The data object, properly modified
8568 */
8569function shift(data) {
8570  var placement = data.placement;
8571  var basePlacement = placement.split('-')[0];
8572  var shiftvariation = placement.split('-')[1];
8573
8574  // if shift shiftvariation is specified, run the modifier
8575  if (shiftvariation) {
8576    var _data$offsets = data.offsets,
8577        reference = _data$offsets.reference,
8578        popper = _data$offsets.popper;
8579
8580    var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;
8581    var side = isVertical ? 'left' : 'top';
8582    var measurement = isVertical ? 'width' : 'height';
8583
8584    var shiftOffsets = {
8585      start: defineProperty({}, side, reference[side]),
8586      end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])
8587    };
8588
8589    data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);
8590  }
8591
8592  return data;
8593}
8594
8595/**
8596 * @function
8597 * @memberof Modifiers
8598 * @argument {Object} data - The data object generated by update method
8599 * @argument {Object} options - Modifiers configuration and options
8600 * @returns {Object} The data object, properly modified
8601 */
8602function hide(data) {
8603  if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {
8604    return data;
8605  }
8606
8607  var refRect = data.offsets.reference;
8608  var bound = find(data.instance.modifiers, function (modifier) {
8609    return modifier.name === 'preventOverflow';
8610  }).boundaries;
8611
8612  if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {
8613    // Avoid unnecessary DOM access if visibility hasn't changed
8614    if (data.hide === true) {
8615      return data;
8616    }
8617
8618    data.hide = true;
8619    data.attributes['x-out-of-boundaries'] = '';
8620  } else {
8621    // Avoid unnecessary DOM access if visibility hasn't changed
8622    if (data.hide === false) {
8623      return data;
8624    }
8625
8626    data.hide = false;
8627    data.attributes['x-out-of-boundaries'] = false;
8628  }
8629
8630  return data;
8631}
8632
8633/**
8634 * @function
8635 * @memberof Modifiers
8636 * @argument {Object} data - The data object generated by `update` method
8637 * @argument {Object} options - Modifiers configuration and options
8638 * @returns {Object} The data object, properly modified
8639 */
8640function inner(data) {
8641  var placement = data.placement;
8642  var basePlacement = placement.split('-')[0];
8643  var _data$offsets = data.offsets,
8644      popper = _data$offsets.popper,
8645      reference = _data$offsets.reference;
8646
8647  var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;
8648
8649  var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;
8650
8651  popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);
8652
8653  data.placement = getOppositePlacement(placement);
8654  data.offsets.popper = getClientRect(popper);
8655
8656  return data;
8657}
8658
8659/**
8660 * Modifier function, each modifier can have a function of this type assigned
8661 * to its `fn` property.<br />
8662 * These functions will be called on each update, this means that you must
8663 * make sure they are performant enough to avoid performance bottlenecks.
8664 *
8665 * @function ModifierFn
8666 * @argument {dataObject} data - The data object generated by `update` method
8667 * @argument {Object} options - Modifiers configuration and options
8668 * @returns {dataObject} The data object, properly modified
8669 */
8670
8671/**
8672 * Modifiers are plugins used to alter the behavior of your poppers.<br />
8673 * Popper.js uses a set of 9 modifiers to provide all the basic functionalities
8674 * needed by the library.
8675 *
8676 * Usually you don't want to override the `order`, `fn` and `onLoad` props.
8677 * All the other properties are configurations that could be tweaked.
8678 * @namespace modifiers
8679 */
8680var modifiers = {
8681  /**
8682   * Modifier used to shift the popper on the start or end of its reference
8683   * element.<br />
8684   * It will read the variation of the `placement` property.<br />
8685   * It can be one either `-end` or `-start`.
8686   * @memberof modifiers
8687   * @inner
8688   */
8689  shift: {
8690    /** @prop {number} order=100 - Index used to define the order of execution */
8691    order: 100,
8692    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
8693    enabled: true,
8694    /** @prop {ModifierFn} */
8695    fn: shift
8696  },
8697
8698  /**
8699   * The `offset` modifier can shift your popper on both its axis.
8700   *
8701   * It accepts the following units:
8702   * - `px` or unit-less, interpreted as pixels
8703   * - `%` or `%r`, percentage relative to the length of the reference element
8704   * - `%p`, percentage relative to the length of the popper element
8705   * - `vw`, CSS viewport width unit
8706   * - `vh`, CSS viewport height unit
8707   *
8708   * For length is intended the main axis relative to the placement of the popper.<br />
8709   * This means that if the placement is `top` or `bottom`, the length will be the
8710   * `width`. In case of `left` or `right`, it will be the `height`.
8711   *
8712   * You can provide a single value (as `Number` or `String`), or a pair of values
8713   * as `String` divided by a comma or one (or more) white spaces.<br />
8714   * The latter is a deprecated method because it leads to confusion and will be
8715   * removed in v2.<br />
8716   * Additionally, it accepts additions and subtractions between different units.
8717   * Note that multiplications and divisions aren't supported.
8718   *
8719   * Valid examples are:
8720   * ```
8721   * 10
8722   * '10%'
8723   * '10, 10'
8724   * '10%, 10'
8725   * '10 + 10%'
8726   * '10 - 5vh + 3%'
8727   * '-10px + 5vh, 5px - 6%'
8728   * ```
8729   * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap
8730   * > with their reference element, unfortunately, you will have to disable the `flip` modifier.
8731   * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).
8732   *
8733   * @memberof modifiers
8734   * @inner
8735   */
8736  offset: {
8737    /** @prop {number} order=200 - Index used to define the order of execution */
8738    order: 200,
8739    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
8740    enabled: true,
8741    /** @prop {ModifierFn} */
8742    fn: offset,
8743    /** @prop {Number|String} offset=0
8744     * The offset value as described in the modifier description
8745     */
8746    offset: 0
8747  },
8748
8749  /**
8750   * Modifier used to prevent the popper from being positioned outside the boundary.
8751   *
8752   * A scenario exists where the reference itself is not within the boundaries.<br />
8753   * We can say it has "escaped the boundaries" — or just "escaped".<br />
8754   * In this case we need to decide whether the popper should either:
8755   *
8756   * - detach from the reference and remain "trapped" in the boundaries, or
8757   * - if it should ignore the boundary and "escape with its reference"
8758   *
8759   * When `escapeWithReference` is set to`true` and reference is completely
8760   * outside its boundaries, the popper will overflow (or completely leave)
8761   * the boundaries in order to remain attached to the edge of the reference.
8762   *
8763   * @memberof modifiers
8764   * @inner
8765   */
8766  preventOverflow: {
8767    /** @prop {number} order=300 - Index used to define the order of execution */
8768    order: 300,
8769    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
8770    enabled: true,
8771    /** @prop {ModifierFn} */
8772    fn: preventOverflow,
8773    /**
8774     * @prop {Array} [priority=['left','right','top','bottom']]
8775     * Popper will try to prevent overflow following these priorities by default,
8776     * then, it could overflow on the left and on top of the `boundariesElement`
8777     */
8778    priority: ['left', 'right', 'top', 'bottom'],
8779    /**
8780     * @prop {number} padding=5
8781     * Amount of pixel used to define a minimum distance between the boundaries
8782     * and the popper. This makes sure the popper always has a little padding
8783     * between the edges of its container
8784     */
8785    padding: 5,
8786    /**
8787     * @prop {String|HTMLElement} boundariesElement='scrollParent'
8788     * Boundaries used by the modifier. Can be `scrollParent`, `window`,
8789     * `viewport` or any DOM element.
8790     */
8791    boundariesElement: 'scrollParent'
8792  },
8793
8794  /**
8795   * Modifier used to make sure the reference and its popper stay near each other
8796   * without leaving any gap between the two. Especially useful when the arrow is
8797   * enabled and you want to ensure that it points to its reference element.
8798   * It cares only about the first axis. You can still have poppers with margin
8799   * between the popper and its reference element.
8800   * @memberof modifiers
8801   * @inner
8802   */
8803  keepTogether: {
8804    /** @prop {number} order=400 - Index used to define the order of execution */
8805    order: 400,
8806    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
8807    enabled: true,
8808    /** @prop {ModifierFn} */
8809    fn: keepTogether
8810  },
8811
8812  /**
8813   * This modifier is used to move the `arrowElement` of the popper to make
8814   * sure it is positioned between the reference element and its popper element.
8815   * It will read the outer size of the `arrowElement` node to detect how many
8816   * pixels of conjunction are needed.
8817   *
8818   * It has no effect if no `arrowElement` is provided.
8819   * @memberof modifiers
8820   * @inner
8821   */
8822  arrow: {
8823    /** @prop {number} order=500 - Index used to define the order of execution */
8824    order: 500,
8825    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
8826    enabled: true,
8827    /** @prop {ModifierFn} */
8828    fn: arrow,
8829    /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */
8830    element: '[x-arrow]'
8831  },
8832
8833  /**
8834   * Modifier used to flip the popper's placement when it starts to overlap its
8835   * reference element.
8836   *
8837   * Requires the `preventOverflow` modifier before it in order to work.
8838   *
8839   * **NOTE:** this modifier will interrupt the current update cycle and will
8840   * restart it if it detects the need to flip the placement.
8841   * @memberof modifiers
8842   * @inner
8843   */
8844  flip: {
8845    /** @prop {number} order=600 - Index used to define the order of execution */
8846    order: 600,
8847    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
8848    enabled: true,
8849    /** @prop {ModifierFn} */
8850    fn: flip,
8851    /**
8852     * @prop {String|Array} behavior='flip'
8853     * The behavior used to change the popper's placement. It can be one of
8854     * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid
8855     * placements (with optional variations)
8856     */
8857    behavior: 'flip',
8858    /**
8859     * @prop {number} padding=5
8860     * The popper will flip if it hits the edges of the `boundariesElement`
8861     */
8862    padding: 5,
8863    /**
8864     * @prop {String|HTMLElement} boundariesElement='viewport'
8865     * The element which will define the boundaries of the popper position.
8866     * The popper will never be placed outside of the defined boundaries
8867     * (except if `keepTogether` is enabled)
8868     */
8869    boundariesElement: 'viewport',
8870    /**
8871     * @prop {Boolean} flipVariations=false
8872     * The popper will switch placement variation between `-start` and `-end` when
8873     * the reference element overlaps its boundaries.
8874     *
8875     * The original placement should have a set variation.
8876     */
8877    flipVariations: false,
8878    /**
8879     * @prop {Boolean} flipVariationsByContent=false
8880     * The popper will switch placement variation between `-start` and `-end` when
8881     * the popper element overlaps its reference boundaries.
8882     *
8883     * The original placement should have a set variation.
8884     */
8885    flipVariationsByContent: false
8886  },
8887
8888  /**
8889   * Modifier used to make the popper flow toward the inner of the reference element.
8890   * By default, when this modifier is disabled, the popper will be placed outside
8891   * the reference element.
8892   * @memberof modifiers
8893   * @inner
8894   */
8895  inner: {
8896    /** @prop {number} order=700 - Index used to define the order of execution */
8897    order: 700,
8898    /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */
8899    enabled: false,
8900    /** @prop {ModifierFn} */
8901    fn: inner
8902  },
8903
8904  /**
8905   * Modifier used to hide the popper when its reference element is outside of the
8906   * popper boundaries. It will set a `x-out-of-boundaries` attribute which can
8907   * be used to hide with a CSS selector the popper when its reference is
8908   * out of boundaries.
8909   *
8910   * Requires the `preventOverflow` modifier before it in order to work.
8911   * @memberof modifiers
8912   * @inner
8913   */
8914  hide: {
8915    /** @prop {number} order=800 - Index used to define the order of execution */
8916    order: 800,
8917    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
8918    enabled: true,
8919    /** @prop {ModifierFn} */
8920    fn: hide
8921  },
8922
8923  /**
8924   * Computes the style that will be applied to the popper element to gets
8925   * properly positioned.
8926   *
8927   * Note that this modifier will not touch the DOM, it just prepares the styles
8928   * so that `applyStyle` modifier can apply it. This separation is useful
8929   * in case you need to replace `applyStyle` with a custom implementation.
8930   *
8931   * This modifier has `850` as `order` value to maintain backward compatibility
8932   * with previous versions of Popper.js. Expect the modifiers ordering method
8933   * to change in future major versions of the library.
8934   *
8935   * @memberof modifiers
8936   * @inner
8937   */
8938  computeStyle: {
8939    /** @prop {number} order=850 - Index used to define the order of execution */
8940    order: 850,
8941    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
8942    enabled: true,
8943    /** @prop {ModifierFn} */
8944    fn: computeStyle,
8945    /**
8946     * @prop {Boolean} gpuAcceleration=true
8947     * If true, it uses the CSS 3D transformation to position the popper.
8948     * Otherwise, it will use the `top` and `left` properties
8949     */
8950    gpuAcceleration: true,
8951    /**
8952     * @prop {string} [x='bottom']
8953     * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.
8954     * Change this if your popper should grow in a direction different from `bottom`
8955     */
8956    x: 'bottom',
8957    /**
8958     * @prop {string} [x='left']
8959     * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.
8960     * Change this if your popper should grow in a direction different from `right`
8961     */
8962    y: 'right'
8963  },
8964
8965  /**
8966   * Applies the computed styles to the popper element.
8967   *
8968   * All the DOM manipulations are limited to this modifier. This is useful in case
8969   * you want to integrate Popper.js inside a framework or view library and you
8970   * want to delegate all the DOM manipulations to it.
8971   *
8972   * Note that if you disable this modifier, you must make sure the popper element
8973   * has its position set to `absolute` before Popper.js can do its work!
8974   *
8975   * Just disable this modifier and define your own to achieve the desired effect.
8976   *
8977   * @memberof modifiers
8978   * @inner
8979   */
8980  applyStyle: {
8981    /** @prop {number} order=900 - Index used to define the order of execution */
8982    order: 900,
8983    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
8984    enabled: true,
8985    /** @prop {ModifierFn} */
8986    fn: applyStyle,
8987    /** @prop {Function} */
8988    onLoad: applyStyleOnLoad,
8989    /**
8990     * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier
8991     * @prop {Boolean} gpuAcceleration=true
8992     * If true, it uses the CSS 3D transformation to position the popper.
8993     * Otherwise, it will use the `top` and `left` properties
8994     */
8995    gpuAcceleration: undefined
8996  }
8997};
8998
8999/**
9000 * The `dataObject` is an object containing all the information used by Popper.js.
9001 * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.
9002 * @name dataObject
9003 * @property {Object} data.instance The Popper.js instance
9004 * @property {String} data.placement Placement applied to popper
9005 * @property {String} data.originalPlacement Placement originally defined on init
9006 * @property {Boolean} data.flipped True if popper has been flipped by flip modifier
9007 * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper
9008 * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier
9009 * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)
9010 * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)
9011 * @property {Object} data.boundaries Offsets of the popper boundaries
9012 * @property {Object} data.offsets The measurements of popper, reference and arrow elements
9013 * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values
9014 * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values
9015 * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0
9016 */
9017
9018/**
9019 * Default options provided to Popper.js constructor.<br />
9020 * These can be overridden using the `options` argument of Popper.js.<br />
9021 * To override an option, simply pass an object with the same
9022 * structure of the `options` object, as the 3rd argument. For example:
9023 * ```
9024 * new Popper(ref, pop, {
9025 *   modifiers: {
9026 *     preventOverflow: { enabled: false }
9027 *   }
9028 * })
9029 * ```
9030 * @type {Object}
9031 * @static
9032 * @memberof Popper
9033 */
9034var Defaults = {
9035  /**
9036   * Popper's placement.
9037   * @prop {Popper.placements} placement='bottom'
9038   */
9039  placement: 'bottom',
9040
9041  /**
9042   * Set this to true if you want popper to position it self in 'fixed' mode
9043   * @prop {Boolean} positionFixed=false
9044   */
9045  positionFixed: false,
9046
9047  /**
9048   * Whether events (resize, scroll) are initially enabled.
9049   * @prop {Boolean} eventsEnabled=true
9050   */
9051  eventsEnabled: true,
9052
9053  /**
9054   * Set to true if you want to automatically remove the popper when
9055   * you call the `destroy` method.
9056   * @prop {Boolean} removeOnDestroy=false
9057   */
9058  removeOnDestroy: false,
9059
9060  /**
9061   * Callback called when the popper is created.<br />
9062   * By default, it is set to no-op.<br />
9063   * Access Popper.js instance with `data.instance`.
9064   * @prop {onCreate}
9065   */
9066  onCreate: function onCreate() {},
9067
9068  /**
9069   * Callback called when the popper is updated. This callback is not called
9070   * on the initialization/creation of the popper, but only on subsequent
9071   * updates.<br />
9072   * By default, it is set to no-op.<br />
9073   * Access Popper.js instance with `data.instance`.
9074   * @prop {onUpdate}
9075   */
9076  onUpdate: function onUpdate() {},
9077
9078  /**
9079   * List of modifiers used to modify the offsets before they are applied to the popper.
9080   * They provide most of the functionalities of Popper.js.
9081   * @prop {modifiers}
9082   */
9083  modifiers: modifiers
9084};
9085
9086/**
9087 * @callback onCreate
9088 * @param {dataObject} data
9089 */
9090
9091/**
9092 * @callback onUpdate
9093 * @param {dataObject} data
9094 */
9095
9096// Utils
9097// Methods
9098var Popper = function () {
9099  /**
9100   * Creates a new Popper.js instance.
9101   * @class Popper
9102   * @param {Element|referenceObject} reference - The reference element used to position the popper
9103   * @param {Element} popper - The HTML / XML element used as the popper
9104   * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)
9105   * @return {Object} instance - The generated Popper.js instance
9106   */
9107  function Popper(reference, popper) {
9108    var _this = this;
9109
9110    var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
9111    classCallCheck(this, Popper);
9112
9113    this.scheduleUpdate = function () {
9114      return requestAnimationFrame(_this.update);
9115    };
9116
9117    // make update() debounced, so that it only runs at most once-per-tick
9118    this.update = debounce(this.update.bind(this));
9119
9120    // with {} we create a new object with the options inside it
9121    this.options = _extends({}, Popper.Defaults, options);
9122
9123    // init state
9124    this.state = {
9125      isDestroyed: false,
9126      isCreated: false,
9127      scrollParents: []
9128    };
9129
9130    // get reference and popper elements (allow jQuery wrappers)
9131    this.reference = reference && reference.jquery ? reference[0] : reference;
9132    this.popper = popper && popper.jquery ? popper[0] : popper;
9133
9134    // Deep merge modifiers options
9135    this.options.modifiers = {};
9136    Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {
9137      _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});
9138    });
9139
9140    // Refactoring modifiers' list (Object => Array)
9141    this.modifiers = Object.keys(this.options.modifiers).map(function (name) {
9142      return _extends({
9143        name: name
9144      }, _this.options.modifiers[name]);
9145    })
9146    // sort the modifiers by order
9147    .sort(function (a, b) {
9148      return a.order - b.order;
9149    });
9150
9151    // modifiers have the ability to execute arbitrary code when Popper.js get inited
9152    // such code is executed in the same order of its modifier
9153    // they could add new properties to their options configuration
9154    // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!
9155    this.modifiers.forEach(function (modifierOptions) {
9156      if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {
9157        modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);
9158      }
9159    });
9160
9161    // fire the first update to position the popper in the right place
9162    this.update();
9163
9164    var eventsEnabled = this.options.eventsEnabled;
9165    if (eventsEnabled) {
9166      // setup event listeners, they will take care of update the position in specific situations
9167      this.enableEventListeners();
9168    }
9169
9170    this.state.eventsEnabled = eventsEnabled;
9171  }
9172
9173  // We can't use class properties because they don't get listed in the
9174  // class prototype and break stuff like Sinon stubs
9175
9176
9177  createClass(Popper, [{
9178    key: 'update',
9179    value: function update$$1() {
9180      return update.call(this);
9181    }
9182  }, {
9183    key: 'destroy',
9184    value: function destroy$$1() {
9185      return destroy.call(this);
9186    }
9187  }, {
9188    key: 'enableEventListeners',
9189    value: function enableEventListeners$$1() {
9190      return enableEventListeners.call(this);
9191    }
9192  }, {
9193    key: 'disableEventListeners',
9194    value: function disableEventListeners$$1() {
9195      return disableEventListeners.call(this);
9196    }
9197
9198    /**
9199     * Schedules an update. It will run on the next UI update available.
9200     * @method scheduleUpdate
9201     * @memberof Popper
9202     */
9203
9204
9205    /**
9206     * Collection of utilities useful when writing custom modifiers.
9207     * Starting from version 1.7, this method is available only if you
9208     * include `popper-utils.js` before `popper.js`.
9209     *
9210     * **DEPRECATION**: This way to access PopperUtils is deprecated
9211     * and will be removed in v2! Use the PopperUtils module directly instead.
9212     * Due to the high instability of the methods contained in Utils, we can't
9213     * guarantee them to follow semver. Use them at your own risk!
9214     * @static
9215     * @private
9216     * @type {Object}
9217     * @deprecated since version 1.8
9218     * @member Utils
9219     * @memberof Popper
9220     */
9221
9222  }]);
9223  return Popper;
9224}();
9225
9226/**
9227 * The `referenceObject` is an object that provides an interface compatible with Popper.js
9228 * and lets you use it as replacement of a real DOM node.<br />
9229 * You can use this method to position a popper relatively to a set of coordinates
9230 * in case you don't have a DOM node to use as reference.
9231 *
9232 * ```
9233 * new Popper(referenceObject, popperNode);
9234 * ```
9235 *
9236 * NB: This feature isn't supported in Internet Explorer 10.
9237 * @name referenceObject
9238 * @property {Function} data.getBoundingClientRect
9239 * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.
9240 * @property {number} data.clientWidth
9241 * An ES6 getter that will return the width of the virtual reference element.
9242 * @property {number} data.clientHeight
9243 * An ES6 getter that will return the height of the virtual reference element.
9244 */
9245
9246
9247Popper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;
9248Popper.placements = placements;
9249Popper.Defaults = Defaults;
9250
9251/* harmony default export */ __webpack_exports__["a"] = (Popper);
9252//# sourceMappingURL=popper.js.map
9253
9254/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(24)))
9255
9256/***/ }),
9257/* 32 */
9258/***/ (function(module, exports, __webpack_require__) {
9259
9260"use strict";
9261/*
9262object-assign
9263(c) Sindre Sorhus
9264@license MIT
vendor: 2,140 bytes, lines 9265-9358
9265*/
9266
9267
9268/* eslint-disable no-unused-vars */
9269var getOwnPropertySymbols = Object.getOwnPropertySymbols;
9270var hasOwnProperty = Object.prototype.hasOwnProperty;
9271var propIsEnumerable = Object.prototype.propertyIsEnumerable;
9272
9273function toObject(val) {
9274	if (val === null || val === undefined) {
9275		throw new TypeError('Object.assign cannot be called with null or undefined');
9276	}
9277
9278	return Object(val);
9279}
9280
9281function shouldUseNative() {
9282	try {
9283		if (!Object.assign) {
9284			return false;
9285		}
9286
9287		// Detect buggy property enumeration order in older V8 versions.
9288
9289		// https://bugs.chromium.org/p/v8/issues/detail?id=4118
9290		var test1 = new String('abc');  // eslint-disable-line no-new-wrappers
9291		test1[5] = 'de';
9292		if (Object.getOwnPropertyNames(test1)[0] === '5') {
9293			return false;
9294		}
9295
9296		// https://bugs.chromium.org/p/v8/issues/detail?id=3056
9297		var test2 = {};
9298		for (var i = 0; i < 10; i++) {
9299			test2['_' + String.fromCharCode(i)] = i;
9300		}
9301		var order2 = Object.getOwnPropertyNames(test2).map(function (n) {
9302			return test2[n];
9303		});
9304		if (order2.join('') !== '0123456789') {
9305			return false;
9306		}
9307
9308		// https://bugs.chromium.org/p/v8/issues/detail?id=3056
9309		var test3 = {};
9310		'abcdefghijklmnopqrst'.split('').forEach(function (letter) {
9311			test3[letter] = letter;
9312		});
9313		if (Object.keys(Object.assign({}, test3)).join('') !==
9314				'abcdefghijklmnopqrst') {
9315			return false;
9316		}
9317
9318		return true;
9319	} catch (err) {
9320		// We don't expect any of the above to throw, but better to be safe.
9321		return false;
9322	}
9323}
9324
9325module.exports = shouldUseNative() ? Object.assign : function (target, source) {
9326	var from;
9327	var to = toObject(target);
9328	var symbols;
9329
9330	for (var s = 1; s < arguments.length; s++) {
9331		from = Object(arguments[s]);
9332
9333		for (var key in from) {
9334			if (hasOwnProperty.call(from, key)) {
9335				to[key] = from[key];
9336			}
9337		}
9338
9339		if (getOwnPropertySymbols) {
9340			symbols = getOwnPropertySymbols(from);
9341			for (var i = 0; i < symbols.length; i++) {
9342				if (propIsEnumerable.call(from, symbols[i])) {
9343					to[symbols[i]] = from[symbols[i]];
9344				}
9345			}
9346		}
9347	}
9348
9349	return to;
9350};
9351
9352
9353/***/ }),
9354/* 33 */
9355/***/ (function(module, exports, __webpack_require__) {
9356
9357"use strict";
9358
9359var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
9360    if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
9361    return cooked;
9362};
9363Object.defineProperty(exports, "__esModule", { value: true });
9364exports.wrapperStyles = exports.maxHeight = exports.rows = exports.columns = exports.playerWidth = void 0;
9365var styled_components_1 = __webpack_require__(13);
9366exports.playerWidth = 450;
9367exports.columns = 8;
9368exports.rows = 11;
9369exports.maxHeight = (450 / exports.columns) * exports.rows;
9370exports.wrapperStyles = "\n  max-width: " + exports.playerWidth + "px;\n  width: 100%;\n  margin: auto;\n  max-height: -webkit-fill-available;\n  touch-action: none;\n  @media only screen and (min-width: " + exports.playerWidth + "px) {\n    height: " + exports.maxHeight + "px;\n  }\n";
9371var Wrapper = styled_components_1.default('div')(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n  ", "\n  ", "\n  ", "\n"], ["\n  ", "\n  ",
9372    "\n  ", "\n"])), exports.wrapperStyles, function (_a) {
9373    var colorFilter = _a.colorFilter;
9374    return (colorFilter ? "filter: " + colorFilter + ";" : '');
9375}, function (_a) {
9376    var extraStyles = _a.extraStyles;
9377    return extraStyles ? extraStyles : '';
9378});
9379exports.default = Wrapper;
9380var templateObject_1;
9381
9382
9383/***/ }),
9384/* 34 */
9385/***/ (function(module, exports, __webpack_require__) {
9386
9387"use strict";
9388
9389var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
9390    if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
9391    return cooked;
9392};
9393Object.defineProperty(exports, "__esModule", { value: true });
9394exports.BoringWrapper = void 0;
9395var React = __webpack_require__(0);
9396var styled_components_1 = __webpack_require__(13);
9397var react_router_dom_1 = __webpack_require__(21);
9398exports.BoringWrapper = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n  padding: 16px;\n  max-width: 600px;\n  margin: auto;\n  color: #ddd;\n  background-color: #555;\n  text-shadow: 0px 0px 8px black;\n  h1 {\n    border-bottom: 2px solid #ccc;\n  }\n  h2, h3 {\n    border-bottom: 1px solid #ccc;\n  }\n  a { color: #ddd; }\n"], ["\n  padding: 16px;\n  max-width: 600px;\n  margin: auto;\n  color: #ddd;\n  background-color: #555;\n  text-shadow: 0px 0px 8px black;\n  h1 {\n    border-bottom: 2px solid #ccc;\n  }\n  h2, h3 {\n    border-bottom: 1px solid #ccc;\n  }\n  a { color: #ddd; }\n"])));
9399var Plans = function (props) { return (React.createElement(exports.BoringWrapper, null,
9400    React.createElement(react_router_dom_1.Link, { to: "/" }, "Home"),
9401    React.createElement("h1", null, "To be implemented..."),
9402    React.createElement("p", null, "Sorry, this section is being left until the other bits actually work okay."),
9403    React.createElement("h2", null, "What exactly is this section though?"),
9404    React.createElement("p", null, "The idea is that if you're able to make some sequences and chain them on each player, then you'd be able to play them simultaneously and switch between them"),
9405    React.createElement("p", null,
9406        "If this works okay technically then what I'd ",
9407        React.createElement("em", null, "really"),
9408        " like to do is add a server so multiple devices could sync together, this would allow one person to play with multiple phones at once just like when using multiple pocket operators or to play together either with friends via the same link or some kind of Chatroulette style setup."),
9409    React.createElement("h2", null, "Okay... so any idea when you might actually do this?"),
9410    React.createElement("p", null, "Firstly I'd like to get the UI to be a bit more clear, it'd also be nice to get some help with the sounds and stuff cos I'm a total novice when it actually comes to that stuff (I just really like messing with TE gadgets)"),
9411    React.createElement("p", null, "I'm pretty sure it'd be quite easy to sync by just nesting the inactive players within the main one and playing them all"),
9412    React.createElement("h2", null, "Can I help?"),
9413    React.createElement("p", null, "Absolutely yes!"),
9414    React.createElement("ul", null,
9415        React.createElement("li", null, "It'd be amazing if someone could get better options for the 16 instruments on each player and give me an idea of how to do a more advanced drum machine style variant (what kind of optiosn could fit within the constraints of the UI)"),
9416        React.createElement("li", null, "Getting volumes all balanced out so each instrument is at a similar level of loudness would be cool too"),
9417        React.createElement("li", null, "Any ways of improving how browsers handle the audio, especially with iOS"),
9418        React.createElement("li", null, "Fix the issues with the Patterns button on Android"),
9419        React.createElement("li", null, "How to structure the tutorial(s), what's there right now is very rudimentary"),
9420        React.createElement("li", null, "If someone made a page with images to reference and stuff, along with improvements to the UI via icons"),
9421        React.createElement("li", null, "Ideas for what to do with the green/grey bit at the top, how could it best convey the relevant info at a given time")))); };
9422exports.default = Plans;
9423var templateObject_1;
9424
9425
9426/***/ }),
9427/* 35 */
9428/***/ (function(module, exports, __webpack_require__) {
9429
9430"use strict";
9431
9432Object.defineProperty(exports, "__esModule", { value: true });
9433exports.DesktopEventsProvider = void 0;
9434var React = __webpack_require__(0);
9435var context_1 = __webpack_require__(9);
9436var _constants_1 = __webpack_require__(1);
9437var desktopEventsContext = React.createContext({});
9438;
9439// as this is primarily a mobile touch screen, multitouch actions are React.used a lot
9440// this is an attempt to push all the mouse handling nonsense into one spot and convert it to match
9441exports.DesktopEventsProvider = function (props) {
9442    var _a = React.useState({}), held = _a[0], setHeld = _a[1];
9443    var _b = React.useContext(props.context), dispatch = _b.dispatch, state = _b.state;
9444    React.useEffect(function () {
9445        if (held.secondary
9446            && [
9447                _constants_1.CANCEL,
9448                _constants_1.VOLUME,
9449                _constants_1.PATTERN_COPY,
9450                _constants_1.SWING_SET,
9451                _constants_1.NOTE_COPY,
9452                _constants_1.CLEAR_TEMP,
9453                _constants_1.PLAY,
9454            ].includes(state.lastAction)) {
9455            setHeld({});
9456            dispatch({ type: 'hold_action_complete' });
9457        }
9458    }, [held, state.lastAction]);
9459    var holdAction = React.useCallback(function (dataset) {
9460        var basicActionButton = Object.keys(dataset).length === 1 && dataset.action;
9461        if (basicActionButton) {
9462            dispatch({ type: basicActionButton });
9463        }
9464        if (held.action === dataset.action
9465            && held.value === dataset.value
9466            || basicActionButton) {
9467            dispatch({
9468                type: _constants_1.CLEAR_TEMP,
9469                values: held,
9470            });
9471        }
9472        else if (held.action) {
9473            console.log({
9474                type: _constants_1.MULTI_TOUCH,
9475                value: [
9476                    held,
9477                    dataset,
9478                ],
9479            });
9480            dispatch({
9481                type: _constants_1.MULTI_TOUCH,
9482                value: [
9483                    held,
9484                    dataset,
9485                ],
9486            });
9487        }
9488    }, [held]);
9489    var onHold = React.useCallback(function (dataset) {
9490        if (dataset.secondary
9491            && dataset.secondary !== held.secondary) {
9492            setHeld(dataset);
9493            if ([_constants_1.PATTERN_CHAIN].includes(dataset.secondary)) {
9494                dispatch({
9495                    type: _constants_1.MULTI_TOUCH,
9496                    value: [dataset],
9497                });
9498            }
9499        }
9500        else {
9501            setHeld({});
9502        }
9503    }, [held]);
9504    return (React.createElement(desktopEventsContext.Provider, { value: {
9505            held: held,
9506            holdAction: holdAction,
9507            onHold: onHold,
9508        } }, props.children));
9509};
9510exports.DesktopEventsProvider.defaultProps = {
9511    context: context_1.default,
9512};
9513exports.default = desktopEventsContext;
9514
9515
9516/***/ }),
9517/* 36 */
9518/***/ (function(module, exports, __webpack_require__) {
9519
9520"use strict";
9521
9522var __assign = (this && this.__assign) || function () {
9523    __assign = Object.assign || function(t) {
9524        for (var s, i = 1, n = arguments.length; i < n; i++) {
9525            s = arguments[i];
9526            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
9527                t[p] = s[p];
9528        }
9529        return t;
9530    };
9531    return __assign.apply(this, arguments);
9532};
9533Object.defineProperty(exports, "__esModule", { value: true });
9534var React = __webpack_require__(0);
9535var Note_1 = __webpack_require__(66);
9536var _utils_1 = __webpack_require__(15);
9537var abstractPad_1 = __webpack_require__(20);
9538var context_1 = __webpack_require__(9);
9539;
9540var NotesPad = function (props) {
9541    var startNote = React.useContext(context_1.default).startNote;
9542    var keys = React.useState(_utils_1.generateKeys(+startNote[1]).map(function (v, idx) { return (__assign(__assign({}, v), { idx: idx })); }))[0];
9543    return (React.createElement(abstractPad_1.default, { bold: props.bold, italic: props.italic, activeChildIdx: props.activeChildIdx }, keys.map(function (note) { return (React.createElement(Note_1.default, __assign({ key: note.id }, note, { onHold: props.onHold, onRelease: props.onRelease, onClick: props.onClick, action: props.onClick ? props.action : undefined }))); })));
9544};
9545exports.default = NotesPad;
9546
9547
9548/***/ }),
9549/* 37 */
9550/***/ (function(module, exports, __webpack_require__) {
9551
9552"use strict";
9553
9554var __extends = (this && this.__extends) || (function () {
9555    var extendStatics = function (d, b) {
9556        extendStatics = Object.setPrototypeOf ||
9557            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
9558            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
9559        return extendStatics(d, b);
9560    };
9561    return function (d, b) {
9562        extendStatics(d, b);
9563        function __() { this.constructor = d; }
9564        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
9565    };
9566})();
9567var __assign = (this && this.__assign) || function () {
9568    __assign = Object.assign || function(t) {
9569        for (var s, i = 1, n = arguments.length; i < n; i++) {
9570            s = arguments[i];
9571            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
9572                t[p] = s[p];
9573        }
9574        return t;
9575    };
9576    return __assign.apply(this, arguments);
9577};
9578var __spreadArrays = (this && this.__spreadArrays) || function () {
9579    for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
9580    for (var r = Array(s), k = 0, i = 0; i < il; i++)
9581        for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
9582            r[k] = a[j];
9583    return r;
9584};
9585var _a, _b;
9586Object.defineProperty(exports, "__esModule", { value: true });
9587var Tone = __webpack_require__(16);
9588var _utils_1 = __webpack_require__(15);
9589var sources_1 = __webpack_require__(38);
9590var _sources_1 = __webpack_require__(39);
9591var _constants_1 = __webpack_require__(1);
9592var abstractPlayer_1 = __webpack_require__(78);
9593var MelodyPlayer = /** @class */ (function (_super) {
9594    __extends(MelodyPlayer, _super);
9595    function MelodyPlayer(initialState, childStaticValues) {
9596        var _this = _super.call(this, initialState, __assign(__assign({}, MelodyPlayer), childStaticValues)) || this;
9597        _this.getNewPlaysound = function (idx) {
9598            var newPlaySound = idx < 15
9599                ? _utils_1.generateInstrument(_this.static.sources[idx])
9600                : _sources_1.generateDrumMachine(_this.static.startNote, idx);
9601            newPlaySound.tone.toMaster();
9602            if (idx < 15) {
9603                newPlaySound.tone.volume.value = _this.lastState[_constants_1.VOLUME];
9604            }
9605            return newPlaySound;
9606        };
9607        var playerSounds = (childStaticValues === null || childStaticValues === void 0 ? void 0 : childStaticValues.sounds) || MelodyPlayer.sounds;
9608        _this.melodySound = playerSounds[0];
9609        _this.basicDrum = playerSounds[15],
9610            _this.basicDrum.tone.toMaster();
9611        return _this;
9612    }
9613    MelodyPlayer.prototype.reducer = function (actionType, state) {
9614        this.lastState = state; // TODO probably unreliable
9615        // todo status lights handler
9616        if (!this.currentChain.length) {
9617            this.currentChain = state[_constants_1.PATTERN_CHAIN];
9618        }
9619        if (this.patternInterval && this.lastState.view !== _constants_1.PATTERN_VIEW) {
9620            this.stopPatternFlashing();
9621        }
9622        else if (!this.patternInterval && this.lastState.view === _constants_1.PATTERN_VIEW && !this.lastState[_constants_1.PLAY]) {
9623            this.patternFlashing();
9624        }
9625        switch (actionType) {
9626            case _constants_1.PLAY:
9627                this.stopPatternFlashing();
9628                if (Tone.Transport.state !== 'started') {
9629                    Tone.Transport.start();
9630                }
9631                this.isPlaying = state[_constants_1.PLAY];
9632                if (this.isPlaying) {
9633                    this.clearAllLights();
9634                    this.loop.start();
9635                }
9636                else {
9637                    this.loop.stop();
9638                    this.currentIdx = 0;
9639                    this.clearAllLights();
9640                }
9641                return;
9642            case _constants_1.BPM:
9643                Tone.Transport.bpm.rampTo(state[_constants_1.BPM], 2);
9644                return;
9645            case _constants_1.SOUNDS_SET:
9646                if (state[_constants_1.SOUND] === this.sound.idx) {
9647                    return;
9648                }
9649                var newPlaySound = this.getNewPlaysound(state[_constants_1.SOUND]);
9650                this.sound.tone.disconnect();
9651                this.sound.tone.dispose();
9652                this.sound = newPlaySound;
9653                if (state[_constants_1.SOUND] !== 15) {
9654                    var melodySound = this.playerSounds[state[_constants_1.SOUND]];
9655                    melodySound.tone.toMaster();
9656                    this.melodySound.tone.disconnect();
9657                    this.melodySound = melodySound;
9658                }
9659                return;
9660            case _constants_1.PATTERN_UPDATE:
9661            case _constants_1.NOTE_COPY:
9662            case _constants_1.PATTERN_COPY:
9663                this.patterns = state[_constants_1.PATTERNS];
9664                return;
9665            case _constants_1.VOLUME:
9666                this.melodySound.tone.volume.value = state[_constants_1.VOLUME];
9667                this.sound.tone.volume.value = state[_constants_1.VOLUME];
9668            case _constants_1.MUTE:
9669                this.updateMute();
9670                return;
9671            default:
9672                return;
9673        }
9674    };
9675    MelodyPlayer.prototype.loopAction = function (patternIdx, noteIdx) {
9676        var pattern = this.patterns[patternIdx];
9677        if (pattern.spots[noteIdx]) {
9678            var span = pattern.spots[noteIdx].span + 1;
9679            var bars = Math.floor(span / 16);
9680            var quarters = (pattern.spots[noteIdx].span + 1) - bars;
9681            this.melodySound.tone.triggerAttackRelease(pattern.spots[noteIdx].note, "0:" + bars + ":" + quarters);
9682        }
9683        if (pattern.drums[noteIdx]) {
9684            this.basicDrum.tone.triggerAttackRelease(pattern.drums[noteIdx].note);
9685        }
9686    };
9687    MelodyPlayer.startNote = 'c3';
9688    MelodyPlayer.sources = sources_1.melodySoundSources;
9689    MelodyPlayer.sounds = __spreadArrays(MelodyPlayer.sources.map(function (v, idx) { return (__assign(__assign({}, _utils_1.generateInstrument(v)), { id: idx })); }), [
9690        _sources_1.generateDrumMachine(MelodyPlayer.startNote, MelodyPlayer.sources.length),
9691    ]);
9692    MelodyPlayer.customState = (_a = {},
9693        _a[_constants_1.PATTERN_TYPE] = 'spots',
9694        _a);
9695    MelodyPlayer.customReducer = (_b = {},
9696        _b[_constants_1.SOUNDS_SET] = function (state, value) {
9697            var _a;
9698            return (_a = {
9699                    view: state[_constants_1.WRITE] ? _constants_1.WRITE : null
9700                },
9701                _a[_constants_1.SOUND] = value,
9702                _a[_constants_1.PATTERN_TYPE] = +value === 15 ? 'drums' : 'spots',
9703                _a);
9704        },
9705        _b[_constants_1.PATTERN_UPDATE] = function (state, _a) {
9706            var _b, _c;
9707            var idx = _a.idx, note = _a.note, span = _a.span;
9708            var lastKey = state[_constants_1.SOUND] === 15 ? 'lastBeat' : 'lastNote';
9709            var activePattern = state[_constants_1.PATTERNS][state[_constants_1.PATTERN_IDX]];
9710            var updatedPatterns = __spreadArrays(state[_constants_1.PATTERNS].slice(0, state[_constants_1.PATTERN_IDX]), [
9711                __assign(__assign({}, activePattern), (_b = {}, _b[state[_constants_1.PATTERN_TYPE]] = __spreadArrays(activePattern[state[_constants_1.PATTERN_TYPE]].slice(0, idx), [
9712                    note ? { note: note, span: span } : null
9713                ], activePattern[state[_constants_1.PATTERN_TYPE]].slice(idx + 1)), _b))
9714            ], state[_constants_1.PATTERNS].slice(state[_constants_1.PATTERN_IDX] + 1));
9715            return _c = {},
9716                _c[_constants_1.PATTERNS] = updatedPatterns,
9717                _c[lastKey] = note || state[lastKey],
9718                _c;
9719        },
9720        _b);
9721    return MelodyPlayer;
9722}(abstractPlayer_1.default));
9723exports.default = MelodyPlayer;
9724
9725
9726/***/ }),
9727/* 38 */
9728/***/ (function(module, exports, __webpack_require__) {
9729
9730"use strict";
9731
9732var __assign = (this && this.__assign) || function () {
9733    __assign = Object.assign || function(t) {
9734        for (var s, i = 1, n = arguments.length; i < n; i++) {
9735            s = arguments[i];
9736            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
9737                t[p] = s[p];
9738        }
9739        return t;
9740    };
9741    return __assign.apply(this, arguments);
9742};
9743Object.defineProperty(exports, "__esModule", { value: true });
9744exports.melodySoundSources = exports.pianoSource = void 0;
9745var Tone = __webpack_require__(16);
9746exports.pianoSource = [1, 2, , 3, 4, 5, 6, 7, 8]
9747    .reduce(function (acc, val) {
9748    var _a;
9749    return (__assign(__assign({}, acc), (_a = {}, _a["C" + val] = "C" + val + ".[mp3|ogg]", _a)));
9750}, {});
9751exports.melodySoundSources = [
9752    { instrument: Tone.Synth },
9753    { instrument: Tone.DuoSynth },
9754    { instrument: Tone.MembraneSynth },
9755    { instrument: Tone.MetalSynth },
9756    { instrument: Tone.MonoSynth },
9757    { instrument: Tone.MonoSynth, title: 'brasscircuit',
9758        toneParams: [{
9759                portamento: 0.01,
9760                oscillator: {
9761                    type: 'sawtooth'
9762                },
9763                filter: {
9764                    Q: 2,
9765                    type: 'lowpass',
9766                    rolloff: -24
9767                },
9768                envelope: {
9769                    attack: 0.1,
9770                    decay: 0.1,
9771                    sustain: 0.6,
9772                    release: 0.5
9773                },
9774                filterEnvelope: {
9775                    attack: 0.05,
9776                    decay: 0.8,
9777                    sustain: 0.4,
9778                    release: 1.5,
9779                    baseFrequency: 2000,
9780                    octaves: 1.5
9781                },
9782            }],
9783    },
9784    { instrument: Tone.PluckSynth },
9785    { instrument: Tone.PolySynth },
9786    { instrument: Tone.FMSynth },
9787    { instrument: Tone.FMSynth, title: 'kalimba',
9788        toneParams: [{
9789                harmonicity: 8,
9790                modulationIndex: 2,
9791                oscillator: {
9792                    type: 'sine'
9793                },
9794                envelope: {
9795                    attack: 0.001,
9796                    decay: 2,
9797                    sustain: 0.1,
9798                    release: 2
9799                },
9800                modulation: {
9801                    type: 'square'
9802                },
9803                modulationEnvelope: {
9804                    attack: 0.002,
9805                    decay: 0.2,
9806                    sustain: 0,
9807                    release: 0.2
9808                }
9809            }],
9810    },
9811    { instrument: Tone.FMSynth, title: 'ecello',
9812        toneParams: [{
9813                harmonicity: 3.01,
9814                modulationIndex: 14,
9815                oscillator: {
9816                    type: 'triangle'
9817                },
9818                envelope: {
9819                    attack: 0.2,
9820                    decay: 0.3,
9821                    sustain: 0.1,
9822                    release: 1.2
9823                },
9824                modulation: {
9825                    type: 'square'
9826                },
9827                modulationEnvelope: {
9828                    attack: 0.01,
9829                    decay: 0.5,
9830                    sustain: 0.2,
9831                    release: 0.1
9832                }
9833            }],
9834    },
9835    { instrument: Tone.NoiseSynth },
9836    { instrument: Tone.Synth, title: 'delicate',
9837        toneParams: [{
9838                portamento: 0.0,
9839                oscillator: {
9840                    type: 'square4'
9841                },
9842                envelope: {
9843                    attack: 2,
9844                    decay: 1,
9845                    sustain: 0.2,
9846                    release: 2
9847                },
9848            }],
9849    },
9850    { instrument: Tone.Synth, title: 'steelpan',
9851        toneParams: [{
9852                oscillator: {
9853                    type: 'fatcustom',
9854                    partials: [0.2, 1, 0, 0.5, 0.1],
9855                    spread: 40,
9856                    count: 3
9857                },
9858                envelope: {
9859                    attack: 0.001,
9860                    decay: 1.6,
9861                    sustain: 0,
9862                    release: 1.6
9863                }
9864            }],
9865    },
9866    { instrument: Tone.Sampler, title: 'pianoSampler',
9867        toneParams: [
9868            exports.pianoSource,
9869            { release: 1, baseUrl: '/static/sampler/' }
9870        ],
9871    },
9872];
9873
9874
9875/***/ }),
9876/* 39 */
9877/***/ (function(module, exports, __webpack_require__) {
9878
9879"use strict";
9880
9881Object.defineProperty(exports, "__esModule", { value: true });
9882exports.generateDrumMachine = exports.demoDrum = void 0;
9883var DrumMachine_1 = __webpack_require__(77);
9884exports.demoDrum = [
9885    { name: 'kick1', src: 'acoustic-k-1.mp3' },
9886    { name: 'kick2', src: 'CYCdh_Kurz08-Kick01.[ogg|mp3]' },
9887    { name: 'tom1', src: 'CYCdh_Kurz08-Tom02.[ogg|mp3]', volume: 2 },
9888    { name: 'tom2', src: 'CYCdh_Kurz08-Tom04.[ogg|mp3]', volume: 2 },
9889    { name: 'snare1', src: 'acoustic-s-1.mp3' },
9890    { name: 'snare2', src: 'CYCdh_Kurz08-Snr01.[ogg|mp3]' },
9891    { name: 'sdSt', src: 'CYCdh_Kurz08-SdSt02.[ogg|mp3]' },
9892    { name: 'scratch', src: 'CYCdh_Kurz08-Scratch02.[ogg|mp3]' },
9893    { name: 'hat1', src: 'acoustic-h-1.mp3', volume: 20 },
9894    { name: 'hat2', src: 'acoustic-h-2.mp3' },
9895    { name: 'pdHat', src: 'CYCdh_Kurz08-PdHat.[ogg|mp3]' },
9896    { name: 'opHat', src: 'CYCdh_Kurz08-OpHat.[ogg|mp3]' },
9897    { name: 'clap', src: 'CYCdh_Kurz08-clap.[ogg|mp3]' },
9898    { name: 'crash', src: 'CYCdh_Kurz08-Crash01.[ogg|mp3]' },
9899    { name: 'perc1', src: 'CYCdh_Kurz08-Perc01.[ogg|mp3]' },
9900    { name: 'perc3', src: 'CYCdh_Kurz08-Perc04.[ogg|mp3]' },
9901];
9902exports.generateDrumMachine = function (startNote, idx, baseVolume) {
9903    if (startNote === void 0) { startNote = 'c3'; }
9904    if (baseVolume === void 0) { baseVolume = 1; }
9905    return {
9906        name: 'basicDrum',
9907        tone: new DrumMachine_1.default({
9908            sources: exports.demoDrum,
9909            baseUrl: '/static/demoDrum/',
9910            startNote: startNote,
9911            baseVolume: baseVolume,
9912        }),
9913        keys: exports.demoDrum.map(function (_a) {
9914            var name = _a.name;
9915            return name;
9916        }),
9917        idx: idx,
9918    };
9919};
9920
9921
9922/***/ }),
9923/* 40 */
9924/***/ (function(module, exports, __webpack_require__) {
9925
9926"use strict";
9927
9928
9929var reactIs = __webpack_require__(11);
9930
9931/**
9932 * Copyright 2015, Yahoo! Inc.
9933 * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.
9934 */
9935var REACT_STATICS = {
9936  childContextTypes: true,
9937  contextType: true,
9938  contextTypes: true,
9939  defaultProps: true,
9940  displayName: true,
9941  getDefaultProps: true,
9942  getDerivedStateFromError: true,
9943  getDerivedStateFromProps: true,
9944  mixins: true,
9945  propTypes: true,
9946  type: true
9947};
9948var KNOWN_STATICS = {
9949  name: true,
9950  length: true,
9951  prototype: true,
9952  caller: true,
9953  callee: true,
9954  arguments: true,
9955  arity: true
9956};
9957var FORWARD_REF_STATICS = {
9958  '$$typeof': true,
9959  render: true,
9960  defaultProps: true,
9961  displayName: true,
9962  propTypes: true
9963};
9964var MEMO_STATICS = {
9965  '$$typeof': true,
9966  compare: true,
9967  defaultProps: true,
9968  displayName: true,
9969  propTypes: true,
9970  type: true
9971};
9972var TYPE_STATICS = {};
9973TYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;
9974TYPE_STATICS[reactIs.Memo] = MEMO_STATICS;
9975
9976function getStatics(component) {
9977  // React v16.11 and below
9978  if (reactIs.isMemo(component)) {
9979    return MEMO_STATICS;
9980  } // React v16.12 and above
9981
9982
9983  return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;
9984}
9985
9986var defineProperty = Object.defineProperty;
9987var getOwnPropertyNames = Object.getOwnPropertyNames;
9988var getOwnPropertySymbols = Object.getOwnPropertySymbols;
9989var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
9990var getPrototypeOf = Object.getPrototypeOf;
9991var objectPrototype = Object.prototype;
9992function hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {
9993  if (typeof sourceComponent !== 'string') {
9994    // don't hoist over string (html) components
9995    if (objectPrototype) {
9996      var inheritedComponent = getPrototypeOf(sourceComponent);
9997
9998      if (inheritedComponent && inheritedComponent !== objectPrototype) {
9999        hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);
10000      }
10001    }
10002
10003    var keys = getOwnPropertyNames(sourceComponent);
10004
10005    if (getOwnPropertySymbols) {
10006      keys = keys.concat(getOwnPropertySymbols(sourceComponent));
10007    }
10008
10009    var targetStatics = getStatics(targetComponent);
10010    var sourceStatics = getStatics(sourceComponent);
10011
10012    for (var i = 0; i < keys.length; ++i) {
10013      var key = keys[i];
10014
10015      if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {
10016        var descriptor = getOwnPropertyDescriptor(sourceComponent, key);
10017
10018        try {
10019          // Avoid failures from read-only properties
10020          defineProperty(targetComponent, key, descriptor);
10021        } catch (e) {}
10022      }
10023    }
10024  }
10025
10026  return targetComponent;
10027}
10028
10029module.exports = hoistNonReactStatics;
10030
10031
10032/***/ }),
10033/* 41 */
10034/***/ (function(module, exports, __webpack_require__) {
10035
10036(function (factory) {
10037	 true ? (module['exports'] = factory()) :
10038		undefined
10039}(function () {
10040
10041	'use strict'
10042
10043	return function (insertRule) {
10044		var delimiter = '/*|*/'
10045		var needle = delimiter+'}'
10046
10047		function toSheet (block) {
10048			if (block)
10049				try {
10050					insertRule(block + '}')
10051				} catch (e) {}
10052		}
10053
10054		return function ruleSheet (context, content, selectors, parents, line, column, length, ns, depth, at) {
10055			switch (context) {
10056				// property
10057				case 1:
10058					// @import
10059					if (depth === 0 && content.charCodeAt(0) === 64)
10060						return insertRule(content+';'), ''
10061					break
10062				// selector
10063				case 2:
10064					if (ns === 0)
10065						return content + delimiter
10066					break
10067				// at-rule
10068				case 3:
10069					switch (ns) {
10070						// @font-face, @page
10071						case 102:
10072						case 112:
10073							return insertRule(selectors[0]+content), ''
10074						default:
10075							return content + (at === 0 ? delimiter : '')
10076					}
10077				case -2:
10078					content.split(needle).forEach(toSheet)
10079			}
10080		}
10081	}
10082}))
10083
10084
10085/***/ }),
10086/* 42 */
10087/***/ (function(module, __webpack_exports__, __webpack_require__) {
10088
10089"use strict";
10090var unitlessKeys = {
10091  animationIterationCount: 1,
10092  borderImageOutset: 1,
10093  borderImageSlice: 1,
10094  borderImageWidth: 1,
10095  boxFlex: 1,
10096  boxFlexGroup: 1,
10097  boxOrdinalGroup: 1,
10098  columnCount: 1,
10099  columns: 1,
10100  flex: 1,
10101  flexGrow: 1,
10102  flexPositive: 1,
10103  flexShrink: 1,
10104  flexNegative: 1,
10105  flexOrder: 1,
10106  gridRow: 1,
10107  gridRowEnd: 1,
10108  gridRowSpan: 1,
10109  gridRowStart: 1,
10110  gridColumn: 1,
10111  gridColumnEnd: 1,
10112  gridColumnSpan: 1,
10113  gridColumnStart: 1,
10114  msGridRow: 1,
10115  msGridRowSpan: 1,
10116  msGridColumn: 1,
10117  msGridColumnSpan: 1,
10118  fontWeight: 1,
10119  lineHeight: 1,
10120  opacity: 1,
10121  order: 1,
10122  orphans: 1,
10123  tabSize: 1,
10124  widows: 1,
10125  zIndex: 1,
10126  zoom: 1,
10127  WebkitLineClamp: 1,
10128  // SVG-related properties
10129  fillOpacity: 1,
10130  floodOpacity: 1,
10131  stopOpacity: 1,
10132  strokeDasharray: 1,
10133  strokeDashoffset: 1,
10134  strokeMiterlimit: 1,
10135  strokeOpacity: 1,
10136  strokeWidth: 1
10137};
10138
10139/* harmony default export */ __webpack_exports__["a"] = (unitlessKeys);
10140
10141
10142/***/ }),
10143/* 43 */
10144/***/ (function(module, exports) {
10145
10146var E_NOSCROLL = new Error('Element already at target scroll position')
10147var E_CANCELLED = new Error('Scroll cancelled')
10148var min = Math.min
10149var ms = Date.now
10150
10151module.exports = {
10152  left: make('scrollLeft'),
10153  top: make('scrollTop')
10154}
10155
10156function make (prop) {
10157  return function scroll (el, to, opts, cb) {
10158    opts = opts || {}
10159
10160    if (typeof opts == 'function') cb = opts, opts = {}
10161    if (typeof cb != 'function') cb = noop
10162
10163    var start = ms()
10164    var from = el[prop]
10165    var ease = opts.ease || inOutSine
10166    var duration = !isNaN(opts.duration) ? +opts.duration : 350
10167    var cancelled = false
10168
10169    return from === to ?
10170      cb(E_NOSCROLL, el[prop]) :
10171      requestAnimationFrame(animate), cancel
10172
10173    function cancel () {
10174      cancelled = true
10175    }
10176
10177    function animate (timestamp) {
10178      if (cancelled) return cb(E_CANCELLED, el[prop])
10179
10180      var now = ms()
10181      var time = min(1, ((now - start) / duration))
10182      var eased = ease(time)
10183
10184      el[prop] = (eased * (to - from)) + from
10185
10186      time < 1 ?
10187        requestAnimationFrame(animate) :
10188        requestAnimationFrame(function () {
10189          cb(null, el[prop])
10190        })
10191    }
10192  }
10193}
10194
10195function inOutSine (n) {
10196  return 0.5 * (1 - Math.cos(Math.PI * n))
10197}
10198
10199function noop () {}
10200
10201
10202/***/ }),
10203/* 44 */
10204/***/ (function(module, __webpack_exports__, __webpack_require__) {
10205
10206"use strict";
10207/* WEBPACK VAR INJECTION */(function(global) {/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);
10208/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
10209/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2);
10210/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);
10211/* harmony import */ var react_proptype_conditional_require__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(30);
10212/* harmony import */ var react_proptype_conditional_require__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_proptype_conditional_require__WEBPACK_IMPORTED_MODULE_2__);
10213/* harmony import */ var popper_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(31);
10214/* harmony import */ var deepmerge__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(10);
10215/* harmony import */ var deepmerge__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(deepmerge__WEBPACK_IMPORTED_MODULE_4__);
10216/* harmony import */ var is_lite__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(3);
10217/* harmony import */ var is_lite__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(is_lite__WEBPACK_IMPORTED_MODULE_5__);
10218/* harmony import */ var tree_changes__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(18);
10219/* harmony import */ var tree_changes__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(tree_changes__WEBPACK_IMPORTED_MODULE_6__);
10220/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(12);
10221/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(react_dom__WEBPACK_IMPORTED_MODULE_7__);
10222/* harmony import */ var exenv__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(22);
10223/* harmony import */ var exenv__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(exenv__WEBPACK_IMPORTED_MODULE_8__);
10224
10225
10226
10227
10228
10229
10230
10231
10232
10233
10234function _classCallCheck(instance, Constructor) {
10235  if (!(instance instanceof Constructor)) {
10236    throw new TypeError("Cannot call a class as a function");
10237  }
10238}
10239
10240function _defineProperties(target, props) {
10241  for (var i = 0; i < props.length; i++) {
10242    var descriptor = props[i];
10243    descriptor.enumerable = descriptor.enumerable || false;
10244    descriptor.configurable = true;
10245    if ("value" in descriptor) descriptor.writable = true;
10246    Object.defineProperty(target, descriptor.key, descriptor);
10247  }
10248}
10249
10250function _createClass(Constructor, protoProps, staticProps) {
10251  if (protoProps) _defineProperties(Constructor.prototype, protoProps);
10252  if (staticProps) _defineProperties(Constructor, staticProps);
10253  return Constructor;
10254}
10255
10256function _defineProperty(obj, key, value) {
10257  if (key in obj) {
10258    Object.defineProperty(obj, key, {
10259      value: value,
10260      enumerable: true,
10261      configurable: true,
10262      writable: true
10263    });
10264  } else {
10265    obj[key] = value;
10266  }
10267
10268  return obj;
10269}
10270
10271function ownKeys(object, enumerableOnly) {
10272  var keys = Object.keys(object);
10273
10274  if (Object.getOwnPropertySymbols) {
10275    var symbols = Object.getOwnPropertySymbols(object);
10276    if (enumerableOnly) symbols = symbols.filter(function (sym) {
10277      return Object.getOwnPropertyDescriptor(object, sym).enumerable;
10278    });
10279    keys.push.apply(keys, symbols);
10280  }
10281
10282  return keys;
10283}
10284
10285function _objectSpread2(target) {
10286  for (var i = 1; i < arguments.length; i++) {
10287    var source = arguments[i] != null ? arguments[i] : {};
10288
10289    if (i % 2) {
10290      ownKeys(Object(source), true).forEach(function (key) {
10291        _defineProperty(target, key, source[key]);
10292      });
10293    } else if (Object.getOwnPropertyDescriptors) {
10294      Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
10295    } else {
10296      ownKeys(Object(source)).forEach(function (key) {
10297        Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
10298      });
10299    }
10300  }
10301
10302  return target;
10303}
10304
10305function _inherits(subClass, superClass) {
10306  if (typeof superClass !== "function" && superClass !== null) {
10307    throw new TypeError("Super expression must either be null or a function");
10308  }
10309
10310  subClass.prototype = Object.create(superClass && superClass.prototype, {
10311    constructor: {
10312      value: subClass,
10313      writable: true,
10314      configurable: true
10315    }
10316  });
10317  if (superClass) _setPrototypeOf(subClass, superClass);
10318}
10319
10320function _getPrototypeOf(o) {
10321  _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {
10322    return o.__proto__ || Object.getPrototypeOf(o);
10323  };
10324  return _getPrototypeOf(o);
10325}
10326
10327function _setPrototypeOf(o, p) {
10328  _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
10329    o.__proto__ = p;
10330    return o;
10331  };
10332
10333  return _setPrototypeOf(o, p);
10334}
10335
10336function _objectWithoutPropertiesLoose(source, excluded) {
10337  if (source == null) return {};
10338  var target = {};
10339  var sourceKeys = Object.keys(source);
10340  var key, i;
10341
10342  for (i = 0; i < sourceKeys.length; i++) {
10343    key = sourceKeys[i];
10344    if (excluded.indexOf(key) >= 0) continue;
10345    target[key] = source[key];
10346  }
10347
10348  return target;
10349}
10350
10351function _objectWithoutProperties(source, excluded) {
10352  if (source == null) return {};
10353
10354  var target = _objectWithoutPropertiesLoose(source, excluded);
10355
10356  var key, i;
10357
10358  if (Object.getOwnPropertySymbols) {
10359    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
10360
10361    for (i = 0; i < sourceSymbolKeys.length; i++) {
10362      key = sourceSymbolKeys[i];
10363      if (excluded.indexOf(key) >= 0) continue;
10364      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
10365      target[key] = source[key];
10366    }
10367  }
10368
10369  return target;
10370}
10371
10372function _assertThisInitialized(self) {
10373  if (self === void 0) {
10374    throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
10375  }
10376
10377  return self;
10378}
10379
10380function _possibleConstructorReturn(self, call) {
10381  if (call && (typeof call === "object" || typeof call === "function")) {
10382    return call;
10383  }
10384
10385  return _assertThisInitialized(self);
10386}
10387
10388var DEFAULTS = {flip:{padding:20},preventOverflow:{padding:10}};
10389
10390var STATUS = {INIT:'init',IDLE:'idle',OPENING:'opening',OPEN:'open',CLOSING:'closing',ERROR:'error'};
10391
10392var canUseDOM=exenv__WEBPACK_IMPORTED_MODULE_8___default.a.canUseDOM;var isReact16=react_dom__WEBPACK_IMPORTED_MODULE_7___default.a.createPortal!==undefined;function isMobile(){return 'ontouchstart'in window&&/Mobi/.test(navigator.userAgent);}/**
10393 * Log method calls if debug is enabled
10394 *
10395 * @private
10396 * @param {Object}       arg
10397 * @param {string}       arg.title    - The title the logger was called from
10398 * @param {Object|Array} [arg.data]   - The data to be logged
10399 * @param {boolean}      [arg.warn]  - If true, the message will be a warning
10400 * @param {boolean}      [arg.debug] - Nothing will be logged unless debug is true
10401 */function log(_ref){var title=_ref.title,data=_ref.data,_ref$warn=_ref.warn,warn=_ref$warn===void 0?false:_ref$warn,_ref$debug=_ref.debug,debug=_ref$debug===void 0?false:_ref$debug;/* eslint-disable no-console */var logFn=warn?console.warn||console.error:console.log;if(debug&&title&&data){console.groupCollapsed("%creact-floater: ".concat(title),'color: #9b00ff; font-weight: bold; font-size: 12px;');if(Array.isArray(data)){data.forEach(function(d){if(is_lite__WEBPACK_IMPORTED_MODULE_5___default.a.plainObject(d)&&d.key){logFn.apply(console,[d.key,d.value]);}else{logFn.apply(console,[d]);}});}else{logFn.apply(console,[data]);}console.groupEnd();}/* eslint-enable */}function on(element,event,cb){var capture=arguments.length>3&&arguments[3]!==undefined?arguments[3]:false;element.addEventListener(event,cb,capture);}function off(element,event,cb){var capture=arguments.length>3&&arguments[3]!==undefined?arguments[3]:false;element.removeEventListener(event,cb,capture);}function once(element,event,cb){var capture=arguments.length>3&&arguments[3]!==undefined?arguments[3]:false;var _nextCB;// eslint-disable-next-line prefer-const
10402_nextCB=function nextCB(e){cb(e);
10402off(element,event,_nextCB);};on(element,event,_nextCB,capture);}function noop(){}
10403
10404var ReactFloaterPortal=/*#__PURE__*/function(_React$Component){_inherits(ReactFloaterPortal,_React$Component);function ReactFloaterPortal(props){var _this;_classCallCheck(this,ReactFloaterPortal);_this=_possibleConstructorReturn(this,_getPrototypeOf(ReactFloaterPortal).call(this,props));if(!canUseDOM)return _possibleConstructorReturn(_this);_this.node=document.createElement('div');if(props.id){_this.node.id=props.id;}if(props.zIndex){_this.node.style.zIndex=props.zIndex;}document.body.appendChild(_this.node);return _this;}_createClass(ReactFloaterPortal,[{key:"componentDidMount",value:function componentDidMount(){if(!canUseDOM)return;if(!isReact16){this.renderPortal();}}},{key:"componentDidUpdate",value:function componentDidUpdate(){if(!canUseDOM)return;if(!isReact16){this.renderPortal();}}},{key:"componentWillUnmount",value:function componentWillUnmount(){if(!canUseDOM||!this.node)return;if(!isReact16){react_dom__WEBPACK_IMPORTED_MODULE_7___default.a.unmountComponentAtNode(this.node);}document.body.removeChild(this.node);}},{key:"renderPortal",value:function renderPortal(){if(!canUseDOM)return null;var _this$props=this.props,children=_this$props.children,setRef=_this$props.setRef;/* istanbul ignore else */if(isReact16){return react_dom__WEBPACK_IMPORTED_MODULE_7___default.a.createPortal(children,this.node);}var portal=react_dom__WEBPACK_IMPORTED_MODULE_7___default.a.unstable_renderSubtreeIntoContainer(this,children.length>1?react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div",null,children):children[0],this.node);setRef(portal);return null;}},{key:"renderReact16",value:function renderReact16(){var _this$props2=this.props,hasChildren=_this$props2.hasChildren,placement=_this$props2.placement,target=_this$props2.target;if(!hasChildren){if(target||placement==='center'){return this.renderPortal();}return null;}return this.renderPortal();}},{key:"render",value:function render(){if(!isReact16){return null;}return this.renderReact16();}}]);return ReactFloaterPortal;}(react__WEBPACK_IMPORTED_MODULE_0___default.a.Component);_defineProperty(ReactFloaterPortal,"propTypes",{children:prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.element,prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.array]),hasChildren:prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,id:prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number]),placement:prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,setRef:prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func.isRequired,target:prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object,prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string]),zIndex:prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number});
10405
10406var FloaterArrow=/*#__PURE__*/function(_React$Component){_inherits(FloaterArrow,_React$Component);function FloaterArrow(){_classCallCheck(this,FloaterArrow);return _possibleConstructorReturn(this,_getPrototypeOf(FloaterArrow).apply(this,arguments));}_createClass(FloaterArrow,[{key:"render",value:function render(){var _this$props=this.props,placement=_this$props.placement,setArrowRef=_this$props.setArrowRef,styles=_this$props.styles;var _styles$arrow=styles.arrow,color=_styles$arrow.color,display=_styles$arrow.display,length=_styles$arrow.length,margin=_styles$arrow.margin,position=_styles$arrow.position,spread=_styles$arrow.spread;var arrowStyles={display:display,position:position};var points;var x=spread;var y=length;/* istanbul ignore else */if(placement.startsWith('top')){points="0,0 ".concat(x/2,",").concat(y," ").concat(x,",0");arrowStyles.bottom=0;arrowStyles.marginLeft=margin;arrowStyles.marginRight=margin;}else if(placement.startsWith('bottom')){points="".concat(x,",").concat(y," ").concat(x/2,",0 0,").concat(y);arrowStyles.top=0;arrowStyles.marginLeft=margin;arrowStyles.marginRight=margin;}else if(placement.startsWith('left')){y=spread;x=length;points="0,0 ".concat(x,",").concat(y/2," 0,").concat(y);arrowStyles.right=0;arrowStyles.marginTop=margin;arrowStyles.marginBottom=margin;}else if(placement.startsWith('right')){y=spread;x=length;points="".concat(x,",").concat(y," ").concat(x,",0 0,").concat(y/2);arrowStyles.left=0;arrowStyles.marginTop=margin;arrowStyles.marginBottom=margin;}return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div",{className:"__floater__arrow",style:this.parentStyle},react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("span",{ref:setArrowRef,style:arrowStyles},react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("svg",{width:x,height:y,version:"1.1",xmlns:"http://www.w3.org/2000/svg"},react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("polygon",{points:p
10406oints,fill:color}))));}},{key:"parentStyle",get:function get(){var _this$props2=this.props,placement=_this$props2.placement,styles=_this$props2.styles;var length=styles.arrow.length;var arrow={pointerEvents:'none',position:'absolute',width:'100%'};/* istanbul ignore else */if(placement.startsWith('top')){arrow.bottom=0;arrow.left=0;arrow.right=0;arrow.height=length;}else if(placement.startsWith('bottom')){arrow.left=0;arrow.right=0;arrow.top=0;arrow.height=length;}else if(placement.startsWith('left')){arrow.right=0;arrow.top=0;arrow.bottom=0;}else if(placement.startsWith('right')){arrow.left=0;arrow.top=0;}return arrow;}}]);return FloaterArrow;}(react__WEBPACK_IMPORTED_MODULE_0___default.a.Component);_defineProperty(FloaterArrow,"propTypes",{placement:prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string.isRequired,setArrowRef:prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func.isRequired,styles:prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object.isRequired});
10407
10408var FloaterCloseBtn=function FloaterCloseBtn(_ref){var handleClick=_ref.handleClick,styles=_ref.styles;var color=styles.color,height=styles.height,width=styles.width,style=_objectWithoutProperties(styles,["color","height","width"]);return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("button",{"aria-label":"close",onClick:handleClick,style:style,type:"button"},react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("svg",{width:"".concat(width,"px"),height:"".concat(height,"px"),viewBox:"0 0 18 18",version:"1.1",xmlns:"http://www.w3.org/2000/svg",preserveAspectRatio:"xMidYMid"},react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("g",null,react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path",{d:"M8.13911129,9.00268191 L0.171521827,17.0258467 C-0.0498027049,17.248715 -0.0498027049,17.6098394 0.171521827,17.8327545 C0.28204354,17.9443526 0.427188206,17.9998706 0.572051765,17.9998706 C0.71714958,17.9998706 0.862013139,17.9443526 0.972581703,17.8327545 L9.0000937,9.74924618 L17.0276057,17.8327545 C17.1384085,17.9443526 17.2832721,17.9998706 17.4281356,17.9998706 C17.5729992,17.9998706 17.718097,17.9443526 17.8286656,17.8327545 C18.0499901,17.6098862 18.0499901,17.2487618 17.8286656,17.0258467 L9.86135722,9.00268191 L17.8340066,0.973848225 C18.0553311,0.750979934 18.0553311,0.389855532 17.8340066,0.16694039 C17.6126821,-0.0556467968 17.254037,-0.0556467968 17.0329467,0.16694039 L9.00042166,8.25611765 L0.967006424,0.167268345 C0.745681892,-0.0553188426 0.387317931,-0.0553188426 0.165993399,0.167268345 C-0.0553311331,0.390136635 -0.0553311331,0.751261038 0.165993399,0.974176179 L8.13920499,9.00268191 L8.13911129,9.00268191 Z",fill:color}))));};FloaterCloseBtn.propTypes={handleClick:prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func.isRequired,styles:prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object.isRequired};
10409
10410var FloaterContainer=function FloaterContainer(_ref){var content=_ref.content,footer=_ref.footer,handleClick=_ref.handleClick,open=_ref.open,positionWrapper=_ref.positionWrapper,showCloseButton=_ref.showCloseButton,title=_ref.title,styles=_ref.styles;var output={content:react__WEBPACK_IMPORTED_MODULE_0___default.a.isValidElement(content)?content:react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div",{className:"__floater__content",style:styles.content},content)};if(title){output.title=react__WEBPACK_IMPORTED_MODULE_0___default.a.isValidElement(title)?title:react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div",{className:"__floater__title",style:styles.title},title);}if(footer){output.footer=react__WEBPACK_IMPORTED_MODULE_0___default.a.isValidElement(footer)?footer:react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div",{className:"__floater__footer",style:styles.footer},footer);}if((showCloseButton||positionWrapper)&&!is_lite__WEBPACK_IMPORTED_MODULE_5___default.a["boolean"](open)){output.close=react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(FloaterCloseBtn,{styles:styles.close,handleClick:handleClick});}return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div",{className:"__floater__c
10410ontainer",style:styles.container},output.close,output.title,output.content,output.footer);};FloaterContainer.propTypes={content:prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.node.isRequired,footer:prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.node,handleClick:prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func.isRequired,open:prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,positionWrapper:prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool.isRequired,showCloseButton:prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool.isRequired,styles:prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object.isRequired,title:prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.node};
10411
10412var Floater=/*#__PURE__*/function(_React$Component){_inherits(Floater,_React$Component);function Floater(){_classCallCheck(this,Floater);return _possibleConstructorReturn(this,_getPrototypeOf(Floater).apply(this,arguments));}_createClass(Floater,[{key:"render",value:function render(){var _this$props=this.props,component=_this$props.component,closeFn=_this$props.handleClick,hideArrow=_this$props.hideArrow,setFloaterRef=_this$props.setFloaterRef,status=_this$props.status;var output={};var classes=['__floater'];if(component){if(react__WEBPACK_IMPORTED_MODULE_0___default.a.isValidElement(component)){output.content=react__WEBPACK_IMPORTED_MODULE_0___default.a.cloneElement(component,{closeFn:closeFn});}else{output.content=component({closeFn:closeFn});}}else{output.content=react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(FloaterContainer,this.props);}if(status===STATUS.OPEN){classes.push('__floater__open');}if(!hideArrow){output.arrow=react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(FloaterArrow,this.props);}return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div",{ref:setFloaterRef,className:classes.join(' '),style:this.style},react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div",{className:"__floater__body"},output.content,output.arrow));}},{key:"style",get:function get(){var _this$props2=this.props,disableAnimation=_this$props2.disableAnimation,component=_this$props2.component,placement=_this$props2.placement,hideArrow=_this$props2.hideArrow,status=_this$props2.status,styles=_this$props2.styles;var length=styles.arrow.length,floater=styles.floater,floaterCentered=styles.floaterCentered,floaterClosing=styles.floaterClosing,floaterOpening=styles.floaterOpening,floaterWithAnimation=styles.floaterWithAnimation,floaterWithComponent=styles.floaterWithComponent;var element={};if(!hideArrow){if(placement.startsWith('top')){element.padding="0 0 ".concat(length,"px");}else if(placement.startsWith('bottom')){element.padding="".concat(length,"px 0 0");}else if(placement.startsWith('left')){element.padding="0 ".concat(length,"px 0 0");}else if(placement.startsWith('right')){element.padding="0 0 0 ".concat(length,"px");}}if([STATUS.OPENING,STATUS.OPEN].indexOf(status)!==-1){element=_objectSpread2({},element,{},floaterOpening);}if(status===STATUS.CLOSING){element=_objectSpread2({},element,{},floaterClosing);}if(status===STATUS.OPEN&&!disableAnimation){element=_objectSpread2({},element,{},floaterWithAnimation);}if(placement==='center'){element=_objectSpread2({},element,{},floaterCentered);}if(component){element=_objectSpread2({},element,{},floaterWithComponent);}return _objectSpread2({},floater,{},element);}}]);return Floater;}(react__WEBPACK_IMPORTED_MODULE_0___default.a.Component);_defineProperty(Floater,"propTypes",{component:prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.element]),content:prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.node,disableAnimation:prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool.isRequired,footer:prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.node,handleClick:prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func.isRequired,hideArrow:prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool.isRequired,open:prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,placement:prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string.isRequired,positionWrapper:prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool.isRequired,setArrowRef:prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func.isRequired,setFloaterRef:prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func.isRequired,showCloseButton:prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,status:prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string.isRequired,styles:prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object.isRequired,title:prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.node});
10413
10414var ReactFloaterWrapper=/*#__PURE__*/function(_React$Component){_inherits(ReactFloaterWrapper,_React$Component);function ReactFloaterWrapper(){_classCallCheck(this,ReactFloaterWrapper);return _possibleConstructorReturn(this,_getPrototypeOf(ReactFloaterWrapper).apply(this,arguments));}_createClass(ReactFloaterWrapper,[{key:"render",value:function render(){var _this$props=this.props,children=_this$props.children,handleClick=_this$props.handleClick,handleMouseEnter=_this$props.handleMouseEnter,handleMouseLeave=_this$props.handleMouseLeave,setChildRef=_this$props.setChildRef,setWrapperRef=_this$props.setWrapperRef,style=_this$props.style,styles=_this$props.styles;var element;/* istanbul ignore else */if(children){if(react__WEBPACK_IMPORTED_MODULE_0___default.a.Children.count(children)===1){if(!react__WEBPACK_IMPORTED_MODULE_0___default.a.isValidElement(children)){element=react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("span",null,children);}else{var refProp=is_lite__WEBPACK_IMPORTED_MODULE_5___default.a["function"](children.type)?'innerRef':'ref';element=react__WEBPACK_IMPORTED_MODULE_0___default.a.cloneElement(react__WEBPACK_IMPORTED_MODULE_0___default.a.Children.only(children),_defineProperty({},refProp,setChildRef));}}else{element=children;}}if(!element){return null;}return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("span",{ref:setWrapperRef,style:_objectSpread2
10414({},styles,{},style),onClick:handleClick,onMouseEnter:handleMouseEnter,onMouseLeave:handleMouseLeave},element);}}]);return ReactFloaterWrapper;}(react__WEBPACK_IMPORTED_MODULE_0___default.a.Component);_defineProperty(ReactFloaterWrapper,"propTypes",{children:prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.node,handleClick:prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func.isRequired,handleMouseEnter:prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func.isRequired,handleMouseLeave:prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func.isRequired,setChildRef:prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func.isRequired,setWrapperRef:prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func.isRequired,style:prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object,styles:prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object.isRequired});
10415
10416var defaultOptions={zIndex:100};function getStyles(styles){var options=deepmerge__WEBPACK_IMPORTED_MODULE_4___default()(defaultOptions,styles.options||{});return {wrapper:{cursor:'help',display:'inline-flex',flexDirection:'column',zIndex:options.zIndex},wrapperPosition:{left:-1000,position:'absolute',top:-1000,visibility:'hidden'},floater:{display:'inline-block',filter:'drop-shadow(0 0 3px rgba(0, 0, 0, 0.3))',maxWidth:300,opacity:0,position:'relative',transition:'opacity 0.3s',visibility:'hidden',zIndex:options.zIndex},floaterOpening:{opacity:1,visibility:'visible'},floaterWithAnimation:{opacity:1,transition:'opacity 0.3s, transform 0.2s',visibility:'visible'},floaterWithComponent:{maxWidth:'100%'},floaterClosing:{opacity:0,visibility:'visible'},floaterCentered:{left:'50%',position:'fixed',top:'50%',transform:'translate(-50%, -50%)'},container:{backgroundColor:'#fff',color:'#666',minHeight:60,minWidth:200,padding:20,position:'relative',zIndex:10},title:{borderBottom:'1px solid #555',color:'#555',fontSize:18,marginBottom:5,paddingBottom:6,paddingRight:18},content:{fontSize:15},close:{backgroundColor:'transparent',border:0,borderRadius:0,color:'#555',fontSize:0,height:15,outline:'none',padding:10,position:'absolute',right:0,top:0,width:15,WebkitAppearance:'none'},footer:{borderTop:'1px solid #ccc',fontSize:13,marginTop:10,paddingTop:5},arrow:{color:'#fff',display:'inline-flex',length:16,margin:8,position:'absolute',spread:32},options:options};}
10417
10418var POSITIONING_PROPS=['position','top','right','bottom','left'];var ReactFloater=/*#__PURE__*/function(_React$Component){_inherits(ReactFloater,_React$Component);function ReactFloater(props){var _this;_classCallCheck(this,ReactFloater);_this=_possibleConstructorReturn(this,_getPrototypeOf(ReactFloater).call(this,props));/* istanbul ignore else */_defineProperty(_assertThisInitialized(_this),"setArrowRef",function(ref){_this.arrowRef=ref;});_defineProperty(_assertThisInitialized(_this),"setChildRef",function(ref){_this.childRef=ref;});_defineProperty(_assertThisInitialized(_this),"setFloaterRef",function(ref){if(!_this.floaterRef){_this.floaterRef=ref;}});_defineProperty(_assertThisInitialized(_this),"setWrapperRef",function(ref){_this.wrapperRef=ref;});_defineProperty(_assertThisInitialized(_this),"handleTransitionEnd",function(){var status=_this.state.status;var callback=_this.props.callback;/* istanbul ignore else */if(_this.wrapperPopper){_this.wrapperPopper.instance.update();}_this.setState({status:status===STATUS.OPENING?STATUS.OPEN:STATUS.IDLE},function(){var newStatus=_this.state.status;callback(newStatus===STATUS.OPEN?'open':'close',_this.props);});});_defineProperty(_assertThisInitialized(_this),"handleClick",function(){var _this$props=_this.props,event=_this$props.event,open=_this$props.open;if(is_lite__WEBPACK_IMPORTED_MODULE_5___default.a["boolean"](open))return;var _this$state=_this.state,positionWrapper=_this$state.positionWrapper,status=_this$state.status;/* istanbul ignore else */if(_this.event==='click'||_this.event==='hover'&&positionWrapper){log({title:'click',data:[{event:event,status:status===STATUS.OPEN?'closing':'opening'}],debug:_this.debug});_this.toggle();}});_defineProperty(_assertThisInitialized(_this),"handleMouseEnter",function(){var _this$props2=_this.props,event=_this$props2.event,open=_this$props2.o
10418pen;if(is_lite__WEBPACK_IMPORTED_MODULE_5___default.a["boolean"](open)||isMobile())return;var status=_this.state.status;/* istanbul ignore else */if(_this.event==='hover'&&status===STATUS.IDLE){log({title:'mouseEnter',data:[{key:'originalEvent',value:event}],debug:_this.debug});clearTimeout(_this.eventDelayTimeout);_this.toggle();}});_defineProperty(_assertThisInitialized(_this),"handleMouseLeave",function(){var _this$props3=_this.props,event=_this$props3.event,eventDelay=_this$props3.eventDelay,open=_this$props3.open;if(is_lite__WEBPACK_IMPORTED_MODULE_5___default.a["boolean"](open)||isMobile())return;var _this$state2=_this.state,status=_this$state2.status,positionWrapper=_this$state2.positionWrapper;/* istanbul ignore else */if(_this.event==='hover'){log({title:'mouseLeave',data:[{key:'originalEvent',value:event}],debug:_this.debug});if(!eventDelay){_this.toggle(STATUS.IDLE);}else if([STATUS.OPENING,STATUS.OPEN].indexOf(status)!==-1&&!positionWrapper&&!_this.eventDelayTimeout){_this.eventDelayTimeout=setTimeout(function(){delete _this.eventDelayTimeout;_this.toggle();},eventDelay*1000);}}});_this.state={currentPlacement:props.placement,positionWrapper:props.wrapperOptions.position&&!!props.target,status:STATUS.INIT,statusWrapper:STATUS.INIT};_this._isMounted=false;if(canUseDOM){window.addEventListener('load',function(){if(_this.popper){_this.popper.instance.update();}if(_this.wrapperPopper){_this.wrapperPopper.instance.update();}});}return _this;}_createClass(ReactFloater,[{key:"componentDidMount",value:function componentDidMount(){if(!canUseDOM)return;var positionWrapper=this.state.positionWrapper;var _this$props5=this.props,children=_this$props5.children,open=_this$props5.open,target=_this$props5.target;this._isMounted=true;log({title:'init',data:{hasChildren:!!children,hasTarget:!!target,isControlled:is_lite__WEBPACK_IMPORTED_MODULE_5___default.a["boolean"](open),positionWrapper:positionWrapper,target:this.target,floater:this.floaterRef},debug:this.debug});this.initPopper();if(!children&&target&&!is_lite__WEBPACK_IMPORTED_MODULE_5___default.a["boolean"](open));}},{key:"componentDidUpdate",value:function componentDidUpdate(prevProps,prevState){if(!canUseDOM)return;var _this$props6=this.props,autoOpen=_this$props6.autoOpen,open=_this$props6.open,target=_this$props6.target,wrapperOptions=_this$props6.wrapperOptions;var _treeChanges=tree_changes__WEBPACK_IMPORTED_MODULE_6___default()(prevState,this.state),changedFrom=_treeChanges.changedFrom,changedTo=_treeChanges.changedTo;if(prevProps.open!==open){var forceStatus;// always follow `open` in controlled mode
10419if(is_lite__WEBPACK_IMPORTED_MODULE_5___default.a["boolean"](open)){forceStatus=open?STATUS.OPENING:STATUS.CLOSING;}this.toggle(forceStatus);}if(prevProps.wrapperOptions.position!==wrapperOptions.position||prevProps.target!==target){this.changeWrapperPosition(this.props);}if(changedTo('status',STATUS.IDLE)&&open){this.toggle(STATUS.OPEN);}else if(changedFrom('status',STATUS.INIT,STATUS.IDLE)&&autoOpen){this.toggle(STATUS.OPEN);}if(this.popper&&changedTo('status',STATUS.OPENING)){this.popper.instance.update();}if(this.floaterRef&&(changedTo('status',STATUS.OPENING)||changedTo('status',STATUS.CLOSING))){once(this.floaterRef,'transitionend',this.handleTransitionEnd);}}},{key:"componentWillUnmount",value:function componentWillUnmount(){if(!canUseDOM)return;this._isMounted=false;if(this.popper){this.popper.instance.destroy();}if(this.wrapperPopper){this.wrapperPopper.instance.destroy();}}},{key:"initPopper",value:function initPopper(){var _this2=this;var target=arguments.length>0&&arguments[0]!==undefined?arguments[0]:this.target;var positionWrapper=this.state.positionWrapper;var _this$props7=this.props,disableFlip=_this$props7.disableFlip,getPopper=_this$props7.getPopper,hideArrow=_this$props7.hideArrow,offset=_this$props7.offset,placement=_this$props7.placement,wrapperOptions=_this$props7.wrapperOptions;var flipBehavior=placement==='top'||placement==='bottom'?'flip':['right','bottom-end','top-end','left','top-start','bottom-start'];/* istanbul ignore else */if(placement==='center'){this.setState({status:STATUS.IDLE});}else if(target&&this.floaterRef){var _this$options=this.options,arrow=_this$options.arrow,flip=_this$options.flip,offsetOptions=_this$options.offset,rest=_objectWithoutProperties(_this$options,["arrow","flip","offset"]);new popper_js__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"](target,this.floaterRef,{placement:placement,modifiers:_objectSpread2
10419({arrow:_objectSpread2({enabled:!hideArrow,element:this.arrowRef},arrow),flip:_objectSpread2({enabled:!disableFlip,behavior:flipBehavior},flip),offset:_objectSpread2({offset:"0, ".concat(offset,"px")},offsetOptions)},rest),onCreate:function onCreate(data){_this2.popper=data;getPopper(data,'floater');if(_this2._isMounted){_this2.setState({currentPlacement:data.placement,status:STATUS.IDLE});}if(placement!==data.placement){setTimeout(function(){data.instance.update();},1);}},onUpdate:function onUpdate(data){_this2.popper=data;var currentPlacement=_this2.state.currentPlacement;if(_this2._isMounted&&data.placement!==currentPlacement){_this2.setState({currentPlacement:data.placement});}}});}if(positionWrapper){var wrapperOffset=!is_lite__WEBPACK_IMPORTED_MODULE_5___default.a.undefined(wrapperOptions.offset)?wrapperOptions.offset:0;new popper_js__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"](this.target,this.wrapperRef,{placement:wrapperOptions.placement||placement,modifiers:{arrow:{enabled:false},offset:{offset:"0, ".concat(wrapperOffset,"px")},flip:{enabled:false}},onCreate:function onCreate(data){_this2.wrapperPopper=data;if(_this2._isMounted){_this2.setState({statusWrapper:STATUS.IDLE});}getPopper(data,'wrapper');if(placement!==data.placement){setTimeout(function(){data.instance.update();},1);}}});}}},{key:"changeWrapperPosition",value:function changeWrapperPosition(_ref){var target=_ref.target,wrapperOptions=_ref.wrapperOptions;this.setState({positionWrapper:wrapperOptions.position&&!!target});}},{key:"toggle",value:function toggle(forceStatus){var status=this.state.status;var nextStatus=status===STATUS.OPEN?STATUS.CLOSING:STATUS.OPENING;if(!is_lite__WEBPACK_IMPORTED_MODULE_5___default.a.undefined(forceStatus)){nextStatus=forceStatus;}this.setState({status:nextStatus});}},{key:"render",value:function render(){var _this$state3=this.state,currentPlacement=_this$state3.currentPlacement,positionWrapper=_this$state3.positionWrapper,status=_this$state3.status;var _this$props8=this.props,children=_this$props8.children,component=_this$props8.component,content=_this$props8.content,disableAnimation=_this$props8.disableAnimation,footer=_this$props8.footer,hideArrow=_this$props8.hideArrow,id=_this$props8.id,open=_this$props8.open,showCloseButton=_this$props8.showCloseButton,style=_this$props8.style,target=_this$props8.target,title=_this$props8.title;var wrapper=react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(ReactFloaterWrapper,{handleClick:this.handleClick,handleMouseEnter:this.handleMouseEnter,handleMouseLeave:this.handleMouseLeave,setChildRef:this.setChildRef,setWrapperRef:this.setWrapperRef,style:style,styles:this.styles.wrapper},children);var output={};if(positionWrapper){output.wrapperInPortal=wrapper;}else{output.wrapperAsChildren=wrapper;}return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("span",null,react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(ReactFloaterPortal,{hasChildren:!!children,id:id,placement:currentPlacement,setRef:this.setFloaterRef,target:target,zIndex:this.styles.options.zIndex},react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(Floater,{component:component,content:content,disableAnimation:disableAnimation,footer:footer,handleClick:this.handleClick,hideArrow:hideArrow||currentPlacement==='center',open:open,placement:currentPlacement,positionWrapper:positionWrapper,setArrowRef:this.setArrowRef,setFloaterRef:this.setFloaterRef,showCloseButton:showCloseButton,status:status,styles:this.styles,title:title}),output.wrapperInPortal),output.wrapperAsChildren);}},{key:"debug",get:function get(){var debug=this.props.debug;return debug||!!global.ReactFloaterDebug;}},{key:"event",get:function get(){var _this$props9=this.props,disableHoverToClick=_this$props9.disableHoverToClick,event=_this$props9.event;if(event==='hover'&&isMobile()&&!disableHoverToClick){return 'click';}return event;}},{key:"options",get:function get(){var options=this.props.options;return deepmerge__WEBPACK_IMPORTED_MODULE_4___default()(DEFAULTS,options||{});}},{key:"styles",get:function get(){var _this3=this;var _this$state4=this.state,status=_this$state4.status,positionWrapper=_this$state4.positionWrapper,statusWrapper=_this$state4.statusWrapper;var styles=this.props.styles;var nextStyles=deepmerge__WEBPACK_IMPORTED_MODULE_4___default()(getStyles(styles),styles);if(positionWrapper){var wrapperStyles;if(!([STATUS.IDLE].indexOf(status)!==-1)||!([STATUS.IDLE].indexOf(statusWrapper)!==-1)){wrapperStyles=nextStyles.wrapperPosition;}else{wrapperStyles=this.wrapperPopper.styles;}
10419nextStyles.wrapper=_objectSpread2({},nextStyles.wrapper,{},wrapperStyles);}/* istanbul ignore else */if(this.target){var targetStyles=window.getComputedStyle(this.target);/* istanbul ignore else */if(this.wrapperStyles){nextStyles.wrapper=_objectSpread2({},nextStyles.wrapper,{},this.wrapperStyles);}else if(!(['relative','static'].indexOf(targetStyles.position)!==-1)){this.wrapperStyles={};if(!positionWrapper){POSITIONING_PROPS.forEach(function(d){_this3.wrapperStyles[d]=targetStyles[d];});nextStyles.wrapper=_objectSpread2({},nextStyles.wrapper,{},this.wrapperStyles);this.target.style.position='relative';this.target.style.top='auto';this.target.style.right='auto';this.target.style.bottom='auto';this.target.style.left='auto';}}}return nextStyles;}},{key:"target",get:function get(){if(!canUseDOM)return null;var target=this.props.target;if(target){if(is_lite__WEBPACK_IMPORTED_MODULE_5___default.a.domElement(target)){return target;}return document.querySelector(target);}return this.childRef||this.wrapperRef;}}]);return ReactFloater;}(react__WEBPACK_IMPORTED_MODULE_0___default.a.Component);_defineProperty(ReactFloater,"propTypes",{autoOpen:prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,callback:prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,children:prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.node,component:react_proptype_conditional_require__WEBPACK_IMPORTED_MODULE_2___default()(prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.element]),function(props){return !props.content;}),content:react_proptype_conditional_require__WEBPACK_IMPORTED_MODULE_2___default()(prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.node,function(props){return !props.component;}),debug:prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,disableAnimation:prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,disableFlip:prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,disableHoverToClick:prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,event:prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOf(['hover','click']),eventDelay:prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,footer:prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.node,getPopper:prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,hideArrow:prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,id:prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number]),offset:prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,open:prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,options:prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object,placement:prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOf(['top','top-start','top-end','bottom','bottom-start','bottom-end','left','left-start','left-end','right','right-start','right-end','auto','center']),showCloseButton:prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,style:prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object,styles:prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object,target:prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object,prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string]),title:prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.node,wrapperOptions:prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.shape({offset:prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,placement:prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOf(['top','top-start','top-end','bottom','bottom-start','bottom-end','left','left-start','left-end','right','right-start','right-end','auto']),position:prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool})});_defineProperty(ReactFloater,"defaultProps",{autoOpen:false,callback:noop,debug:false,disableAnimation:false,disableFlip:false,disableHoverToClick:false,event:'click',eventDelay:0.4,getPopper:noop,hideArrow:false,offset:15,placement:'bottom',showCloseButton:false,styles:{},target:null,wrapperOptions:{position:false}});
10420
10421/* harmony default export */ __webpack_exports__["a"] = (ReactFloater);
10422
10423/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(24)))
10424
10425/***/ }),
10426/* 45 */
10427/***/ (function(module, __webpack_exports__, __webpack_require__) {
10428
10429"use strict";
10430
10431// CONCATENATED MODULE: ./node_modules/styled-components/node_modules/@emotion/memoize/dist/memoize.browser.esm.js
10432function memoize(fn) {
10433  var cache = {};
10434  return function (arg) {
10435    if (cache[arg] === undefined) cache[arg] = fn(arg);
10436    return cache[arg];
10437  };
10438}
10439
10440/* harmony default export */ var memoize_browser_esm = (memoize);
10441
10442// CONCATENATED MODULE: ./node_modules/styled-components/node_modules/@emotion/is-prop-valid/dist/is-prop-valid.browser.esm.js
10443
10444
10445var reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|download|draggable|encType|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInl
10445ine|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|inert|itemProp|itemScope|itemType|itemID|itemRef|on|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23
10446
10447var index = memoize_browser_esm(function (prop) {
10448  return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111
10449  /* o */
10450  && prop.charCodeAt(1) === 110
10451  /* n */
10452  && prop.charCodeAt(2) < 91;
10453}
10454/* Z+1 */
10455);
10456
10457/* harmony default export */ var is_prop_valid_browser_esm = __webpack_exports__["a"] = (index);
10458
10459
10460/***/ }),
10461/* 46 */
10462/***/ (function(module, __webpack_exports__, __webpack_require__) {
10463
10464"use strict";
10465
10466// CONCATENATED MODULE: ./node_modules/is-what/dist/index.esm.js
10467/**
10468 * Returns the object type of the given payload
10469 *
10470 * @param {*} payload
10471 * @returns {string}
10472 */
10473function getType(payload) {
10474    return Object.prototype.toString.call(payload).slice(8, -1);
10475}
10476/**
10477 * Returns whether the payload is undefined
10478 *
10479 * @param {*} payload
10480 * @returns {payload is undefined}
10481 */
10482function isUndefined(payload) {
10483    return getType(payload) === 'Undefined';
10484}
10485/**
10486 * Returns whether the payload is null
10487 *
10488 * @param {*} payload
10489 * @returns {payload is null}
10490 */
10491function isNull(payload) {
10492    return getType(payload) === 'Null';
10493}
10494/**
10495 * Returns whether the payload is a plain JavaScript object (excluding special classes or objects with other prototypes)
10496 *
10497 * @param {*} payload
10498 * @returns {payload is {[key: string]: any}}
10499 */
10500function isPlainObject(payload) {
10501    if (getType(payload) !== 'Object')
10502        return false;
10503    return payload.constructor === Object && Object.getPrototypeOf(payload) === Object.prototype;
10504}
10505/**
10506 * Returns whether the payload is a plain JavaScript object (excluding special classes or objects with other prototypes)
10507 *
10508 * @param {*} payload
10509 * @returns {payload is {[key: string]: any}}
10510 */
10511function isObject(payload) {
10512    return isPlainObject(payload);
10513}
10514/**
10515 * Returns whether the payload is an any kind of object (including special classes or objects with different prototypes)
10516 *
10517 * @param {*} payload
10518 * @returns {payload is {[key: string]: any}}
10519 */
10520function isAnyObject(payload) {
10521    return getType(payload) === 'Object';
10522}
10523/**
10524 * Returns whether the payload is an object like a type passed in < >
10525 *
10526 * Usage: isObjectLike<{id: any}>(payload) // will make sure it's an object and has an `id` prop.
10527 *
10528 * @template T this must be passed in < >
10529 * @param {*} payload
10530 * @returns {payload is T}
10531 */
10532function isObjectLike(payload) {
10533    return isAnyObject(payload);
10534}
10535/**
10536 * Returns whether the payload is a function
10537 *
10538 * @param {*} payload
10539 * @returns {payload is Function}
10540 */
10541function isFunction(payload) {
10542    return getType(payload) === 'Function';
10543}
10544/**
10545 * Returns whether the payload is an array
10546 *
10547 * @param {*} payload
10548 * @returns {payload is undefined}
10549 */
10550function isArray(payload) {
10551    return getType(payload) === 'Array';
10552}
10553/**
10554 * Returns whether the payload is a string
10555 *
10556 * @param {*} payload
10557 * @returns {payload is string}
10558 */
10559function isString(payload) {
10560    return getType(payload) === 'String';
10561}
10562/**
10563 * Returns whether the payload is a string, BUT returns false for ''
10564 *
10565 * @param {*} payload
10566 * @returns {payload is string}
10567 */
10568function isFullString(payload) {
10569    return isString(payload) && payload !== '';
10570}
10571/**
10572 * Returns whether the payload is ''
10573 *
10574 * @param {*} payload
10575 * @returns {payload is string}
10576 */
10577function isEmptyString(payload) {
10578    return payload === '';
10579}
10580/**
10581 * Returns whether the payload is a number
10582 *
10583 * This will return false for NaN
10584 *
10585 * @param {*} payload
10586 * @returns {payload is number}
10587 */
10588function isNumber(payload) {
10589    return getType(payload) === 'Number' && !isNaN(payload);
10590}
10591/**
10592 * Returns whether the payload is a boolean
10593 *
10594 * @param {*} payload
10595 * @returns {payload is boolean}
10596 */
10597function isBoolean(payload) {
10598    return getType(payload) === 'Boolean';
10599}
10600/**
10601 * Returns whether the payload is a regular expression (RegExp)
10602 *
10603 * @param {*} payload
10604 * @returns {payload is RegExp}
10605 */
10606function isRegExp(payload) {
10607    return getType(payload) === 'RegExp';
10608}
10609/**
10610 * Returns whether the payload is a Map
10611 *
10612 * @param {*} payload
10613 * @returns {payload is Map}
10614 */
10615function isMap(payload) {
10616    return getType(payload) === 'Map';
10617}
10618/**
10619 * Returns whether the payload is a WeakMap
10620 *
10621 * @param {*} payload
10622 * @returns {payload is WeakMap}
10623 */
10624function isWeakMap(payload) {
10625    return getType(payload) === 'WeakMap';
10626}
10627/**
10628 * Returns whether the payload is a Set
10629 *
10630 * @param {*} payload
10631 * @returns {payload is Set}
10632 */
10633function isSet(payload) {
10634    return getType(payload) === 'Set';
10635}
10636/**
10637 * Returns whether the payload is a WeakSet
10638 *
10639 * @param {*} payload
10640 * @returns {payload is WeakSet}
10641 */
10642function isWeakSet(payload) {
10643    return getType(payload) === 'WeakSet';
10644}
10645/**
10646 * Returns whether the payload is a Symbol
10647 *
10648 * @param {*} payload
10649 * @returns {payload is symbol}
10650 */
10651function isSymbol(payload) {
10652    return getType(payload) === 'Symbol';
10653}
10654/**
10655 * Returns whether the payload is a Date, and that the date is valid
10656 *
10657 * @param {*} payload
10658 * @returns {payload is Date}
10659 */
10660function isDate(payload) {
10661    return getType(payload) === 'Date' && !isNaN(payload);
10662}
10663/**
10664 * Returns whether the payload is a Blob
10665 *
10666 * @param {*} payload
10667 * @returns {payload is Blob}
10668 */
10669function isBlob(payload) {
10670    return getType(payload) === 'Blob';
10671}
10672/**
10673 * Returns whether the payload is a File
10674 *
10675 * @param {*} payload
10676 * @returns {payload is File}
10677 */
10678function isFile(payload) {
10679    return getType(payload) === 'File';
10680}
10681/**
10682 * Returns whether the payload is a Promise
10683 *
10684 * @param {*} payload
10685 * @returns {payload is Promise}
10686 */
10687function isPromise(payload) {
10688    return getType(payload) === 'Promise';
10689}
10690/**
10691 * Returns whether the payload is an Error
10692 *
10693 * @param {*} payload
10694 * @returns {payload is Error}
10695 */
10696function isError(payload) {
10697    return getType(payload) === 'Error';
10698}
10699/**
10700 * Returns whether the payload is a primitive type (eg. Boolean | Null | Undefined | Number | String | Symbol)
10701 *
10702 * @param {*} payload
10703 * @returns {(payload is boolean | null | undefined | number | string | symbol)}
10704 */
10705function isPrimitive(payload) {
10706    return (isBoolean(payload) ||
10707        isNull(payload) ||
10708        isUndefined(payload) ||
10709        isNumber(payload) ||
10710        isString(payload) ||
10711        isSymbol(payload));
10712}
10713/**
10714 * Returns true whether the payload is null or undefined
10715 *
10716 * @param {*} payload
10717 * @returns {(payload is null | undefined)}
10718 */
10719function isNullOrUndefined(payload) {
10720    return isNull(payload) || isUndefined(payload);
10721}
10722/**
10723 * Does a generic check to check that the given payload is of a given type.
10724 * In cases like Number, it will return true for NaN as NaN is a Number (thanks javascript!);
10725 * It will, however, differentiate between object and null
10726 *
10727 * @template T
10728 * @param {*} payload
10729 * @param {T} type
10730 * @throws {TypeError}
10730 Will throw type error if type is an invalid type
10731 * @returns {payload is T}
10732 */
10733function isType(payload, type) {
10734    if (!(type instanceof Function)) {
10735        throw new TypeError('Type must be a function');
10736    }
10737    if (!Object.prototype.hasOwnProperty.call(type, 'prototype')) {
10738        throw new TypeError('Type is not a class');
10739    }
10740    // Classes usually have names (as functions usually have names)
10741    var name = type.name;
10742    return getType(payload) === name || Boolean(payload && payload.constructor === type);
10743}
10744
10745
10746
10747// CONCATENATED MODULE: ./node_modules/merge-anything/dist/index.esm.js
10748/* unused harmony export concatArrays */
10749/* unused harmony export merge */
10750
10751
10752/*! *****************************************************************************
10753Copyright (c) Microsoft Corporation. All rights reserved.
10754Licensed under the Apache License, Version 2.0 (the "License"); you may not use
10755this file except in compliance with the License. You may obtain a copy of the
10756License at http://www.apache.org/licenses/LICENSE-2.0
10757
10758THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
10759KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
10760WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
10761MERCHANTABLITY OR NON-INFRINGEMENT.
10762
10763See the Apache Version 2.0 License for specific language governing permissions
10764and limitations under the License.
10765***************************************************************************** */
10766
10767function __spreadArrays() {
10768    for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
10769    for (var r = Array(s), k = 0, i = 0; i < il; i++)
10770        for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
10771            r[k] = a[j];
10772    return r;
10773}
10774
10775function assignProp(carry, key, newVal, originalObject) {
10776    var propType = originalObject.propertyIsEnumerable(key)
10777        ? 'enumerable'
10778        : 'nonenumerable';
10779    if (propType === 'enumerable')
10780        carry[key] = newVal;
10781    if (propType === 'nonenumerable') {
10782        Object.defineProperty(carry, key, {
10783            value: newVal,
10784            enumerable: false,
10785            writable: true,
10786            configurable: true
10787        });
10788    }
10789}
10790function mergeRecursively(origin, newComer, extensions) {
10791    // work directly on newComer if its not an object
10792    if (!isPlainObject(newComer)) {
10793        // extend merge rules
10794        if (extensions && isArray(extensions)) {
10795            extensions.forEach(function (extend) {
10796                newComer = extend(origin, newComer);
10797            });
10798        }
10799        return newComer;
10800    }
10801    // define newObject to merge all values upon
10802    var newObject = {};
10803    if (isPlainObject(origin)) {
10804        var props_1 = Object.getOwnPropertyNames(origin);
10805        var symbols_1 = Object.getOwnPropertySymbols(origin);
10806        newObject = __spreadArrays(props_1, symbols_1).reduce(function (carry, key) {
10807            // @ts-ignore
10808            var targetVal = origin[key];
10809            if ((!isSymbol(key) && !Object.getOwnPropertyNames(newComer).includes(key)) ||
10810                (isSymbol(key) && !Object.getOwnPropertySymbols(newComer).includes(key))) {
10811                assignProp(carry, key, targetVal, origin);
10812            }
10813            return carry;
10814        }, {});
10815    }
10816    var props = Object.getOwnPropertyNames(newComer);
10817    var symbols = Object.getOwnPropertySymbols(newComer);
10818    var result = __spreadArrays(props, symbols).reduce(function (carry, key) {
10819        // re-define the origin and newComer as targetVal and newVal
10820        var newVal = newComer[key];
10821        var targetVal = (isPlainObject(origin))
10822            // @ts-ignore
10823            ? origin[key]
10824            : undefined;
10825        // extend merge rules
10826        if (extensions && isArray(extensions)) {
10827            extensions.forEach(function (extend) {
10828                newVal = extend(targetVal, newVal);
10829            });
10830        }
10831        // When newVal is an object do the merge recursively
10832        if (targetVal !== undefined && isPlainObject(newVal)) {
10833            newVal = mergeRecursively(targetVal, newVal, extensions);
10834        }
10835        assignProp(carry, key, newVal, newComer);
10836        return carry;
10837    }, newObject);
10838    return result;
10839}
10840/**
10841 * Merge anything recursively.
10842 * Objects get merged, special objects (classes etc.) are re-assigned "as is".
10843 * Basic types overwrite objects or other basic types.
10844 *
10845 * @param {(IConfig | any)} origin
10846 * @param {...any[]} newComers
10847 * @returns the result
10848 */
10849function merge(origin) {
10850    var newComers = [];
10851    for (var _i = 1; _i < arguments.length; _i++) {
10852        newComers[_i - 1] = arguments[_i];
10853    }
10854    var extensions = null;
10855    var base = origin;
10856    if (isPlainObject(origin) && origin.extensions && Object.keys(origin).length === 1) {
10857        base = {};
10858        extensions = origin.extensions;
10859    }
10860    return newComers.reduce(function (result, newComer) {
10861        return mergeRecursively(result, newComer, extensions);
10862    }, base);
10863}
10864
10865function concatArrays(originVal, newVal) {
10866    if (isArray(originVal) && isArray(newVal)) {
10867        // concat logic
10868        return originVal.concat(newVal);
10869    }
10870    return newVal; // always return newVal as fallback!!
10871}
10872
10873/* harmony default export */ var index_esm = __webpack_exports__["a"] = (merge);
10874
10875
10876
10877/***/ }),
10878/* 47 */
10879/***/ (function(module, exports, __webpack_require__) {
10880
10881"use strict";
10882
10883Object.defineProperty(exports, "__esModule", { value: true });
10884var React = __webpack_require__(0);
10885var ReactDOM = __webpack_require__(12);
10886var App_1 = __webpack_require__(52);
10887var wrapper = document.getElementById('app');
10888if (wrapper) {
10889    ReactDOM.render(React.createElement(App_1.default, null), wrapper);
10890}
10891
10892
10893/***/ }),
10894/* 48 */
10895/***/ (function(module, exports, __webpack_require__) {
10896
10897"use strict";
10898/** @license React v16.12.0
10899 * react.production.min.js
10900 *
10901 * Copyright (c) Facebook, Inc. and its affiliates.
10902 *
10903 * This source code is licensed under the MIT license found in the
10904 * LICENSE file in the root directory of this source tree.
10905 */
10906
10907var h=__webpack_require__(32),n="function"===typeof Symbol&&Symbol.for,p=n?Symbol.for("react.element"):60103,q=n?Symbol.for("react.portal"):60106,r=n?Symbol.for("react.fragment"):60107,t=n?Symbol.for("react.strict_mode"):60108,u=n?Symbol.for("react.profiler"):60114,v=n?Symbol.for("react.provider"):60109,w=n?Symbol.for("react.context"):60110,x=n?Symbol.for("react.forward_ref"):60112,y=n?Symbol.for("react.suspense"):60113;n&&Symbol.for("react.suspense_list");
10908var z=n?Symbol.for("react.memo"):60115,aa=n?Symbol.for("react.lazy"):60116;n&&Symbol.for("react.fundamental");n&&Symbol.for("react.responder");n&&Symbol.for("react.scope");var A="function"===typeof Symbol&&Symbol.iterator;
10909function B(a){for(var b="https://reactjs.org/docs/error-decoder.html?invariant="+a,c=1;c<arguments.length;c++)b+="&args[]="+encodeURIComponent(arguments[c]);return"Minified React error #"+a+"; visit "+b+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var C={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},D={};
10910function E(a,b,c){this.props=a;this.context=b;this.refs=D;this.updater=c||C}E.prototype.isReactComponent={};E.prototype.setState=function(a,b){if("object"!==typeof a&&"function"!==typeof a&&null!=a)throw Error(B(85));this.updater.enqueueSetState(this,a,b,"setState")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,"forceUpdate")};function F(){}F.prototype=E.prototype;function G(a,b,c){this.props=a;this.context=b;this.refs=D;this.updater=c||C}var H=G.prototype=new F;
10911H.constructor=G;h(H,E.prototype);H.isPureReactComponent=!0;var I={current:null},J={current:null},K=Object.prototype.hasOwnProperty,L={key:!0,ref:!0,__self:!0,__source:!0};
10912function M(a,b,c){var e,d={},g=null,l=null;if(null!=b)for(e in void 0!==b.ref&&(l=b.ref),void 0!==b.key&&(g=""+b.key),b)K.call(b,e)&&!L.hasOwnProperty(e)&&(d[e]=b[e]);var f=arguments.length-2;if(1===f)d.children=c;else if(1<f){for(var k=Array(f),m=0;m<f;m++)k[m]=arguments[m+2];d.children=k}if(a&&a.defaultProps)for(e in f=a.defaultProps,f)void 0===d[e]&&(d[e]=f[e]);return{$$typeof:p,type:a,key:g,ref:l,props:d,_owner:J.current}}
10913function ba(a,b){return{$$typeof:p,type:a.type,key:b,ref:a.ref,props:a.props,_owner:a._owner}}
vendor: 29,341 bytes, lines 10913-10999
10913function N(a){return"object"===typeof a&&null!==a&&a.$$typeof===p}function escape(a){var b={"=":"=0",":":"=2"};return"$"+(""+a).replace(/[=:]/g,function(a){return b[a]})}var O=/\/+/g,P=[];function Q(a,b,c,e){if(P.length){var d=P.pop();d.result=a;d.keyPrefix=b;d.func=c;d.context=e;d.count=0;return d}return{result:a,keyPrefix:b,func:c,context:e,count:0}}
10914function R(a){a.result=null;a.keyPrefix=null;a.func=null;a.context=null;a.count=0;10>P.length&&P.push(a)}
10915function S(a,b,c,e){var d=typeof a;if("undefined"===d||"boolean"===d)a=null;var g=!1;if(null===a)g=!0;else switch(d){case "string":case "number":g=!0;break;case "object":switch(a.$$typeof){case p:case q:g=!0}}if(g)return c(e,a,""===b?"."+T(a,0):b),1;g=0;b=""===b?".":b+":";if(Array.isArray(a))for(var l=0;l<a.length;l++){d=a[l];var f=b+T(d,l);g+=S(d,f,c,e)}else if(null===a||"object"!==typeof a?f=null:(f=A&&a[A]||a["@@iterator"],f="function"===typeof f?f:null),"function"===typeof f)for(a=f.call(a),l=
109160;!(d=a.next()).done;)d=d.value,f=b+T(d,l++),g+=S(d,f,c,e);else if("object"===d)throw c=""+a,Error(B(31,"[object Object]"===c?"object with keys {"+Object.keys(a).join(", ")+"}":c,""));return g}function U(a,b,c){return null==a?0:S(a,"",b,c)}function T(a,b){return"object"===typeof a&&null!==a&&null!=a.key?escape(a.key):b.toString(36)}function ca(a,b){a.func.call(a.context,b,a.count++)}
10917function da(a,b,c){var e=a.result,d=a.keyPrefix;a=a.func.call(a.context,b,a.count++);Array.isArray(a)?V(a,e,c,function(a){return a}):null!=a&&(N(a)&&(a=ba(a,d+(!a.key||b&&b.key===a.key?"":(""+a.key).replace(O,"$&/")+"/")+c)),e.push(a))}function V(a,b,c,e,d){var g="";null!=c&&(g=(""+c).replace(O,"$&/")+"/");b=Q(b,g,e,d);U(a,da,b);R(b)}function W(){var a=I.current;if(null===a)throw Error(B(321));return a}
10918var X={Children:{map:function(a,b,c){if(null==a)return a;var e=[];V(a,e,null,b,c);return e},forEach:function(a,b,c){if(null==a)return a;b=Q(null,null,b,c);U(a,ca,b);R(b)},count:function(a){return U(a,function(){return null},null)},toArray:function(a){var b=[];V(a,b,null,function(a){return a});return b},only:function(a){if(!N(a))throw Error(B(143));return a}},createRef:function(){return{current:null}},Component:E,PureComponent:G,createContext:function(a,b){void 0===b&&(b=null);a={$$typeof:w,_calculateChangedBits:b,
10919_currentValue:a,_currentValue2:a,_threadCount:0,Provider:null,Consumer:null};a.Provider={$$typeof:v,_context:a};return a.Consumer=a},forwardRef:function(a){return{$$typeof:x,render:a}},lazy:function(a){return{$$typeof:aa,_ctor:a,_status:-1,_result:null}},memo:function(a,b){return{$$typeof:z,type:a,compare:void 0===b?null:b}},useCallback:function(a,b){return W().useCallback(a,b)},useContext:function(a,b){return W().useContext(a,b)},useEffect:function(a,b){return W().useEffect(a,b)},useImperativeHandle:function(a,
10920b,c){return W().useImperativeHandle(a,b,c)},useDebugValue:function(){},useLayoutEffect:function(a,b){return W().useLayoutEffect(a,b)},useMemo:function(a,b){return W().useMemo(a,b)},useReducer:function(a,b,c){return W().useReducer(a,b,c)},useRef:function(a){return W().useRef(a)},useState:function(a){return W().useState(a)},Fragment:r,Profiler:u,StrictMode:t,Suspense:y,createElement:M,cloneElement:function(a,b,c){if(null===a||void 0===a)throw Error(B(267,a));var e=h({},a.props),d=a.key,g=a.ref,l=a._owner;
10921if(null!=b){void 0!==b.ref&&(g=b.ref,l=J.current);void 0!==b.key&&(d=""+b.key);if(a.type&&a.type.defaultProps)var f=a.type.defaultProps;for(k in b)K.call(b,k)&&!L.hasOwnProperty(k)&&(e[k]=void 0===b[k]&&void 0!==f?f[k]:b[k])}var k=arguments.length-2;if(1===k)e.children=c;else if(1<k){f=Array(k);for(var m=0;m<k;m++)f[m]=arguments[m+2];e.children=f}return{$$typeof:p,type:a.type,key:d,ref:g,props:e,_owner:l}},createFactory:function(a){var b=M.bind(null,a);b.type=a;return b},isValidElement:N,version:"16.12.0",
10922__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:{ReactCurrentDispatcher:I,ReactCurrentBatchConfig:{suspense:null},ReactCurrentOwner:J,IsSomeRendererActing:{current:!1},assign:h}},Y={default:X},Z=Y&&X||Y;module.exports=Z.default||Z;
10923
10924
10925/***/ }),
10926/* 49 */
10927/***/ (function(module, exports, __webpack_require__) {
10928
10929"use strict";
10930/** @license React v16.12.0
10931 * react-dom.production.min.js
10932 *
10933 * Copyright (c) Facebook, Inc. and its affiliates.
10934 *
10935 * This source code is licensed under the MIT license found in the
10936 * LICENSE file in the root directory of this source tree.
10937 */
10938
10939/*
10940 Modernizr 3.0.0pre (Custom Build) | MIT
10941*/
10942var aa=__webpack_require__(0),n=__webpack_require__(32),q=__webpack_require__(50);function u(a){for(var b="https://reactjs.org/docs/error-decoder.html?invariant="+a,c=1;c<arguments.length;c++)b+="&args[]="+encodeURIComponent(arguments[c]);return"Minified React error #"+a+"; visit "+b+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}if(!aa)throw Error(u(227));var ba=null,ca={};
10943function da(){if(ba)for(var a in ca){var b=ca[a],c=ba.indexOf(a);if(!(-1<c))throw Error(u(96,a));if(!ea[c]){if(!b.extractEvents)throw Error(u(97,a));ea[c]=b;c=b.eventTypes;for(var d in c){var e=void 0;var f=c[d],g=b,h=d;if(fa.hasOwnProperty(h))throw Error(u(99,h));fa[h]=f;var k=f.phasedRegistrationNames;if(k){for(e in k)k.hasOwnProperty(e)&&ha(k[e],g,h);e=!0}else f.registrationName?(ha(f.registrationName,g,h),e=!0):e=!1;if(!e)throw Error(u(98,d,a));}}}}
10944function ha(a,b,c){if(ia[a])throw Error(u(100,a));ia[a]=b;ja[a]=b.eventTypes[c].dependencies}var ea=[],fa={},ia={},ja={};function ka(a,b,c,d,e,f,g,h,k){var l=Array.prototype.slice.call(arguments,3);try{b.apply(c,l)}catch(m){this.onError(m)}}var la=!1,ma=null,na=!1,oa=null,pa={onError:function(a){la=!0;ma=a}};function qa(a,b,c,d,e,f,g,h,k){la=!1;ma=null;ka.apply(pa,arguments)}
10945function ra(a,b,c,d,e,f,g,h,k){qa.apply(this,arguments);if(la){if(la){var l=ma;la=!1;ma=null}else throw Error(u(198));na||(na=!0,oa=l)}}var sa=null,ua=null,va=null;function wa(a,b,c){var d=a.type||"unknown-event";a.currentTarget=va(c);ra(d,b,void 0,a);a.currentTarget=null}function xa(a,b){if(null==b)throw Error(u(30));if(null==a)return b;if(Array.isArray(a)){if(Array.isArray(b))return a.push.apply(a,b),a;a.push(b);return a}return Array.isArray(b)?[a].concat(b):[a,b]}
10946function ya(a,b,c){Array.isArray(a)?a.forEach(b,c):a&&b.call(c,a)}var za=null;function Aa(a){if(a){var b=a._dispatchListeners,c=a._dispatchInstances;if(Array.isArray(b))for(var d=0;d<b.length&&!a.isPropagationStopped();d++)wa(a,b[d],c[d]);else b&&wa(a,b,c);a._dispatchListeners=null;a._dispatchInstances=null;a.isPersistent()||a.constructor.release(a)}}function Ba(a){null!==a&&(za=xa(za,a));a=za;za=null;if(a){ya(a,Aa);if(za)throw Error(u(95));if(na)throw a=oa,na=!1,oa=null,a;}}
10947var Ca={injectEventPluginOrder:function(a){if(ba)throw Error(u(101));ba=Array.prototype.slice.call(a);da()},injectEventPluginsByName:function(a){var b=!1,c;for(c in a)if(a.hasOwnProperty(c)){var d=a[c];if(!ca.hasOwnProperty(c)||ca[c]!==d){if(ca[c])throw Error(u(102,c));ca[c]=d;b=!0}}b&&da()}};
10948function Da(a,b){var c=a.stateNode;if(!c)return null;var d=sa(c);if(!d)return null;c=d[b];a:switch(b){case "onClick":case "onClickCapture":case "onDoubleClick":case "onDoubleClickCapture":case "onMouseDown":case "onMouseDownCapture":case "onMouseMove":case "onMouseMoveCapture":case "onMouseUp":case "onMouseUpCapture":(d=!d.disabled)||(a=a.type,d=!("button"===a||"input"===a||"select"===a||"textarea"===a));a=!d;break a;default:a=!1}if(a)return null;if(c&&"function"!==typeof c)throw Error(u(231,b,typeof c));
10949return c}var Ea=aa.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;Ea.hasOwnProperty("ReactCurrentDispatcher")||(Ea.ReactCurrentDispatcher={current:null});Ea.hasOwnProperty("ReactCurrentBatchConfig")||(Ea.ReactCurrentBatchConfig={suspense:null});
10950var Fa=/^(.*)[\\\/]/,w="function"===typeof Symbol&&Symbol.for,Ga=w?Symbol.for("react.element"):60103,Ha=w?Symbol.for("react.portal"):60106,Ia=w?Symbol.for("react.fragment"):60107,Ja=w?Symbol.for("react.strict_mode"):60108,Ka=w?Symbol.for("react.profiler"):60114,La=w?Symbol.for("react.provider"):60109,Ma=w?Symbol.for("react.context"):60110,Na=w?Symbol.for("react.concurrent_mode"):60111,Oa=w?Symbol.for("react.forward_ref"):60112,Pa=w?Symbol.for("react.suspense"):60113,Qa=w?Symbol.for("react.suspense_list"):
1095160120,Ra=w?Symbol.for("react.memo"):60115,Sa=w?Symbol.for("react.lazy"):60116;w&&Symbol.for("react.fundamental");w&&Symbol.for("react.responder");w&&Symbol.for("react.scope");var Ta="function"===typeof Symbol&&Symbol.iterator;function Ua(a){if(null===a||"object"!==typeof a)return null;a=Ta&&a[Ta]||a["@@iterator"];return"function"===typeof a?a:null}
10952function Va(a){if(-1===a._status){a._status=0;var b=a._ctor;b=b();a._result=b;b.then(function(b){0===a._status&&(b=b.default,a._status=1,a._result=b)},function(b){0===a._status&&(a._status=2,a._result=b)})}}
10953function Wa(a){if(null==a)return null;if("function"===typeof a)return a.displayName||a.name||null;if("string"===typeof a)return a;switch(a){case Ia:return"Fragment";case Ha:return"Portal";case Ka:return"Profiler";case Ja:return"StrictMode";case Pa:return"Suspense";case Qa:return"SuspenseList"}if("object"===typeof a)switch(a.$$typeof){case Ma:return"Context.Consumer";case La:return"Context.Provider";case Oa:var b=a.render;b=b.displayName||b.name||"";return a.displayName||(""!==b?"ForwardRef("+b+")":
10954"ForwardRef");case Ra:return Wa(a.type);case Sa:if(a=1===a._status?a._result:null)return Wa(a)}return null}function Xa(a){var b="";do{a:switch(a.tag){case 3:case 4:case 6:case 7:case 10:case 9:var c="";break a;default:var d=a._debugOwner,e=a._debugSource,f=Wa(a.type);c=null;d&&(c=Wa(d.type));d=f;f="";e?f=" (at "+e.fileName.replace(Fa,"")+":"+e.lineNumber+")":c&&(f=" (created by "+c+")");c="\n    in "+(d||"Unknown")+f}b+=c;a=a.return}while(a);return b}
10955var Ya=!("undefined"===typeof window||"undefined"===typeof window.document||"undefined"===typeof window.document.createElement),Za=null,$a=null,ab=null;function bb(a){if(a=ua(a)){if("function"!==typeof Za)throw Error(u(280));var b=sa(a.stateNode);Za(a.stateNode,a.type,b)}}function cb(a){$a?ab?ab.push(a):ab=[a]:$a=a}function db(){if($a){var a=$a,b=ab;ab=$a=null;bb(a);if(b)for(a=0;a<b.length;a++)bb(b[a])}}function eb(a,b){return a(b)}function fb(a,b,c,d){return a(b,c,d)}function gb(){}
10956var hb=eb,ib=!1,jb=!1;function kb(){if(null!==$a||null!==ab)gb(),db()}new Map;var lb=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,mb=Object.prototype.hasOwnProperty,nb={},ob={};
10957function pb(a){if(mb.call(ob,a))return!0;if(mb.call(nb,a))return!1;if(lb.test(a))return ob[a]=!0;nb[a]=!0;return!1}function qb(a,b,c,d){if(null!==c&&0===c.type)return!1;switch(typeof b){case "function":case "symbol":return!0;case "boolean":if(d)return!1;if(null!==c)return!c.acceptsBooleans;a=a.toLowerCase().slice(0,5);return"data-"!==a&&"aria-"!==a;default:return!1}}
10958function rb(a,b,c,d){if(null===b||"undefined"===typeof b||qb(a,b,c,d))return!0;if(d)return!1;if(null!==c)switch(c.type){case 3:return!b;case 4:return!1===b;case 5:return isNaN(b);case 6:return isNaN(b)||1>b}return!1}function B(a,b,c,d,e,f){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f}var D={};
10959"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(a){D[a]=new B(a,0,!1,a,null,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(a){var b=a[0];D[b]=new B(b,1,!1,a[1],null,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(a){D[a]=new B(a,2,!1,a.toLowerCase(),null,!1)});
10960["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(a){D[a]=new B(a,2,!1,a,null,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(a){D[a]=new B(a,3,!1,a.toLowerCase(),null,!1)});
10961["checked","multiple","muted","selected"].forEach(function(a){D[a]=new B(a,3,!0,a,null,!1)});["capture","download"].forEach(function(a){D[a]=new B(a,4,!1,a,null,!1)});["cols","rows","size","span"].forEach(function(a){D[a]=new B(a,6,!1,a,null,!1)});["rowSpan","start"].forEach(function(a){D[a]=new B(a,5,!1,a.toLowerCase(),null,!1)});var sb=/[\-:]([a-z])/g;function tb(a){return a[1].toUpperCase()}
10962"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(a){var b=a.replace(sb,
10963tb);D[b]=new B(b,1,!1,a,null,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(a){var b=a.replace(sb,tb);D[b]=new B(b,1,!1,a,"http://www.w3.org/1999/xlink",!1)});["xml:base","xml:lang","xml:space"].forEach(function(a){var b=a.replace(sb,tb);D[b]=new B(b,1,!1,a,"http://www.w3.org/XML/1998/namespace",!1)});["tabIndex","crossOrigin"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!1)});
10964D.xlinkHref=new B("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0);["src","href","action","formAction"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!0)});function ub(a){switch(typeof a){case "boolean":case "number":case "object":case "string":case "undefined":return a;default:return""}}
10965function vb(a,b,c,d){var e=D.hasOwnProperty(b)?D[b]:null;var f=null!==e?0===e.type:d?!1:!(2<b.length)||"o"!==b[0]&&"O"!==b[0]||"n"!==b[1]&&"N"!==b[1]?!1:!0;f||(rb(b,c,e,d)&&(c=null),d||null===e?pb(b)&&(null===c?a.removeAttribute(b):a.setAttribute(b,""+c)):e.mustUseProperty?a[e.propertyName]=null===c?3===e.type?!1:"":c:(b=e.attributeName,d=e.attributeNamespace,null===c?a.removeAttribute(b):(e=e.type,c=3===e||4===e&&!0===c?"":""+c,d?a.setAttributeNS(d,b,c):a.setAttribute(b,c))))}
10966function wb(a){var b=a.type;return(a=a.nodeName)&&"input"===a.toLowerCase()&&("checkbox"===b||"radio"===b)}
10967function xb(a){var b=wb(a)?"checked":"value",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=""+a[b];if(!a.hasOwnProperty(b)&&"undefined"!==typeof c&&"function"===typeof c.get&&"function"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=""+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=""+a},stopTracking:function(){a._valueTracker=
10968null;delete a[b]}}}}function yb(a){a._valueTracker||(a._valueTracker=xb(a))}function zb(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d="";a&&(d=wb(a)?a.checked?"true":"false":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Ab(a,b){var c=b.checked;return n({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}
10969function Bb(a,b){var c=null==b.defaultValue?"":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=ub(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:"checkbox"===b.type||"radio"===b.type?null!=b.checked:null!=b.value}}function Cb(a,b){b=b.checked;null!=b&&vb(a,"checked",b,!1)}
10970function Eb(a,b){Cb(a,b);var c=ub(b.value),d=b.type;if(null!=c)if("number"===d){if(0===c&&""===a.value||a.value!=c)a.value=""+c}else a.value!==""+c&&(a.value=""+c);else if("submit"===d||"reset"===d){a.removeAttribute("value");return}b.hasOwnProperty("value")?Fb(a,b.type,c):b.hasOwnProperty("defaultValue")&&Fb(a,b.type,ub(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}
10971function Gb(a,b,c){if(b.hasOwnProperty("value")||b.hasOwnProperty("defaultValue")){var d=b.type;if(!("submit"!==d&&"reset"!==d||void 0!==b.value&&null!==b.value))return;b=""+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;""!==c&&(a.name="");a.defaultChecked=!a.defaultChecked;a.defaultChecked=!!a._wrapperState.initialChecked;""!==c&&(a.name=c)}
10972function Fb(a,b,c){if("number"!==b||a.ownerDocument.activeElement!==a)null==c?a.defaultValue=""+a._wrapperState.initialValue:a.defaultValue!==""+c&&(a.defaultValue=""+c)}function Hb(a){var b="";aa.Children.forEach(a,function(a){null!=a&&(b+=a)});return b}function Ib(a,b){a=n({children:void 0},b);if(b=Hb(b.children))a.children=b;return a}
10973function Jb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e<c.length;e++)b["$"+c[e]]=!0;for(c=0;c<a.length;c++)e=b.hasOwnProperty("$"+a[c].value),a[c].selected!==e&&(a[c].selected=e),e&&d&&(a[c].defaultSelected=!0)}else{c=""+ub(c);b=null;for(e=0;e<a.length;e++){if(a[e].value===c){a[e].selected=!0;d&&(a[e].defaultSelected=!0);return}null!==b||a[e].disabled||(b=a[e])}null!==b&&(b.selected=!0)}}
10974function Kb(a,b){if(null!=b.dangerouslySetInnerHTML)throw Error(u(91));return n({},b,{value:void 0,defaultValue:void 0,children:""+a._wrapperState.initialValue})}function Lb(a,b){var c=b.value;if(null==c){c=b.defaultValue;b=b.children;if(null!=b){if(null!=c)throw Error(u(92));if(Array.isArray(b)){if(!(1>=b.length))throw Error(u(93));b=b[0]}c=b}null==c&&(c="")}a._wrapperState={initialValue:ub(c)}}
10975function Mb(a,b){var c=ub(b.value),d=ub(b.defaultValue);null!=c&&(c=""+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=""+d)}function Nb(a){var b=a.textContent;b===a._wrapperState.initialValue&&""!==b&&null!==b&&(a.value=b)}var Ob={html:"http://www.w3.org/1999/xhtml",mathml:"http://www.w3.org/1998/Math/MathML",svg:"http://www.w3.org/2000/svg"};
10976function Pb(a){switch(a){case "svg":return"http://www.w3.org/2000/svg";case "math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function Qb(a,b){return null==a||"http://www.w3.org/1999/xhtml"===a?Pb(b):"http://www.w3.org/2000/svg"===a&&"foreignObject"===b?"http://www.w3.org/1999/xhtml":a}
10977var Rb,Sb=function(a){return"undefined"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(a.namespaceURI!==Ob.svg||"innerHTML"in a)a.innerHTML=b;else{Rb=Rb||document.createElement("div");Rb.innerHTML="<svg>"+b.valueOf().toString()+"</svg>";for(b=Rb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});
10978function Tb(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}function Ub(a,b){var c={};c[a.toLowerCase()]=b.toLowerCase();c["Webkit"+a]="webkit"+b;c["Moz"+a]="moz"+b;return c}var Vb={animationend:Ub("Animation","AnimationEnd"),animationiteration:Ub("Animation","AnimationIteration"),animationstart:Ub("Animation","AnimationStart"),transitionend:Ub("Transition","TransitionEnd")},Wb={},Xb={};
10979Ya&&(Xb=document.createElement("div").style,"AnimationEvent"in window||(delete Vb.animationend.animation,delete Vb.animationiteration.animation,delete Vb.animationstart.animation),"TransitionEvent"in window||delete Vb.transitionend.transition);function Yb(a){if(Wb[a])return Wb[a];if(!Vb[a])return a;var b=Vb[a],c;for(c in b)if(b.hasOwnProperty(c)&&c in Xb)return Wb[a]=b[c];return a}var Zb=Yb("animationend"),$b=Yb("animationiteration"),ac=Yb("animationstart"),bc=Yb("transitionend"),cc="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting".split(" ");
10980function ec(a){var b=a,c=a;if(a.alternate)for(;b.return;)b=b.return;else{a=b;do b=a,0!==(b.effectTag&1026)&&(c=b.return),a=b.return;while(a)}return 3===b.tag?c:null}function fc(a){if(13===a.tag){var b=a.memoizedState;null===b&&(a=a.alternate,null!==a&&(b=a.memoizedState));if(null!==b)return b.dehydrated}return null}function gc(a){if(ec(a)!==a)throw Error(u(188));}
10981function hc(a){var b=a.alternate;if(!b){b=ec(a);if(null===b)throw Error(u(188));return b!==a?null:a}for(var c=a,d=b;;){var e=c.return;if(null===e)break;var f=e.alternate;if(null===f){d=e.return;if(null!==d){c=d;continue}break}if(e.child===f.child){for(f=e.child;f;){if(f===c)return gc(e),a;if(f===d)return gc(e),b;f=f.sibling}throw Error(u(188));}if(c.return!==d.return)c=e,d=f;else{for(var g=!1,h=e.child;h;){if(h===c){g=!0;c=e;d=f;break}if(h===d){g=!0;d=e;c=f;break}h=h.sibling}if(!g){for(h=f.child;h;){if(h===
10982c){g=!0;c=f;d=e;break}if(h===d){g=!0;d=f;c=e;break}h=h.sibling}if(!g)throw Error(u(189));}}if(c.alternate!==d)throw Error(u(190));}if(3!==c.tag)throw Error(u(188));return c.stateNode.current===c?a:b}function ic(a){a=hc(a);if(!a)return null;for(var b=a;;){if(5===b.tag||6===b.tag)return b;if(b.child)b.child.return=b,b=b.child;else{if(b===a)break;for(;!b.sibling;){if(!b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}}return null}
10983var jc,kc,lc,mc=!1,nc=[],oc=null,pc=null,qc=null,rc=new Map,sc=new Map,tc=[],uc="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput close cancel copy cut paste click change contextmenu reset submit".split(" "),vc="focus blur dragenter dragleave mouseover mouseout pointerover pointerout gotpointercapture lostpointercapture".split(" ");
10984function wc(a){var b=xc(a);uc.forEach(function(c){yc(c,a,b)});vc.forEach(function(c){yc(c,a,b)})}function zc(a,b,c,d){return{blockedOn:a,topLevelType:b,eventSystemFlags:c|32,nativeEvent:d}}function Ac(a,b){switch(a){case "focus":case "blur":oc=null;break;case "dragenter":case "dragleave":pc=null;break;case "mouseover":case "mouseout":qc=null;break;case "pointerover":case "pointerout":rc.delete(b.pointerId);break;case "gotpointercapture":case "lostpointercapture":sc.delete(b.pointerId)}}
10985function Bc(a,b,c,d,e){if(null===a||a.nativeEvent!==e)return a=zc(b,c,d,e),null!==b&&(b=Cc(b),null!==b&&kc(b)),a;a.eventSystemFlags|=d;return a}function Dc(a,b,c,d){switch(b){case "focus":return oc=Bc(oc,a,b,c,d),!0;case "dragenter":return pc=Bc(pc,a,b,c,d),!0;case "mouseover":return qc=Bc(qc,a,b,c,d),!0;case "pointerover":var e=d.pointerId;rc.set(e,Bc(rc.get(e)||null,a,b,c,d));return!0;case "gotpointercapture":return e=d.pointerId,sc.set(e,Bc(sc.get(e)||null,a,b,c,d)),!0}return!1}
10986function Ec(a){var b=Fc(a.target);if(null!==b){var c=ec(b);if(null!==c)if(b=c.tag,13===b){if(b=fc(c),null!==b){a.blockedOn=b;q.unstable_runWithPriority(a.priority,function(){lc(c)});return}}else if(3===b&&c.stateNode.hydrate){a.blockedOn=3===c.tag?c.stateNode.containerInfo:null;return}}a.blockedOn=null}function Gc(a){if(null!==a.blockedOn)return!1;var b=Hc(a.topLevelType,a.eventSystemFlags,a.nativeEvent);if(null!==b){var c=Cc(b);null!==c&&kc(c);a.blockedOn=b;return!1}return!0}
10987function Ic(a,b,c){Gc(a)&&c.delete(b)}function Jc(){for(mc=!1;0<nc.length;){var a=nc[0];if(null!==a.blockedOn){a=Cc(a.blockedOn);null!==a&&jc(a);break}var b=Hc(a.topLevelType,a.eventSystemFlags,a.nativeEvent);null!==b?a.blockedOn=b:nc.shift()}null!==oc&&Gc(oc)&&(oc=null);null!==pc&&Gc(pc)&&(pc=null);null!==qc&&Gc(qc)&&(qc=null);rc.forEach(Ic);sc.forEach(Ic)}function Kc(a,b){a.blockedOn===b&&(a.blockedOn=null,mc||(mc=!0,q.unstable_scheduleCallback(q.unstable_NormalPriority,Jc)))}
10988function Lc(a){function b(b){return Kc(b,a)}if(0<nc.length){Kc(nc[0],a);for(var c=1;c<nc.length;c++){var d=nc[c];d.blockedOn===a&&(d.blockedOn=null)}}null!==oc&&Kc(oc,a);null!==pc&&Kc(pc,a);null!==qc&&Kc(qc,a);rc.forEach(b);sc.forEach(b);for(c=0;c<tc.length;c++)d=tc[c],d.blockedOn===a&&(d.blockedOn=null);for(;0<tc.length&&(c=tc[0],null===c.blockedOn);)Ec(c),null===c.blockedOn&&tc.shift()}
10989function Mc(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}function Nc(a){do a=a.return;while(a&&5!==a.tag);return a?a:null}function Oc(a,b,c){if(b=Da(a,c.dispatchConfig.phasedRegistrationNames[b]))c._dispatchListeners=xa(c._dispatchListeners,b),c._dispatchInstances=xa(c._dispatchInstances,a)}
10990function Pc(a){if(a&&a.dispatchConfig.phasedRegistrationNames){for(var b=a._targetInst,c=[];b;)c.push(b),b=Nc(b);for(b=c.length;0<b--;)Oc(c[b],"captured",a);for(b=0;b<c.length;b++)Oc(c[b],"bubbled",a)}}function Qc(a,b,c){a&&c&&c.dispatchConfig.registrationName&&(b=Da(a,c.dispatchConfig.registrationName))&&(c._dispatchListeners=xa(c._dispatchListeners,b),c._dispatchInstances=xa(c._dispatchInstances,a))}function Rc(a){a&&a.dispatchConfig.registrationName&&Qc(a._targetInst,null,a)}
10991function Sc(a){ya(a,Pc)}function Tc(){return!0}function Uc(){return!1}function E(a,b,c,d){this.dispatchConfig=a;this._targetInst=b;this.nativeEvent=c;a=this.constructor.Interface;for(var e in a)a.hasOwnProperty(e)&&((b=a[e])?this[e]=b(c):"target"===e?this.target=d:this[e]=c[e]);this.isDefaultPrevented=(null!=c.defaultPrevented?c.defaultPrevented:!1===c.returnValue)?Tc:Uc;this.isPropagationStopped=Uc;return this}
10992n(E.prototype,{preventDefault:function(){this.defaultPrevented=!0;var a=this.nativeEvent;a&&(a.preventDefault?a.preventDefault():"unknown"!==typeof a.returnValue&&(a.returnValue=!1),this.isDefaultPrevented=Tc)},stopPropagation:function(){var a=this.nativeEvent;a&&(a.stopPropagation?a.stopPropagation():"unknown"!==typeof a.cancelBubble&&(a.cancelBubble=!0),this.isPropagationStopped=Tc)},persist:function(){this.isPersistent=Tc},isPersistent:Uc,destructor:function(){var a=this.constructor.Interface,
10993b;for(b in a)this[b]=null;this.nativeEvent=this._targetInst=this.dispatchConfig=null;this.isPropagationStopped=this.isDefaultPrevented=Uc;this._dispatchInstances=this._dispatchListeners=null}});E.Interface={type:null,target:null,currentTarget:function(){return null},eventPhase:null,bubbles:null,cancelable:null,timeStamp:function(a){return a.timeStamp||Date.now()},defaultPrevented:null,isTrusted:null};
10994E.extend=function(a){function b(){}function c(){return d.apply(this,arguments)}var d=this;b.prototype=d.prototype;var e=new b;n(e,c.prototype);c.prototype=e;c.prototype.constructor=c;c.Interface=n({},d.Interface,a);c.extend=d.extend;Vc(c);return c};Vc(E);function Wc(a,b,c,d){if(this.eventPool.length){var e=this.eventPool.pop();this.call(e,a,b,c,d);return e}return new this(a,b,c,d)}
10995function Xc(a){if(!(a instanceof this))throw Error(u(279));a.destructor();10>this.eventPool.length&&this.eventPool.push(a)}function Vc(a){a.eventPool=[];a.getPooled=Wc;a.release=Xc}var Yc=E.extend({animationName:null,elapsedTime:null,pseudoElement:null}),Zc=E.extend({clipboardData:function(a){return"clipboardData"in a?a.clipboardData:window.clipboardData}}),$c=E.extend({view:null,detail:null}),ad=$c.extend({relatedTarget:null});
10996function bd(a){var b=a.keyCode;"charCode"in a?(a=a.charCode,0===a&&13===b&&(a=13)):a=b;10===a&&(a=13);return 32<=a||13===a?a:0}
10997var cd={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},dd={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",
10998116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},ed={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function gd(a){var b=this.nativeEvent;return b.getModifierState?b.getModifierState(a):(a=ed[a])?!!b[a]:!1}function hd(){return gd}
10999var id=$c.extend({key:function(a){if(a.key){var b=cd[a.key]||a.key;if("Unidentified"!==b)return b}return"keypress"===a.type?(a=bd(a),13===a?"Enter":String.fromCharCode(a)):"keydown"===a.type||"keyup"===a.type?dd[a.keyCode]||"Unidentified":""},location:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,repeat:null,locale:null,getModifierState:hd,charCo
10999de:function(a){return"keypress"===a.type?bd(a):0},keyCode:function(a){return"keydown"===a.type||"keyup"===a.type?a.keyCode:0},which:function(a){return"keypress"===
11000a.type?bd(a):"keydown"===a.type||"keyup"===a.type?a.keyCode:0}}),jd=0,kd=0,ld=!1,md=!1,nd=$c.extend({screenX:null,screenY:null,clientX:null,clientY:null,pageX:null,pageY:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,getModifierState:hd,button:null,buttons:null,relatedTarget:function(a){return a.relatedTarget||(a.fromElement===a.srcElement?a.toElement:a.fromElement)},movementX:function(a){if("movementX"in a)return a.movementX;var b=jd;jd=a.screenX;return ld?"mousemove"===a.type?a.screenX-
11001b:0:(ld=!0,0)},movementY:function(a){if("movementY"in a)return a.movementY;var b=kd;kd=a.screenY;return md?"mousemove"===a.type?a.screenY-b:0:(md=!0,0)}}),od=nd.extend({pointerId:null,width:null,height:null,pressure:null,tangentialPressure:null,tiltX:null,tiltY:null,twist:null,pointerType:null,isPrimary:null}),pd=nd.extend({dataTransfer:null}),qd=$c.extend({touches:null,targetTouches:null,changedTouches:null,altKey:null,metaKey:null,ctrlKey:null,shiftKey:null,getModifierState:hd}),rd=E.extend({propertyName:null,
11002elapsedTime:null,pseudoElement:null}),sd=nd.extend({deltaX:function(a){return"deltaX"in a?a.deltaX:"wheelDeltaX"in a?-a.wheelDeltaX:0},deltaY:function(a){return"deltaY"in a?a.deltaY:"wheelDeltaY"in a?-a.wheelDeltaY:"wheelDelta"in a?-a.wheelDelta:0},deltaZ:null,deltaMode:null}),td=[["blur","blur",0],["cancel","cancel",0],["click","click",0],["close","close",0],["contextmenu","contextMenu",0],["copy","copy",0],["cut","cut",0],["auxclick","auxClick",0],["dblclick","doubleClick",0],["dragend","dragEnd",
110030],["dragstart","dragStart",0],["drop","drop",0],["focus","focus",0],["input","input",0],["invalid","invalid",0],["keydown","keyDown",0],["keypress","keyPress",0],["keyup","keyUp",0],["mousedown","mouseDown",0],["mouseup","mouseUp",0],["paste","paste",0],["pause","pause",0],["play","play",0],["pointercancel","pointerCancel",0],["pointerdown","pointerDown",0],["pointerup","pointerUp",0],["ratechange","rateChange",0],["reset","reset",0],["seeked","seeked",0],["submit","submit",0],["touchcancel","touchCancel",
110040],["touchend","touchEnd",0],["touchstart","touchStart",0],["volumechange","volumeChange",0],["drag","drag",1],["dragenter","dragEnter",1],["dragexit","dragExit",1],["dragleave","dragLeave",1],["dragover","dragOver",1],["mousemove","mouseMove",1],["mouseout","mouseOut",1],["mouseover","mouseOver",1],["pointermove","pointerMove",1],["pointerout","pointerOut",1],["pointerover","pointerOver",1],["scroll","scroll",1],["toggle","toggle",1],["touchmove","touchMove",1],["wheel","wheel",1],["abort","abort",
110052],[Zb,"animationEnd",2],[$b,"animationIteration",2],[ac,"animationStart",2],["canplay","canPlay",2],["canplaythrough","canPlayThrough",2],["durationchange","durationChange",2],["emptied","emptied",2],["encrypted","encrypted",2],["ended","ended",2],["error","error",2],["gotpointercapture","gotPointerCapture",2],["load","load",2],["loadeddata","loadedData",2],["loadedmetadata","loadedMetadata",2],["loadstart","loadStart",2],["lostpointercapture","lostPointerCapture",2],["playing","playing",2],["progress",
11006"progress",2],["seeking","seeking",2],["stalled","stalled",2],["suspend","suspend",2],["timeupdate","timeUpdate",2],[bc,"transitionEnd",2],["waiting","waiting",2]],ud={},vd={},wd=0;for(;wd<td.length;wd++){var yd=td[wd],zd=yd[0],Ad=yd[1],Bd=yd[2],Cd="on"+(Ad[0].toUpperCase()+Ad.slice(1)),Dd={phasedRegistrationNames:{bubbled:Cd,captured:Cd+"Capture"},dependencies:[zd],eventPriority:Bd};ud[Ad]=Dd;vd[zd]=Dd}
11007var Ed={eventTypes:ud,getEventPriority:function(a){a=vd[a];return void 0!==a?a.eventPriority:2},extractEvents:function(a,b,c,d){var e=vd[a];if(!e)return null;switch(a){case "keypress":if(0===bd(c))return null;case "keydown":case "keyup":a=id;break;case "blur":case "focus":a=ad;break;case "click":if(2===c.button)return null;case "auxclick":case "dblclick":case "mousedown":case "mousemove":case "mouseup":case "mouseout":case "mouseover":case "contextmenu":a=nd;break;case "drag":case "dragend":case "dragenter":case "dragexit":case "dragleave":case "dragover":case "dragstart":case "drop":a=
11008pd;break;case "touchcancel":case "touchend":case "touchmove":case "touchstart":a=qd;break;case Zb:case $b:case ac:a=Yc;break;case bc:a=rd;break;case "scroll":a=$c;break;case "wheel":a=sd;break;case "copy":case "cut":case "paste":a=Zc;break;case "gotpointercapture":case "lostpointercapture":case "pointercancel":case "pointerdown":case "pointermove":case "pointerout":case "pointerover":case "pointerup":a=od;break;default:a=E}b=a.getPooled(e,b,c,d);Sc(b);return b}},Fd=q.unstable_UserBlockingPriority,
11009Gd=q.unstable_runWithPriority,Hd=Ed.getEventPriority,Id=10,Jd=[];
11010function Kd(a){var b=a.targetInst,c=b;do{if(!c){a.ancestors.push(c);break}var d=c;if(3===d.tag)d=d.stateNode.containerInfo;else{for(;d.return;)d=d.return;d=3!==d.tag?null:d.stateNode.containerInfo}if(!d)break;b=c.tag;5!==b&&6!==b||a.ancestors.push(c);c=Fc(d)}while(c);for(c=0;c<a.ancestors.length;c++){b=a.ancestors[c];var e=Mc(a.nativeEvent);d=a.topLevelType;for(var f=a.nativeEvent,g=a.eventSystemFlags,h=null,k=0;k<ea.length;k++){var l=ea[k];l&&(l=l.extractEvents(d,b,f,e,g))&&(h=xa(h,l))}Ba(h)}}
11011var Ld=!0;function F(a,b){Md(b,a,!1)}function Md(a,b,c){switch(Hd(b)){case 0:var d=Nd.bind(null,b,1);break;case 1:d=Od.bind(null,b,1);break;default:d=Pd.bind(null,b,1)}
vendor: 16,286 bytes, lines 11011-11049
11011c?a.addEventListener(b,d,!0):a.addEventListener(b,d,!1)}function Nd(a,b,c){ib||gb();var d=Pd,e=ib;ib=!0;try{fb(d,a,b,c)}finally{(ib=e)||kb()}}function Od(a,b,c){Gd(Fd,Pd.bind(null,a,b,c))}
11012function Qd(a,b,c,d){if(Jd.length){var e=Jd.pop();e.topLevelType=a;e.eventSystemFlags=b;e.nativeEvent=c;e.targetInst=d;a=e}else a={topLevelType:a,eventSystemFlags:b,nativeEvent:c,targetInst:d,ancestors:[]};try{if(b=Kd,c=a,jb)b(c,void 0);else{jb=!0;try{hb(b,c,void 0)}finally{jb=!1,kb()}}}finally{a.topLevelType=null,a.nativeEvent=null,a.targetInst=null,a.ancestors.length=0,Jd.length<Id&&Jd.push(a)}}
11013function Pd(a,b,c){if(Ld)if(0<nc.length&&-1<uc.indexOf(a))a=zc(null,a,b,c),nc.push(a);else{var d=Hc(a,b,c);null===d?Ac(a,c):-1<uc.indexOf(a)?(a=zc(d,a,b,c),nc.push(a)):Dc(d,a,b,c)||(Ac(a,c),Qd(a,b,c,null))}}function Hc(a,b,c){var d=Mc(c);d=Fc(d);if(null!==d){var e=ec(d);if(null===e)d=null;else{var f=e.tag;if(13===f){d=fc(e);if(null!==d)return d;d=null}else if(3===f){if(e.stateNode.hydrate)return 3===e.tag?e.stateNode.containerInfo:null;d=null}else e!==d&&(d=null)}}Qd(a,b,c,d);return null}
11014function Rd(a){if(!Ya)return!1;a="on"+a;var b=a in document;b||(b=document.createElement("div"),b.setAttribute(a,"return;"),b="function"===typeof b[a]);return b}var Sd=new ("function"===typeof WeakMap?WeakMap:Map);function xc(a){var b=Sd.get(a);void 0===b&&(b=new Set,Sd.set(a,b));return b}
11015function yc(a,b,c){if(!c.has(a)){switch(a){case "scroll":Md(b,"scroll",!0);break;case "focus":case "blur":Md(b,"focus",!0);Md(b,"blur",!0);c.add("blur");c.add("focus");break;case "cancel":case "close":Rd(a)&&Md(b,a,!0);break;case "invalid":case "submit":case "reset":break;default:-1===cc.indexOf(a)&&F(a,b)}c.add(a)}}
11016var Td={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,
11017floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},Ud=["Webkit","ms","Moz","O"];Object.keys(Td).forEach(function(a){Ud.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);Td[b]=Td[a]})});function Vd(a,b,c){return null==b||"boolean"===typeof b||""===b?"":c||"number"!==typeof b||0===b||Td.hasOwnProperty(a)&&Td[a]?(""+b).trim():b+"px"}
11018function Wd(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf("--"),e=Vd(c,b[c],d);"float"===c&&(c="cssFloat");d?a.setProperty(c,e):a[c]=e}}var Xd=n({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});
11019function Yd(a,b){if(b){if(Xd[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(u(137,a,""));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(u(60));if(!("object"===typeof b.dangerouslySetInnerHTML&&"__html"in b.dangerouslySetInnerHTML))throw Error(u(61));}if(null!=b.style&&"object"!==typeof b.style)throw Error(u(62,""));}}
11020function Zd(a,b){if(-1===a.indexOf("-"))return"string"===typeof b.is;switch(a){case "annotation-xml":case "color-profile":case "font-face":case "font-face-src":case "font-face-uri":case "font-face-format":case "font-face-name":case "missing-glyph":return!1;default:return!0}}function $d(a,b){a=9===a.nodeType||11===a.nodeType?a:a.ownerDocument;var c=xc(a);b=ja[b];for(var d=0;d<b.length;d++)yc(b[d],a,c)}function ae(){}
11021function be(a){a=a||("undefined"!==typeof document?document:void 0);if("undefined"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}function ce(a){for(;a&&a.firstChild;)a=a.firstChild;return a}function de(a,b){var c=ce(a);a=0;for(var d;c;){if(3===c.nodeType){d=a+c.textContent.length;if(a<=b&&d>=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=ce(c)}}
11022function ee(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?ee(a,b.parentNode):"contains"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}function fe(){for(var a=window,b=be();b instanceof a.HTMLIFrameElement;){try{var c="string"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=be(a.document)}return b}
11023function ge(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&("input"===b&&("text"===a.type||"search"===a.type||"tel"===a.type||"url"===a.type||"password"===a.type)||"textarea"===b||"true"===a.contentEditable)}var he="$",ie="/$",je="$?",ke="$!",le=null,me=null;function ne(a,b){switch(a){case "button":case "input":case "select":case "textarea":return!!b.autoFocus}return!1}
11024function oe(a,b){return"textarea"===a||"option"===a||"noscript"===a||"string"===typeof b.children||"number"===typeof b.children||"object"===typeof b.dangerouslySetInnerHTML&&null!==b.dangerouslySetInnerHTML&&null!=b.dangerouslySetInnerHTML.__html}var pe="function"===typeof setTimeout?setTimeout:void 0,qe="function"===typeof clearTimeout?clearTimeout:void 0;function re(a){for(;null!=a;a=a.nextSibling){var b=a.nodeType;if(1===b||3===b)break}return a}
11025function se(a){a=a.previousSibling;for(var b=0;a;){if(8===a.nodeType){var c=a.data;if(c===he||c===ke||c===je){if(0===b)return a;b--}else c===ie&&b++}a=a.previousSibling}return null}var te=Math.random().toString(36).slice(2),ue="__reactInternalInstance$"+te,ve="__reactEventHandlers$"+te,we="__reactContainere$"+te;
11026function Fc(a){var b=a[ue];if(b)return b;for(var c=a.parentNode;c;){if(b=c[we]||c[ue]){c=b.alternate;if(null!==b.child||null!==c&&null!==c.child)for(a=se(a);null!==a;){if(c=a[ue])return c;a=se(a)}return b}a=c;c=a.parentNode}return null}function Cc(a){a=a[ue]||a[we];return!a||5!==a.tag&&6!==a.tag&&13!==a.tag&&3!==a.tag?null:a}function xe(a){if(5===a.tag||6===a.tag)return a.stateNode;throw Error(u(33));}function ye(a){return a[ve]||null}var ze=null,Ae=null,Be=null;
11027function Ce(){if(Be)return Be;var a,b=Ae,c=b.length,d,e="value"in ze?ze.value:ze.textContent,f=e.length;for(a=0;a<c&&b[a]===e[a];a++);var g=c-a;for(d=1;d<=g&&b[c-d]===e[f-d];d++);return Be=e.slice(a,1<d?1-d:void 0)}var De=E.extend({data:null}),Ee=E.extend({data:null}),Fe=[9,13,27,32],Ge=Ya&&"CompositionEvent"in window,He=null;Ya&&"documentMode"in document&&(He=document.documentMode);
11028var Ie=Ya&&"TextEvent"in window&&!He,Je=Ya&&(!Ge||He&&8<He&&11>=He),Ke=String.fromCharCode(32),Le={beforeInput:{phasedRegistrationNames:{bubbled:"onBeforeInput",captured:"onBeforeInputCapture"},dependencies:["compositionend","keypress","textInput","paste"]},compositionEnd:{phasedRegistrationNames:{bubbled:"onCompositionEnd",captured:"onCompositionEndCapture"},dependencies:"blur compositionend keydown keypress keyup mousedown".split(" ")},compositionStart:{phasedRegistrationNames:{bubbled:"onCompositionStart",
11029captured:"onCompositionStartCapture"},dependencies:"blur compositionstart keydown keypress keyup mousedown".split(" ")},compositionUpdate:{phasedRegistrationNames:{bubbled:"onCompositionUpdate",captured:"onCompositionUpdateCapture"},dependencies:"blur compositionupdate keydown keypress keyup mousedown".split(" ")}},Me=!1;
11030function Ne(a,b){switch(a){case "keyup":return-1!==Fe.indexOf(b.keyCode);case "keydown":return 229!==b.keyCode;case "keypress":case "mousedown":case "blur":return!0;default:return!1}}function Oe(a){a=a.detail;return"object"===typeof a&&"data"in a?a.data:null}var Pe=!1;function Qe(a,b){switch(a){case "compositionend":return Oe(b);case "keypress":if(32!==b.which)return null;Me=!0;return Ke;case "textInput":return a=b.data,a===Ke&&Me?null:a;default:return null}}
11031function Re(a,b){if(Pe)return"compositionend"===a||!Ge&&Ne(a,b)?(a=Ce(),Be=Ae=ze=null,Pe=!1,a):null;switch(a){case "paste":return null;case "keypress":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1<b.char.length)return b.char;if(b.which)return String.fromCharCode(b.which)}return null;case "compositionend":return Je&&"ko"!==b.locale?null:b.data;default:return null}}
11032var Se={eventTypes:Le,extractEvents:function(a,b,c,d){var e;if(Ge)b:{switch(a){case "compositionstart":var f=Le.compositionStart;break b;case "compositionend":f=Le.compositionEnd;break b;case "compositionupdate":f=Le.compositionUpdate;break b}f=void 0}else Pe?Ne(a,c)&&(f=Le.compositionEnd):"keydown"===a&&229===c.keyCode&&(f=Le.compositionStart);f?(Je&&"ko"!==c.locale&&(Pe||f!==Le.compositionStart?f===Le.compositionEnd&&Pe&&(e=Ce()):(ze=d,Ae="value"in ze?ze.value:ze.textContent,Pe=!0)),f=De.getPooled(f,
11033b,c,d),e?f.data=e:(e=Oe(c),null!==e&&(f.data=e)),Sc(f),e=f):e=null;(a=Ie?Qe(a,c):Re(a,c))?(b=Ee.getPooled(Le.beforeInput,b,c,d),b.data=a,Sc(b)):b=null;return null===e?b:null===b?e:[e,b]}},Te={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Ue(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return"input"===b?!!Te[a.type]:"textarea"===b?!0:!1}
11034var Ve={change:{phasedRegistrationNames:{bubbled:"onChange",captured:"onChangeCapture"},dependencies:"blur change click focus input keydown keyup selectionchange".split(" ")}};function We(a,b,c){a=E.getPooled(Ve.change,a,b,c);a.type="change";cb(c);Sc(a);return a}var Xe=null,Ye=null;function Ze(a){Ba(a)}function $e(a){var b=xe(a);if(zb(b))return a}function af(a,b){if("change"===a)return b}var bf=!1;Ya&&(bf=Rd("input")&&(!document.documentMode||9<document.documentMode));
11035function cf(){Xe&&(Xe.detachEvent("onpropertychange",df),Ye=Xe=null)}function df(a){if("value"===a.propertyName&&$e(Ye))if(a=We(Ye,a,Mc(a)),ib)Ba(a);else{ib=!0;try{eb(Ze,a)}finally{ib=!1,kb()}}}function ef(a,b,c){"focus"===a?(cf(),Xe=b,Ye=c,Xe.attachEvent("onpropertychange",df)):"blur"===a&&cf()}function ff(a){if("selectionchange"===a||"keyup"===a||"keydown"===a)return $e(Ye)}function gf(a,b){if("click"===a)return $e(b)}function hf(a,b){if("input"===a||"change"===a)return $e(b)}
11036var jf={eventTypes:Ve,_isInputEventSupported:bf,extractEvents:function(a,b,c,d){var e=b?xe(b):window,f=e.nodeName&&e.nodeName.toLowerCase();if("select"===f||"input"===f&&"file"===e.type)var g=af;else if(Ue(e))if(bf)g=hf;else{g=ff;var h=ef}else(f=e.nodeName)&&"input"===f.toLowerCase()&&("checkbox"===e.type||"radio"===e.type)&&(g=gf);if(g&&(g=g(a,b)))return We(g,c,d);h&&h(a,e,b);"blur"===a&&(a=e._wrapperState)&&a.controlled&&"number"===e.type&&Fb(e,"number",e.value)}},kf={mouseEnter:{registrationName:"onMouseEnter",
11037dependencies:["mouseout","mouseover"]},mouseLeave:{registrationName:"onMouseLeave",dependencies:["mouseout","mouseover"]},pointerEnter:{registrationName:"onPointerEnter",dependencies:["pointerout","pointerover"]},pointerLeave:{registrationName:"onPointerLeave",dependencies:["pointerout","pointerover"]}},lf,mf={eventTypes:kf,extractEvents:function(a,b,c,d,e){var f="mouseover"===a||"pointerover"===a,g="mouseout"===a||"pointerout"===a;if(f&&0===(e&32)&&(c.relatedTarget||c.fromElement)||!g&&!f)return null;
11038e=d.window===d?d:(e=d.ownerDocument)?e.defaultView||e.parentWindow:window;if(g){if(g=b,b=(b=c.relatedTarget||c.toElement)?Fc(b):null,null!==b&&(f=ec(b),b!==f||5!==b.tag&&6!==b.tag))b=null}else g=null;if(g===b)return null;if("mouseout"===a||"mouseover"===a){var h=nd;var k=kf.mouseLeave;var l=kf.mouseEnter;var m="mouse"}else if("pointerout"===a||"pointerover"===a)h=od,k=kf.pointerLeave,l=kf.pointerEnter,m="pointer";a=null==g?e:xe(g);e=null==b?e:xe(b);k=h.getPooled(k,g,c,d);k.type=m+"leave";k.target=
11039a;k.relatedTarget=e;d=h.getPooled(l,b,c,d);d.type=m+"enter";d.target=e;d.relatedTarget=a;h=g;m=b;if(h&&m)a:{l=h;a=m;g=0;for(b=l;b;b=Nc(b))g++;b=0;for(e=a;e;e=Nc(e))b++;for(;0<g-b;)l=Nc(l),g--;for(;0<b-g;)a=Nc(a),b--;for(;g--;){if(l===a||l===a.alternate)break a;l=Nc(l);a=Nc(a)}l=null}else l=null;a=l;for(l=[];h&&h!==a;){g=h.alternate;if(null!==g&&g===a)break;l.push(h);h=Nc(h)}for(h=[];m&&m!==a;){g=m.alternate;if(null!==g&&g===a)break;h.push(m);m=Nc(m)}for(m=0;m<l.length;m++)Qc(l[m],"bubbled",k);for(m=
11040h.length;0<m--;)Qc(h[m],"captured",d);if(c===lf)return lf=null,[k];lf=c;return[k,d]}};function nf(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var of="function"===typeof Object.is?Object.is:nf,pf=Object.prototype.hasOwnProperty;function qf(a,b){if(of(a,b))return!0;if("object"!==typeof a||null===a||"object"!==typeof b||null===b)return!1;var c=Object.keys(a),d=Object.keys(b);if(c.length!==d.length)return!1;for(d=0;d<c.length;d++)if(!pf.call(b,c[d])||!of(a[c[d]],b[c[d]]))return!1;return!0}
11041var rf=Ya&&"documentMode"in document&&11>=document.documentMode,sf={select:{phasedRegistrationNames:{bubbled:"onSelect",captured:"onSelectCapture"},dependencies:"blur contextmenu dragend focus keydown keyup mousedown mouseup selectionchange".split(" ")}},tf=null,uf=null,vf=null,wf=!1;
11042function xf(a,b){var c=b.window===b?b.document:9===b.nodeType?b:b.ownerDocument;if(wf||null==tf||tf!==be(c))return null;c=tf;"selectionStart"in c&&ge(c)?c={start:c.selectionStart,end:c.selectionEnd}:(c=(c.ownerDocument&&c.ownerDocument.defaultView||window).getSelection(),c={anchorNode:c.anchorNode,anchorOffset:c.anchorOffset,focusNode:c.focusNode,focusOffset:c.focusOffset});return vf&&qf(vf,c)?null:(vf=c,a=E.getPooled(sf.select,uf,a,b),a.type="select",a.target=tf,Sc(a),a)}
11043var yf={eventTypes:sf,extractEvents:function(a,b,c,d){var e=d.window===d?d.document:9===d.nodeType?d:d.ownerDocument,f;if(!(f=!e)){a:{e=xc(e);f=ja.onSelect;for(var g=0;g<f.length;g++)if(!e.has(f[g])){e=!1;break a}e=!0}f=!e}if(f)return null;e=b?xe(b):window;switch(a){case "focus":if(Ue(e)||"true"===e.contentEditable)tf=e,uf=b,vf=null;break;case "blur":vf=uf=tf=null;break;case "mousedown":wf=!0;break;case "contextmenu":case "mouseup":case "dragend":return wf=!1,xf(c,d);case "selectionchange":if(rf)break;
11044case "keydown":case "keyup":return xf(c,d)}return null}};Ca.injectEventPluginOrder("ResponderEventPlugin SimpleEventPlugin EnterLeaveEventPlugin ChangeEventPlugin SelectEventPlugin BeforeInputEventPlugin".split(" "));var zf=Cc;sa=ye;ua=zf;va=xe;Ca.injectEventPluginsByName({SimpleEventPlugin:Ed,EnterLeaveEventPlugin:mf,ChangeEventPlugin:jf,SelectEventPlugin:yf,BeforeInputEventPlugin:Se});new Set;var Af=[],Bf=-1;function G(a){0>Bf||(a.current=Af[Bf],Af[Bf]=null,Bf--)}
11045function I(a,b){Bf++;Af[Bf]=a.current;a.current=b}var Cf={},J={current:Cf},K={current:!1},Df=Cf;function Ef(a,b){var c=a.type.contextTypes;if(!c)return Cf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}function L(a){a=a.childContextTypes;return null!==a&&void 0!==a}
11046function Ff(a){G(K,a);G(J,a)}function Gf(a){G(K,a);G(J,a)}function Hf(a,b,c){if(J.current!==Cf)throw Error(u(168));I(J,b,a);I(K,c,a)}function If(a,b,c){var d=a.stateNode;a=b.childContextTypes;if("function"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in a))throw Error(u(108,Wa(b)||"Unknown",e));return n({},c,{},d)}function Jf(a){var b=a.stateNode;b=b&&b.__reactInternalMemoizedMergedChildContext||Cf;Df=J.current;I(J,b,a);I(K,K.current,a);return!0}
11047function Kf(a,b,c){var d=a.stateNode;if(!d)throw Error(u(169));c?(b=If(a,b,Df),d.__reactInternalMemoizedMergedChildContext=b,G(K,a),G(J,a),I(J,b,a)):G(K,a);I(K,c,a)}
11048var Lf=q.unstable_runWithPriority,Mf=q.unstable_scheduleCallback,Nf=q.unstable_cancelCallback,Of=q.unstable_shouldYield,Pf=q.unstable_requestPaint,Qf=q.unstable_now,Rf=q.unstable_getCurrentPriorityLevel,Sf=q.unstable_ImmediatePriority,Tf=q.unstable_UserBlockingPriority,Uf=q.unstable_NormalPriority,Vf=q.unstable_LowPriority,Wf=q.unstable_IdlePriority,Xf={},Yf=void 0!==Pf?Pf:function(){},Zf=null,$f=null,ag=!1,bg=Qf(),cg=1E4>bg?Qf:function(){return Qf()-bg};
11049function dg(){switch(Rf()){case Sf:return 99;case Tf:return 98;case Uf:return 97;case Vf:return 96;case Wf:return 95;default:throw Error(u(332));}}function eg(a){switch(a){case 99:return Sf;case 98:return Tf;
11049case 97:return Uf;case 96:return Vf;case 95:return Wf;default:throw Error(u(332));}}function fg(a,b){a=eg(a);return Lf(a,b)}function gg(a,b,c){a=eg(a);return Mf(a,b,c)}function hg(a){null===Zf?(Zf=[a],$f=Mf(Sf,ig)):Zf.push(a);return Xf}function jg(){if(null!==$f){var a=$f;$f=null;Nf(a)}ig()}
11050function ig(){if(!ag&&null!==Zf){ag=!0;var a=0;try{var b=Zf;fg(99,function(){for(;a<b.length;a++){var c=b[a];do c=c(!0);while(null!==c)}});Zf=null}catch(c){throw null!==Zf&&(Zf=Zf.slice(a+1)),Mf(Sf,jg),c;}finally{ag=!1}}}var kg=3;function lg(a,b,c){c/=10;return 1073741821-(((1073741821-a+b/10)/c|0)+1)*c}function mg(a,b){if(a&&a.defaultProps){b=n({},b);a=a.defaultProps;for(var c in a)void 0===b[c]&&(b[c]=a[c])}return b}var ng={current:null},og=null,pg=null,qg=null;function rg(){qg=pg=og=null}
11051function sg(a,b){var c=a.type._context;I(ng,c._currentValue,a);c._currentValue=b}function tg(a){var b=ng.current;G(ng,a);a.type._context._currentValue=b}function ug(a,b){for(;null!==a;){var c=a.alternate;if(a.childExpirationTime<b)a.childExpirationTime=b,null!==c&&c.childExpirationTime<b&&(c.childExpirationTime=b);else if(null!==c&&c.childExpirationTime<b)c.childExpirationTime=b;else break;a=a.return}}
11052function vg(a,b){og=a;qg=pg=null;a=a.dependencies;null!==a&&null!==a.firstContext&&(a.expirationTime>=b&&(wg=!0),a.firstContext=null)}function xg(a,b){if(qg!==a&&!1!==b&&0!==b){if("number"!==typeof b||1073741823===b)qg=a,b=1073741823;b={context:a,observedBits:b,next:null};if(null===pg){if(null===og)throw Error(u(308));pg=b;og.dependencies={expirationTime:0,firstContext:b,responders:null}}else pg=pg.next=b}return a._currentValue}var yg=!1;
11053function zg(a){return{baseState:a,firstUpdate:null,lastUpdate:null,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}function Ag(a){return{baseState:a.baseState,firstUpdate:a.firstUpdate,lastUpdate:a.lastUpdate,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}
11054function Bg(a,b){return{expirationTime:a,suspenseConfig:b,tag:0,payload:null,callback:null,next:null,nextEffect:null}}function Cg(a,b){null===a.lastUpdate?a.firstUpdate=a.lastUpdate=b:(a.lastUpdate.next=b,a.lastUpdate=b)}
11055function Dg(a,b){var c=a.alternate;if(null===c){var d=a.updateQueue;var e=null;null===d&&(d=a.updateQueue=zg(a.memoizedState))}else d=a.updateQueue,e=c.updateQueue,null===d?null===e?(d=a.updateQueue=zg(a.memoizedState),e=c.updateQueue=zg(c.memoizedState)):d=a.updateQueue=Ag(e):null===e&&(e=c.updateQueue=Ag(d));null===e||d===e?Cg(d,b):null===d.lastUpdate||null===e.lastUpdate?(Cg(d,b),Cg(e,b)):(Cg(d,b),e.lastUpdate=b)}
11056function Eg(a,b){var c=a.updateQueue;c=null===c?a.updateQueue=zg(a.memoizedState):Fg(a,c);null===c.lastCapturedUpdate?c.firstCapturedUpdate=c.lastCapturedUpdate=b:(c.lastCapturedUpdate.next=b,c.lastCapturedUpdate=b)}function Fg(a,b){var c=a.alternate;null!==c&&b===c.updateQueue&&(b=a.updateQueue=Ag(b));return b}
11057function Gg(a,b,c,d,e,f){switch(c.tag){case 1:return a=c.payload,"function"===typeof a?a.call(f,d,e):a;case 3:a.effectTag=a.effectTag&-4097|64;case 0:a=c.payload;e="function"===typeof a?a.call(f,d,e):a;if(null===e||void 0===e)break;return n({},d,e);case 2:yg=!0}return d}
11058function Hg(a,b,c,d,e){yg=!1;b=Fg(a,b);for(var f=b.baseState,g=null,h=0,k=b.firstUpdate,l=f;null!==k;){var m=k.expirationTime;m<e?(null===g&&(g=k,f=l),h<m&&(h=m)):(Ig(m,k.suspenseConfig),l=Gg(a,b,k,l,c,d),null!==k.callback&&(a.effectTag|=32,k.nextEffect=null,null===b.lastEffect?b.firstEffect=b.lastEffect=k:(b.lastEffect.nextEffect=k,b.lastEffect=k)));k=k.next}m=null;for(k=b.firstCapturedUpdate;null!==k;){var C=k.expirationTime;C<e?(null===m&&(m=k,null===g&&(f=l)),h<C&&(h=C)):(l=Gg(a,b,k,l,c,d),null!==
11059k.callback&&(a.effectTag|=32,k.nextEffect=null,null===b.lastCapturedEffect?b.firstCapturedEffect=b.lastCapturedEffect=k:(b.lastCapturedEffect.nextEffect=k,b.lastCapturedEffect=k)));k=k.next}null===g&&(b.lastUpdate=null);null===m?b.lastCapturedUpdate=null:a.effectTag|=32;null===g&&null===m&&(f=l);b.baseState=f;b.firstUpdate=g;b.firstCapturedUpdate=m;Jg(h);a.expirationTime=h;a.memoizedState=l}
11060function Kg(a,b,c){null!==b.firstCapturedUpdate&&(null!==b.lastUpdate&&(b.lastUpdate.next=b.firstCapturedUpdate,b.lastUpdate=b.lastCapturedUpdate),b.firstCapturedUpdate=b.lastCapturedUpdate=null);Lg(b.firstEffect,c);b.firstEffect=b.lastEffect=null;Lg(b.firstCapturedEffect,c);b.firstCapturedEffect=b.lastCapturedEffect=null}function Lg(a,b){for(;null!==a;){var c=a.callback;if(null!==c){a.callback=null;var d=b;if("function"!==typeof c)throw Error(u(191,c));c.call(d)}a=a.nextEffect}}
11061var Mg=Ea.ReactCurrentBatchConfig,Ng=(new aa.Component).refs;function Og(a,b,c,d){b=a.memoizedState;c=c(d,b);c=null===c||void 0===c?b:n({},b,c);a.memoizedState=c;d=a.updateQueue;null!==d&&0===a.expirationTime&&(d.baseState=c)}
11062var Sg={isMounted:function(a){return(a=a._reactInternalFiber)?ec(a)===a:!1},enqueueSetState:function(a,b,c){a=a._reactInternalFiber;var d=Pg(),e=Mg.suspense;d=Qg(d,a,e);e=Bg(d,e);e.payload=b;void 0!==c&&null!==c&&(e.callback=c);Dg(a,e);Rg(a,d)},enqueueReplaceState:function(a,b,c){a=a._reactInternalFiber;var d=Pg(),e=Mg.suspense;d=Qg(d,a,e);e=Bg(d,e);e.tag=1;e.payload=b;void 0!==c&&null!==c&&(e.callback=c);Dg(a,e);Rg(a,d)},enqueueForceUpdate:function(a,b){a=a._reactInternalFiber;var c=Pg(),d=Mg.suspense;
11063c=Qg(c,a,d);d=Bg(c,d);d.tag=2;void 0!==b&&null!==b&&(d.callback=b);Dg(a,d);Rg(a,c)}};function Tg(a,b,c,d,e,f,g){a=a.stateNode;return"function"===typeof a.shouldComponentUpdate?a.shouldComponentUpdate(d,f,g):b.prototype&&b.prototype.isPureReactComponent?!qf(c,d)||!qf(e,f):!0}
11064function Ug(a,b,c){var d=!1,e=Cf;var f=b.contextType;"object"===typeof f&&null!==f?f=xg(f):(e=L(b)?Df:J.current,d=b.contextTypes,f=(d=null!==d&&void 0!==d)?Ef(a,e):Cf);b=new b(c,f);a.memoizedState=null!==b.state&&void 0!==b.state?b.state:null;b.updater=Sg;a.stateNode=b;b._reactInternalFiber=a;d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=e,a.__reactInternalMemoizedMaskedChildContext=f);return b}
11065function Vg(a,b,c,d){a=b.state;"function"===typeof b.componentWillReceiveProps&&b.componentWillReceiveProps(c,d);"function"===typeof b.UNSAFE_componentWillReceiveProps&&b.UNSAFE_componentWillReceiveProps(c,d);b.state!==a&&Sg.enqueueReplaceState(b,b.state,null)}
11066function Wg(a,b,c,d){var e=a.stateNode;e.props=c;e.state=a.memoizedState;e.refs=Ng;var f=b.contextType;
vendor: 8,634 bytes, lines 11066-11084
11066"object"===typeof f&&null!==f?e.context=xg(f):(f=L(b)?Df:J.current,e.context=Ef(a,f));f=a.updateQueue;null!==f&&(Hg(a,f,c,e,d),e.state=a.memoizedState);f=b.getDerivedStateFromProps;"function"===typeof f&&(Og(a,b,f,c),e.state=a.memoizedState);"function"===typeof b.getDerivedStateFromProps||"function"===typeof e.getSnapshotBeforeUpdate||"function"!==typeof e.UNSAFE_componentWillMount&&"function"!==
11067typeof e.componentWillMount||(b=e.state,"function"===typeof e.componentWillMount&&e.componentWillMount(),"function"===typeof e.UNSAFE_componentWillMount&&e.UNSAFE_componentWillMount(),b!==e.state&&Sg.enqueueReplaceState(e,e.state,null),f=a.updateQueue,null!==f&&(Hg(a,f,c,e,d),e.state=a.memoizedState));"function"===typeof e.componentDidMount&&(a.effectTag|=4)}var Xg=Array.isArray;
11068function Yg(a,b,c){a=c.ref;if(null!==a&&"function"!==typeof a&&"object"!==typeof a){if(c._owner){c=c._owner;if(c){if(1!==c.tag)throw Error(u(309));var d=c.stateNode}if(!d)throw Error(u(147,a));var e=""+a;if(null!==b&&null!==b.ref&&"function"===typeof b.ref&&b.ref._stringRef===e)return b.ref;b=function(a){var b=d.refs;b===Ng&&(b=d.refs={});null===a?delete b[e]:b[e]=a};b._stringRef=e;return b}if("string"!==typeof a)throw Error(u(284));if(!c._owner)throw Error(u(290,a));}return a}
11069function Zg(a,b){if("textarea"!==a.type)throw Error(u(31,"[object Object]"===Object.prototype.toString.call(b)?"object with keys {"+Object.keys(b).join(", ")+"}":b,""));}
11070function $g(a){function b(b,c){if(a){var d=b.lastEffect;null!==d?(d.nextEffect=c,b.lastEffect=c):b.firstEffect=b.lastEffect=c;c.nextEffect=null;c.effectTag=8}}function c(c,d){if(!a)return null;for(;null!==d;)b(c,d),d=d.sibling;return null}function d(a,b){for(a=new Map;null!==b;)null!==b.key?a.set(b.key,b):a.set(b.index,b),b=b.sibling;return a}function e(a,b,c){a=ah(a,b,c);a.index=0;a.sibling=null;return a}function f(b,c,d){b.index=d;if(!a)return c;d=b.alternate;if(null!==d)return d=d.index,d<c?(b.effectTag=
110712,c):d;b.effectTag=2;return c}function g(b){a&&null===b.alternate&&(b.effectTag=2);return b}function h(a,b,c,d){if(null===b||6!==b.tag)return b=bh(c,a.mode,d),b.return=a,b;b=e(b,c,d);b.return=a;return b}function k(a,b,c,d){if(null!==b&&b.elementType===c.type)return d=e(b,c.props,d),d.ref=Yg(a,b,c),d.return=a,d;d=ch(c.type,c.key,c.props,null,a.mode,d);d.ref=Yg(a,b,c);d.return=a;return d}function l(a,b,c,d){if(null===b||4!==b.tag||b.stateNode.containerInfo!==c.containerInfo||b.stateNode.implementation!==
11072c.implementation)return b=dh(c,a.mode,d),b.return=a,b;b=e(b,c.children||[],d);b.return=a;return b}function m(a,b,c,d,f){if(null===b||7!==b.tag)return b=eh(c,a.mode,d,f),b.return=a,b;b=e(b,c,d);b.return=a;return b}function C(a,b,c){if("string"===typeof b||"number"===typeof b)return b=bh(""+b,a.mode,c),b.return=a,b;if("object"===typeof b&&null!==b){switch(b.$$typeof){case Ga:return c=ch(b.type,b.key,b.props,null,a.mode,c),c.ref=Yg(a,null,b),c.return=a,c;case Ha:return b=dh(b,a.mode,c),b.return=a,b}if(Xg(b)||
11073Ua(b))return b=eh(b,a.mode,c,null),b.return=a,b;Zg(a,b)}return null}function y(a,b,c,d){var e=null!==b?b.key:null;if("string"===typeof c||"number"===typeof c)return null!==e?null:h(a,b,""+c,d);if("object"===typeof c&&null!==c){switch(c.$$typeof){case Ga:return c.key===e?c.type===Ia?m(a,b,c.props.children,d,e):k(a,b,c,d):null;case Ha:return c.key===e?l(a,b,c,d):null}if(Xg(c)||Ua(c))return null!==e?null:m(a,b,c,d,null);Zg(a,c)}return null}function H(a,b,c,d,e){if("string"===typeof d||"number"===typeof d)return a=
11074a.get(c)||null,h(b,a,""+d,e);if("object"===typeof d&&null!==d){switch(d.$$typeof){case Ga:return a=a.get(null===d.key?c:d.key)||null,d.type===Ia?m(b,a,d.props.children,e,d.key):k(b,a,d,e);case Ha:return a=a.get(null===d.key?c:d.key)||null,l(b,a,d,e)}if(Xg(d)||Ua(d))return a=a.get(c)||null,m(b,a,d,e,null);Zg(b,d)}return null}function z(e,g,h,k){for(var l=null,m=null,r=g,x=g=0,A=null;null!==r&&x<h.length;x++){r.index>x?(A=r,r=null):A=r.sibling;var p=y(e,r,h[x],k);if(null===p){null===r&&(r=A);break}a&&
11075r&&null===p.alternate&&b(e,r);g=f(p,g,x);null===m?l=p:m.sibling=p;m=p;r=A}if(x===h.length)return c(e,r),l;if(null===r){for(;x<h.length;x++)r=C(e,h[x],k),null!==r&&(g=f(r,g,x),null===m?l=r:m.sibling=r,m=r);return l}for(r=d(e,r);x<h.length;x++)A=H(r,e,x,h[x],k),null!==A&&(a&&null!==A.alternate&&r.delete(null===A.key?x:A.key),g=f(A,g,x),null===m?l=A:m.sibling=A,m=A);a&&r.forEach(function(a){return b(e,a)});return l}function ta(e,g,h,k){var l=Ua(h);if("function"!==typeof l)throw Error(u(150));h=l.call(h);
11076if(null==h)throw Error(u(151));for(var m=l=null,r=g,x=g=0,A=null,p=h.next();null!==r&&!p.done;x++,p=h.next()){r.index>x?(A=r,r=null):A=r.sibling;var z=y(e,r,p.value,k);if(null===z){null===r&&(r=A);break}a&&r&&null===z.alternate&&b(e,r);g=f(z,g,x);null===m?l=z:m.sibling=z;m=z;r=A}if(p.done)return c(e,r),l;if(null===r){for(;!p.done;x++,p=h.next())p=C(e,p.value,k),null!==p&&(g=f(p,g,x),null===m?l=p:m.sibling=p,m=p);return l}for(r=d(e,r);!p.done;x++,p=h.next())p=H(r,e,x,p.value,k),null!==p&&(a&&null!==
11077p.alternate&&r.delete(null===p.key?x:p.key),g=f(p,g,x),null===m?l=p:m.sibling=p,m=p);a&&r.forEach(function(a){return b(e,a)});return l}return function(a,d,f,h){var k="object"===typeof f&&null!==f&&f.type===Ia&&null===f.key;k&&(f=f.props.children);var l="object"===typeof f&&null!==f;if(l)switch(f.$$typeof){case Ga:a:{l=f.key;for(k=d;null!==k;){if(k.key===l)if(7===k.tag?f.type===Ia:k.elementType===f.type){c(a,k.sibling);d=e(k,f.type===Ia?f.props.children:f.props,h);d.ref=Yg(a,k,f);d.return=a;a=d;break a}else{c(a,
11078k);break}else b(a,k);k=k.sibling}f.type===Ia?(d=eh(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=ch(f.type,f.key,f.props,null,a.mode,h),h.ref=Yg(a,d,f),h.return=a,a=h)}return g(a);case Ha:a:{for(k=f.key;null!==d;){if(d.key===k)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[],h);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=dh(f,a.mode,h);d.return=a;a=d}return g(a)}if("string"===
11079typeof f||"number"===typeof f)return f=""+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f,h),d.return=a,a=d):(c(a,d),d=bh(f,a.mode,h),d.return=a,a=d),g(a);if(Xg(f))return z(a,d,f,h);if(Ua(f))return ta(a,d,f,h);l&&Zg(a,f);if("undefined"===typeof f&&!k)switch(a.tag){case 1:case 0:throw a=a.type,Error(u(152,a.displayName||a.name||"Component"));}return c(a,d)}}var fh=$g(!0),gh=$g(!1),hh={},ih={current:hh},jh={current:hh},kh={current:hh};function lh(a){if(a===hh)throw Error(u(174));return a}
11080function mh(a,b){I(kh,b,a);I(jh,a,a);I(ih,hh,a);var c=b.nodeType;switch(c){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:Qb(null,"");break;default:c=8===c?b.parentNode:b,b=c.namespaceURI||null,c=c.tagName,b=Qb(b,c)}G(ih,a);I(ih,b,a)}function nh(a){G(ih,a);G(jh,a);G(kh,a)}function oh(a){lh(kh.current);var b=lh(ih.current);var c=Qb(b,a.type);b!==c&&(I(jh,a,a),I(ih,c,a))}function ph(a){jh.current===a&&(G(ih,a),G(jh,a))}var M={current:0};
11081function qh(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||c.data===je||c.data===ke))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.effectTag&64))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}function rh(a,b){return{responder:a,props:b}}
11082var sh=Ea.ReactCurrentDispatcher,N=Ea.ReactCurrentBatchConfig,th=0,uh=null,O=null,vh=null,wh=null,P=null,xh=null,yh=0,zh=null,Ah=0,Bh=!1,Ch=null,Gh=0;function Q(){throw Error(u(321));}function Hh(a,b){if(null===b)return!1;for(var c=0;c<b.length&&c<a.length;c++)if(!of(a[c],b[c]))return!1;return!0}
11083function Ih(a,b,c,d,e,f){th=f;uh=b;vh=null!==a?a.memoizedState:null;sh.current=null===vh?Jh:Kh;b=c(d,e);if(Bh){do Bh=!1,Gh+=1,vh=null!==a?a.memoizedState:null,xh=wh,zh=P=O=null,sh.current=Kh,b=c(d,e);while(Bh);Ch=null;Gh=0}sh.current=Lh;a=uh;a.memoizedState=wh;a.expirationTime=yh;a.updateQueue=zh;a.effectTag|=Ah;a=null!==O&&null!==O.next;th=0;xh=P=wh=vh=O=uh=null;yh=0;zh=null;Ah=0;if(a)throw Error(u(300));return b}
11084function Mh(){sh.current=Lh;th=0;xh=P=wh=vh=O=uh=null;yh=0;zh=null;Ah=0;Bh=!1;Ch=null;Gh=0}function Nh(){var a={memoizedState:null,baseState:null,queue:null,baseUpdate:null,next:null};null===P?wh=P=a:P=P.next=a;return P}function Oh(){if(null!==xh)P=xh,xh=P.next,O=vh,vh=null!==O?O.next:null;else{if(null===vh)throw Error(u(310));O=vh;var a={memoizedState:O.memoizedState,baseState:O.baseState,queue:O.queue,baseUpdate:O.baseUpdate,next:null};P=null===P?wh=a:P.next=a;
11084vh=O.next}return P}
11085function Ph(a,b){return"function"===typeof b?b(a):b}
11086function Qh(a){var b=Oh(),c=b.queue;if(null===c)throw Error(u(311));c.lastRenderedReducer=a;if(0<Gh){var d=c.dispatch;if(null!==Ch){var e=Ch.get(c);if(void 0!==e){Ch.delete(c);var f=b.memoizedState;do f=a(f,e.action),e=e.next;while(null!==e);of(f,b.memoizedState)||(wg=!0);b.memoizedState=f;b.baseUpdate===c.last&&(b.baseState=f);c.lastRenderedState=f;return[f,d]}}return[b.memoizedState,d]}d=c.last;var g=b.baseUpdate;f=b.baseState;null!==g?(null!==d&&(d.next=null),d=g.next):d=null!==d?d.next:null;if(null!==
11087d){var h=e=null,k=d,l=!1;do{var m=k.expirationTime;m<th?(l||(l=!0,h=g,e=f),m>yh&&(yh=m,Jg(yh))):(Ig(m,k.suspenseConfig),f=k.eagerReducer===a?k.eagerState:a(f,k.action));g=k;k=k.next}while(null!==k&&k!==d);l||(h=g,e=f);of(f,b.memoizedState)||(wg=!0);b.memoizedState=f;b.baseUpdate=h;b.baseState=e;c.lastRenderedState=f}return[b.memoizedState,c.dispatch]}
11088function Rh(a){var b=Nh();"function"===typeof a&&(a=a());b.memoizedState=b.baseState=a;a=b.queue={last:null,dispatch:null,lastRenderedReducer:Ph,lastRenderedState:a};a=a.dispatch=Sh.bind(null,uh,a);return[b.memoizedState,a]}function Th(a){return Qh(Ph,a)}function Uh(a,b,c,d){a={tag:a,create:b,destroy:c,deps:d,next:null};null===zh?(zh={lastEffect:null},zh.lastEffect=a.next=a):(b=zh.lastEffect,null===b?zh.lastEffect=a.next=a:(c=b.next,b.next=a,a.next=c,zh.lastEffect=a));return a}
11089function Vh(a,b,c,d){var e=Nh();Ah|=a;e.memoizedState=Uh(b,c,void 0,void 0===d?null:d)}function Wh(a,b,c,d){var e=Oh();d=void 0===d?null:d;var f=void 0;if(null!==O){var g=O.memoizedState;f=g.destroy;if(null!==d&&Hh(d,g.deps)){Uh(0,c,f,d);return}}Ah|=a;e.memoizedState=Uh(b,c,f,d)}function Xh(a,b){return Vh(516,192,a,b)}function Yh(a,b){return Wh(516,192,a,b)}
11090function Zh(a,b){if("function"===typeof b)return a=a(),b(a),function(){b(null)};if(null!==b&&void 0!==b)return a=a(),b.current=a,function(){b.current=null}}function $h(){}function ai(a,b){Nh().memoizedState=[a,void 0===b?null:b];return a}function bi(a,b){var c=Oh();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&Hh(b,d[1]))return d[0];c.memoizedState=[a,b];return a}
11091function Sh(a,b,c){if(!(25>Gh))throw Error(u(301));var d=a.alternate;if(a===uh||null!==d&&d===uh)if(Bh=!0,a={expirationTime:th,suspenseConfig:null,action:c,eagerReducer:null,eagerState:null,next:null},null===Ch&&(Ch=new Map),c=Ch.get(b),void 0===c)Ch.set(b,a);else{for(b=c;null!==b.next;)b=b.next;b.next=a}else{var e=Pg(),f=Mg.suspense;e=Qg(e,a,f);f={expirationTime:e,suspenseConfig:f,action:c,eagerReducer:null,eagerState:null,next:null};var g=b.last;if(null===g)f.next=f;else{var h=g.next;null!==h&&
11092(f.next=h);g.next=f}b.last=f;if(0===a.expirationTime&&(null===d||0===d.expirationTime)&&(d=b.lastRenderedReducer,null!==d))try{var k=b.lastRenderedState,l=d(k,c);f.eagerReducer=d;f.eagerState=l;if(of(l,k))return}catch(m){}finally{}Rg(a,e)}}
11093var Lh={readContext:xg,useCallback:Q,useContext:Q,useEffect:Q,useImperativeHandle:Q,useLayoutEffect:Q,useMemo:Q,useReducer:Q,useRef:Q,useState:Q,useDebugValue:Q,useResponder:Q,useDeferredValue:Q,useTransition:Q},Jh={readContext:xg,useCallback:ai,useContext:xg,useEffect:Xh,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return Vh(4,36,Zh.bind(null,b,a),c)},useLayoutEffect:function(a,b){return Vh(4,36,a,b)},useMemo:function(a,b){var c=Nh();b=void 0===b?null:b;a=a();c.memoizedState=
11094[a,b];return a},useReducer:function(a,b,c){var d=Nh();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a=d.queue={last:null,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};a=a.dispatch=Sh.bind(null,uh,a);return[d.memoizedState,a]}
vendor: 27,038 bytes, lines 11094-11160
11094,useRef:function(a){var b=Nh();a={current:a};return b.memoizedState=a},useState:Rh,useDebugValue:$h,useResponder:rh,useDeferredValue:function(a,b){var c=Rh(a),d=c[0],e=c[1];Xh(function(){q.unstable_next(function(){var c=N.suspense;N.suspense=void 0===b?null:b;try{e(a)}finally{N.suspense=
11095c}})},[a,b]);return d},useTransition:function(a){var b=Rh(!1),c=b[0],d=b[1];return[ai(function(b){d(!0);q.unstable_next(function(){var c=N.suspense;N.suspense=void 0===a?null:a;try{d(!1),b()}finally{N.suspense=c}})},[a,c]),c]}},Kh={readContext:xg,useCallback:bi,useContext:xg,useEffect:Yh,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return Wh(4,36,Zh.bind(null,b,a),c)},useLayoutEffect:function(a,b){return Wh(4,36,a,b)},useMemo:function(a,b){var c=Oh();b=void 0===b?
11096null:b;var d=c.memoizedState;if(null!==d&&null!==b&&Hh(b,d[1]))return d[0];a=a();c.memoizedState=[a,b];return a},useReducer:Qh,useRef:function(){return Oh().memoizedState},useState:Th,useDebugValue:$h,useResponder:rh,useDeferredValue:function(a,b){var c=Th(a),d=c[0],e=c[1];Yh(function(){q.unstable_next(function(){var c=N.suspense;N.suspense=void 0===b?null:b;try{e(a)}finally{N.suspense=c}})},[a,b]);return d},useTransition:function(a){var b=Th(!1),c=b[0],d=b[1];return[bi(function(b){d(!0);q.unstable_next(function(){var c=
11097N.suspense;N.suspense=void 0===a?null:a;try{d(!1),b()}finally{N.suspense=c}})},[a,c]),c]}},ci=null,di=null,ei=!1;function fi(a,b){var c=gi(5,null,null,0);c.elementType="DELETED";c.type="DELETED";c.stateNode=b;c.return=a;c.effectTag=8;null!==a.lastEffect?(a.lastEffect.nextEffect=c,a.lastEffect=c):a.firstEffect=a.lastEffect=c}
11098function hi(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,!0):!1;case 6:return b=""===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,!0):!1;case 13:return!1;default:return!1}}
11099function ii(a){if(ei){var b=di;if(b){var c=b;if(!hi(a,b)){b=re(c.nextSibling);if(!b||!hi(a,b)){a.effectTag=a.effectTag&-1025|2;ei=!1;ci=a;return}fi(ci,c)}ci=a;di=re(b.firstChild)}else a.effectTag=a.effectTag&-1025|2,ei=!1,ci=a}}function ji(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;ci=a}
11100function ki(a){if(a!==ci)return!1;if(!ei)return ji(a),ei=!0,!1;var b=a.type;if(5!==a.tag||"head"!==b&&"body"!==b&&!oe(b,a.memoizedProps))for(b=di;b;)fi(a,b),b=re(b.nextSibling);ji(a);if(13===a.tag){a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(u(317));a:{a=a.nextSibling;for(b=0;a;){if(8===a.nodeType){var c=a.data;if(c===ie){if(0===b){di=re(a.nextSibling);break a}b--}else c!==he&&c!==ke&&c!==je||b++}a=a.nextSibling}di=null}}else di=ci?re(a.stateNode.nextSibling):null;return!0}
11101function li(){di=ci=null;ei=!1}var mi=Ea.ReactCurrentOwner,wg=!1;function R(a,b,c,d){b.child=null===a?gh(b,null,c,d):fh(b,a.child,c,d)}function ni(a,b,c,d,e){c=c.render;var f=b.ref;vg(b,e);d=Ih(a,b,c,d,f,e);if(null!==a&&!wg)return b.updateQueue=a.updateQueue,b.effectTag&=-517,a.expirationTime<=e&&(a.expirationTime=0),oi(a,b,e);b.effectTag|=1;R(a,b,d,e);return b.child}
11102function pi(a,b,c,d,e,f){if(null===a){var g=c.type;if("function"===typeof g&&!qi(g)&&void 0===g.defaultProps&&null===c.compare&&void 0===c.defaultProps)return b.tag=15,b.type=g,ri(a,b,g,d,e,f);a=ch(c.type,null,d,null,b.mode,f);a.ref=b.ref;a.return=b;return b.child=a}g=a.child;if(e<f&&(e=g.memoizedProps,c=c.compare,c=null!==c?c:qf,c(e,d)&&a.ref===b.ref))return oi(a,b,f);b.effectTag|=1;a=ah(g,d,f);a.ref=b.ref;a.return=b;return b.child=a}
11103function ri(a,b,c,d,e,f){return null!==a&&qf(a.memoizedProps,d)&&a.ref===b.ref&&(wg=!1,e<f)?oi(a,b,f):si(a,b,c,d,f)}function ti(a,b){var c=b.ref;if(null===a&&null!==c||null!==a&&a.ref!==c)b.effectTag|=128}function si(a,b,c,d,e){var f=L(c)?Df:J.current;f=Ef(b,f);vg(b,e);c=Ih(a,b,c,d,f,e);if(null!==a&&!wg)return b.updateQueue=a.updateQueue,b.effectTag&=-517,a.expirationTime<=e&&(a.expirationTime=0),oi(a,b,e);b.effectTag|=1;R(a,b,c,e);return b.child}
11104function ui(a,b,c,d,e){if(L(c)){var f=!0;Jf(b)}else f=!1;vg(b,e);if(null===b.stateNode)null!==a&&(a.alternate=null,b.alternate=null,b.effectTag|=2),Ug(b,c,d,e),Wg(b,c,d,e),d=!0;else if(null===a){var g=b.stateNode,h=b.memoizedProps;g.props=h;var k=g.context,l=c.contextType;"object"===typeof l&&null!==l?l=xg(l):(l=L(c)?Df:J.current,l=Ef(b,l));var m=c.getDerivedStateFromProps,C="function"===typeof m||"function"===typeof g.getSnapshotBeforeUpdate;C||"function"!==typeof g.UNSAFE_componentWillReceiveProps&&
11105"function"!==typeof g.componentWillReceiveProps||(h!==d||k!==l)&&Vg(b,g,d,l);yg=!1;var y=b.memoizedState;k=g.state=y;var H=b.updateQueue;null!==H&&(Hg(b,H,d,g,e),k=b.memoizedState);h!==d||y!==k||K.current||yg?("function"===typeof m&&(Og(b,c,m,d),k=b.memoizedState),(h=yg||Tg(b,c,h,d,y,k,l))?(C||"function"!==typeof g.UNSAFE_componentWillMount&&"function"!==typeof g.componentWillMount||("function"===typeof g.componentWillMount&&g.componentWillMount(),"function"===typeof g.UNSAFE_componentWillMount&&
11106g.UNSAFE_componentWillMount()),"function"===typeof g.componentDidMount&&(b.effectTag|=4)):("function"===typeof g.componentDidMount&&(b.effectTag|=4),b.memoizedProps=d,b.memoizedState=k),g.props=d,g.state=k,g.context=l,d=h):("function"===typeof g.componentDidMount&&(b.effectTag|=4),d=!1)}else g=b.stateNode,h=b.memoizedProps,g.props=b.type===b.elementType?h:mg(b.type,h),k=g.context,l=c.contextType,"object"===typeof l&&null!==l?l=xg(l):(l=L(c)?Df:J.current,l=Ef(b,l)),m=c.getDerivedStateFromProps,(C=
11107"function"===typeof m||"function"===typeof g.getSnapshotBeforeUpdate)||"function"!==typeof g.UNSAFE_componentWillReceiveProps&&"function"!==typeof g.componentWillReceiveProps||(h!==d||k!==l)&&Vg(b,g,d,l),yg=!1,k=b.memoizedState,y=g.state=k,H=b.updateQueue,null!==H&&(Hg(b,H,d,g,e),y=b.memoizedState),h!==d||k!==y||K.current||yg?("function"===typeof m&&(Og(b,c,m,d),y=b.memoizedState),(m=yg||Tg(b,c,h,d,k,y,l))?(C||"function"!==typeof g.UNSAFE_componentWillUpdate&&"function"!==typeof g.componentWillUpdate||
11108("function"===typeof g.componentWillUpdate&&g.componentWillUpdate(d,y,l),"function"===typeof g.UNSAFE_componentWillUpdate&&g.UNSAFE_componentWillUpdate(d,y,l)),"function"===typeof g.componentDidUpdate&&(b.effectTag|=4),"function"===typeof g.getSnapshotBeforeUpdate&&(b.effectTag|=256)):("function"!==typeof g.componentDidUpdate||h===a.memoizedProps&&k===a.memoizedState||(b.effectTag|=4),"function"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&k===a.memoizedState||(b.effectTag|=256),b.memoizedProps=
11109d,b.memoizedState=y),g.props=d,g.state=y,g.context=l,d=m):("function"!==typeof g.componentDidUpdate||h===a.memoizedProps&&k===a.memoizedState||(b.effectTag|=4),"function"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&k===a.memoizedState||(b.effectTag|=256),d=!1);return vi(a,b,c,d,f,e)}
11110function vi(a,b,c,d,e,f){ti(a,b);var g=0!==(b.effectTag&64);if(!d&&!g)return e&&Kf(b,c,!1),oi(a,b,f);d=b.stateNode;mi.current=b;var h=g&&"function"!==typeof c.getDerivedStateFromError?null:d.render();b.effectTag|=1;null!==a&&g?(b.child=fh(b,a.child,null,f),b.child=fh(b,null,h,f)):R(a,b,h,f);b.memoizedState=d.state;e&&Kf(b,c,!0);return b.child}function wi(a){var b=a.stateNode;b.pendingContext?Hf(a,b.pendingContext,b.pendingContext!==b.context):b.context&&Hf(a,b.context,!1);mh(a,b.containerInfo)}
11111var xi={dehydrated:null,retryTime:0};
11112function yi(a,b,c){var d=b.mode,e=b.pendingProps,f=M.current,g=!1,h;(h=0!==(b.effectTag&64))||(h=0!==(f&2)&&(null===a||null!==a.memoizedState));h?(g=!0,b.effectTag&=-65):null!==a&&null===a.memoizedState||void 0===e.fallback||!0===e.unstable_avoidThisFallback||(f|=1);I(M,f&1,b);if(null===a){void 0!==e.fallback&&ii(b);if(g){g=e.fallback;e=eh(null,d,0,null);e.return=b;if(0===(b.mode&2))for(a=null!==b.memoizedState?b.child.child:b.child,e.child=a;null!==a;)a.return=e,a=a.sibling;c=eh(g,d,c,null);c.return=
11113b;e.sibling=c;b.memoizedState=xi;b.child=e;return c}d=e.children;b.memoizedState=null;return b.child=gh(b,null,d,c)}if(null!==a.memoizedState){a=a.child;d=a.sibling;if(g){e=e.fallback;c=ah(a,a.pendingProps,0);c.return=b;if(0===(b.mode&2)&&(g=null!==b.memoizedState?b.child.child:b.child,g!==a.child))for(c.child=g;null!==g;)g.return=c,g=g.sibling;d=ah(d,e,d.expirationTime);d.return=b;c.sibling=d;c.childExpirationTime=0;b.memoizedState=xi;b.child=c;return d}c=fh(b,a.child,e.children,c);b.memoizedState=
11114null;return b.child=c}a=a.child;if(g){g=e.fallback;e=eh(null,d,0,null);e.return=b;e.child=a;null!==a&&(a.return=e);if(0===(b.mode&2))for(a=null!==b.memoizedState?b.child.child:b.child,e.child=a;null!==a;)a.return=e,a=a.sibling;c=eh(g,d,c,null);c.return=b;e.sibling=c;c.effectTag|=2;e.childExpirationTime=0;b.memoizedState=xi;b.child=e;return c}b.memoizedState=null;return b.child=fh(b,a,e.children,c)}
11115function zi(a,b){a.expirationTime<b&&(a.expirationTime=b);var c=a.alternate;null!==c&&c.expirationTime<b&&(c.expirationTime=b);ug(a.return,b)}function Ai(a,b,c,d,e,f){var g=a.memoizedState;null===g?a.memoizedState={isBackwards:b,rendering:null,last:d,tail:c,tailExpiration:0,tailMode:e,lastEffect:f}:(g.isBackwards=b,g.rendering=null,g.last=d,g.tail=c,g.tailExpiration=0,g.tailMode=e,g.lastEffect=f)}
11116function Bi(a,b,c){var d=b.pendingProps,e=d.revealOrder,f=d.tail;R(a,b,d.children,c);d=M.current;if(0!==(d&2))d=d&1|2,b.effectTag|=64;else{if(null!==a&&0!==(a.effectTag&64))a:for(a=b.child;null!==a;){if(13===a.tag)null!==a.memoizedState&&zi(a,c);else if(19===a.tag)zi(a,c);else if(null!==a.child){a.child.return=a;a=a.child;continue}if(a===b)break a;for(;null===a.sibling;){if(null===a.return||a.return===b)break a;a=a.return}a.sibling.return=a.return;a=a.sibling}d&=1}I(M,d,b);if(0===(b.mode&2))b.memoizedState=
11117null;else switch(e){case "forwards":c=b.child;for(e=null;null!==c;)a=c.alternate,null!==a&&null===qh(a)&&(e=c),c=c.sibling;c=e;null===c?(e=b.child,b.child=null):(e=c.sibling,c.sibling=null);Ai(b,!1,e,c,f,b.lastEffect);break;case "backwards":c=null;e=b.child;for(b.child=null;null!==e;){a=e.alternate;if(null!==a&&null===qh(a)){b.child=e;break}a=e.sibling;e.sibling=c;c=e;e=a}Ai(b,!0,c,null,f,b.lastEffect);break;case "together":Ai(b,!1,null,null,void 0,b.lastEffect);break;default:b.memoizedState=null}return b.child}
11118function oi(a,b,c){null!==a&&(b.dependencies=a.dependencies);var d=b.expirationTime;0!==d&&Jg(d);if(b.childExpirationTime<c)return null;if(null!==a&&b.child!==a.child)throw Error(u(153));if(null!==b.child){a=b.child;c=ah(a,a.pendingProps,a.expirationTime);b.child=c;for(c.return=b;null!==a.sibling;)a=a.sibling,c=c.sibling=ah(a,a.pendingProps,a.expirationTime),c.return=b;c.sibling=null}return b.child}function Ci(a){a.effectTag|=4}var Hi,Ii,Ji,Ki;
11119Hi=function(a,b){for(var c=b.child;null!==c;){if(5===c.tag||6===c.tag)a.appendChild(c.stateNode);else if(4!==c.tag&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return}c.sibling.return=c.return;c=c.sibling}};Ii=function(){};
11120Ji=function(a,b,c,d,e){var f=a.memoizedProps;if(f!==d){var g=b.stateNode;lh(ih.current);a=null;switch(c){case "input":f=Ab(g,f);d=Ab(g,d);a=[];break;case "option":f=Ib(g,f);d=Ib(g,d);a=[];break;case "select":f=n({},f,{value:void 0});d=n({},d,{value:void 0});a=[];break;case "textarea":f=Kb(g,f);d=Kb(g,d);a=[];break;default:"function"!==typeof f.onClick&&"function"===typeof d.onClick&&(g.onclick=ae)}Yd(c,d);var h,k;c=null;for(h in f)if(!d.hasOwnProperty(h)&&f.hasOwnProperty(h)&&null!=f[h])if("style"===
11121h)for(k in g=f[h],g)g.hasOwnProperty(k)&&(c||(c={}),c[k]="");else"dangerouslySetInnerHTML"!==h&&"children"!==h&&"suppressContentEditableWarning"!==h&&"suppressHydrationWarning"!==h&&"autoFocus"!==h&&(ia.hasOwnProperty(h)?a||(a=[]):(a=a||[]).push(h,null));for(h in d){var l=d[h];g=null!=f?f[h]:void 0;if(d.hasOwnProperty(h)&&l!==g&&(null!=l||null!=g))if("style"===h)if(g){for(k in g)!g.hasOwnProperty(k)||l&&l.hasOwnProperty(k)||(c||(c={}),c[k]="");for(k in l)l.hasOwnProperty(k)&&g[k]!==l[k]&&(c||(c={}),
11122c[k]=l[k])}else c||(a||(a=[]),a.push(h,c)),c=l;else"dangerouslySetInnerHTML"===h?(l=l?l.__html:void 0,g=g?g.__html:void 0,null!=l&&g!==l&&(a=a||[]).push(h,""+l)):"children"===h?g===l||"string"!==typeof l&&"number"!==typeof l||(a=a||[]).push(h,""+l):"suppressContentEditableWarning"!==h&&"suppressHydrationWarning"!==h&&(ia.hasOwnProperty(h)?(null!=l&&$d(e,h),a||g===l||(a=[])):(a=a||[]).push(h,l))}c&&(a=a||[]).push("style",c);e=a;(b.updateQueue=e)&&Ci(b)}};Ki=function(a,b,c,d){c!==d&&Ci(b)};
11123function Li(a,b){switch(a.tailMode){case "hidden":b=a.tail;for(var c=null;null!==b;)null!==b.alternate&&(c=b),b=b.sibling;null===c?a.tail=null:c.sibling=null;break;case "collapsed":c=a.tail;for(var d=null;null!==c;)null!==c.alternate&&(d=c),c=c.sibling;null===d?b||null===a.tail?a.tail=null:a.tail.sibling=null:d.sibling=null}}
11124function Mi(a){switch(a.tag){case 1:L(a.type)&&Ff(a);var b=a.effectTag;return b&4096?(a.effectTag=b&-4097|64,a):null;case 3:nh(a);Gf(a);b=a.effectTag;if(0!==(b&64))throw Error(u(285));a.effectTag=b&-4097|64;return a;case 5:return ph(a),null;case 13:return G(M,a),b=a.effectTag,b&4096?(a.effectTag=b&-4097|64,a):null;case 19:return G(M,a),null;case 4:return nh(a),null;case 10:return tg(a),null;default:return null}}function Ni(a,b){return{value:a,source:b,stack:Xa(b)}}
11125var Oi="function"===typeof WeakSet?WeakSet:Set;function Pi(a,b){var c=b.source,d=b.stack;null===d&&null!==c&&(d=Xa(c));null!==c&&Wa(c.type);b=b.value;null!==a&&1===a.tag&&Wa(a.type);try{console.error(b)}catch(e){setTimeout(function(){throw e;})}}function Qi(a,b){try{b.props=a.memoizedProps,b.state=a.memoizedState,b.componentWillUnmount()}catch(c){Ri(a,c)}}function Si(a){var b=a.ref;if(null!==b)if("function"===typeof b)try{b(null)}catch(c){Ri(a,c)}else b.current=null}
11126function Ti(a,b){switch(b.tag){case 0:case 11:case 15:Ui(2,0,b);break;case 1:if(b.effectTag&256&&null!==a){var c=a.memoizedProps,d=a.memoizedState;a=b.stateNode;b=a.getSnapshotBeforeUpdate(b.elementType===b.type?c:mg(b.type,c),d);a.__reactInternalSnapshotBeforeUpdate=b}break;case 3:case 5:case 6:case 4:case 17:break;default:throw Error(u(163));}}
11127function Ui(a,b,c){c=c.updateQueue;c=null!==c?c.lastEffect:null;if(null!==c){var d=c=c.next;do{if(0!==(d.tag&a)){var e=d.destroy;d.destroy=void 0;void 0!==e&&e()}0!==(d.tag&b)&&(e=d.create,d.destroy=e());d=d.next}while(d!==c)}}
11128function Vi(a,b,c){"function"===typeof Wi&&Wi(b);switch(b.tag){case 0:case 11:case 14:case 15:a=b.updateQueue;if(null!==a&&(a=a.lastEffect,null!==a)){var d=a.next;fg(97<c?97:c,function(){var a=d;do{var c=a.destroy;if(void 0!==c){var g=b;try{c()}catch(h){Ri(g,h)}}a=a.next}while(a!==d)})}break;case 1:Si(b);c=b.stateNode;"function"===typeof c.componentWillUnmount&&Qi(b,c);break;case 5:Si(b);break;case 4:Xi(a,b,c)}}
11129function Yi(a){var b=a.alternate;a.return=null;a.child=null;a.memoizedState=null;a.updateQueue=null;a.dependencies=null;a.alternate=null;a.firstEffect=null;a.lastEffect=null;a.pendingProps=null;a.memoizedProps=null;null!==b&&Yi(b)}function Zi(a){return 5===a.tag||3===a.tag||4===a.tag}
11130function $i(a){a:{for(var b=a.return;null!==b;){if(Zi(b)){var c=b;break a}b=b.return}throw Error(u(160));}b=c.stateNode;switch(c.tag){case 5:var d=!1;break;case 3:b=b.containerInfo;d=!0;break;case 4:b=b.containerInfo;d=!0;break;default:throw Error(u(161));}c.effectTag&16&&(Tb(b,""),c.effectTag&=-17);a:b:for(c=a;;){for(;null===c.sibling;){if(null===c.return||Zi(c.return)){c=null;break a}c=c.return}c.sibling.return=c.return;for(c=c.sibling;5!==c.tag&&6!==c.tag&&18!==c.tag;){if(c.effectTag&2)continue b;
11131if(null===c.child||4===c.tag)continue b;else c.child.return=c,c=c.child}if(!(c.effectTag&2)){c=c.stateNode;break a}}for(var e=a;;){var f=5===e.tag||6===e.tag;if(f){var g=f?e.stateNode:e.stateNode.instance;if(c)if(d){f=b;var h=g;g=c;8===f.nodeType?f.parentNode.insertBefore(h,g):f.insertBefore(h,g)}else b.insertBefore(g,c);else d?(h=b,8===h.nodeType?(f=h.parentNode,f.insertBefore(g,h)):(f=h,f.appendChild(g)),h=h._reactRootContainer,null!==h&&void 0!==h||null!==f.onclick||(f.onclick=ae)):b.appendChild(g)}else if(4!==
11132e.tag&&null!==e.child){e.child.return=e;e=e.child;continue}if(e===a)break;for(;null===e.sibling;){if(null===e.return||e.return===a)return;e=e.return}e.sibling.return=e.return;e=e.sibling}}
11133function Xi(a,b,c){for(var d=b,e=!1,f,g;;){if(!e){e=d.return;a:for(;;){if(null===e)throw Error(u(160));f=e.stateNode;switch(e.tag){case 5:g=!1;break a;case 3:f=f.containerInfo;g=!0;break a;case 4:f=f.containerInfo;g=!0;break a}e=e.return}e=!0}if(5===d.tag||6===d.tag){a:for(var h=a,k=d,l=c,m=k;;)if(Vi(h,m,l),null!==m.child&&4!==m.tag)m.child.return=m,m=m.child;else{if(m===k)break;for(;null===m.sibling;){if(null===m.return||m.return===k)break a;m=m.return}m.sibling.return=m.return;m=m.sibling}g?(h=
11134f,k=d.stateNode,8===h.nodeType?h.parentNode.removeChild(k):h.removeChild(k)):f.removeChild(d.stateNode)}else if(4===d.tag){if(null!==d.child){f=d.stateNode.containerInfo;g=!0;d.child.return=d;d=d.child;continue}}else if(Vi(a,d,c),null!==d.child){d.child.return=d;d=d.child;continue}if(d===b)break;for(;null===d.sibling;){if(null===d.return||d.return===b)return;d=d.return;4===d.tag&&(e=!1)}d.sibling.return=d.return;d=d.sibling}}
11135function aj(a,b){switch(b.tag){case 0:case 11:case 14:case 15:Ui(4,8,b);break;case 1:break;case 5:var c=b.stateNode;if(null!=c){var d=b.memoizedProps,e=null!==a?a.memoizedProps:d;a=b.type;var f=b.updateQueue;b.updateQueue=null;if(null!==f){c[ve]=d;"input"===a&&"radio"===d.type&&null!=d.name&&Cb(c,d);Zd(a,e);b=Zd(a,d);for(e=0;e<f.length;e+=2){var g=f[e],h=f[e+1];"style"===g?Wd(c,h):"dangerouslySetInnerHTML"===g?Sb(c,h):"children"===g?Tb(c,h):vb(c,g,h,b)}switch(a){case "input":Eb(c,d);break;case "textarea":Mb(c,
11136d);break;case "select":b=c._wrapperState.wasMultiple,c._wrapperState.wasMultiple=!!d.multiple,a=d.value,null!=a?Jb(c,!!d.multiple,a,!1):b!==!!d.multiple&&(null!=d.defaultValue?Jb(c,!!d.multiple,d.defaultValue,!0):Jb(c,!!d.multiple,d.multiple?[]:"",!1))}}}break;case 6:if(null===b.stateNode)throw Error(u(162));b.stateNode.nodeValue=b.memoizedProps;break;case 3:b=b.stateNode;b.hydrate&&(b.hydrate=!1,Lc(b.containerInfo));break;case 12:break;case 13:c=b;null===b.memoizedState?d=!1:(d=!0,c=b.child,bj=cg());
11137if(null!==c)a:for(a=c;;){if(5===a.tag)f=a.stateNode,d?(f=f.style,"function"===typeof f.setProperty?f.setProperty("display","none","important"):f.display="none"):(f=a.stateNode,e=a.memoizedProps.style,e=void 0!==e&&null!==e&&e.hasOwnProperty("display")?e.display:null,f.style.display=Vd("display",e));else if(6===a.tag)a.stateNode.nodeValue=d?"":a.memoizedProps;else if(13===a.tag&&null!==a.memoizedState&&null===a.memoizedState.dehydrated){f=a.child.sibling;f.return=a;a=f;continue}else if(null!==a.child){a.child.return=
11138a;a=a.child;continue}if(a===c)break a;for(;null===a.sibling;){if(null===a.return||a.return===c)break a;a=a.return}a.sibling.return=a.return;a=a.sibling}cj(b);break;case 19:cj(b);break;case 17:break;case 20:break;case 21:break;default:throw Error(u(163));}}function cj(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Oi);b.forEach(function(b){var d=dj.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}var ej="function"===typeof WeakMap?WeakMap:Map;
11139function fj(a,b,c){c=Bg(c,null);c.tag=3;c.payload={element:null};var d=b.value;c.callback=function(){gj||(gj=!0,hj=d);Pi(a,b)};return c}
11140function ij(a,b,c){c=Bg(c,null);c.tag=3;var d=a.type.getDerivedStateFromError;if("function"===typeof d){var e=b.value;c.payload=function(){Pi(a,b);return d(e)}}var f=a.stateNode;null!==f&&"function"===typeof f.componentDidCatch&&(c.callback=function(){"function"!==typeof d&&(null===jj?jj=new Set([this]):jj.add(this),Pi(a,b));var c=b.stack;this.componentDidCatch(b.value,{componentStack:null!==c?c:""})});return c}
11141var kj=Math.ceil,lj=Ea.ReactCurrentDispatcher,mj=Ea.ReactCurrentOwner,S=0,nj=8,oj=16,pj=32,qj=0,rj=1,sj=2,tj=3,uj=4,vj=5,T=S,U=null,V=null,W=0,X=qj,wj=null,xj=1073741823,yj=1073741823,zj=null,Aj=0,Bj=!1,bj=0,Cj=500,Y=null,gj=!1,hj=null,jj=null,Dj=!1,Ej=null,Fj=90,Gj=null,Hj=0,Ij=null,Jj=0;function Pg(){return(T&(oj|pj))!==S?1073741821-(cg()/10|0):0!==Jj?Jj:Jj=1073741821-(cg()/10|0)}
11142function Qg(a,b,c){b=b.mode;if(0===(b&2))return 1073741823;var d=dg();if(0===(b&4))return 99===d?1073741823:1073741822;if((T&oj)!==S)return W;if(null!==c)a=lg(a,c.timeoutMs|0||5E3,250);else switch(d){case 99:a=1073741823;break;case 98:a=lg(a,150,100);break;case 97:case 96:a=lg(a,5E3,250);break;case 95:a=2;break;default:throw Error(u(326));}null!==U&&a===W&&--a;return a}
11143function Rg(a,b){if(50<Hj)throw Hj=0,Ij=null,Error(u(185));a=Kj(a,b);if(null!==a){var c=dg();1073741823===b?(T&nj)!==S&&(T&(oj|pj))===S?Lj(a):(Z(a),T===S&&jg()):Z(a);(T&4)===S||98!==c&&99!==c||(null===Gj?Gj=new Map([[a,b]]):(c=Gj.get(a),(void 0===c||c>b)&&Gj.set(a,b)))}}
11144function Kj(a,b){a.expirationTime<b&&(a.expirationTime=b);var c=a.alternate;null!==c&&c.expirationTime<b&&(c.expirationTime=b);var d=a.return,e=null;if(null===d&&3===a.tag)e=a.stateNode;else for(;null!==d;){c=d.alternate;d.childExpirationTime<b&&(d.childExpirationTime=b);null!==c&&c.childExpirationTime<b&&(c.childExpirationTime=b);if(null===d.return&&3===d.tag){e=d.stateNode;break}d=d.return}null!==e&&(U===e&&(Jg(b),X===uj&&Mj(e,W)),Nj(e,b));return e}
11145function Oj(a){var b=a.lastExpiredTime;if(0!==b)return b;b=a.firstPendingTime;if(!Pj(a,b))return b;b=a.lastPingedTime;a=a.nextKnownPendingLevel;return b>a?b:a}
11146function Z(a){if(0!==a.lastExpiredTime)a.callbackExpirationTime=1073741823,a.callbackPriority=99,a.callbackNode=hg(Lj.bind(null,a));else{var b=Oj(a),c=a.callbackNode;if(0===b)null!==c&&(a.callbackNode=null,a.callbackExpirationTime=0,a.callbackPriority=90);else{var d=Pg();1073741823===b?d=99:1===b||2===b?d=95:(d=10*(1073741821-b)-10*(1073741821-d),d=0>=d?99:250>=d?98:5250>=d?97:95);if(null!==c){var e=a.callbackPriority;if(a.callbackExpirationTime===b&&e>=d)return;c!==Xf&&Nf(c)}a.callbackExpirationTime=
11147b;a.callbackPriority=d;b=1073741823===b?hg(Lj.bind(null,a)):gg(d,Qj.bind(null,a),{timeout:10*(1073741821-b)-cg()});a.callbackNode=b}}}
11148function Qj(a,b){Jj=0;if(b)return b=Pg(),Rj(a,b),Z(a),null;var c=Oj(a);if(0!==c){b=a.callbackNode;if((T&(oj|pj))!==S)throw Error(u(327));Sj();a===U&&c===W||Tj(a,c);if(null!==V){var d=T;T|=oj;var e=Uj(a);do try{Vj();break}catch(h){Wj(a,h)}while(1);rg();T=d;lj.current=e;if(X===rj)throw b=wj,Tj(a,c),Mj(a,c),Z(a),b;if(null===V)switch(e=a.finishedWork=a.current.alternate,a.finishedExpirationTime=c,d=X,U=null,d){case qj:case rj:throw Error(u(345));case sj:Rj(a,2<c?2:c);break;case tj:Mj(a,c);d=a.lastSuspendedTime;
11149c===d&&(a.nextKnownPendingLevel=Xj(e));if(1073741823===xj&&(e=bj+Cj-cg(),10<e)){if(Bj){var f=a.lastPingedTime;if(0===f||f>=c){a.lastPingedTime=c;Tj(a,c);break}}f=Oj(a);if(0!==f&&f!==c)break;if(0!==d&&d!==c){a.lastPingedTime=d;break}a.timeoutHandle=pe(Yj.bind(null,a),e);break}Yj(a);break;case uj:Mj(a,c);d=a.lastSuspendedTime;c===d&&(a.nextKnownPendingLevel=Xj(e));if(Bj&&(e=a.lastPingedTime,0===e||e>=c)){a.lastPingedTime=c;Tj(a,c);break}e=Oj(a);if(0!==e&&e!==c)break;if(0!==d&&d!==c){a.lastPingedTime=
11150d;break}1073741823!==yj?d=10*(1073741821-yj)-cg():1073741823===xj?d=0:(d=10*(1073741821-xj)-5E3,e=cg(),c=10*(1073741821-c)-e,d=e-d,0>d&&(d=0),d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*kj(d/1960))-d,c<d&&(d=c));if(10<d){a.timeoutHandle=pe(Yj.bind(null,a),d);break}Yj(a);break;case vj:if(1073741823!==xj&&null!==zj){f=xj;var g=zj;d=g.busyMinDurationMs|0;0>=d?d=0:(e=g.busyDelayMs|0,f=cg()-(10*(1073741821-f)-(g.timeoutMs|0||5E3)),d=f<=e?0:e+d-f);if(10<d){Mj(a,c);a.timeoutHandle=
11151pe(Yj.bind(null,a),d);break}}Yj(a);break;default:throw Error(u(329));}Z(a);if(a.callbackNode===b)return Qj.bind(null,a)}}return null}
11152function Lj(a){var b=a.lastExpiredTime;b=0!==b?b:1073741823;if(a.finishedExpirationTime===b)Yj(a);else{if((T&(oj|pj))!==S)throw Error(u(327));Sj();a===U&&b===W||Tj(a,b);if(null!==V){var c=T;T|=oj;var d=Uj(a);do try{Zj();break}catch(e){Wj(a,e)}while(1);rg();T=c;lj.current=d;if(X===rj)throw c=wj,Tj(a,b),Mj(a,b),Z(a),c;if(null!==V)throw Error(u(261));a.finishedWork=a.current.alternate;a.finishedExpirationTime=b;U=null;Yj(a);Z(a)}}return null}
11153function ak(){if(null!==Gj){var a=Gj;Gj=null;a.forEach(function(a,c){Rj(c,a);Z(c)});jg()}}function bk(a,b){var c=T;T|=1;try{return a(b)}finally{T=c,T===S&&jg()}}function ck(a,b){var c=T;T&=-2;T|=nj;try{return a(b)}finally{T=c,T===S&&jg()}}
11154function Tj(a,b){a.finishedWork=null;a.finishedExpirationTime=0;var c=a.timeoutHandle;-1!==c&&(a.timeoutHandle=-1,qe(c));if(null!==V)for(c=V.return;null!==c;){var d=c;switch(d.tag){case 1:var e=d.type.childContextTypes;null!==e&&void 0!==e&&Ff(d);break;case 3:nh(d);Gf(d);break;case 5:ph(d);break;case 4:nh(d);break;case 13:G(M,d);break;case 19:G(M,d);break;case 10:tg(d)}c=c.return}U=a;V=ah(a.current,null,b);W=b;X=qj;wj=null;yj=xj=1073741823;zj=null;Aj=0;Bj=!1}
11155function Wj(a,b){do{try{rg();Mh();if(null===V||null===V.return)return X=rj,wj=b,null;a:{var c=a,d=V.return,e=V,f=b;b=W;e.effectTag|=2048;e.firstEffect=e.lastEffect=null;if(null!==f&&"object"===typeof f&&"function"===typeof f.then){var g=f,h=0!==(M.current&1),k=d;do{var l;if(l=13===k.tag){var m=k.memoizedState;if(null!==m)l=null!==m.dehydrated?!0:!1;else{var C=k.memoizedProps;l=void 0===C.fallback?!1:!0!==C.unstable_avoidThisFallback?!0:h?!1:!0}}if(l){var y=k.updateQueue;if(null===y){var H=new Set;
11156H.add(g);k.updateQueue=H}else y.add(g);if(0===(k.mode&2)){k.effectTag|=64;e.effectTag&=-2981;if(1===e.tag)if(null===e.alternate)e.tag=17;else{var z=Bg(1073741823,null);z.tag=2;Dg(e,z)}e.expirationTime=1073741823;break a}f=void 0;e=b;var ta=c.pingCache;null===ta?(ta=c.pingCache=new ej,f=new Set,ta.set(g,f)):(f=ta.get(g),void 0===f&&(f=new Set,ta.set(g,f)));if(!f.has(e)){f.add(e);var r=dk.bind(null,c,g,e);g.then(r,r)}k.effectTag|=4096;k.expirationTime=b;break a}k=k.return}while(null!==k);f=Error((Wa(e.type)||
11157"A React component")+" suspended while rendering, but no fallback UI was specified.\n\nAdd a <Suspense fallback=...> component higher in the tree to provide a loading indicator or placeholder to display."+Xa(e))}X!==vj&&(X=sj);f=Ni(f,e);k=d;do{switch(k.tag){case 3:g=f;k.effectTag|=4096;k.expirationTime=b;var x=fj(k,g,b);Eg(k,x);break a;case 1:g=f;var A=k.type,p=k.stateNode;if(0===(k.effectTag&64)&&("function"===typeof A.getDerivedStateFromError||null!==p&&"function"===typeof p.componentDidCatch&&
11158(null===jj||!jj.has(p)))){k.effectTag|=4096;k.expirationTime=b;var t=ij(k,g,b);Eg(k,t);break a}}k=k.return}while(null!==k)}V=ek(V)}catch(v){b=v;continue}break}while(1)}function Uj(){var a=lj.current;lj.current=Lh;return null===a?Lh:a}function Ig(a,b){a<xj&&2<a&&(xj=a);null!==b&&a<yj&&2<a&&(yj=a,zj=b)}function Jg(a){a>Aj&&(Aj=a)}function Zj(){for(;null!==V;)V=fk(V)}function Vj(){for(;null!==V&&!Of();)V=fk(V)}
11159function fk(a){var b=gk(a.alternate,a,W);a.memoizedProps=a.pendingProps;null===b&&(b=ek(a));mj.current=null;return b}
11160function ek(a){V=a;do{var b=V.alternate;a=V.return;if(0===(V.effectTag&2048)){a:{var c=b;b=V;var d=W;
11160var e=b.pendingProps;switch(b.tag){case 2:break;case 16:break;case 15:case 0:break;case 1:L(b.type)&&Ff(b);break;case 3:nh(b);Gf(b);e=b.stateNode;e.pendingContext&&(e.context=e.pendingContext,e.pendingContext=null);(null===c||null===c.child)&&ki(b)&&Ci(b);Ii(b);break;case 5:ph(b);d=lh(kh.current);var f=b.type;if(null!==c&&null!=b.stateNode)Ji(c,b,f,e,d),c.ref!==b.ref&&(b.effectTag|=128);else if(e){var g=
11161lh(ih.current);if(ki(b)){e=b;var h=e.stateNode;c=e.type;var k=e.memoizedProps,l=d;h[ue]=e;h[ve]=k;f=void 0;d=h;switch(c){case "iframe":case "object":case "embed":F("load",d);break;case "video":case "audio":for(h=0;h<cc.length;h++)F(cc[h],d);break;case "source":F("error",d);break;case "img":case "image":case "link":F("error",d);F("load",d);break;case "form":F("reset",d);F("submit",d);break;case "details":F("toggle",d);break;case "input":Bb(d,k);F("invalid",d);$d(l,"onChange");break;case "select":d._wrapperState=
11162{wasMultiple:!!k.multiple};F("invalid",d);$d(l,"onChange");break;case "textarea":Lb(d,k),F("invalid",d),$d(l,"onChange")}Yd(c,k);h=null;for(f in k)k.hasOwnProperty(f)&&(g=k[f],"children"===f?"string"===typeof g?d.textContent!==g&&(h=["children",g]):"number"===typeof g&&d.textContent!==""+g&&(h=["children",""+g]):ia.hasOwnProperty(f)&&null!=g&&$d(l,f));switch(c){case "input":yb(d);Gb(d,k,!0);break;case "textarea":yb(d);Nb(d,k);break;case "select":case "option":break;default:"function"===typeof k.onClick&&
11163(d.onclick=ae)}f=h;e.updateQueue=f;e=null!==f?!0:!1;e&&Ci(b)}else{c=b;l=f;k=e;h=9===d.nodeType?d:d.ownerDocument;g===Ob.html&&(g=Pb(l));g===Ob.html?"script"===l?(k=h.createElement("div"),k.innerHTML="<script>\x3c/script>",h=k.removeChild(k.firstChild)):"string"===typeof k.is?h=h.createElement(l,{is:k.is}):(h=h.createElement(l),"select"===l&&(l=h,k.multiple?l.multiple=!0:k.size&&(l.size=k.size))):h=h.createElementNS(g,l);k=h;k[ue]=c;k[ve]=e;Hi(k,b,!1,!1);b.stateNode=k;l=f;c=e;var m=d,C=Zd(l,c);switch(l){case "iframe":case "object":case "embed":F("load",
11164k);d=c;break;case "video":case "audio":for(d=0;d<cc.length;d++)F(cc[d],k);d=c;break;case "source":F("error",k);d=c;break;case "img":case "image":case "link":F("error",k);F("load",k);d=c;break;case "form":F("reset",k);F("submit",k);d=c;break;case "details":F("toggle",k);d=c;break;case "input":Bb(k,c);d=Ab(k,c);F("invalid",k);$d(m,"onChange");break;case "option":d=Ib(k,c);break;case "select":k._wrapperState={wasMultiple:!!c.multiple};d=n({},c,{value:void 0});F("invalid",k);$d(m,"onChange");break;case "textarea":Lb(k,
11165c);d=Kb(k,c);F("invalid",k);$d(m,"onChange");break;default:d=c}Yd(l,d);h=void 0;g=l;var y=k,H=d;for(h in H)if(H.hasOwnProperty(h)){var z=H[h];"style"===h?Wd(y,z):"dangerouslySetInnerHTML"===h?(z=z?z.__html:void 0,null!=z&&Sb(y,z)):"children"===h?"string"===typeof z?("textarea"!==g||""!==z)&&Tb(y,z):"number"===typeof z&&Tb(y,""+z):"suppressContentEditableWarning"!==h&&"suppressHydrationWarning"!==h&&"autoFocus"!==h&&(ia.hasOwnProperty(h)?null!=z&&$d(m,h):null!=z&&vb(y,h,z,C))}switch(l){case "input":yb(k);
11166Gb(k,c,!1);break;case "textarea":yb(k);Nb(k,c);break;case "option":null!=c.value&&k.setAttribute("value",""+ub(c.value));break;case "select":d=k;d.multiple=!!c.multiple;k=c.value;null!=k?Jb(d,!!c.multiple,k,!1):null!=c.defaultValue&&Jb(d,!!c.multiple,c.defaultValue,!0);break;default:"function"===typeof d.onClick&&(k.onclick=ae)}(e=ne(f,e))&&Ci(b)}null!==b.ref&&(b.effectTag|=128)}else if(null===b.stateNode)throw Error(u(166));break;case 6:if(c&&null!=b.stateNode)Ki(c,b,c.memoizedProps,e);else{if("string"!==
11167typeof e&&null===b.stateNode)throw Error(u(166));d=lh(kh.current);lh(ih.current);ki(b)?(e=b,f=e.stateNode,d=e.memoizedProps,f[ue]=e,(e=f.nodeValue!==d)&&Ci(b)):(f=b,e=(9===d.nodeType?d:d.ownerDocument).createTextNode(e),e[ue]=f,b.stateNode=e)}break;case 11:break;case 13:G(M,b);e=b.memoizedState;if(0!==(b.effectTag&64)){b.expirationTime=d;break a}e=null!==e;f=!1;null===c?void 0!==b.memoizedProps.fallback&&ki(b):(d=c.memoizedState,f=null!==d,e||null===d||(d=c.child.sibling,null!==d&&(k=b.firstEffect,
11168null!==k?(b.firstEffect=d,d.nextEffect=k):(b.firstEffect=b.lastEffect=d,d.nextEffect=null),d.effectTag=8)));if(e&&!f&&0!==(b.mode&2))if(null===c&&!0!==b.memoizedProps.unstable_avoidThisFallback||0!==(M.current&1))X===qj&&(X=tj);else{if(X===qj||X===tj)X=uj;0!==Aj&&null!==U&&(Mj(U,W),Nj(U,Aj))}if(e||f)b.effectTag|=4;break;case 7:break;case 8:break;case 12:break;case 4:nh(b);Ii(b);break;case 10:tg(b);break;case 9:break;case 14:break;case 17:L(b.type)&&Ff(b);break;case 19:G(M,b);e=b.memoizedState;if(null===
11169e)break;f=0!==(b.effectTag&64);k=e.rendering;if(null===k)if(f)Li(e,!1);else{if(X!==qj||null!==c&&0!==(c.effectTag&64))for(c=b.child;null!==c;){k=qh(c);if(null!==k){b.effectTag|=64;Li(e,!1);f=k.updateQueue;null!==f&&(b.updateQueue=f,b.effectTag|=4);null===e.lastEffect&&(b.firstEffect=null);b.lastEffect=e.lastEffect;e=d;for(f=b.child;null!==f;)d=f,c=e,d.effectTag&=2,d.nextEffect=null,d.firstEffect=null,d.lastEffect=null,k=d.alternate,null===k?(d.childExpirationTime=0,d.expirationTime=c,d.child=null,
11170d.memoizedProps=null,d.memoizedState=null,d.updateQueue=null,d.dependencies=null):(d.childExpirationTime=k.childExpirationTime,d.expirationTime=k.expirationTime,d.child=k.child,d.memoizedProps=k.memoizedProps,d.memoizedState=k.memoizedState,d.updateQueue=k.updateQueue,c=k.dependencies,d.dependencies=null===c?null:{expirationTime:c.expirationTime,firstContext:c.firstContext,responders:c.responders}),f=f.sibling;I(M,M.current&1|2,b);b=b.child;break a}c=c.sibling}}else{if(!f)if(c=qh(k),null!==c){if(b.effectTag|=
1117164,f=!0,d=c.updateQueue,null!==d&&(b.updateQueue=d,b.effectTag|=4),Li(e,!0),null===e.tail&&"hidden"===e.tailMode&&!k.alternate){b=b.lastEffect=e.lastEffect;null!==b&&(b.nextEffect=null);break}}else cg()>e.tailExpiration&&1<d&&(b.effectTag|=64,f=!0,Li(e,!1),b.expirationTime=b.childExpirationTime=d-1);e.isBackwards?(k.sibling=b.child,b.child=k):(d=e.last,null!==d?d.sibling=k:b.child=k,e.last=k)}if(null!==e.tail){0===e.tailExpiration&&(e.tailExpiration=cg()+500);d=e.tail;e.rendering=d;e.tail=d.sibling;
11172e.lastEffect=b.lastEffect;d.sibling=null;e=M.current;e=f?e&1|2:e&1;I(M,e,b);b=d;break a}break;case 20:break;case 21:break;default:throw Error(u(156,b.tag));}b=null}e=V;if(1===W||1!==e.childExpirationTime){f=0;for(d=e.child;null!==d;)c=d.expirationTime,k=d.childExpirationTime,c>f&&(f=c),k>f&&(f=k),d=d.sibling;e.childExpirationTime=f}if(null!==b)return b;null!==a&&0===(a.effectTag&2048)&&(null===a.firstEffect&&(a.firstEffect=V.firstEffect),null!==V.lastEffect&&(null!==a.lastEffect&&(a.lastEffect.nextEffect=
11173V.firstEffect),a.lastEffect=V.lastEffect),1<V.effectTag&&(null!==a.lastEffect?a.lastEffect.nextEffect=V:a.firstEffect=V,a.lastEffect=V))}else{b=Mi(V,W);if(null!==b)return b.effectTag&=2047,b;null!==a&&(a.firstEffect=a.lastEffect=null,a.effectTag|=2048)}b=V.sibling;if(null!==b)return b;V=a}while(null!==V);X===qj&&(X=vj);return null}function Xj(a){var b=a.expirationTime;a=a.childExpirationTime;return b>a?b:a}function Yj(a){var b=dg();fg(99,ik.bind(null,a,b));return null}
11174function ik(a,b){do Sj();while(null!==Ej);if((T&(oj|pj))!==S)throw Error(u(327));var c=a.finishedWork,d=a.finishedExpirationTime;if(null===c)return null;a.finishedWork=null;a.finishedExpirationTime=0;
vendor: 24,579 bytes, lines 11174-11268
11174if(c===a.current)throw Error(u(177));a.callbackNode=null;a.callbackExpirationTime=0;a.callbackPriority=90;a.nextKnownPendingLevel=0;var e=Xj(c);a.firstPendingTime=e;d<=a.lastSuspendedTime?a.firstSuspendedTime=a.lastSuspendedTime=a.nextKnownPendingLevel=0:d<=a.firstSuspendedTime&&(a.firstSuspendedTime=
11175d-1);d<=a.lastPingedTime&&(a.lastPingedTime=0);d<=a.lastExpiredTime&&(a.lastExpiredTime=0);a===U&&(V=U=null,W=0);1<c.effectTag?null!==c.lastEffect?(c.lastEffect.nextEffect=c,e=c.firstEffect):e=c:e=c.firstEffect;if(null!==e){var f=T;T|=pj;mj.current=null;le=Ld;var g=fe();if(ge(g)){if("selectionStart"in g)var h={start:g.selectionStart,end:g.selectionEnd};else a:{h=(h=g.ownerDocument)&&h.defaultView||window;var k=h.getSelection&&h.getSelection();if(k&&0!==k.rangeCount){h=k.anchorNode;var l=k.anchorOffset,
11176m=k.focusNode;k=k.focusOffset;try{h.nodeType,m.nodeType}catch(Db){h=null;break a}var C=0,y=-1,H=-1,z=0,ta=0,r=g,x=null;b:for(;;){for(var A;;){r!==h||0!==l&&3!==r.nodeType||(y=C+l);r!==m||0!==k&&3!==r.nodeType||(H=C+k);3===r.nodeType&&(C+=r.nodeValue.length);if(null===(A=r.firstChild))break;x=r;r=A}for(;;){if(r===g)break b;x===h&&++z===l&&(y=C);x===m&&++ta===k&&(H=C);if(null!==(A=r.nextSibling))break;r=x;x=r.parentNode}r=A}h=-1===y||-1===H?null:{start:y,end:H}}else h=null}h=h||{start:0,end:0}}else h=
11177null;me={focusedElem:g,selectionRange:h};Ld=!1;Y=e;do try{jk()}catch(Db){if(null===Y)throw Error(u(330));Ri(Y,Db);Y=Y.nextEffect}while(null!==Y);Y=e;do try{for(g=a,h=b;null!==Y;){var p=Y.effectTag;p&16&&Tb(Y.stateNode,"");if(p&128){var t=Y.alternate;if(null!==t){var v=t.ref;null!==v&&("function"===typeof v?v(null):v.current=null)}}switch(p&1038){case 2:$i(Y);Y.effectTag&=-3;break;case 6:$i(Y);Y.effectTag&=-3;aj(Y.alternate,Y);break;case 1024:Y.effectTag&=-1025;break;case 1028:Y.effectTag&=-1025;aj(Y.alternate,
11178Y);break;case 4:aj(Y.alternate,Y);break;case 8:l=Y,Xi(g,l,h),Yi(l)}Y=Y.nextEffect}}catch(Db){if(null===Y)throw Error(u(330));Ri(Y,Db);Y=Y.nextEffect}while(null!==Y);v=me;t=fe();p=v.focusedElem;h=v.selectionRange;if(t!==p&&p&&p.ownerDocument&&ee(p.ownerDocument.documentElement,p)){null!==h&&ge(p)&&(t=h.start,v=h.end,void 0===v&&(v=t),"selectionStart"in p?(p.selectionStart=t,p.selectionEnd=Math.min(v,p.value.length)):(v=(t=p.ownerDocument||document)&&t.defaultView||window,v.getSelection&&(v=v.getSelection(),
11179l=p.textContent.length,g=Math.min(h.start,l),h=void 0===h.end?g:Math.min(h.end,l),!v.extend&&g>h&&(l=h,h=g,g=l),l=de(p,g),m=de(p,h),l&&m&&(1!==v.rangeCount||v.anchorNode!==l.node||v.anchorOffset!==l.offset||v.focusNode!==m.node||v.focusOffset!==m.offset)&&(t=t.createRange(),t.setStart(l.node,l.offset),v.removeAllRanges(),g>h?(v.addRange(t),v.extend(m.node,m.offset)):(t.setEnd(m.node,m.offset),v.addRange(t))))));t=[];for(v=p;v=v.parentNode;)1===v.nodeType&&t.push({element:v,left:v.scrollLeft,top:v.scrollTop});
11180"function"===typeof p.focus&&p.focus();for(p=0;p<t.length;p++)v=t[p],v.element.scrollLeft=v.left,v.element.scrollTop=v.top}me=null;Ld=!!le;le=null;a.current=c;Y=e;do try{for(p=d;null!==Y;){var Dh=Y.effectTag;if(Dh&36){var dc=Y.alternate;t=Y;v=p;switch(t.tag){case 0:case 11:case 15:Ui(16,32,t);break;case 1:var fd=t.stateNode;if(t.effectTag&4)if(null===dc)fd.componentDidMount();else{var hk=t.elementType===t.type?dc.memoizedProps:mg(t.type,dc.memoizedProps);fd.componentDidUpdate(hk,dc.memoizedState,
11181fd.__reactInternalSnapshotBeforeUpdate)}var Eh=t.updateQueue;null!==Eh&&Kg(t,Eh,fd,v);break;case 3:var Fh=t.updateQueue;if(null!==Fh){g=null;if(null!==t.child)switch(t.child.tag){case 5:g=t.child.stateNode;break;case 1:g=t.child.stateNode}Kg(t,Fh,g,v)}break;case 5:var xk=t.stateNode;null===dc&&t.effectTag&4&&ne(t.type,t.memoizedProps)&&xk.focus();break;case 6:break;case 4:break;case 12:break;case 13:if(null===t.memoizedState){var Di=t.alternate;if(null!==Di){var Ei=Di.memoizedState;if(null!==Ei){var Fi=
11182Ei.dehydrated;null!==Fi&&Lc(Fi)}}}break;case 19:case 17:case 20:case 21:break;default:throw Error(u(163));}}if(Dh&128){t=void 0;var xd=Y.ref;if(null!==xd){var Gi=Y.stateNode;switch(Y.tag){case 5:t=Gi;break;default:t=Gi}"function"===typeof xd?xd(t):xd.current=t}}Y=Y.nextEffect}}catch(Db){if(null===Y)throw Error(u(330));Ri(Y,Db);Y=Y.nextEffect}while(null!==Y);Y=null;Yf();T=f}else a.current=c;if(Dj)Dj=!1,Ej=a,Fj=b;else for(Y=e;null!==Y;)b=Y.nextEffect,Y.nextEffect=null,Y=b;b=a.firstPendingTime;0===b&&
11183(jj=null);1073741823===b?a===Ij?Hj++:(Hj=0,Ij=a):Hj=0;"function"===typeof kk&&kk(c.stateNode,d);Z(a);if(gj)throw gj=!1,a=hj,hj=null,a;if((T&nj)!==S)return null;jg();return null}function jk(){for(;null!==Y;){var a=Y.effectTag;0!==(a&256)&&Ti(Y.alternate,Y);0===(a&512)||Dj||(Dj=!0,gg(97,function(){Sj();return null}));Y=Y.nextEffect}}function Sj(){if(90!==Fj){var a=97<Fj?97:Fj;Fj=90;return fg(a,lk)}}
11184function lk(){if(null===Ej)return!1;var a=Ej;Ej=null;if((T&(oj|pj))!==S)throw Error(u(331));var b=T;T|=pj;for(a=a.current.firstEffect;null!==a;){try{var c=a;if(0!==(c.effectTag&512))switch(c.tag){case 0:case 11:case 15:Ui(128,0,c),Ui(0,64,c)}}catch(d){if(null===a)throw Error(u(330));Ri(a,d)}c=a.nextEffect;a.nextEffect=null;a=c}T=b;jg();return!0}function mk(a,b,c){b=Ni(c,b);b=fj(a,b,1073741823);Dg(a,b);a=Kj(a,1073741823);null!==a&&Z(a)}
11185function Ri(a,b){if(3===a.tag)mk(a,a,b);else for(var c=a.return;null!==c;){if(3===c.tag){mk(c,a,b);break}else if(1===c.tag){var d=c.stateNode;if("function"===typeof c.type.getDerivedStateFromError||"function"===typeof d.componentDidCatch&&(null===jj||!jj.has(d))){a=Ni(b,a);a=ij(c,a,1073741823);Dg(c,a);c=Kj(c,1073741823);null!==c&&Z(c);break}}c=c.return}}
11186function dk(a,b,c){var d=a.pingCache;null!==d&&d.delete(b);U===a&&W===c?X===uj||X===tj&&1073741823===xj&&cg()-bj<Cj?Tj(a,W):Bj=!0:Pj(a,c)&&(b=a.lastPingedTime,0!==b&&b<c||(a.lastPingedTime=c,a.finishedExpirationTime===c&&(a.finishedExpirationTime=0,a.finishedWork=null),Z(a)))}function dj(a,b){var c=a.stateNode;null!==c&&c.delete(b);b=0;0===b&&(b=Pg(),b=Qg(b,a,null));a=Kj(a,b);null!==a&&Z(a)}var gk;
11187gk=function(a,b,c){var d=b.expirationTime;if(null!==a){var e=b.pendingProps;if(a.memoizedProps!==e||K.current)wg=!0;else{if(d<c){wg=!1;switch(b.tag){case 3:wi(b);li();break;case 5:oh(b);if(b.mode&4&&1!==c&&e.hidden)return b.expirationTime=b.childExpirationTime=1,null;break;case 1:L(b.type)&&Jf(b);break;case 4:mh(b,b.stateNode.containerInfo);break;case 10:sg(b,b.memoizedProps.value);break;case 13:if(null!==b.memoizedState){d=b.child.childExpirationTime;if(0!==d&&d>=c)return yi(a,b,c);I(M,M.current&
111881,b);b=oi(a,b,c);return null!==b?b.sibling:null}I(M,M.current&1,b);break;case 19:d=b.childExpirationTime>=c;if(0!==(a.effectTag&64)){if(d)return Bi(a,b,c);b.effectTag|=64}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null);I(M,M.current,b);if(!d)return null}return oi(a,b,c)}wg=!1}}else wg=!1;b.expirationTime=0;switch(b.tag){case 2:d=b.type;null!==a&&(a.alternate=null,b.alternate=null,b.effectTag|=2);a=b.pendingProps;e=Ef(b,J.current);vg(b,c);e=Ih(null,b,d,a,e,c);b.effectTag|=1;if("object"===
11189typeof e&&null!==e&&"function"===typeof e.render&&void 0===e.$$typeof){b.tag=1;Mh();if(L(d)){var f=!0;Jf(b)}else f=!1;b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;var g=d.getDerivedStateFromProps;"function"===typeof g&&Og(b,d,g,a);e.updater=Sg;b.stateNode=e;e._reactInternalFiber=b;Wg(b,d,a,c);b=vi(null,b,d,!0,f,c)}else b.tag=0,R(null,b,e,c),b=b.child;return b;case 16:e=b.elementType;null!==a&&(a.alternate=null,b.alternate=null,b.effectTag|=2);a=b.pendingProps;Va(e);if(1!==e._status)throw e._result;
11190e=e._result;b.type=e;f=b.tag=nk(e);a=mg(e,a);switch(f){case 0:b=si(null,b,e,a,c);break;case 1:b=ui(null,b,e,a,c);break;case 11:b=ni(null,b,e,a,c);break;case 14:b=pi(null,b,e,mg(e.type,a),d,c);break;default:throw Error(u(306,e,""));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:mg(d,e),si(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:mg(d,e),ui(a,b,d,e,c);case 3:wi(b);d=b.updateQueue;if(null===d)throw Error(u(282));e=b.memoizedState;e=null!==e?e.element:
11191null;Hg(b,d,b.pendingProps,null,c);d=b.memoizedState.element;if(d===e)li(),b=oi(a,b,c);else{if(e=b.stateNode.hydrate)di=re(b.stateNode.containerInfo.firstChild),ci=b,e=ei=!0;if(e)for(c=gh(b,null,d,c),b.child=c;c;)c.effectTag=c.effectTag&-3|1024,c=c.sibling;else R(a,b,d,c),li();b=b.child}return b;case 5:return oh(b),null===a&&ii(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,oe(d,e)?g=null:null!==f&&oe(d,f)&&(b.effectTag|=16),ti(a,b),b.mode&4&&1!==c&&e.hidden?(b.expirationTime=
11192b.childExpirationTime=1,b=null):(R(a,b,g,c),b=b.child),b;case 6:return null===a&&ii(b),null;case 13:return yi(a,b,c);case 4:return mh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=fh(b,null,d,c):R(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:mg(d,e),ni(a,b,d,e,c);case 7:return R(a,b,b.pendingProps,c),b.child;case 8:return R(a,b,b.pendingProps.children,c),b.child;case 12:return R(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;
11193e=b.pendingProps;g=b.memoizedProps;f=e.value;sg(b,f);if(null!==g){var h=g.value;f=of(h,f)?0:("function"===typeof d._calculateChangedBits?d._calculateChangedBits(h,f):1073741823)|0;if(0===f){if(g.children===e.children&&!K.current){b=oi(a,b,c);break a}}else for(h=b.child,null!==h&&(h.return=b);null!==h;){var k=h.dependencies;if(null!==k){g=h.child;for(var l=k.firstContext;null!==l;){if(l.context===d&&0!==(l.observedBits&f)){1===h.tag&&(l=Bg(c,null),l.tag=2,Dg(h,l));h.expirationTime<c&&(h.expirationTime=
11194c);l=h.alternate;null!==l&&l.expirationTime<c&&(l.expirationTime=c);ug(h.return,c);k.expirationTime<c&&(k.expirationTime=c);break}l=l.next}}else g=10===h.tag?h.type===b.type?null:h.child:h.child;if(null!==g)g.return=h;else for(g=h;null!==g;){if(g===b){g=null;break}h=g.sibling;if(null!==h){h.return=g.return;g=h;break}g=g.return}h=g}}R(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,f=b.pendingProps,d=f.children,vg(b,c),e=xg(e,f.unstable_observedBits),d=d(e),b.effectTag|=1,R(a,b,d,c),b.child;
11195case 14:return e=b.type,f=mg(e,b.pendingProps),f=mg(e.type,f),pi(a,b,e,f,d,c);case 15:return ri(a,b,b.type,b.pendingProps,d,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:mg(d,e),null!==a&&(a.alternate=null,b.alternate=null,b.effectTag|=2),b.tag=1,L(d)?(a=!0,Jf(b)):a=!1,vg(b,c),Ug(b,d,e,c),Wg(b,d,e,c),vi(null,b,d,!0,a,c);case 19:return Bi(a,b,c)}throw Error(u(156,b.tag));};var kk=null,Wi=null;
11196function ok(a){if("undefined"===typeof __REACT_DEVTOOLS_GLOBAL_HOOK__)return!1;var b=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(b.isDisabled||!b.supportsFiber)return!0;try{var c=b.inject(a);kk=function(a){try{b.onCommitFiberRoot(c,a,void 0,64===(a.current.effectTag&64))}catch(e){}};Wi=function(a){try{b.onCommitFiberUnmount(c,a)}catch(e){}}}catch(d){}return!0}
11197function pk(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.effectTag=0;this.lastEffect=this.firstEffect=this.nextEffect=null;this.childExpirationTime=this.expirationTime=0;this.alternate=null}function gi(a,b,c,d){return new pk(a,b,c,d)}
11198function qi(a){a=a.prototype;return!(!a||!a.isReactComponent)}function nk(a){if("function"===typeof a)return qi(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Oa)return 11;if(a===Ra)return 14}return 2}
11199function ah(a,b){var c=a.alternate;null===c?(c=gi(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.effectTag=0,c.nextEffect=null,c.firstEffect=null,c.lastEffect=null);c.childExpirationTime=a.childExpirationTime;c.expirationTime=a.expirationTime;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{expirationTime:b.expirationTime,
11200firstContext:b.firstContext,responders:b.responders};c.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}
11201function ch(a,b,c,d,e,f){var g=2;d=a;if("function"===typeof a)qi(a)&&(g=1);else if("string"===typeof a)g=5;else a:switch(a){case Ia:return eh(c.children,e,f,b);case Na:g=8;e|=7;break;case Ja:g=8;e|=1;break;case Ka:return a=gi(12,c,b,e|8),a.elementType=Ka,a.type=Ka,a.expirationTime=f,a;case Pa:return a=gi(13,c,b,e),a.type=Pa,a.elementType=Pa,a.expirationTime=f,a;case Qa:return a=gi(19,c,b,e),a.elementType=Qa,a.expirationTime=f,a;default:if("object"===typeof a&&null!==a)switch(a.$$typeof){case La:g=
1120210;break a;case Ma:g=9;break a;case Oa:g=11;break a;case Ra:g=14;break a;case Sa:g=16;d=null;break a}throw Error(u(130,null==a?a:typeof a,""));}b=gi(g,c,b,e);b.elementType=a;b.type=d;b.expirationTime=f;return b}function eh(a,b,c,d){a=gi(7,a,d,b);a.expirationTime=c;return a}function bh(a,b,c){a=gi(6,a,null,b);a.expirationTime=c;return a}
11203function dh(a,b,c){b=gi(4,null!==a.children?a.children:[],a.key,b);b.expirationTime=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}
11204function qk(a,b,c){this.tag=b;this.current=null;this.containerInfo=a;this.pingCache=this.pendingChildren=null;this.finishedExpirationTime=0;this.finishedWork=null;this.timeoutHandle=-1;this.pendingContext=this.context=null;this.hydrate=c;this.callbackNode=null;this.callbackPriority=90;this.lastExpiredTime=this.lastPingedTime=this.nextKnownPendingLevel=this.lastSuspendedTime=this.firstSuspendedTime=this.firstPendingTime=0}
11205function Pj(a,b){var c=a.firstSuspendedTime;a=a.lastSuspendedTime;return 0!==c&&c>=b&&a<=b}function Mj(a,b){var c=a.firstSuspendedTime,d=a.lastSuspendedTime;c<b&&(a.firstSuspendedTime=b);if(d>b||0===c)a.lastSuspendedTime=b;b<=a.lastPingedTime&&(a.lastPingedTime=0);b<=a.lastExpiredTime&&(a.lastExpiredTime=0)}
11206function Nj(a,b){b>a.firstPendingTime&&(a.firstPendingTime=b);var c=a.firstSuspendedTime;0!==c&&(b>=c?a.firstSuspendedTime=a.lastSuspendedTime=a.nextKnownPendingLevel=0:b>=a.lastSuspendedTime&&(a.lastSuspendedTime=b+1),b>a.nextKnownPendingLevel&&(a.nextKnownPendingLevel=b))}function Rj(a,b){var c=a.lastExpiredTime;if(0===c||c>b)a.lastExpiredTime=b}
11207function rk(a,b,c,d){var e=b.current,f=Pg(),g=Mg.suspense;f=Qg(f,e,g);a:if(c){c=c._reactInternalFiber;b:{if(ec(c)!==c||1!==c.tag)throw Error(u(170));var h=c;do{switch(h.tag){case 3:h=h.stateNode.context;break b;case 1:if(L(h.type)){h=h.stateNode.__reactInternalMemoizedMergedChildContext;break b}}h=h.return}while(null!==h);throw Error(u(171));}if(1===c.tag){var k=c.type;if(L(k)){c=If(c,k,h);break a}}c=h}else c=Cf;null===b.context?b.context=c:b.pendingContext=c;b=Bg(f,g);b.payload={element:a};d=void 0===
11208d?null:d;null!==d&&(b.callback=d);Dg(e,b);Rg(e,f);return f}function sk(a){a=a.current;if(!a.child)return null;switch(a.child.tag){case 5:return a.child.stateNode;default:return a.child.stateNode}}function tk(a,b){a=a.memoizedState;null!==a&&null!==a.dehydrated&&a.retryTime<b&&(a.retryTime=b)}function uk(a,b){tk(a,b);(a=a.alternate)&&tk(a,b)}
11209function vk(a,b,c){c=null!=c&&!0===c.hydrate;var d=new qk(a,b,c),e=gi(3,null,null,2===b?7:1===b?3:0);d.current=e;e.stateNode=d;a[we]=d.current;c&&0!==b&&wc(9===a.nodeType?a:a.ownerDocument);this._internalRoot=d}vk.prototype.render=function(a,b){rk(a,this._internalRoot,null,void 0===b?null:b)};vk.prototype.unmount=function(a){var b=this._internalRoot,c=void 0===a?null:a,d=b.containerInfo;rk(null,b,null,function(){d[we]=null;null!==c&&c()})};
11210function wk(a){return!(!a||1!==a.nodeType&&9!==a.nodeType&&11!==a.nodeType&&(8!==a.nodeType||" react-mount-point-unstable "!==a.nodeValue))}function yk(a,b){b||(b=a?9===a.nodeType?a.documentElement:a.firstChild:null,b=!(!b||1!==b.nodeType||!b.hasAttribute("data-reactroot")));if(!b)for(var c;c=a.lastChild;)a.removeChild(c);return new vk(a,0,b?{hydrate:!0}:void 0)}
11211function zk(a,b,c,d,e){var f=c._reactRootContainer;if(f){var g=f._internalRoot;if("function"===typeof e){var h=e;e=function(){var a=sk(g);h.call(a)}}rk(b,g,a,e)}else{f=c._reactRootContainer=yk(c,d);g=f._internalRoot;if("function"===typeof e){var k=e;e=function(){var a=sk(g);k.call(a)}}ck(function(){rk(b,g,a,e)})}return sk(g)}function Ak(a,b,c){var d=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:Ha,key:null==d?null:""+d,children:a,containerInfo:b,implementation:c}}
11212jc=function(a){if(13===a.tag){var b=lg(Pg(),150,100);Rg(a,b);uk(a,b)}};kc=function(a){if(13===a.tag){Pg();var b=kg++;Rg(a,b);uk(a,b)}};lc=function(a){if(13===a.tag){var b=Pg();b=Qg(b,a,null);Rg(a,b);uk(a,b)}};
11213Za=function(a,b,c){switch(b){case "input":Eb(a,c);b=c.name;if("radio"===c.type&&null!=b){for(c=a;c.parentNode;)c=c.parentNode;c=c.querySelectorAll("input[name="+JSON.stringify(""+b)+'][type="radio"]');for(b=0;b<c.length;b++){var d=c[b];if(d!==a&&d.form===a.form){var e=ye(d);if(!e)throw Error(u(90));zb(d);Eb(d,e)}}}break;case "textarea":Mb(a,c);break;case "select":b=c.value,null!=b&&Jb(a,!!c.multiple,b,!1)}};eb=bk;
11214fb=function(a,b,c,d){var e=T;T|=4;try{return fg(98,a.bind(null,b,c,d))}finally{T=e,T===S&&jg()}};gb=function(){(T&(1|oj|pj))===S&&(ak(),Sj())};hb=function(a,b){var c=T;T|=2;try{return a(b)}finally{T=c,T===S&&jg()}};function Bk(a,b){var c=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!wk(b))throw Error(u(200));return Ak(a,b,null,c)}
11215var Ck={createPortal:Bk,findDOMNode:function(a){if(null==a)return null;if(1===a.nodeType)return a;var b=a._reactInternalFiber;if(void 0===b){if("function"===typeof a.render)throw Error(u(188));throw Error(u(268,Object.keys(a)));}a=ic(b);a=null===a?null:a.stateNode;return a},hydrate:function(a,b,c){if(!wk(b))throw Error(u(200));return zk(null,a,b,!0,c)},render:function(a,b,c){if(!wk(b))throw Error(u(200));return zk(null,a,b,!1,c)},unstable_renderSubtreeIntoContainer:function(a,b,c,d){if(!wk(c))throw Error(u(200));
11216if(null==a||void 0===a._reactInternalFiber)throw Error(u(38));return zk(a,b,c,!1,d)},unmountComponentAtNode:function(a){if(!wk(a))throw Error(u(40));return a._reactRootContainer?(ck(function(){zk(null,null,a,!1,function(){a._reactRootContainer=null;a[we]=null})}),!0):!1},unstable_createPortal:function(){return Bk.apply(void 0,arguments)},unstable_batchedUpdates:bk,flushSync:function(a,b){if((T&(oj|pj))!==S)throw Error(u(187));var c=T;T|=1;try{return fg(99,a.bind(null,b))}finally{T=c,jg()}},__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:{Events:[Cc,
11217xe,ye,Ca.injectEventPluginsByName,fa,Sc,function(a){ya(a,Rc)},cb,db,Pd,Ba,Sj,{current:!1}]}};
11218(function(a){var b=a.findFiberByHostInstance;return ok(n({},a,{overrideHookState:null,overrideProps:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:Ea.ReactCurrentDispatcher,findHostInstanceByFiber:function(a){a=ic(a);return null===a?null:a.stateNode},findFiberByHostInstance:function(a){return b?b(a):null},findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null}))})({findFiberByHostInstance:Fc,bundleType:0,version:"16.12.0",
11219rendererPackageName:"react-dom"});var Dk={default:Ck},Ek=Dk&&Ck||Dk;module.exports=Ek.default||Ek;
11220
11221
11222/***/ }),
11223/* 50 */
11224/***/ (function(module, exports, __webpack_require__) {
11225
11226"use strict";
11227
11228
11229if (true) {
11230  module.exports = __webpack_require__(51);
11231} else {}
11232
11233
11234/***/ }),
11235/* 51 */
11236/***/ (function(module, exports, __webpack_require__) {
11237
11238"use strict";
11239/** @license React v0.18.0
11240 * scheduler.production.min.js
11241 *
11242 * Copyright (c) Facebook, Inc. and its affiliates.
11243 *
11244 * This source code is licensed under the MIT license found in the
11245 * LICENSE file in the root directory of this source tree.
11246 */
11247
11248Object.defineProperty(exports,"__esModule",{value:!0});var f,g,h,k,l;
11249if("undefined"===typeof window||"function"!==typeof MessageChannel){var p=null,q=null,t=function(){if(null!==p)try{var a=exports.unstable_now();p(!0,a);p=null}catch(b){throw setTimeout(t,0),b;}},u=Date.now();exports.unstable_now=function(){return Date.now()-u};f=function(a){null!==p?setTimeout(f,0,a):(p=a,setTimeout(t,0))};g=function(a,b){q=setTimeout(a,b)};h=function(){clearTimeout(q)};k=function(){return!1};l=exports.unstable_forceFrameRate=function(){}}else{var w=window.performance,x=window.Date,
11250y=window.setTimeout,z=window.clearTimeout;if("undefined"!==typeof console){var A=window.cancelAnimationFrame;"function"!==typeof window.requestAnimationFrame&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills");"function"!==typeof A&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills")}if("object"===
11251typeof w&&"function"===typeof w.now)exports.unstable_now=function(){return w.now()};else{var B=x.now();exports.unstable_now=function(){return x.now()-B}}var C=!1,D=null,E=-1,F=5,G=0;k=function(){return exports.unstable_now()>=G};l=function(){};exports.unstable_forceFrameRate=function(a){0>a||125<a?console.error("forceFrameRate takes a positive int between 0 and 125, forcing framerates higher than 125 fps is not unsupported"):F=0<a?Math.floor(1E3/a):5};var H=new MessageChannel,I=H.port2;H.port1.onmessage=
11252function(){if(null!==D){var a=exports.unstable_now();G=a+F;try{D(!0,a)?I.postMessage(null):(C=!1,D=null)}catch(b){throw I.postMessage(null),b;}}else C=!1};f=function(a){D=a;C||(C=!0,I.postMessage(null))};g=function(a,b){E=y(function(){a(exports.unstable_now())},b)};h=function(){z(E);E=-1}}function J(a,b){var c=a.length;a.push(b);a:for(;;){var d=Math.floor((c-1)/2),e=a[d];if(void 0!==e&&0<K(e,b))a[d]=b,a[c]=e,c=d;else break a}}function L(a){a=a[0];return void 0===a?null:a}
11253function M(a){var b=a[0];if(void 0!==b){var c=a.pop();if(c!==b){a[0]=c;a:for(var d=0,e=a.length;d<e;){var m=2*(d+1)-1,n=a[m],v=m+1,r=a[v];if(void 0!==n&&0>K(n,c))void 0!==r&&0>K(r,n)?(a[d]=r,a[v]=c,d=v):(a[d]=n,a[m]=c,d=m);else if(void 0!==r&&0>K(r,c))a[d]=r,a[v]=c,d=v;else break a}}return b}return null}function K(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}var N=[],O=[],P=1,Q=null,R=3,S=!1,T=!1,U=!1;
11254function V(a){for(var b=L(O);null!==b;){if(null===b.callback)M(O);else if(b.startTime<=a)M(O),b.sortIndex=b.expirationTime,J(N,b);else break;b=L(O)}}function W(a){U=!1;V(a);if(!T)if(null!==L(N))T=!0,f(X);else{var b=L(O);null!==b&&g(W,b.startTime-a)}}
11255function X(a,b){T=!1;U&&(U=!1,h());S=!0;var c=R;try{V(b);for(Q=L(N);null!==Q&&(!(Q.expirationTime>b)||a&&!k());){var d=Q.callback;if(null!==d){Q.callback=null;R=Q.priorityLevel;var e=d(Q.expirationTime<=b);b=exports.unstable_now();"function"===typeof e?Q.callback=e:Q===L(N)&&M(N);V(b)}else M(N);Q=L(N)}if(null!==Q)var m=!0;else{var n=L(O);null!==n&&g(W,n.startTime-b);m=!1}return m}finally{Q=null,R=c,S=!1}}
11256function Y(a){switch(a){case 1:return-1;case 2:return 250;case 5:return 1073741823;case 4:return 1E4;default:return 5E3}}var Z=l;exports.unstable_ImmediatePriority=1;exports.unstable_UserBlockingPriority=2;exports.unstable_NormalPriority=3;exports.unstable_IdlePriority=5;exports.unstable_LowPriority=4;exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=R;R=a;try{return b()}finally{R=c}};
11257exports.unstable_next=function(a){switch(R){case 1:case 2:case 3:var b=3;break;default:b=R}var c=R;R=b;try{return a()}finally{R=c}};
11258exports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();if("object"===typeof c&&null!==c){var e=c.delay;e="number"===typeof e&&0<e?d+e:d;c="number"===typeof c.timeout?c.timeout:Y(a)}else c=Y(a),e=d;c=e+c;a={id:P++,callback:b,priorityLevel:a,startTime:e,expirationTime:c,sortIndex:-1};e>d?(a.sortIndex=e,J(O,a),null===L(N)&&a===L(O)&&(U?h():U=!0,g(W,e-d))):(a.sortIndex=c,J(N,a),T||S||(T=!0,f(X)));return a};exports.unstable_cancelCallback=function(a){a.callback=null};
11259exports.unstable_wrapCallback=function(a){var b=R;return function(){var c=R;R=b;try{return a.apply(this,arguments)}finally{R=c}}};exports.unstable_getCurrentPriorityLevel=function(){return R};exports.unstable_shouldYield=function(){var a=exports.unstable_now();V(a);var b=L(N);return b!==Q&&null!==Q&&null!==b&&null!==b.callback&&b.startTime<=a&&b.expirationTime<Q.expirationTime||k()};exports.unstable_requestPaint=Z;exports.unstable_continueExecution=function(){T||S||(T=!0,f(X))};
11260exports.unstable_pauseExecution=function(){};exports.unstable_getFirstCallbackNode=function(){return L(N)};exports.unstable_Profiling=null;
11261
11262
11263/***/ }),
11264/* 52 */
11265/***/ (function(module, exports, __webpack_require__) {
11266
11267"use strict";
11268
11269var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
11270    if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
11271    return cooked;
11272};
11273var __assign = (this && this.__assign) || function () {
11274    __assign = Object.assign || function(t) {
11275        for (var s, i = 1, n = arguments.length; i < n; i++) {
11276            s = arguments[i];
11277            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
11278                t[p] = s[p];
11279        }
11280        return t;
11281    };
11282    return __assign.apply(this, arguments);
11283};
11284Object.defineProperty(exports, "__esModule", { value: true });
11285var React = __webpack_require__(0);
11286var react_router_1 = __webpack_require__(4);
11287var history_1 = __webpack_require__(8);
11288var Menu_1 = __webpack_require__(57);
11289var styled_components_1 = __webpack_require__(13);
11290var Plans_1 = __webpack_require__(34);
11291var About_1 = __webpack_require__(59);
11292var SoloPlayerComponent = React.lazy(function () { return Promise.resolve().then(function () { return __webpack_require__(60); }); });
11293var history = history_1.createBrowserHistory();
11294var loadingKeyframe = styled_components_1.keyframes(templateObject_1 || (templateOb
11294ject_1 = __makeTemplateObject(["\n  0% {\n    content: 'Loading.';\n  }\n  33% {\n    content: 'Loading..';\n  }\n  66% {\n    content: 'Loading...';\n  }\n  100% {\n    content: 'Loading';\n  }\n"], ["\n  0% {\n    content: 'Loading.';\n  }\n  33% {\n    content: 'Loading..';\n  }\n  66% {\n    content: 'Loading...';\n  }\n  100% {\n    content: 'Loading';\n  }\n"])));
11295var Fallback = styled_components_1.default('div')(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n  background-color: #ddd;\n  position: relative;\n  width: 200px;\n  height: 200px;\n  &::after {\n    content: '';\n    font-size: 20px;\n    position: absolute;\n    top: 0px;\n    left: 0px;\n    padding: 20px;\n    animation: ", " 0.2s linear infinite;\n  }\n"], ["\n  background-color: #ddd;\n  position: relative;\n  width: 200px;\n  height: 200px;\n  &::after {\n    content: '';\n    font-size: 20px;\n    position: absolute;\n    top: 0px;\n    left: 0px;\n    padding: 20px;\n    animation: ", " 0.2s linear infinite;\n  }\n"])), loadingKeyframe);
11296var LazyPlayer = function (props) { return (React.createElement(React.Suspense, { fallback: React.createElement(Fallback, null) },
11297    React.createElement(SoloPlayerComponent, __assign({}, props)))); };
11298var App = function () {
11299    return (React.createElement(react_router_1.Router, { history: history },
11300        React.createElement(react_router_1.Route, { path: ['/solo/:player/:variant', '/solo/:player'] },
11301            React.createElement(LazyPlayer, null)),
11302        React.createElement(react_router_1.Route, { path: "/simultaneous" },
11303            React.createElement(Plans_1.default, null)),
11304        React.createElement(react_router_1.Route, { path: "/about" },
11305            React.createElement(About_1.default, null)),
11306        React.createElement(react_router_1.Route, { path: "/", exact: true },
11307            React.createElement(Menu_1.default, null))));
11308};
11309exports.default = App;
11310var templateObject_1, templateObject_2;
11311
11312
11313/***/ }),
11314/* 53 */
11315/***/ (function(module, exports, __webpack_require__) {
11316
11317"use strict";
11318/**
11319 * Copyright (c) 2013-present, Facebook, Inc.
11320 *
11321 * This source code is licensed under the MIT license found in the
11322 * LICENSE file in the root directory of this source tree.
11323 */
11324
11325
11326
11327var ReactPropTypesSecret = __webpack_require__(54);
11328
11329function emptyFunction() {}
11330function emptyFunctionWithReset() {}
11331emptyFunctionWithReset.resetWarningCache = emptyFunction;
11332
11333module.exports = function() {
11334  function shim(props, propName, componentName, location, propFullName, secret) {
11335    if (secret === ReactPropTypesSecret) {
11336      // It is still safe when called from React.
11337      return;
11338    }
11339    var err = new Error(
11340      'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +
11341      'Use PropTypes.checkPropTypes() to call them. ' +
11342      'Read more at http://fb.me/use-check-prop-types'
11343    );
11344    err.name = 'Invariant Violation';
11345    throw err;
11346  };
11347  shim.isRequired = shim;
11348  function getShim() {
11349    return shim;
11350  };
11351  // Important!
11352  // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.
11353  var ReactPropTypes = {
11354    array: shim,
11355    bool: shim,
11356    func: shim,
11357    number: shim,
11358    object: shim,
11359    string: shim,
11360    symbol: shim,
11361
11362    any: shim,
11363    arrayOf: getShim,
11364    element: shim,
11365    elementType: shim,
11366    instanceOf: getShim,
11367    node: shim,
11368    objectOf: getShim,
11369    oneOf: getShim,
11370    oneOfType: getShim,
11371    shape: getShim,
11372    exact: getShim,
11373
11374    checkPropTypes: emptyFunctionWithReset,
11375    resetWarningCache: emptyFunction
11376  };
11377
11378  ReactPropTypes.PropTypes = ReactPropTypes;
11379
11380  return ReactPropTypes;
11381};
11382
11383
11384/***/ }),
11385/* 54 */
11386/***/ (function(module, exports, __webpack_require__) {
11387
11388"use strict";
11389/**
11390 * Copyright (c) 2013-present, Facebook, Inc.
11391 *
11392 * This source code is licensed under the MIT license found in the
11393 * LICENSE file in the root directory of this source tree.
11394 */
11395
11396
11397
11398var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';
11399
11400module.exports = ReactPropTypesSecret;
11401
11402
11403/***/ }),
11404/* 55 */
vendor: 2,463 bytes, lines 11405-11431
11405/***/ (function(module, exports) {
11406
11407module.exports = Array.isArray || function (arr) {
11408  return Object.prototype.toString.call(arr) == '[object Array]';
11409};
11410
11411
11412/***/ }),
11413/* 56 */
11414/***/ (function(module, exports, __webpack_require__) {
11415
11416"use strict";
11417/** @license React v16.12.0
11418 * react-is.production.min.js
11419 *
11420 * Copyright (c) Facebook, Inc. and its affiliates.
11421 *
11422 * This source code is licensed under the MIT license found in the
11423 * LICENSE file in the root directory of this source tree.
11424 */
11425
11426Object.defineProperty(exports,"__esModule",{value:!0});
11427var b="function"===typeof Symbol&&Symbol.for,c=b?Symbol.for("react.element"):60103,d=b?Symbol.for("react.portal"):60106,e=b?Symbol.for("react.fragment"):60107,f=b?Symbol.for("react.strict_mode"):60108,g=b?Symbol.for("react.profiler"):60114,h=b?Symbol.for("react.provider"):60109,k=b?Symbol.for("react.context"):60110,l=b?Symbol.for("react.async_mode"):60111,m=b?Symbol.for("react.concurrent_mode"):60111,n=b?Symbol.for("react.forward_ref"):60112,p=b?Symbol.for("react.suspense"):60113,q=b?Symbol.for("react.suspense_list"):
1142860120,r=b?Symbol.for("react.memo"):60115,t=b?Symbol.for("react.lazy"):60116,v=b?Symbol.for("react.fundamental"):60117,w=b?Symbol.for("react.responder"):60118,x=b?Symbol.for("react.scope"):60119;function y(a){if("object"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function z(a){return y(a)===m}
11429exports.typeOf=y;exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;exports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;
11430exports.isValidElementType=function(a){return"string"===typeof a||"function"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||"object"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===v||a.$$typeof===w||a.$$typeof===x)};exports.isAsyncMode=function(a){return z(a)||y(a)===l};exports.isConcurrentMode=z;exports.isContextConsumer=function(a){return y(a)===k};exports.isContextProvider=function(a){return y(a)===h};
11431exports.isElement=function(a){return"object"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return y(a)===n};
11431exports.isFragment=function(a){return y(a)===e};exports.isLazy=function(a){return y(a)===t};exports.isMemo=function(a){return y(a)===r};exports.isPortal=function(a){return y(a)===d};exports.isProfiler=function(a){return y(a)===g};exports.isStrictMode=function(a){return y(a)===f};exports.isSuspense=function(a){return y(a)===p};
11432
11433
11434/***/ }),
11435/* 57 */
11436/***/ (function(module, exports, __webpack_require__) {
11437
11438"use strict";
11439
11440var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
11441    if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
11442    return cooked;
11443};
11444Object.defineProperty(exports, "__esModule", { value: true });
11445var React = __webpack_require__(0);
11446var react_router_dom_1 = __webpack_require__(21);
11447var Wrapper_1 = __webpack_require__(33);
11448var styled = __webpack_require__(13);
11449var NavAction = styled.default(react_router_dom_1.NavLink)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n  position: relative;\n  text-align: center;\n  text-transform: uppercase;\n  padding: 20px 0px;\n  margin: auto;\n  color: white;\n  text-decoration: none;\n  width: 100%;\n  &:before {\n    position: absolute;\n    height: 100vh;\n    bottom: 0px;\n    left: 0px;\n    background-color: white;\n    opacity: 0.05;\n    width: 100%;\n    content: '';\n    z-index: -10;\n  } \n"], ["\n  position: relative;\n  text-align: center;\n  text-transform: uppercase;\n  padding: 20px 0px;\n  margin: auto;\n  color: white;\n  text-decoration: none;\n  width: 100%;\n  &:before {\n    position: absolute;\n    height: 100vh;\n    bottom: 0px;\n    left: 0px;\n    background-color: white;\n    opacity: 0.05;\n    width: 100%;\n    content: '';\n    z-index: -10;\n  } \n"])));
11450var Contents = styled.default.div(templateObject_2 || (templateOb
11450ject_2 = __makeTemplateObject(["\n  display: flex;\n  flex-direction: column;\n  color: #eee;\n  h1 {\n    border-bottom: 1px solid grey;\n    margin: 0px;\n    width: 100%;\n  }\n"], ["\n  display: flex;\n  flex-direction: column;\n  color: #eee;\n  h1 {\n    border-bottom: 1px solid grey;\n    margin: 0px;\n    width: 100%;\n  }\n"])));
11451var Menu = function () {
11452    var location = react_router_dom_1.useLocation();
11453    var history = react_router_dom_1.useHistory();
11454    var _a = react_router_dom_1.useParams().player, player = _a === void 0 ? 'melody' : _a;
11455    if (location.pathname === '/' && location.search.match(/\?tutorial/)) {
11456        history.replace('/solo/melody/tutorial');
11457        return null;
11458    }
11459    return (React.createElement(Wrapper_1.default, null,
11460        React.createElement(Contents, null,
11461            React.createElement("h1", null, "16step"),
11462            React.createElement(NavAction, { to: "/about" }, "About"),
11463            React.createElement(NavAction, { to: "/solo/melody/normal" }, "Melody Solo"),
11464            React.createElement(NavAction, { to: "/solo/bass/normal" }, "Bass Solo"),
11465            React.createElement(NavAction, { to: "/simultaneous" }, "Simultaneous"),
11466            React.createElement(NavAction, { to: "/solo/" + player + "/tutorial" }, "Help"))));
11467};
11468exports.default = Menu;
11469var templateObject_1, templateObject_2;
11470
11471
11472/***/ }),
11473/* 58 */
11474/***/ (function(module, exports) {
11475
11476// shim for using process in browser
11477var process = module.exports = {};
11478
11479// cached from whatever global is present so that test runners that stub it
11480// don't break things.  But we need to wrap it in a try catch in case it is
11481// wrapped in strict mode code which doesn't define any globals.  It's inside a
11482// function because try/catches deoptimize in certain engines.
11483
11484var cachedSetTimeout;
11485var cachedClearTimeout;
11486
11487function defaultSetTimout() {
11488    throw new Error('setTimeout has not been defined');
11489}
11490function defaultClearTimeout () {
11491    throw new Error('clearTimeout has not been defined');
11492}
11493(function () {
11494    try {
11495        if (typeof setTimeout === 'function') {
11496            cachedSetTimeout = setTimeout;
11497        } else {
11498            cachedSetTimeout = defaultSetTimout;
11499        }
11500    } catch (e) {
11501        cachedSetTimeout = defaultSetTimout;
11502    }
11503    try {
11504        if (typeof clearTimeout === 'function') {
11505            cachedClearTimeout = clearTimeout;
11506        } else {
11507            cachedClearTimeout = defaultClearTimeout;
11508        }
11509    } catch (e) {
11510        cachedClearTimeout = defaultClearTimeout;
11511    }
11512} ())
11513function runTimeout(fun) {
11514    if (cachedSetTimeout === setTimeout) {
11515        //normal enviroments in sane situations
11516        return setTimeout(fun, 0);
11517    }
11518    // if setTimeout wasn't available but was latter defined
11519    if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {
11520        cachedSetTimeout = setTimeout;
11521        return setTimeout(fun, 0);
11522    }
11523    try {
11524        // when when somebody has screwed with setTimeout but no I.E. maddness
11525        return cachedSetTimeout(fun, 0);
11526    } catch(e){
11527        try {
11528            // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
11529            return cachedSetTimeout.call(null, fun, 0);
11530        } catch(e){
11531            // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error
11532            return cachedSetTimeout.call(this, fun, 0);
11533        }
11534    }
11535
11536
11537}
11538function runClearTimeout(marker) {
11539    if (cachedClearTimeout === clearTimeout) {
11540        //normal enviroments in sane situations
11541        return clearTimeout(marker);
11542    }
11543    // if clearTimeout wasn't available but was latter defined
11544    if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {
11545        cachedClearTimeout = clearTimeout;
11546        return clearTimeout(marker);
11547    }
11548    try {
11549        // when when somebody has screwed with setTimeout but no I.E. maddness
11550        return cachedClearTimeout(marker);
11551    } catch (e){
11552        try {
11553            // When we are in I.E. but the script has been evaled so I.E. doesn't  trust the global object when called normally
11554            return cachedClearTimeout.call(null, marker);
11555        } catch (e){
11556            // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.
11557            // Some versions of I.E. have different rules for clearTimeout vs setTimeout
11558            return cachedClearTimeout.call(this, marker);
11559        }
11560    }
11561
11562
11563
11564}
11565var queue = [];
11566var draining = false;
vendor: 6,765 bytes, lines 11567-11716
11567var currentQueue;
11568var queueIndex = -1;
11569
11570function cleanUpNextTick() {
11571    if (!draining || !currentQueue) {
11572        return;
11573    }
11574    draining = false;
11575    if (currentQueue.length) {
11576        queue = currentQueue.concat(queue);
11577    } else {
11578        queueIndex = -1;
11579    }
11580    if (queue.length) {
11581        drainQueue();
11582    }
11583}
11584
11585function drainQueue() {
11586    if (draining) {
11587        return;
11588    }
11589    var timeout = runTimeout(cleanUpNextTick);
11590    draining = true;
11591
11592    var len = queue.length;
11593    while(len) {
11594        currentQueue = queue;
11595        queue = [];
11596        while (++queueIndex < len) {
11597            if (currentQueue) {
11598                currentQueue[queueIndex].run();
11599            }
11600        }
11601        queueIndex = -1;
11602        len = queue.length;
11603    }
11604    currentQueue = null;
11605    draining = false;
11606    runClearTimeout(timeout);
11607}
11608
11609process.nextTick = function (fun) {
11610    var args = new Array(arguments.length - 1);
11611    if (arguments.length > 1) {
11612        for (var i = 1; i < arguments.length; i++) {
11613            args[i - 1] = arguments[i];
11614        }
11615    }
11616    queue.push(new Item(fun, args));
11617    if (queue.length === 1 && !draining) {
11618        runTimeout(drainQueue);
11619    }
11620};
11621
11622// v8 likes predictible objects
11623function Item(fun, array) {
11624    this.fun = fun;
11625    this.array = array;
11626}
11627Item.prototype.run = function () {
11628    this.fun.apply(null, this.array);
11629};
11630process.title = 'browser';
11631process.browser = true;
11632process.env = {};
11633process.argv = [];
11634process.version = ''; // empty string to avoid regexp issues
11635process.versions = {};
11636
11637function noop() {}
11638
11639process.on = noop;
11640process.addListener = noop;
11641process.once = noop;
11642process.off = noop;
11643process.removeListener = noop;
11644process.removeAllListeners = noop;
11645process.emit = noop;
11646process.prependListener = noop;
11647process.prependOnceListener = noop;
11648
11649process.listeners = function (name) { return [] }
11650
11651process.binding = function (name) {
11652    throw new Error('process.binding is not supported');
11653};
11654
11655process.cwd = function () { return '/' };
11656process.chdir = function (dir) {
11657    throw new Error('process.chdir is not supported');
11658};
11659process.umask = function() { return 0; };
11660
11661
11662/***/ }),
11663/* 59 */
11664/***/ (function(module, exports, __webpack_require__) {
11665
11666"use strict";
11667
11668Object.defineProperty(exports, "__esModule", { value: true });
11669var React = __webpack_require__(0);
11670var react_router_dom_1 = __webpack_require__(21);
11671var Plans_1 = __webpack_require__(34);
11672var About = function () { return (React.createElement(Plans_1.BoringWrapper, null,
11673    React.createElement(react_router_dom_1.Link, { to: "/" }, "Home"),
11674    React.createElement("h1", { id: "music-app-thing" }, "Music App Thing"),
11675    React.createElement("p", null, "(Designed primarily with mobiles in mind)"),
11676    React.createElement("h2", { id: "what-this-does-" }, "What this does?"),
11677    React.createElement("p", null, "Originally I was just going to do a straight up replica of a Teenage Engineering Pocket Operator, but as I was using it very early on I realised it'd be way more fun to make something based on that kind of premise but designed to work on a mobile phone. "),
11678    React.createElement("ul", null,
11679        React.createElement("li", null, "16 step sequencer"),
11680        React.createElement("li", null, "16 instrument options"),
11681        React.createElement("li", null, "Save 16 sixteen step patterns"),
11682        React.createElement("li", null, "Which you can then chain in whatever order you like"),
11683        React.createElement("li", null, "(On the existing players) each pattern contains two parts, the melody (played with a selected instrument from options 1-15) and a simple beat (using instrument 16).")),
11684    React.createElement("p", null, "There's a largely redundant space at the top of the screen that will be used to more clearly convey what's going on when I know which bits are most confusing."),
11685    React.createElement("p", null, "It may be beneficial to watch some videos of pocket operators first to get an idea of what this would love to be."),
11686    React.createElement("h2", { id: "how-it-works" }, "How it works"),
11687    React.createElement("p", null,
11688        React.createElement("a", { href: "https://padraig-operator.netlify.app/solo/melody/tutorial" }, "https://padraig-operator.netlify.app/solo/melody/tutorial"),
11689        " will hopefully explain some of it, it's quite buggy right now unfortunately."),
11690    React.createElement("p", null, "As it was primarily designed with phones in mind, I designed everything with two point multitouch in mind. The solutions for desktop involve holding down the first value of a multitouch and then selecting the second after it turns blue."),
11691    React.createElement("p", null, "The order in which buttons is pressed is important, but I'll hopefully resolve this later."),
11692    React.createElement("h3", { id: "buttons" }, "Buttons"),
11693    React.createElement("p", null, "Click actions:"),
11694    React.createElement("ul", null,
11695        React.createElement("li", null, "BPM: toggles the bmp between a series of options"),
11696        React.createElement("li", null, "Menu: Goes to home page"),
11697        React.createElement("li", null, "C: cancel button, unfinished but basically a catch all (I wanna get out of this)"),
11698        React.createElement("li", null, "Speaker: Mute/Unmute"),
11699        React.createElement("li", null, "Record: Enter write mode"),
11700        React.createElement("li", null, "S: Select sound to use"),
11701        React.createElement("li", null, "Play: play pause"),
11702        React.createElement("li", null, "Pattern: select pattern to edit (may require to be held on android for the moment)"),
11703        React.createElement("li", null, "buttons 1-16: varies on mode (select note/duration/pattern/spot/sound/..., default is play note)")),
11704    React.createElement("p", null, "MultiTouch/Hold actions: "),
11705    React.createElement("ul", null,
11706        React.createElement("li", null, "BPM: TBD, will either be be greater control over bpm or swing"),
11707        React.createElement("li", null, "Menu: N/A"),
11708        React.createElement("li", null, "C: varies, along with a pattern it will delete the pattern"),
11709        React.createElement("li", null, "Speaker: Sets volume"),
11710        React.createElement("li", null, "Record: N/A"),
11711        React.createElement("li", null, "S: TBD"),
11712        React.createElement("li", null, "Play: N/A"),
11713        React.createElement("li", null, "Pattern: Pattern chain mode with 1-16 (click again to exit)"),
11714        React.createElement("li", null, "buttons 1-16: copy pattern a to b (pattern select screen), copy spot a to b (write mode)")),
11715    React.createElement("h3", { id: "visuals-explained" }, "Visuals explained"),
11716    React.createElement("p", null, "Most of this has been done primarily with the goal of just leaving the flexibility for clearer visual
11716s later. The green/grey box at the top of the screen will be used to provide whatever data needs to be more clearly conveyed if I ever get around to figuring that out."),
11717    React.createElement("p", null,
11718        React.createElement("em", null, "NOTE: I use hue-rotate to give the different devices different color schemes, so these colors are specifically for /solo/melody")),
11719    React.createElement("h4", { id: "button-backgrounds" }, "Button backgrounds"),
11720    React.createElement("ul", null,
11721        React.createElement("li", null, "BPM: Red middle (active)"),
11722        React.createElement("li", null, "Record: Red middle (in write mode)"),
11723        React.createElement("li", null, "S: Red middle (in sound select mode)"),
11724        React.createElement("li", null, "Play: Red middle (playing pattern chain)"),
11725        React.createElement("li", null, "Pattern: Red middle (in pattern select mode), Blue outline (pattern chain mode, desktop only), ")),
11726    React.createElement("p", null, "Index buttons"),
11727    React.createElement("ul", null,
11728        React.createElement("li", null, "default: Red (note playing)"),
11729        React.createElement("li", null, "Sequence composition: red (active pattern), blue (spot to copy, click another index button to copy this spot)"),
11730        React.createElement("li", null, "Patterns view: red middle (selected pattern), red and flashing (in pattern chain),  blue (pattern to copy, click another index button to copy this spot)")),
11731    React.createElement("h4", { id: "index-button-outlines" }, "Index button outlines"),
11732    React.createElement("p", null, "These serve largely just to keep track of where we're at in the current sequence"),
11733    React.createElement("ul", null,
11734        React.createElement("li", null, "Green: currently playing pattern index"),
11735        React.createElement("li", null, "Red: currently playing step in 16 step loop")),
11736    React.createElement("p", null, "In composition mode when the active pattern is playing the red outlines will all sequentially fill up."),
11737    React.createElement("h3", { id: "views" }, "Views"),
11738    React.createElement("ul", null,
11739        React.createElement("li", null, "default: play notes"),
11740        React.createElement("li", null, "Record button on: write mode, select beats and notes for current 16 step pattern"),
11741        React.createElement("li", null, "S button active: Sound select mode, selects the instrument for the loop and whether you're currently editing melody or the drum beats"),
11742        React.createElement("li", null, "Pattern button active: Selecting a pattern to currently edit, also used to create current chain for playback and to copy patterns")),
11743    React.createElement("h3", { id: "walkthrough" }, "Walkthrough"),
11744    React.createElement("p", null, "Not sure how useful this is, I'll do a video later"),
11745    React.createElement("ol", null,
11746        React.createElement("li", null, "Refresh page"),
11747        React.createElement("li", null, "Click record button, this will open composition view, allowing you to edit the currently active pattern (default is the first pattern)"),
11748        React.createElement("li", null, "Click any index, select a note when prompted, if you hold the note you can select how long it is played for"),
11749        React.createElement("li", null, "Click sound button"),
11750        React.createElement("li", null, "Select the bottom right sound option, this switches to drum mode"),
11751        React.createElement("li", null, "click any index again, select a drum beat"),
11752        React.createElement("li", null, "hit play, you should hear the beat looping (if not click the record button again and hit any note on the initial pad)"),
11753        React.createElement("li", null, "click on patterns"),
11754        React.createElement("li", null, "hold the first pattern, then select a second pattern to copy it"),
11755        React.createElement("li", null, "add another sound to this pattern"),
11756        React.createElement("li", null, "click on patterns again"),
11757        React.createElement("li", null, "hold the patterns button, on desktop wait til it goes blue and then release"),
11758        React.createElement("li", null, "(while still holding patterns on mobile) click the two patterns which you've edited, if on desktop now click the patterns button again")),
11759    React.createElement("p", null, "You should hear a sequence where it plays the two patterns you've created in the sequence you've chained them."),
11760    React.createElement("h2", { id: "weird-technical-stuff" }, "Weird Technical Stuff"),
11761    React.createElement("h3", { id: "ui" }, "UI"),
11762    React.createElement("p", null, "So the vast majority of what happens in this is dealt with via touch and click event on buttons which do specific actions onto the global state on the basis of that button's data attrbute values. As such, a large portion of the knowledge is contained within the HTML."),
11763    React.createElement("p", null, "In a perhaps ill-advised move, the UI is heavily built upon on specific component which handles all actions in the UI. The key actions are:"),
11764    React.createElement("ul", null,
11765        React.createElement("li", null, "click events"),
11766        React.createElement("li", null, "multi-touch events"),
11767        React.createElement("li", null, "touch-events")),
11768    React.createElement("h3", { id: "system-stuff" }, "System stuff"),
11769    React.createElement("p", null, "In terms of system there are two key parts"),
11770    React.createElement("ul", null,
11771        React.createElement("li", null, "the \"Core\": this is basically just your Redux style global store type deal, it processes each action triggered by the UI and passes the updates both back to the UI and out to the audio player"),
11772        React.createElement("li", null, "the \"player\": located in the Systems directory, this is a class object which handles everything related to Tone.js on the basis of what has occurred in the core. Each instance of the core is initialised with a player instance, as a result of this, the player is able to pass in custom actions into the core so the player behaviour can have a greater range of variety.")),
11773    React.createElement("p", null, "The code in this component is currently pretty messy to handle all the edge cases, I'll probably split out specific versions later for readabilities sake. There is a separate context within the Components directory which handles an alternative means for multi touch actions on desktop devices."),
11774    React.createElement("h2", { id: "credits" }, "Credits"),
11775    React.createElement("ul", null,
11776        React.createElement("li", null, "HEAVILY influenced by Teenage Engineering's Pocket Operator series, with major concessions made to fit workflow to a 320px wide screen. These are all amazing and you should buy one (I recommend PO-32 as a starting point, alternatively any of the first 3 are really fun albeit not as powerful)"),
11777        React.createElement("li", null,
11778            "Tone.js ",
11779            React.createElement("a", { href: "https://github.com/Tonejs/Tone.js" }, "https://github.com/Tonejs/Tone.js"),
11780            " for saving me a ton of time and having good documentation and responses to issues over the years")),
11781    React.createElement("h2", null, "Promo stuff"),
11782    React.createElement("ul", null, [
11783        { link: 'github.com/padraigfl', text: 'Github' },
11784        { link: 'github.com/padraigfl/critic-lists', text: 'Source code' },
11785        { link: 'dvd-rom.netlify.app', text: 'DVD Menu Simulator' },
11786        { link: 'packard-belle.netlify.app', text: 'Windows98 Clone' },
11787        { link: 'react-coursebuilder.netlify.app', text: 'Youtube App thing' },
11788        { link: 'critics-list.netlify.app', text: 'End-of-year critics lists aggregator' },
11789        { link: 'github.com/padraigfl/us-bus-data', text: 'Loadsa bus data' },
11790    ].map(function (_a, i) {
11791        var link = _a.link, text = _a.text;
11792        return (React.createElement("li", null,
11793            React.createElement("a", { href: "https://" + link, target: "_blank" }, text)));
11794    }
11794)))); };
11795exports.default = About;
11796
11797
11798/***/ }),
11799/* 60 */
11800/***/ (function(module, exports, __webpack_require__) {
11801
11802"use strict";
11803
11804var __assign = (this && this.__assign) || function () {
11805    __assign = Object.assign || function(t) {
11806        for (var s, i = 1, n = arguments.length; i < n; i++) {
11807            s = arguments[i];
11808            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
11809                t[p] = s[p];
11810        }
11811        return t;
11812    };
11813    return __assign.apply(this, arguments);
11814};
11815Object.defineProperty(exports, "__esModule", { value: true });
11816var React = __webpack_require__(0);
11817var player_1 = __webpack_require__(61);
11818var players_1 = __webpack_require__(75);
11819var context_1 = __webpack_require__(9);
11820var react_router_1 = __webpack_require__(4);
11821var Tutorial_1 = __webpack_require__(80);
11822var SoloPlayerComponent = function (props) {
11823    var _a = react_router_1.useParams(), player = _a.player, variant = _a.variant;
11824    var soundProcessor = player === 'bass' ? players_1.BassPlayer : players_1.MelodyPlayer;
11825    return (React.createElement(context_1.CoreProvider, __assign({ AudioProcessor: soundProcessor }, props),
11826        React.createElement(player_1.default, { colorFilter: soundProcessor.colorFilter }),
11827        // @ts-ignore
11828        variant === 'tutorial' ? React.createElement(Tutorial_1.default, null) : null));
11829};
11830exports.default = SoloPlayerComponent;
11831
11832
11833/***/ }),
11834/* 61 */
11835/***/ (function(module, exports, __webpack_require__) {
11836
11837"use strict";
11838
11839Object.defineProperty(exports, "__esModule", { value: true });
11840var Player_1 = __webpack_require__(62);
11841exports.default = Player_1.default;
11842
11843
11844/***/ }),
11845/* 62 */
11846/***/ (function(module, exports, __webpack_require__) {
11847
11848"use strict";
11849
11850var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
11851    if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
11852    return cooked;
11853};
11854Object.defineProperty(exports, "__esModule", { value: true });
11855exports.maxHeight = exports.rows = exports.columns = void 0;
11856var React = __webpack_require__(0);
11857var Actions_1 = __webpack_require__(63);
11858var Wrapper_1 = __webpack_require__(33);
11859var NotesPad_1 = __webpack_require__(36);
11860var SequencePad_1 = __webpack_require__(67);
11861var DataView_1 = __webpack_require__(70);
11862var SoundsPad_1 = __webpack_require__(71);
11863var StatusPad_1 = __webpack_require__(72);
11864var PatternsPad_1 = __webpack_require__(73);
11865var context_1 = __webpack_require__(9);
11866var _constants_1 = __webpack_require__(1);
11867var DesktopEventsContext_1 = __webpack_require__(35);
11868var styled_components_1 = __webpack_require__(13);
11869exports.columns = 8;
11870exports.rows = 11;
11871exports.maxHeight = (450 / exports.columns) * exports.rows;
11872var gridStyles = styled_components_1.css(templateObject_1 || (templateOb
11872ject_1 = __makeTemplateObject(["\n  display: grid;\n  width: 100%;\n  grid-template-columns: repeat(", ", ", "%);\n  grid-template-rows: repeat(3, ", "vw) auto;\n  touch-action: none;\n  @media only screen and (min-width: ", "px) {\n    grid-template-rows: repeat(3, ", "%) auto;\n  }\n"], ["\n  display: grid;\n  width: 100%;\n  grid-template-columns: repeat(", ", ", "%);\n  grid-template-rows: repeat(3, ", "vw) auto;\n  touch-action: none;\n  @media only screen and (min-width: ", "px) {\n    grid-template-rows: repeat(3, ", "%) auto;\n  }\n"])), exports.columns, 100 / exports.columns, 100 / exports.columns, Wrapper_1.playerWidth, 100 / exports.rows);
11873var PadsRender = function () {
11874    var state = React.useContext(context_1.default).state;
11875    return React.useMemo(function () {
11876        if (state.view === _constants_1.SOUNDS_VIEW) {
11877            return React.createElement(SoundsPad_1.default, null);
11878        }
11879        if (state.view === _constants_1.PATTERN_VIEW) {
11880            return React.createElement(PatternsPad_1.default, null);
11881        }
11882        if (state.view === _constants_1.WRITE || state[_constants_1.WRITE]) {
11883            return React.createElement(SequencePad_1.default, null);
11884        }
11885        return React.createElement(NotesPad_1.default, null);
11886    }, [state.view, state[_constants_1.WRITE]]);
11887};
11888var UI = function (props) {
11889    return (React.createElement(Wrapper_1.default, { extraStyles: gridStyles, colorFilter: [props.colorFilter] },
11890        React.createElement(DataView_1.default, null),
11891        React.createElement(DesktopEventsContext_1.DesktopEventsProvider, null,
11892            React.createElement(StatusPad_1.default, null),
11893            React.createElement(Actions_1.default, null),
11894            React.createElement(PadsRender, null))));
11895};
11896exports.default = UI;
11897var templateObject_1;
11898
11899
11900/***/ }),
11901/* 63 */
11902/***/ (function(module, exports, __webpack_require__) {
11903
11904"use strict";
11905
11906var __assign = (this && this.__assign) || function () {
11907    __assign = Object.assign || function(t) {
11908        for (var s, i = 1, n = arguments.length; i < n; i++) {
11909            s = arguments[i];
11910            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
11911                t[p] = s[p];
11912        }
11913        return t;
11914    };
11915    return __assign.apply(this, arguments);
11916};
11917Object.defineProperty(exports, "__esModule", { value: true });
11918var React = __webpack_require__(0);
11919var context_1 = __webpack_require__(9);
11920var Action_1 = __webpack_require__(64);
11921var _constants_1 = __webpack_require__(1);
11922var actionButtons = [
11923    { id: _constants_1.PATTERN_VIEW, secondaryAction: _constants_1.PATTERN_CHAIN, height: 2, width: 2, display: 'Patterns' },
11924    { id: 'menu', icon: '/static/icons/menu.png' },
11925    { id: _constants_1.CANCEL, display: 'C' },
11926    { id: _constants_1.MUTE, isActive: _constants_1.MUTE, secondaryAction: _constants_1.VOLUME, icon: '/static/icons/mute.png' },
11927    { id: _constants_1.WRITE, isActive: _constants_1.WRITE, icon: '/static/icons/record.png' },
11928    { id: _constants_1.BPM, value: _constants_1.BPM, width: 2 },
11929    { id: _constants_1.SOUNDS_VIEW, value: _constants_1.SOUND, display: 'S' },
11930    { id: _constants_1.PLAY, isActive: _constants_1.PLAY, icon: '/static/icons/play.png' },
11931];
11932var Actions = function () {
11933    var _a = React.useContext(context_1.default), state = _a.state, dispatch = _a.dispatch;
11934    var fireDispatch = React.useCallback(function (e) {
11935        var dataset = e.currentTarget.dataset;
11936        if (dataset.action) {
11937            dispatch({ type: dataset.action });
11938        }
11939    }, []);
11940    return (React.createElement(React.Fragment, null, actionButtons.map(function (action) {
11941        return React.useMemo(function () { return (React.createElement(Action_1.default, __assign({}, action, { key: action.id, onClick: fireDispatch, isActive: state[action.isActive] || state.view === action.id, display: "" + (action.display || action.id) + (state[action.value] || '') }))); }, [state[action.isActive], state.view, state[action.value]]);
11942    })));
11943};
11944exports.default = Actions;
11945
11946
11947/***/ }),
11948/* 64 */
11949/***/ (function(module, exports, __webpack_require__) {
11950
11951"use strict";
11952
11953Object.defineProperty(exports, "__esModule", { value: true });
11954var React = __webpack_require__(0);
11955var abstractCell_1 = __webpack_require__(19);
11956var ActionButton = function (props) {
11957    return (React.createElement(abstractCell_1.default, { onClick: props.onClick, action: props.id, isActive: props.isActive, secondaryAction: props.secondaryAction, buttonId: "action--" + props.id, display: props.display, height: props.height, width: props.width, icon: props.icon }));
11958};
11959exports.default = ActionButton;
11960
11961
11962/***/ }),
11963/* 65 */
11964/***/ (function(module, exports, __webpack_require__) {
11965
11966"use strict";
11967
11968var __assign = (this && this.__assign) || function () {
11969    __assign = Object.assign || function(t) {
11970        for (var s, i = 1, n = arguments.length; i < n; i++) {
11971            s = arguments[i];
11972            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
11973                t[p] = s[p];
11974        }
11975        return t;
11976    };
11977    return __assign.apply(this, arguments);
11978};
11979Object.defineProperty(exports, "__esModule", { value: true });
11980exports.getTouchValues = exports.getButtonData = exports.datasetStringParse = void 0;
11981exports.datasetStringParse = function (dataset) {
11982    if (dataset === void 0) { dataset = {}; }
11983    return (Object.entries(dataset).reduce(function (acc, _a) {
11984        var _b;
11985        var key = _a[0], val = _a[1];
11986        var value;
11987        try {
11988            value = JSON.parse(val);
11989        }
11990        catch (_c) {
11991            if (val !== 'undefined') {
11992                value = val;
11993            }
11994        }
11995        return __assign(__assign({}, acc), (_b = {}, _b[key] = value, _b));
11996    }, {}));
11997};
11998exports.getButtonData = function (target) {
11999    if (target instanceof HTMLButtonElement) {
12000        return exports.datasetStringParse(target.dataset);
12001    }
12002    if (target.parentNode instanceof HTMLElement) {
12003        return exports.getButtonData(target.parentNode);
12004    }
12005    return null;
12006};
12007exports.getTouchValues = function (e) {
12008    var touchArray = [];
12009    for (var i = 0; i < e.touches.length; i++) {
12010        touchArray.push(e.touches[i]);
12011    }
12012    return (touchArray.map(function (_a) {
12013        var target = _a.target;
12014        return (exports.getButtonData(target));
12015    }).filter(function (v) { return !!v; }));
12016};
12017
12018
12019/***/ }),
12020/* 66 */
12021/***/ (function(module, exports, __webpack_require__) {
12022
12023"use strict";
12024
12025var __assign = (this && this.__assign) || function () {
12026    __assign = Object.assign || function(t) {
12027        for (var s, i = 1, n = arguments.length; i < n; i++) {
12028            s = arguments[i];
12029            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
12030                t[p] = s[p];
12031        }
12032        return t;
12033    };
12034    return __assign.apply(this, arguments);
12035};
12036Object.defineProperty(exports, "__esModule", { value: true });
12037var React = __webpack_require__(0);
12038var abstractCell_1 = __webpack_require__(19);
12039var context_1 = __webpack_require__(9);
12040var _constants_1 = __webpack_require__(1);
12041;
12042var NoteButton = function (props) {
12043    var _a = React.useState(false), playing = _a[0], setPlayStatus = _a[1];
12044    var _b = React.useContext(context_1.default), synthAction = _b.synthAction, sounds = _b.sounds, state = _b.state;
12045    var debounce = React.useRef(null);
12046    var noteRef = React.useRef(null);
12047    // needs debouncers
12048    var onDragEnter = React.useCallback(function (e) {
12049        if (e.buttons === 1) {
12050            debounce.current = setTimeout(function () {
12051                noteRef.current.focus();
12052                setPlayStatus(true);
12053                synthAction(props.id, 'attack');
12054                debounce.current = null;
12055            }, 40);
12056        }
12057    }, [synthAction]);
12058    var onDragExit = React.useCallback(function (e) {
12059        if (e.buttons === 1) {
12060            if (debounce.current) {
12061                clearTimeout(debounce.current);
12062                debounce.current = null;
12063            }
12064            console.log(noteRef.current);
12065            noteRef.current.blur();
12066            synthAction(props.id);
12067        }
12068        setPlayStatus(false);
12069    }, [synthAction, setPlayStatus]);
12070    var onMouseUp = React.useCallback(function (e) {
12071        setPlayStatus(false);
12072        noteRef.current.blur();
12073        synthAction(props.id, 'release');
12074    }, [synthAction, setPlayStatus]);
12075    var onMouseDown = React.useCallback(function (e) {
12076        setPlayStatus(true);
12077        synthAction(props.id, 'attack');
12078    }, [synthAction, setPlayStatus]);
12079    var actions = React.useMemo(function () {
12080        return props.onClick
12081            ? {
12082                onClick: props.onClick,
12083                onHold: props.onHold,
12084                onRelease: props.onRelease,
12085            }
12086            : {
12087                onClick: function () {
12088                    if (debounce.current) {
12089                        clearTimeout(debounce.current);
12090                        debounce.current = null;
12091                        synthAction(props.id, 'attack', '8n');
12092                    }
12093                },
12094                onHold: onMouseDown,
12095                onRelease: onMouseUp,
12096                onMouseEnter: onDragEnter,
12097                onMouseLeave: onDragExit,
12098            };
12099    }, [props.onClick]);
12100    return (React.createElement(abstractCell_1.default, __assign({}, actions, { ref: noteRef, isActive: playing, value: props.id, display: (sounds[state[_constants_1.SOUND]].keys
12101            && sounds[state[_constants_1.SOUND]].keys[props.idx]) || props.id, action: props.action, idx: props.idx, noTouch: !props.on
12101Hold })));
12102};
12103exports.default = NoteButton;
12104
12105
12106/***/ }),
12107/* 67 */
12108/***/ (function(module, exports, __webpack_require__) {
12109
12110"use strict";
12111
12112var __assign = (this && this.__assign) || function () {
12113    __assign = Object.assign || function(t) {
12114        for (var s, i = 1, n = arguments.length; i < n; i++) {
12115            s = arguments[i];
12116            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
12117                t[p] = s[p];
12118        }
12119        return t;
12120    };
12121    return __assign.apply(this, arguments);
12122};
12123Object.defineProperty(exports, "__esModule", { value: true });
12124var React = __webpack_require__(0);
12125var Sequencer_1 = __webpack_require__(68);
12126var context_1 = __webpack_require__(9);
12127var abstractPad_1 = __webpack_require__(20);
12128var _constants_1 = __webpack_require__(1);
12129var NotesPad_1 = __webpack_require__(36);
12130var NumberPad_1 = __webpack_require__(69);
12131var _utils_1 = __webpack_require__(15);
12132var getNoteDisplay = function (note, customKeys) {
12133    var disp = customKeys
12134        ? customKeys[note.note]
12135        : note.note;
12136    return "" + disp + (note.span ? "-" + note.span : '');
12137};
12138// Primary composition pad
12139// Writes 16 step sequences to loop
12140var SequencePad = function () {
12141    var holdTimer = React.useRef(null);
12142    var _a = React.useContext(context_1.default), state = _a.state, dispatch = _a.dispatch, sounds = _a.sounds, startNote = _a.startNote;
12143    var _b = React.useState({}), newSequenceValue = _b[0], updateNewValue = _b[1];
12144    var _c = React.useState(null), copyValue = _c[0], setCopyValue = _c[1];
12145    var pattern = React.useMemo(function () {
12146        return state[_constants_1.PATTERNS][state[_constants_1.PATTERN_IDX]];
12147    }, [state[_constants_1.PATTERNS], state[_constants_1.PATTERN_IDX]]);
12148    var patternType = React.useMemo(function () { return state[_constants_1.PATTERN_TYPE]; }, [state[_constants_1.PATTERN_TYPE]]);
12149    var customKeys = React.useMemo(function () {
12150        if (!sounds[state[_constants_1.SOUND]].keys) {
12151            return null;
12152        }
12153        return _utils_1.generateKeys(+startNote[1]).reduce(function (acc, val, idx) {
12154            var _a;
12155            return (__assign(__assign({}, acc), (_a = {}, _a[val.id] = sounds[state[_constants_1.SOUND]].keys[idx], _a)));
12156        }, {});
12157    }, [state[_constants_1.SOUND]]);
12158    React.useEffect(function () {
12159        if (state.lastAction === _constants_1.CANCEL) {
12160            updateNewValue({});
12161            setCopyValue(null);
12162        }
12163    }, [state]);
12164    // clear on cancel ??
12165    var initalPattern = React.useMemo(function () { return (JSON.parse(JSON.stringify(state[_constants_1.PATTERNS][state[_constants_1.PATTERN_IDX]]))); }, [state[_constants_1.PATTERN_IDX]]);
12166    var updateCopyValue = React.useCallback(function (value) {
12167        setCopyValue(value);
12168    }, []);
12169    var updatePattern = React.useCallback(function (_a) {
12170        var idx = _a.idx, note = _a.note, span = _a.span;
12171        dispatch({
12172            type: _constants_1.PATTERN_UPDATE,
12173            value: {
12174                idx: idx, note: note, span: span,
12175            },
12176        });
12177        updateNewValue({});
12178    }, [state[_constants_1.PATTERNS], state[_constants_1.PATTERN_IDX]]);
12179    var onSelectStep = React.useCallback(function (e) {
12180        var idx = +e.currentTarget.dataset.value;
12181        var currentPattern = state[_constants_1.PATTERNS][state[_constants_1.PATTERN_IDX]];
12182        if (copyValue) {
12183            updatePattern(__assign({ idx: idx }, copyValue));
12184        }
12185        else if (currentPattern[patternType][idx]) {
12186            updatePattern({ idx: idx });
12187        }
12188        else {
12189            updateNewValue({ idx: idx });
12190        }
12191    }, [copyValue, state[_constants_1.PATTERNS]]);
12192    var onSimpleSetNote = React.useCallback(function (e) {
12193        console.log(e);
12194        var isBasicDrum = state[_constants_1.PATTERN_TYPE] === 'drums';
12195        if (holdTimer.current || isBasicDrum) {
12196            var value = e.currentTarget.dataset.value;
12197            updatePattern(__assign(__assign({}, newSequenceValue), { note: value, span: !isBasicDrum ? 1 : undefined }));
12198            return;
12199        }
12200        clearTimeout(holdTimer.current);
12201        holdTimer.current = null;
12202    }, [newSequenceValue]);
12203    var onSelectNote = React.useCallback(function (e) {
12204        var value = e.currentTarget.dataset.value;
12205        console.log('a');
12206        holdTimer.current = setTimeout(function () {
12207            console.log('b');
12208            if (state[_constants_1.PATTERN_TYPE] === 'drums') {
12209                updatePattern(__assign(__assign({}, newSequenceValue), { note: value }));
12210            }
12211            else {
12212                updateNewValue(__assign(__assign({}, newSequenceValue), { note: value }));
12213            }
12214            holdTimer.current = null;
12215        }, 300);
12216    }, [newSequenceValue]);
12217    var clearIt = React.useCallback(function () { return clearTimeout(holdTimer.current); }, []);
12218    var onSelectLength = React.useCallback(function (e) {
12219        var value = +e.currentTarget.dataset.value;
12220        updatePattern(__assign(__assign({}, newSequenceValue), { span: value }));
12221    }, [newSequenceValue]);
12222    return (React.useMemo(function () { return state[_constants_1.WRITE] && (React.createElement(React.Fragment, null,
12223        typeof newSequenceValue.idx !== 'number'
12224            && pattern
12225            && pattern[patternType]
12226            && (React.createElement(abstractPad_1.default, null, pattern[patternType].map(function (note, idx) {
12227                return React.createElement(Sequencer_1.default, __assign({}, note, { onClick: onSelectStep, key: idx, highlight: idx === state[_constants_1.PATTERN_IDX], display: note ? getNoteDisplay(note, customKeys) : null, action: _constants_1.PATTERN_UPDATE, secondaryAction: _constants_1.NOTE_COPY }));
12228            }))),
12229        typeof newSequenceValue.idx === 'number' && !newSequenceValue.note && (React.createElement(NotesPad_1.default, { activeChildIdx: newSequenceValue.idx, onClick: onSimpleSetNote, onHold: onSelectNote, onRelease: clearIt, action: 'pattern_entry_note', italic: true, bold: true })),
12230        typeof newSequenceValue.idx === 'number' && newSequenceValue.note && (React.createElement(NumberPad_1.default, { activeChildIdx: newSequenceValue.idx, onClick: onSelectLength, action: 'pattern_entry_length', italic: true, bold: true, displayValue: true })))); }, [newSequenceValue, state[_constants_1.PATTERNS], state[_constants_1.WRITE]]));
12231};
12232exports.default = SequencePad;
12233
12234
12235/***/ }),
12236/* 68 */
12237/***/ (function(module, exports, __webpack_require__) {
12238
12239"use strict";
12240
12241Object.defineProperty(exports, "__esModule", { value: true });
12242var React = __webpack_require__(0);
12243var abstractCell_1 = __webpack_require__(19);
12244// @todo pattern chaining is gonna take work
12245var PatternButton = function (props) {
12246    return (React.createElement(abstractCell_1.default, { onClick: props.onClick, value: props.idx, action: props.action, display: props.display, secondaryAction: props.secondaryAction, isActive: props.isActive, highlight: props.highlight, idx: props.idx }));
12247};
12248exports.default = PatternButton;
12249
12250
12251/***/ }),
12252/* 69 */
12253/***/ (function(module, exports, __webpack_require__) {
12254
12255"use strict";
12256
12257Object.defineProperty(exports, "__esModule", { value: true });
12258var React = __webpack_require__(0);
12259var abstractPad_1 = __webpack_require__(20);
12260var abstractCell_1 = __webpack_require__(19);
12261var NumberPad = function (props) { return (React.createElement(abstractPad_1.default, { bold: props.bold, italic: props.italic, activeChildIdx: props.activeChildIdx }, new Array(16).fill(null).map(function (_, idx) { return (React.createElement(abstractCell_1.default, { key: idx, onClick: props.onClick, onHold: props.onHold, onRelease: props.onRelease, secondaryAction: props.secondaryAction, action: props.action, display: props.displayValue ? (idx + 1).toString() : undefined, isActive: idx === props.activeIdx, highlight: props.getHighlight ? props.getHighlight(idx) : undefined, value: idx })); }))); };
12262exports.default = NumberPad;
12263
12264
12265/***/ }),
12266/* 70 */
12267/***/ (function(module, exports, __webpack_require__) {
12268
12269"use strict";
12270
12271var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
12272    if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
12273    return cooked;
12274};
12275var __rest = (this && this.__rest) || function (s, e) {
12276    var t = {};
12277    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
12278        t[p] = s[p];
12279    if (s != null && typeof Object.getOwnPropertySymbols === "function")
12280        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
12281            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
12282                t[p[i]] = s[p[i]];
12283        }
12284    return t;
12285};
12286var __spreadArrays = (this && this.__spreadArrays) || function () {
12287    for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
12288    for (var r = Array(s), k = 0, i = 0; i < il; i++)
12289        for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
12290            r[k] = a[j];
12291    return r;
12292};
12293Object.defineProperty(exports, "__esModule", { value: true });
12294var React = __webpack_require__(0);
12295var styled_components_1 = __webpack_require__(13);
12296var context_1 = __webpack_require__(9);
12297var _constants_1 = __webpack_require__(1);
12298var border = '1px dotted black';
12299var DataViews = styled_components_1.default('div')(templateObject_1 || (templateOb
12299ject_1 = __makeTemplateObject(["\n  grid-column: 3/7;\n  grid-row: 1/4;\n  background-color: #aabbaa;\n  font-family: monospace;\n  user-select: none;\n  pointer-event: none;\n  display: grid;\n  grid-template-rows: repeat(6, ", "%);\n  grid-template-columns: repeat(8, 12.5%); \n  align-items: center;\n\n  padding: 2px;\n"], ["\n  grid-column: 3/7;\n  grid-row: 1/4;\n  background-color: #aabbaa;\n  font-family: monospace;\n  user-select: none;\n  pointer-event: none;\n  display: grid;\n  grid-template-rows: repeat(6, ", "%);\n  grid-template-columns: repeat(8, 12.5%); \n  align-items: center;\n\n  padding: 2px;\n"])), 100 / 6);
12300var PatternData = styled_components_1.default('div')(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n  grid-row: 2/5;\n  padding: 2px;\n  text-align: center;\n  align-self: start;\n  height: 100%;\n  outline: ", ";\n  overflow: hidden;\n"], ["\n  grid-row: 2/5;\n  padding: 2px;\n  text-align: center;\n  align-self: start;\n  height: 100%;\n  outline: ", ";\n  overflow: hidden;\n"])), border);
12301var GridCell = styled_components_1.default('div')(templateObject_3 || (templateOb
12301ject_3 = __makeTemplateObject(["\n  text-align: center;\n\n  ", "\n  ", "\n  &::after {\n    content: attr(data-display);\n  }\n  ", "\n  ", "\n"], ["\n  text-align: center;\n\n  ",
12302    "\n  ",
12303    "\n  &::after {\n    content: attr(data-display);\n  }\n  ", "\n  ", "\n"])), function (_a) {
12304    var column = _a.column, _b = _a.width, width = _b === void 0 ? 1 : _b;
12305    return typeof column !== 'undefined'
12306        ? "grid-column: " + column + "/" + (column + width) + ";"
12307        : '';
12308}, function (_a) {
12309    var row = _a.row, _b = _a.height, height = _b === void 0 ? 1 : _b;
12310    return typeof row !== 'undefined'
12311        ? "grid-row: " + row + "/" + (row + height) + ";"
12312        : '';
12313}, function (_a) {
12314    var borderRight = _a.borderRight;
12315    return borderRight ? 'border-right: 1px dotted black;' : '';
12316}, function (_a) {
12317    var align = _a.align;
12318    return align ? "align-self: " + align + ";" : '';
12319});
12320var IOSAlert = styled_components_1.default('div')(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n  grid-column: 2/9;\n  text-align: right;\n  align-self: start;\n  &::after {\n    ", "\n  }\n"], ["\n  grid-column: 2/9;\n  text-align: right;\n  align-self: start;\n  &::after {\n    ",
12321    "\n  }\n"])), function (_a) {
12322    var lastAction = _a.lastAction;
12323    if (!lastAction) {
12324        return 'content: \'Press unmute to begin\';';
12325    }
12326    if (/iPhone|iPod|iPad/.test(navigator.platform)) {
12327        return 'content: \'iOS needs silent off\';';
12328    }
12329    return '';
12330});
12331var getView = function (state) {
12332    if (state.view) {
12333        return state.view;
12334    }
12335    if (state[_constants_1.WRITE]) {
12336        return 'compose';
12337    }
12338    return 'soundcheck';
12339};
12340var LogView = styled_components_1.default('ul')(templateObject_5 || (templateOb
12340ject_5 = __makeTemplateObject(["\n  grid-row: 2/6;\n  grid-column: 2/9;\n  border: 1px dotted black;\n  padding-left: 20px;\n  margin: 5px;\n  line-height: 10px;\n  height: 100%;\n"], ["\n  grid-row: 2/6;\n  grid-column: 2/9;\n  border: 1px dotted black;\n  padding-left: 20px;\n  margin: 5px;\n  line-height: 10px;\n  height: 100%;\n"])));
12341var actionListLimit = 7;
12342var DataView = function (props) {
12343    var state = React.useContext(context_1.default).state;
12344    var _a = React.useState([]), log = _a[0], setLog = _a[1];
12345    React.useEffect(function () {
12346        if (props.viewLog) {
12347            return;
12348        }
12349        if (!state.lastAction) {
12350            return;
12351        }
12352        if (log.length < actionListLimit) {
12353            setLog(__spreadArrays(log, [state.lastAction]));
12354            return;
12355        }
12356        setLog(__spreadArrays(log.slice(log.length - actionListLimit + 1), [state.lastAction]));
12357    }, [state.lastAction]);
12358    var sound = state.sound, rest = __rest(state, ["sound"]);
12359    return (React.createElement(DataViews, null,
12360        React.createElement(GridCell, { "data-display": state[_constants_1.PATTERN_IDX].toString().padStart(2, '0') }),
12361        React.createElement(PatternData, null,
12362            state[_constants_1.PATTERN_CHAIN].map(function (v) { return v.toString().padStart(2, '0'); }).join(' '),
12363            ' ^^'),
12364        React.createElement(GridCell, { row: 6, column: 1, "data-display": state[_constants_1.BPM].toString().padStart(3, '0') }),
12365        React.createElement(GridCell, { row: 5, column: 1, "data-display": 'S00', align: "end" }),
12366        !props.viewLog && log.length ? (React.createElement(LogView, null, log.map(function (v, idx) { return React.createElement("li", { key: v + idx + 'log' }, v); }))) : null,
12367        React.createElement(GridCell, { row: 6, column: 2, width: 6, "data-display": getView(state) }),
12368        React.createElement(GridCell, { row: 5, column: 8, "data-display": ("" + Math.floor(state[_constants_1.VOLUME] + 8)).padStart(2, '0') }),
12369        React.createElement(GridCell, { row: 6, column: 8, "data-display": state[_constants_1.SOUND].toString().padStart(2, '0') }),
12370        React.createElement(IOSAlert, { lastAction: state.lastAction })));
12371};
12372exports.default = DataView;
12373var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5;
12374
12375
12376/***/ }),
12377/* 71 */
12378/***/ (function(module, exports, __webpack_require__) {
12379
12380"use strict";
12381
12382Object.defineProperty(exports, "__esModule", { value: true });
12383var React = __webpack_require__(0);
12384var abstractPad_1 = __webpack_require__(20);
12385var _constants_1 = __webpack_require__(1);
12386var context_1 = __webpack_require__(9);
12387var abstractCell_1 = __webpack_require__(19);
12388// Selects the sound to work with live
12389var SoundsPad = function () {
12390    var _a = React.useContext(context_1.default), sounds = _a.sounds, state = _a.state, dispatch = _a.dispatch;
12391    var fireDispatch = React.useCallback(function (e) {
12392        var idx = +e.currentTarget.dataset.idx;
12393        dispatch({ type: _constants_1.SOUNDS_SET, value: idx });
12394    }, []);
12395    return state.view === _constants_1.SOUNDS_VIEW && (React.createElement(abstractPad_1.default, null, React.useMemo(function () { return (sounds.map(function (sound, idx) { return (React.createElement(abstractCell_1.default, { key: sound.id + sound.name, onClick: fireDispatch, action: _constants_1.SOUNDS_SET, highlight: state[_constants_1.SOUND] === idx, display: sound.name })); })); }, [state[_constants_1.SOUND], sounds])));
12396};
12397exports.default = SoundsPad;
12398
12399
12400/***/ }),
12401/* 72 */
12402/***/ (function(module, exports, __webpack_require__) {
12403
12404"use strict";
12405
12406var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
12407    if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
12408    return cooked;
12409};
12410Object.defineProperty(exports, "__esModule", { value: true });
12411var React = __webpack_require__(0);
12412var abstractPad_1 = __webpack_require__(20);
12413var styled_components_1 = __webpack_require__(13);
12414var cells = new Array(16).fill(null);
12415var green = '#00FF00';
12416var greenLow = '#008800';
12417var red = '#FF0000';
12418var redLow = '#880000';
12419var multiOutline = function (outlines) {
12420    var i = 0;
12421    var multi = outlines.map(function (_a) {
12422        var _b = _a.o, o = _b === void 0 ? 0 : _b, _c = _a.b, b = _c === void 0 ? 0 : _c, _d = _a.c, c = _d === void 0 ? green : _d;
12423        var edge = i + o;
12424        var val = "0px 0px 0px " + (i + 1) + "px #222, 0px 0px " + b + "px " + edge + "px " + c;
12425        i = edge;
12426        return val;
12427    });
12428    return multi.join(', ');
12429};
12430var StatusCell = styled_components_1.default('div')(templateObject_1 || (templateOb
12430ject_1 = __makeTemplateObject(["\n  box-shadow: ", ";\n  pointer-events: none;\n  background-color: rgba(255, 255, 255, 0.7);\n  transition: all ease-out 200ms;\n  &.red, &.green {\n    transition: none;\n  }\n  &.green {\n    box-shadow: ", ";\n  }\n  &.red {\n    box-shadow: ", ";\n  }\n  &.red.green {\n    box-shadow: ", ";\n  }\n  &.live {\n    background-color: white;\n  }\n  &.bgRed {\n    background-color: red;\n    transition: none;\n  }\n"], ["\n  box-shadow: ", ";\n  pointer-events: none;\n  background-color: rgba(255, 255, 255, 0.7);\n  transition: all ease-out 200ms;\n  &.red, &.green {\n    transition: none;\n  }\n  &.green {\n    box-shadow: ", ";\n  }\n  &.red {\n    box-shadow: ", ";\n  }\n  &.red.green {\n    box-shadow: ", ";\n  }\n  &.live {\n    background-color: white;\n  }\n  &.bgRed {\n    background-color: red;\n    transition: none;\n  }\n"])), multiOutline([{ o: 3, c: greenLow }, { o: 3, c: redLow }]), multiOutline([{ o: 4, c: green }, { o: 2, c: redLow }]), multiOutline([{ o: 3, c: greenLow }, { o: 4, c: red }]), multiOutline([{ o: 4, c: green }, { o: 3, c: red }]));
12431var StatusPad = function () {
12432    return (React.createElement(abstractPad_1.default, { entries: 16, id: "Pad--status-pad" }, cells.map(function (_, idx) { return React.createElement(StatusCell, { className: "cell", id: "live-status--" + idx, key: idx }); })));
12433};
12434exports.default = StatusPad;
12435var templateObject_1;
12436
12437
12438/***/ }),
12439/* 73 */
12440/***/ (function(module, exports, __webpack_require__) {
12441
12442"use strict";
12443
12444Object.defineProperty(exports, "__esModule", { value: true });
12445var React = __webpack_require__(0);
12446var context_1 = __webpack_require__(9);
12447var _constants_1 = __webpack_require__(1);
12448var abstractPad_1 = __webpack_require__(20);
12449var PatternCell_1 = __webpack_require__(74);
12450// Pad for selecting patterns
12451// Depending on state this controls which pattern you wish to edit or how to chain them
12452var PatternsPad = function () {
12453    var _a = React.useContext(context_1.default), dispatch = _a.dispatch, state = _a.state;
12454    var onClick = React.useCallback(function (e) {
12455        var clickValue = +e.currentTarget.dataset.value;
12456        dispatch({
12457            type: _constants_1.PATTERN_SET,
12458            value: clickValue,
12459        });
12460    }, [state]);
12461    return state.view === _constants_1.PATTERN_VIEW && (React.createElement(abstractPad_1.default, null, state[_constants_1.PATTERNS].map(function (v, idx) { return (React.useMemo(function () { return (React.createElement(PatternCell_1.default, { key: idx, pattern: v, onClick: onClick, secondaryAction: _constants_1.PATTERN_COPY, action: _constants_1.PATTERN_SET, isActive: state[_
12461constants_1.PATTERN_IDX] === idx, value: idx, idx: idx })); }, [state[_constants_1.PATTERNS][idx], state[_constants_1.PATTERN_IDX], state[_constants_1.PATTERN_CHAIN]])); })));
12462};
12463exports.default = PatternsPad;
12464
12465
12466/***/ }),
12467/* 74 */
12468/***/ (function(module, exports, __webpack_require__) {
12469
12470"use strict";
12471
12472var __assign = (this && this.__assign) || function () {
12473    __assign = Object.assign || function(t) {
12474        for (var s, i = 1, n = arguments.length; i < n; i++) {
12475            s = arguments[i];
12476            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
12477                t[p] = s[p];
12478        }
12479        return t;
12480    };
12481    return __assign.apply(this, arguments);
12482};
12483var __rest = (this && this.__rest) || function (s, e) {
12484    var t = {};
12485    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
12486        t[p] = s[p];
12487    if (s != null && typeof Object.getOwnPropertySymbols === "function")
12488        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
12489            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
12490                t[p[i]] = s[p[i]];
12491        }
12492    return t;
12493};
12494Object.defineProperty(exports, "__esModule", { value: true });
12495var React = __webpack_require__(0);
12496var abstractCell_1 = __webpack_require__(19);
12497var getDisplay = function (pattern) {
12498    var noteCount = pattern.spots.filter(function (v) { return v; }).length;
12499    var beatCount = pattern.drums.filter(function (v) { return v; }).length;
12500    if (!noteCount && !beatCount) {
12501        return;
12502    }
12503    return pattern.spots.map(function (v, idx) {
12504        return "" + (v ? v.note : '__') + (pattern.drums[idx] ? 'X' : '_') + (idx !== 15 && idx % 4 === 3 ? ' ' : '');
12505    }).join('');
12506};
12507var PatternCell = function (_a) {
12508    var pattern = _a.pattern, props = __rest(_a, ["pattern"]);
12509    return (React.createElement(abstractCell_1.default, __assign({}, props, { display: getDisplay(pattern) || undefined, isDataDisplay: true })));
12510};
12511exports.default = PatternCell;
12512
12513
12514/***/ }),
12515/* 75 */
12516/***/ (function(module, exports, __webpack_require__) {
12517
12518"use strict";
12519
12520Object.defineProperty(exports, "__esModule", { value: true });
12521var player_1 = __webpack_require__(76);
12522Object.defineProperty(exports, "BassPlayer", { enumerable: true, get: function () { return player_1.default; } });
12523var player_2 = __webpack_require__(37);
12524Object.defineProperty(exports, "MelodyPlayer", { enumerable: true, get: function () { return player_2.default; } });
12525
12526
12527/***/ }),
12528/* 76 */
12529/***/ (function(module, exports, __webpack_require__) {
12530
12531"use strict";
12532
12533var __extends = (this && this.__extends) || (function () {
12534    var extendStatics = function (d, b) {
12535        extendStatics = Object.setPrototypeOf ||
12536            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
12537            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
12538        return extendStatics(d, b);
12539    };
12540    return function (d, b) {
12541        extendStatics(d, b);
12542        function __() { this.constructor = d; }
12543        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
12544    };
12545})();
12546var __assign = (this && this.__assign) || function () {
12547    __assign = Object.assign || function(t) {
12548        for (var s, i = 1, n = arguments.length; i < n; i++) {
12549            s = arguments[i];
12550            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
12551                t[p] = s[p];
12552        }
12553        return t;
12554    };
12555    return __assign.apply(this, arguments);
12556};
12557var __spreadArrays = (this && this.__spreadArrays) || function () {
12558    for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
12559    for (var r = Array(s), k = 0, i = 0; i < il; i++)
12560        for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
12561            r[k] = a[j];
12562    return r;
12563};
12564Object.defineProperty(exports, "__esModule", { value: true });
12565var player_1 = __webpack_require__(37);
12566var sources_1 = __webpack_require__(79);
12567var _utils_1 = __webpack_require__(15);
12568var _sources_1 = __webpack_require__(39);
12569var LazyBass = /** @class */ (function (_super) {
12570    __extends(LazyBass, _super);
12571    function LazyBass(initalValues) {
12572        var _this = _super.call(this, initalValues, LazyBass) || this;
12573        _this.getNewPlaysound = function (idx) {
12574            var newPlaySound = idx < 15
12575                ? _utils_1.generateInstrument(sources_1.bassSoundSources[idx])
12576                : _sources_1.generateDrumMachine(LazyBass.startNote, idx);
12577            newPlaySound.tone.toMaster();
12578            return newPlaySound;
12579        };
12580        return _this;
12581    }
12582    LazyBass.colorFilter = 'hue-rotate(90deg) saturate(5)';
12583    LazyBass.startNote = 'c1';
12584    LazyBass.sources = sources_1.bassSoundSources;
12585    LazyBass.sounds = __spreadArrays(LazyBass.sources.map(function (v, idx) { return (__assign(__assign({}, _utils_1.generateInstrument(v)), { id: idx })); }), [
12586        _sources_1.generateDrumMachine(LazyBass.startNote, LazyBass.sources.length),
12587    ]);
12588    return LazyBass;
12589}(player_1.default));
12590exports.default = LazyBass;
12591
12592
12593/***/ }),
12594/* 77 */
12595/***/ (function(module, __webpack_exports__, __webpack_require__) {
12596
12597"use strict";
12598__webpack_require__.r(__webpack_exports__);
12599/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DrumMachine", function() { return DrumMachine; });
12600/* harmony import */ var tone__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(16);
12601/* harmony import */ var tone__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(tone__WEBPACK_IMPORTED_MODULE_0__);
12602/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(15);
12603/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_utils__WEBPACK_IMPORTED_MODULE_1__);
12604function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
12605
12606function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
12607
12608function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
12609
12610function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
12611
12612function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
12613
12614function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
12615
12616function _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
12617
12618function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
12619
12620function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
12621
12622function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
12623
12624function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
12625
12626function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
12627
12628
12629
12630var DrumMachine =
12631/*#__PURE__*/
12632function (_Tone$Players) {
12633  _inherits(DrumMachine, _Tone$Players);
12634
12635  var _super = _createSuper(DrumMachine);
12636
12637  function DrumMachine(_ref) {
12638    var _this;
12639
12640    var sources = _ref.sources,
12641        baseUrl = _ref.baseUrl,
12642        _ref$startNote = _ref.startNote,
12643        startNote = _ref$startNote === void 0 ? 'c3' : _ref$startNote,
12644        _ref$baseVolume = _ref.baseVolume,
12645        baseVolume = _ref$baseVolume === void 0 ? 0 : _ref$baseVolume;
12646
12647    _classCallCheck(this, DrumMachine);
12648
12649    var beatArray = [];
12650    var customKeys = [];
12651    sources.forEach(function (_ref2) {
12652      var name = _ref2.name,
12653          src = _ref2.src;
12654      beatArray.push("".concat(baseUrl).concat(src));
12655      customKeys.push(name);
12656    });
12657    _this = _super.call(this, beatArray);
12658
12659    _defineProperty(_assertThisInitialized(_this), "playing", []);
12660
12661    _defineProperty(_assertThisInitialized(_this), "overlap", false);
12662
12663    _defineProperty(_assertThisInitialized(_this), "keyMap", {});
12664
12665    _defineProperty(_assertThisInitialized(_this), "baseVolume", 0);
12666
12667    _defineProperty(_assertThisInitialized(_this), "name", 'basicDrum');
12668
12669    _this.baseVolume = baseVolume;
12670    Object(_utils__WEBPACK_IMPORTED_MODULE_1__["generateKeys"])(+startNote[1]).forEach(function (key, idx) {
12671      _this.keyMap[key.id] = {
12672        player: _this.get(idx),
12673        data: sources[idx]
12674      };
12675    });
12676
12677    if (customKeys.filter(function (v) {
12678      return !!v;
12679    }).length) {
12680      _this.customKeys = customKeys;
12681    }
12682
12683    return _this;
12684  }
12685
12686  _createClass(DrumMachine, [{
12687    key: "triggerAttackRelease",
12688    value: function triggerAttackRelease(note) {
12689      var _this$keyMap$note = this.keyMap[note],
12690          data = _this$keyMap$note.data,
12691          player = _this$keyMap$note.player;
12692      this.setVolume(data);
12693      player.start();
12694    }
12695  }, {
12696    key: "triggerAttack",
12697    value: function triggerAttack(note) {
12698      this.triggerAttackRelease(note);
12699    }
12700  }, {
12701    key: "triggerRelease",
12702    value: function triggerRelease(note) {// this.keyMap[note].stop();
12703    }
12704  }, {
12705    key: "setVolume",
12706    value: function setVolume(data) {
12707      if (data && data.volume && data.volume !== this.volume.value) {
12708        this.volume.value = data.volume;
12709        return;
12710      }
12711
12712      if (typeof data.volume === 'undefined' && this.volume.value !== this.baseVolume) {
12713        this.volume.value = this.baseVolume;
12714      }
12715    }
12716  }]);
12717
12718  return DrumMachine;
12719}(tone__WEBPACK_IMPORTED_MODULE_0___default.a.Players);
12720/* harmony default export */ __webpack_exports__["default"] = (DrumMachine);
12721
12722/***/ }),
12723/* 78 */
12724/***/ (function(module, exports, __webpack_require__) {
12725
12726"use strict";
12727
12728var __spreadArrays = (this && this.__spreadArrays) || function () {
12729    for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
12730    for (var r = Array(s), k = 0, i = 0; i < il; i++)
12731        for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
12732            r[k] = a[j];
12733    return r;
12734};
12735Object.defineProperty(exports, "__esModule", { value: true });
12736var Tone = __webpack_require__(16);
12737var _utils_1 = __webpack_require__(15);
12738var _constants_1 = __webpack_require__(1);
12739window.Tone = Tone;
12740var AbstractSoundProcessor = /** @class */ (function () {
12741    function AbstractSoundProcessor(initialValues, staticValues) {
12742        var _this = this;
12743        this.currentIdx = 0;
12744        this.currentChain = [];
12745        this.isPlaying = false;
12746        this.updateLights = function (idx, color, clearLights) {
12747            if (color === void 0) { color = 'red'; }
12748            if (clearLights === void 0) { clearLights = true; }
12749            var next = document.getElementById("live-status--" + idx % 16);
12750            if (clearLights) {
12751                _this.clearLights(color);
12752            }
12753            next.classList.add(color);
12754        };
12755        this.clearLights = function (color) {
12756            if (color === void 0) { color = 'red'; }
12757            document.querySelectorAll("[id^=live-status--]." + color).forEach(function (v) { return v.classList.remove(color); });
12758        };
12759        this.clearAllLights = function () {
12760            _this.clearLights('red');
12761            _this.clearLights('green');
12762            _this.stopPatternFlashing();
12763        };
12764        this.updateIndex = function (newIndex) {
12765            _this.currentIdx = newIndex;
12766            if (_this.currentIdx % 16 === 0) {
12767                var hasUpdatedChain = _this.lastState[_constants_1.PATTERN_CHAIN] !== _this.currentChain;
12768                var chainLengthChanged = hasUpdatedChain
12769                    && _this.lastState[_constants_1.PATTERN_CHAIN].length !== _this.currentChain.length;
12770                if (hasUpdatedChain) {
12771                    _this.currentChain = _this.lastState[_constants_1.PATTERN_CHAIN];
12772                }
12773                if (chainLengthChanged) {
12774                    _this.currentIdx = 0;
12775                }
12776            }
12777        };
12778        this.loopBuilder = function () {
12779            var timeStamp = 0;
12780            var timesArr = [];
12781            return new Tone.Loop(function (time) {
12782                var derivedIndex = _this.currentIdx % (_this.currentChain.length * 16);
12783                var patternIdx = _this.currentChain[Math.floor(derivedIndex / 16)];
12784                var noteIdx = _this.currentIdx % 16;
12785                timeStamp = time - timeStamp;
12786                timesArr = __spreadArrays(timesArr, [timeStamp]);
12787                _this.currentIdx += 1;
12788                _this.updateLights(noteIdx, 'red', _this.lastState[_constants_1.PATTERN_IDX] === patternIdx && _this.lastState[_constants_1.WRITE]
12789                    ? (noteIdx % 16 === 0)
12790                    : undefined);
12791                if (noteIdx === 0) {
12792                    _this.updateLights(patternIdx, 'green');
12793                }
12794                _this.loopAction(patternIdx, noteIdx);
12795                if (_this.players) {
12796                    _this.players.forEach(function (player) {
12797                        player.loopNestAction(_this.currentIdx, _this.currentChain.length);
12798                    });
12799                }
12800                _this.updateIndex(_this.currentIdx);
12801            }, '16n');
12802        };
12803        this.static = staticValues;
12804        this.playerSounds = this.static.sounds;
12805        this.sources = this.static.sources;
12806        this.patterns = initialValues[_constants_1.PATTERNS];
12807        this.sound = _utils_1.generateInstrument(this.sources[0]),
12808            this.playerSounds[0].tone.toMaster();
12809        this.sound.tone.toMaster();
12810        Tone.Master.mute = true;
12811        this.loop = this.loopBuilder();
12812    }
12813    AbstractSoundProcessor.prototype.reducer = function (action, state) {
12814        throw new Error('Classes should define a reducer');
12815    };
12816    AbstractSoundProcessor.prototype.receivedUpdates = function (updateObject) {
12817        // checks for updates in object and applies them
12818        throw new Error("This will apply updates from a parent reducer");
12819    };
12820    AbstractSoundProcessor.prototype.updateMute = function () {
12821        if (this.lastState[_constants_1.MUTE] !== Tone.Master.mute) {
12822            Tone.Master.mute = this.lastState[_constants_1.MUTE];
12823            if (!this.lastState[_constants_1.MUTE] && Tone.Transport.state !== 'started') {
12824                Tone.Transport.start();
12825            }
12826        }
12827    };
12828    AbstractSoundProcessor.prototype.patternFlashing = function () {
12829        var _this = this;
12830        var idx = 0;
12831        this.patternInterval = setInterval(function () {
12832            var duration = _this.lastState[_constants_1.PATTERN_CHAIN].length + 1;
12833            var entry = idx % 2 === 0
12834                ? _this.lastState[_constants_1.PATTERN_CHAIN][(idx / 2) % duration]
12835                : undefined;
12836            if (typeof entry !== 'undefined') {
12837                _this.updateLights(entry, 'bgRed');
12838            }
12839            else {
12840                _this.clearLights('bgRed');
12841            }
12842            idx++;
12843        }, 100);
12844    };
12845    AbstractSoundProcessor.prototype.stopPatternFlashing = function () {
12846        if (this.patternInterval) {
12847            clearInterval(this.patternInterval);
12848            this.patternInterval = null;
12849            this.clearLights('bgRed');
12850        }
12851    };
12852    AbstractSoundProcessor.prototype.getNewPlaysound = function (idx) {
12853        throw new Error("Please implement action in child");
12854    };
12855    // means of sequencing multiple players on the one loop... probably gonna be a nightmare
12856    AbstractSoundProcessor.prototype.loopNestAction = function (parentIdx, parentChain) {
12857        // TODO
12858        // calulate the bits and pieces to have the sequences pair consistently
12859        // return this.loopAction(calculatedPattern, calculatedNote);
12860    };
12861    AbstractSoundProcessor.prototype.loopAction = function (currentIdx, noteIdx) {
12862        throw new Error("Please implement action is child");
12863    };
12864    AbstractSoundProcessor.prototype.unmount = function () {
12865        if (this && this.loop) {
12866            this.loop.stop();
12867            this.clearAllLights();
12868        }
12869    };
12870    return AbstractSoundProcessor;
12871}());
12872exports.default = AbstractSoundProcessor;
12873
12874
12875/***/ }),
12876/* 79 */
12877/***/ (function(module, exports, __webpack_require__) {
12878
12879"use strict";
12880
12881var __assign = (this && this.__assign) || function () {
12882    __assign = Object.assign || function(t) {
12883        for (var s, i = 1, n = arguments.length; i < n; i++) {
12884            s = arguments[i];
12885            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
12886                t[p] = s[p];
12887        }
12888        return t;
12889    };
12890    return __assign.apply(this, arguments);
12891};
12892var __spreadArrays = (this && this.__spreadArrays) || function () {
12893    for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
12894    for (var r = Array(s), k = 0, i = 0; i < il; i++)
12895        for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
12896            r[k] = a[j];
12897    return r;
12898};
12899Object.defineProperty(exports, "__esModule", { value: true });
12900exports.bassSoundSources = void 0;
12901var Tone = __webpack_require__(16);
12902var sources_1 = __webpack_require__(38);
12903exports.bassSoundSources = sources_1.melodySoundSources.map(function (v) {
12904    if (v.instrument === Tone.Sampler) {
12905        return __assign(__assign({}, v), { toneParams: [v.toneParams[0], __assign(__assign({}, v.toneParams[1]), { volume: 15 })] });
12906    }
12907    return __assign(__assign({}, v), { toneParams: Array.isArray(v.toneParams) && v.toneParams.length
12908            ? __spreadArrays([__assign(__assign({}, v.toneParams[0]), { volume: 15 })], v.toneParams.slice(1)) : [{ volume: 15 }] });
12909});
12910
12911
12912/***/ }),
12913/* 80 */
12914/***/ (function(module, exports, __webpack_require__) {
12915
12916"use strict";
12917
12918var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
12919    if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
12920    return cooked;
12921};
12922Object.defineProperty(exports, "__esModule", { value: true });
12923var React = __webpack_require__(0);
12924var react_joyride_1 = __webpack_require__(81);
12925var context_1 = __webpack_require__(9);
12926var _constants_1 = __webpack_require__(1);
12927var styled_components_1 = __webpack_require__(13);
12928var Shell = styled_components_1.default('div')(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n  position: fixed;\n  top: 0px; \n  width: 100%;\n  height: 100%;\n"], ["\n  position: fixed;\n  top: 0px; \n  width: 100%;\n  height: 100%;\n"])));
12929var timeout = 0;
12930var getSteps = function (dispatch, sounds, setOverlay) { return [{
12931        disableBeacon: true,
12932        target: "#action--" + _constants_1.MUTE,
12933        content: (React.createElement(React.Fragment, null,
12934            React.createElement("p", null, "Due to browser restrictions, the audio button is in the active state by default (meaning muted), please unmute."),
12935            React.createElement("p", null, "If you are on iOS you may need to turn off silent on your phone too."))),
12936        callback: function () { return dispatch({ type: _constants_1.MUTE }); },
12937        undo: function () { return dispatch({ type: _constants_1.MUTE }); },
12938    }, {
12939        target: '#live-status--0',
12940        content: (React.createElement(React.Fragment, null,
12941            React.createElement("p", null, "Click a note to test audio"))),
12942        callback: function () {
12943            sounds[0].tone.triggerAttack('c3');
12944        },
12945        undo: function () { return sounds[0].tone.triggerRelease(); },
12946    }, {
12947        target: '#live-status--0',
12948        content: (React.createElement(React.Fragment, null,
12949            React.createElement("p", null, "A sample sound should be playing, click next to stop"))),
12950        callback: function () {
12951            sounds[0].tone.triggerRelease();
12952        },
12953        undo: function () { return sounds[0].tone.triggerAttack('c3'); },
12954    }, {
12955        target: ".Pad",
12956        content: (React.createElement(React.Fragment, null,
12957            React.createElement("p", null, "This 16 grid pad covers a range of functions depending on the current view and settings."),
12958            React.createElement("p", null, " From left to right, top to bottom each button represents an incrementing value for the relevant field (in this case notes to play)"))),
12959        callback: function () {
12960            dispatch({ type: _constants_1.SOUNDS_VIEW });
12961        },
12962        undo: function () { return dispatch({ type: _constants_1.CANCEL }); },
12963    }, {
12964        target: "#action--" + _constants_1.SOUNDS_VIEW,
12965        content: (React.createElement(React.Fragment, null,
12966            React.createElement("p", null, "Switches to instrument selection view, here you select the current sound you are playing with live and editing sequences for."),
12967            React.createElement("p", null, " Select an instrument to exit."))),
12968    }, {
12969        target: '.Pad',
12970        content: (React.createElement(React.Fragment, null,
12971            React.createElement("p", null, "Here you select the instrument you want to work with, w/e of the last instrument (for basic drum beats), you can only have one active instrument at a time in the current system."),
12972            React.createElement("p", null, " When you change instrument the sound in the sequence will update to use the new instrument"))),
12973        callback: function (a, b) {
12974            console.log(a, b);
12975            dispatch({ type: _constants_1.PATTERN_VIEW });
12976        },
12977        undo: function () { return dispatch({ type: _constants_1.SOUNDS_VIEW }); },
12978    }, {
12979        target: "#action--" + _constants_1.PATTERN_VIEW,
12980        content: (React.createElement(React.Fragment, null,
12981            React.createElement("p", null, "Switches to pattern view"))),
12982    }, {
12983        target: '.Pad',
12984        content: (React.createElement(React.Fragment, null,
12985            React.createElement("p", null, "from here you select the current pattern to edit and the chain of patterns to play."),
12986            React.createElement("p", null, " The existing pattern chain will flash sequentially in order in this view."))),
12987        callback: function () {
12988            dispatch({ type: _constants_1.PATTERN_VIEW });
12989            dispatch({ type: _constants_1.WRITE });
12990        },
12991        undo: function () { dispatch({ type: _constants_1.PATTERN_VIEW }); dispatch({ type: _constants_1.WRITE }); },
12992    }, {
12993        target: "#action--" + _constants_1.WRITE,
12994        content: (React.createElement(React.Fragment, null,
12995            React.createElement("p", null, "When this is on, the default view allows editing of the currently active pattern sequence"))),
12996        callback: function () {
12997            dispatch({ type: _constants_1.WRITE });
12998            dispatch({ type: _constants_1.PLAY });
12999        },
13000        undo: function () {
13001            dispatch({ type: _constants_1.PLAY });
13002            dispatch({ type: _constants_1.WRITE });
13003        },
13004    }, {
13005        target: "#action--" + _constants_1.PLAY,
13006        content: (React.createElement(React.Fragment, null,
13007            React.createElement("p", null, "Toggles whether the active sequence is playing or not, updates you do to patterns should apply live."),
13008            React.createElement("p", null, "The green light represents the current pattern and the red one represents the index within that pattern."))),
13009        callback: function () {
13010            var i = 0;
13011            timeout = setInterval(function () {
13012                dispatch({ type: _constants_1.BPM });
13013                i++;
13014                if (i > 5) {
13015                    clearInterval(timeout);
13016                    timeout = null;
13017                }
13018            }, 3000);
13019        },
13020        undo: function () {
13021            clearInterval(timeout);
13022        }
13023    }, {
13024        target: "#action--" + _constants_1.BPM,
13025        content: (React.createElement(React.Fragment, null,
13026            React.createElement("p", null, "This changes the speed of the pattern, press to go between speeds"))),
13027        callback: function () {
13028            clearInterval(timeout);
13029            timeout = null;
13030        },
13031    }, {
13032        target: "#action--" + _constants_1.WRITE,
13033        content: (React.createElement(React.Fragment, null,
13034            React.createElement("p", null, "Switches to composition mode"))),
13035        callback: function () { return dispatch({ type: _constants_1.WRITE }); },
13036        undo: function () { return dispatch({ type: _constants_1.WRITE }); },
13037    }, {
13038        target: ".Pad",
13039        content: (React.createElement(React.Fragment, null,
13040            React.createElement("p", null, "On this display, when the UI reads \"compose\" you sequence 16 step patterns"))),
13041    }, {
13042        target: "[data-idx=\"0\"]",
13043        content: (React.createElement(React.Fragment, null,
13044            React.createElement("p", null, "Click an entry to select a note, hold a note to select the duration of the note (defaults to a quarter)"))),
13045        callback: function () { return dispatch({ type: _constants_1.PATTERN_UPDATE, value: { idx: 0, note: 'C3', span: 4 } }); },
13046        undo: function () { return dispatch({ type: _constants_1.PATTERN_UPDATE, value: { idx: 0 } }); },
13047    }, {
13048        target: "[data-idx=\"6\"]",
13049        content: (React.createElement(React.Fragment, null,
13050            React.createElement("p", null, "Copy a note by holding it and pressing another square (or click it again to wipe)"))),
13051        callback: function () {
13052            dispatch({ type: _constants_1.MULTI_TOUCH, value: [{ secondary: _constants_1.NOTE_COPY, value: 0 }, { value: 6 }] });
13053        },
13054        undo: function () { return dispatch({ type: _constants_1.PATTERN_UPDATE, value: { idx: 6 } }); },
13055    }, {
13056        target: "#action--" + _constants_1.SOUNDS_VIEW,
13057        content: (React.createElement(React.Fragment, null,
13058            React.createElement("p", null, "By selecting option 16 from the sounds view, you can add a basic drum beat to your pattern too"))),
13059        callback: function () {
13060            dispatch({ type: _constants_1.SOUNDS_SET, value: 15 });
13061        },
13062        undo: function () { return dispatch({ type: _constants_1.SOUNDS_SET, value: 1 }); },
13063    }, {
13064        target: "[data-idx=\"0\"]",
13065        content: (React.createElement(React.Fragment, null,
13066            React.createElement("p", null, "Drum beats add in the same manner"))),
13067        callback: function () {
13068            dispatch({ type: _constants_1.PATTERN_UPDATE, value: { idx: 0, note: 'C3' } });
13069            dispatch({ type: _constants_1.PATTERN_UPDATE, value: { idx: 4, note: 'F3' } });
13070            dispatch({ type: _constants_1.PATTERN_UPDATE, value: { idx: 8, note: 'C3' } });
13071            dispatch({ type: _constants_1.PATTERN_UPDATE, value: { idx: 12, note: 'C4' } });
13072        },
13073        undo: function () {
13074            [0, 4, 8, 12].forEach(function (v) {
13075                return dispatch({ type: _constants_1.PATTERN_UPDATE, value: { idx: v } });
13076            });
13077        },
13078    }, {
13079        target: "#action--" + _constants_1.PATTERN_VIEW,
13080        content: (React.createElement(React.Fragment, null,
13081            React.createElement("p", null, "Returning to pattern view will now show data relating to the changes for pattern 1"))),
13082        callback: function () {
13083            dispatch({ type: _constants_1.PATTERN_VIEW });
13084        },
13085        undo: function () { return dispatch({ type: _constants_1.PATTERN_VIEW }); },
13086    }, {
13087        target: ".Pad",
13088        content: (React.createElement(React.Fragment, null,
13089            React.createElement("p", null, "To copy a pattern, hold the pattern and then touch another pattern (or cancel to erase)"))),
13090        callback: function () {
13091            dispatch({ type: _constants_1.MULTI_TOUCH, value: [{ secondary: _constants_1.PATTERN_COPY, idx: 0, value: 0 }, { idx: 1, value: 1 }] });
13092        },
13093        undo: function () { return dispatch({ type: _constants_1.MULTI_TOUCH, value: [{ secondary: _constants_1.PATTERN_COPY, idx: 5, value: 5 }, { idx: 1, value: 1 }] }); },
13094    }, {
13095        target: ".Pad",
13096        content: (React.createElement(React.Fragment, null,
13097            React.createElement("p", null, "Now you can edit the pattern to create a second variant quickly"))),
13098    }, {
13099        target: "#action--" + _constants_1.SOUNDS_VIEW,
13100        content: (React.createElement(React.Fragment, null,
13101            React.createElement("p", null, "You can change the sound live (behaviour may be different on different players)"))),
13102        callback: function () {
13103            dispatch({ type: _constants_1.SOUNDS_VIEW });
13104            dispatch({ type: _constants_1.SOUNDS_SET, value: 14 });
13105            dispatch({ type: _constants_1.WRITE });
13106        },
13107        undo: function () {
13108            dispatch({ type: _constants_1.SOUNDS_VIEW });
13109            dispatch({ type: _constants_1.SOUNDS_SET, value: 1 });
13110            dispatch({ type: _constants_1.WRITE });
13111        },
13112    }, {
13113        target: ".Pad",
13114        content: (React.createElement(React.Fragment, null,
13115            React.createElement("p", null, "Lets add some extra sounds to pattern 1"))),
13116        callback: function () {
13117            dispatch({ type: _constants_1.PATTERN_UPDATE, value: { idx: 4, note: 'A2', span: 1 } });
13118            dispatch({ type: _constants_1.PATTERN_UPDATE, value: { idx: 5, note: 'b2', span: 1 } });
13119        },
13120        undo: function () {
13121            dispatch({ type: _constants_1.PATTERN_UPDATE, value: { idx: 4 } });
13122            dispatch({ type: _constants_1.PATTERN_UPDATE, value: { idx: 5 } });
13123        },
13124    }, {
13125        target: ".Pad",
13126        content: (React.createElement(React.Fragment, null,
13127            React.createElement("p", null, "You should now be hearing two unique patterns play"))),
13128        callback: function () { return dispatch({ type: _constants_1.PATTERN_VIEW }); },
13129        undo: function () { return dispatch({ type: _constants_1.PATTERN_VIEW }); },
13130    }, {
13131        target: "#action-" + _constants_1.PATTERN_VIEW,
13132        content: (React.createElement(React.Fragment, null,
13133            React.createElement("p", null, "To alter the sequence of patterns, hold the patterns button and type the buttons in the order you wish to sequence them (in this case we will try 0 1 0 2)"))),
13134        callback: function () {
13135            dispatch({ type: _constants_1.MULTI_TOUCH, value: [{ secondary: _constants_1.PATTERN_CHAIN }, { value: 0, idx: 0 }] });
13136            dispatch({ type: _constants_1.MULTI_TOUCH, value: [{ secondary: _constants_1.PATTERN_CHAIN }, { value: 2, idx: 2 }] });
13137        },
13138    }, {
13139        target: 'body',
13140        content: (React.createElement(React.Fragment, null,
13141            React.createElement("p", null, "That's all I can be bothered with for now, I will try and break this up into parts and allow the ability to go back and forward through it at a later date hopefully."),
13142            React.createElement("p", null,
13143                "There should be an instruction manual up somewhere to consult soon too. Press next to play with this data, alternatively you can ",
13144                React.createElement("a", { href: "https://github.com/padraigfl/music-sequencer", target: "_blank" }
13144, "view additional documents here")))),
13145        callback: function (x, y) {
13146            setOverlay(false);
13147        },
13148    }
13149]; };
13150var fireCallbackOnStepEnd = function (state) {
13151    console.log(state);
13152    if (!state.step.callback) {
13153        return;
13154    }
13155    if (state.lifecycle === 'complete') {
13156        state.step.callback();
13157        return;
13158    }
13159    if (state.action === 'prev' && state.lifecycle === 'ready' && state.step.undo) {
13160        state.step.undo(state.action);
13161    }
13162    // TODO reverse action
13163};
13164var Tutorial = function () {
13165    var _a = React.useState(true), overlay = _a[0], setOverlay = _a[1];
13166    var _b = React.useContext(context_1.default), dispatch = _b.dispatch, sounds = _b.sounds;
13167    var steps = React.useMemo(function () { return (getSteps(dispatch, sounds, setOverlay)
13168    // .map(v => ({
13169    //   ...v,
13170    //   placement: v.target === '.Pad' ? ('top' as any) : undefined
13171    // }))
13172    ); }, [dispatch, sounds]);
13173    return React.useMemo(function () {
13174        var Wrapper = overlay ? Shell : React.Fragment;
13175        return (React.createElement(Wrapper, null,
13176            React.createElement(react_joyride_1.default, { steps: steps, callback: fireCallbackOnStepEnd, disableOverlayClose: true, disableCloseOnEsc: true, continuous: true, run: true })));
13177    }, [steps, overlay]);
13178};
13179exports.default = Tutorial;
13180var templateObject_1;
13181
13182
13183/***/ }),
13184/* 81 */
13185/***/ (function(module, __webpack_exports__, __webpack_require__) {
13186
13187"use strict";
13188__webpack_require__.r(__webpack_exports__);
13189/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ACTIONS", function() { return ACTIONS; });
13190/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "EVENTS", function() { return EVENTS; });
13191/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LIFECYCLE", function() { return LIFECYCLE; });
13192/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "STATUS", function() { return STATUS; });
13193/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);
13194/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
13195/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2);
13196/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);
13197/* harmony import */ var tree_changes__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(18);
13198/* harmony import */ var tree_changes__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(tree_changes__WEBPACK_IMPORTED_MODULE_2__);
13199/* harmony import */ var is_lite__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(3);
13200/* harmony import */ var is_lite__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(is_lite__WEBPACK_IMPORTED_MODULE_3__);
13201/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(12);
13202/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_dom__WEBPACK_IMPORTED_MODULE_4__);
13203/* harmony import */ var exenv__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(22);
13204/* harmony import */ var exenv__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(exenv__WEBPACK_IMPORTED_MODULE_5__);
13205/* harmony import */ var scroll__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(43);
13206/* harmony import */ var scroll__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(scroll__WEBPACK_IMPORTED_MODULE_6__);
13207/* harmony import */ var scrollparent__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(29);
13208/* harmony import */ var scrollparent__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(scrollparent__WEBPACK_IMPORTED_MODULE_7__);
13209/* harmony import */ var react_is__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(11);
13210/* harmony import */ var react_is__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(react_is__WEBPACK_IMPORTED_MODULE_8__);
13211/* harmony import */ var deepmerge__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(10);
13212/* harmony import */ var deepmerge__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(deepmerge__WEBPACK_IMPORTED_MODULE_9__);
13213/* harmony import */ var react_floater__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(44);
13214
13215
13216
13217
13218
13219
13220
13221
13222
13223
13224
13225
13226function _classCallCheck(instance, Constructor) {
13227  if (!(instance instanceof Constructor)) {
13228    throw new TypeError("Cannot call a class as a function");
13229  }
13230}
13231
13232function _defineProperties(target, props) {
13233  for (var i = 0; i < props.length; i++) {
13234    var descriptor = props[i];
13235    descriptor.enumerable = descriptor.enumerable || false;
13236    descriptor.configurable = true;
13237    if ("value" in descriptor) descriptor.writable = true;
13238    Object.defineProperty(target, descriptor.key, descriptor);
13239  }
13240}
13241
13242function _createClass(Constructor, protoProps, staticProps) {
13243  if (protoProps) _defineProperties(Constructor.prototype, protoProps);
13244  if (staticProps) _defineProperties(Constructor, staticProps);
13245  return Constructor;
13246}
13247
13248function _defineProperty(obj, key, value) {
13249  if (key in obj) {
13250    Object.defineProperty(obj, key, {
13251      value: value,
13252      enumerable: true,
13253      configurable: true,
13254      writable: true
13255    });
13256  } else {
13257    obj[key] = value;
13258  }
13259
13260  return obj;
13261}
13262
13263function _extends() {
13264  _extends = Object.assign || function (target) {
13265    for (var i = 1; i < arguments.length; i++) {
13266      var source = arguments[i];
13267
13268      for (var key in source) {
13269        if (Object.prototype.hasOwnProperty.call(source, key)) {
13270          target[key] = source[key];
13271        }
13272      }
13273    }
13274
13275    return target;
13276  };
13277
13278  return _extends.apply(this, arguments);
13279}
13280
13281function ownKeys(object, enumerableOnly) {
13282  var keys = Object.keys(object);
13283
13284  if (Object.getOwnPropertySymbols) {
13285    var symbols = Object.getOwnPropertySymbols(object);
13286    if (enumerableOnly) symbols = symbols.filter(function (sym) {
13287      return Object.getOwnPropertyDescriptor(object, sym).enumerable;
13288    });
13289    keys.push.apply(keys, symbols);
13290  }
13291
13292  return keys;
13293}
13294
13295function _objectSpread2(target) {
13296  for (var i = 1; i < arguments.length; i++) {
13297    var source = arguments[i] != null ? arguments[i] : {};
13298
13299    if (i % 2) {
13300      ownKeys(Object(source), true).forEach(function (key) {
13301        _defineProperty(target, key, source[key]);
13302      });
13303    } else if (Object.getOwnPropertyDescriptors) {
13304      Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
13305    } else {
13306      ownKeys(Object(source)).forEach(function (key) {
13307        Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
13308      });
13309    }
13310  }
13311
13312  return target;
13313}
13314
13315function _inherits(subClass, superClass) {
13316  if (typeof superClass !== "function" && superClass !== null) {
13317    throw new TypeError("Super expression must either be null or a function");
13318  }
13319
13320  subClass.prototype = Object.create(superClass && superClass.prototype, {
13321    constructor: {
13322      value: subClass,
13323      writable: true,
13324      configurable: true
13325    }
13326  });
13327  if (superClass) _setPrototypeOf(subClass, superClass);
13328}
13329
13330function _getPrototypeOf(o) {
13331  _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {
13332    return o.__proto__ || Object.getPrototypeOf(o);
13333  };
13334  return _getPrototypeOf(o);
13335}
13336
13337function _setPrototypeOf(o, p) {
13338  _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
13339    o.__proto__ = p;
13340    return o;
13341  };
13342
13343  return _setPrototypeOf(o, p);
13344}
13345
13346function _objectWithoutPropertiesLoose(source, excluded) {
13347  if (source == null) return {};
13348  var target = {};
13349  var sourceKeys = Object.keys(source);
13350  var key, i;
13351
13352  for (i = 0; i < sourceKeys.length; i++) {
13353    key = sourceKeys[i];
13354    if (excluded.indexOf(key) >= 0) continue;
13355    target[key] = source[key];
13356  }
13357
13358  return target;
13359}
13360
13361function _objectWithoutProperties(source, excluded) {
13362  if (source == null) return {};
13363
13364  var target = _objectWithoutPropertiesLoose(source, excluded);
13365
13366  var key, i;
13367
13368  if (Object.getOwnPropertySymbols) {
13369    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
13370
13371    for (i = 0; i < sourceSymbolKeys.length; i++) {
13372      key = sourceSymbolKeys[i];
13373      if (excluded.indexOf(key) >= 0) continue;
13374      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
13375      target[key] = source[key];
13376    }
13377  }
13378
13379  return target;
13380}
13381
13382function _assertThisInitialized(self) {
13383  if (self === void 0) {
13384    throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
13385  }
13386
13387  return self;
13388}
13389
13390function _possibleConstructorReturn(self, call) {
13391  if (call && (typeof call === "object" || typeof call === "function")) {
13392    return call;
13393  }
13394
13395  return _assertThisInitialized(self);
13396}
13397
13398var ACTIONS = {
13399  INIT: 'init',
13400  START: 'start',
13401  STOP: 'stop',
13402  RESET: 'reset',
13403  PREV: 'prev',
13404  NEXT: 'next',
13405  GO: 'go',
13406  CLOSE: 'close',
13407  SKIP: 'skip',
13408  UPDATE: 'update'
13409};
13410
13411var EVENTS = {
13412  TOUR_START: 'tour:start',
13413  STEP_BEFORE: 'step:before',
13414  BEACON: 'beacon',
13415  TOOLTIP: 'tooltip',
13416  STEP_AFTER: 'step:after',
13417  TOUR_END: 'tour:end',
13418  TOUR_STATUS: 'tour:status',
13419  TARGET_NOT_FOUND: 'error:target_not_found',
13420  ERROR: 'error'
13421};
13422
13423var LIFECYCLE = {
13424  INIT: 'init',
13425  READY: 'ready',
13426  BEACON: 'beacon',
13427  TOOLTIP: 'tooltip',
13428  COMPLETE: 'complete',
13429  ERROR: 'error'
13430};
13431
13432var STATUS = {
13433  IDLE: 'idle',
13434  READY: 'ready',
13435  WAITING: 'waiting',
13436  RUNNING: 'running',
13437  PAUSED: 'paused',
13438  SKIPPED: 'skipped',
13439  FINISHED: 'finished',
13440  ERROR: 'error'
13441};
13442
13443var canUseDOM = exenv__WEBPACK_IMPORTED_MODULE_5___default.a.canUseDOM;
13444var isReact16 = react_dom__WEBPACK_IMPORTED_MODULE_4__["createPortal"] !== undefined;
13445/**
13446 * Get the current browser
13447 *
13448 * @param {string} userAgent
13449 *
13450 * @returns {String}
13451 */
13452
13453function getBrowser() {
13454  var userAgent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : navigator.userAgent;
13455  var browser = userAgent;
13456
13457  if (typeof window === 'undefined') {
13458    browser = 'node';
13459  } else if (document.documentMode) {
13460    browser = 'ie';
13461  } else if (/Edge/.test(userAgent)) {
13462    browser = 'edge';
13463  } // Opera 8.0+
13464  else if (Boolean(window.opera) || userAgent.indexOf(' OPR/') >= 0) {
13465      browser = 'opera';
13466    } // Firefox 1.0+
13467    else if (typeof window.InstallTrigger !== 'undefined') {
13468        browser = 'firefox';
13469      } // Chrome 1+
13470      else if (window.chrome) {
13471          browser = 'chrome';
13472        } // Safari (and Chrome iOS, Firefox iOS)
13473        else if (/(Version\/([0-9._]+).*Safari|CriOS|FxiOS| Mobile\/)/.test(userAgent)) {
13474            browser = 'safari';
13475          }
13476
13477  return browser;
13478}
13479/**
13480 * Get the toString Object type
13481 * @param {*} value
13482 * @returns {string}
13483 */
13484
13485function getObjectType(value) {
13486  return Object.prototype.toString.call(value).slice(8, -1).toLowerCase();
13487}
13488/**
13489 * Get text from React components
13490 *
13491 * @param {*} root
13492 *
13493 * @returns {string}
13494 */
13495
13496function getText(root) {
13497  var content = [];
13498
13499  var recurse = function recurse(child) {
13500    /* istanbul ignore else */
13501    if (typeof child === 'string' || typeof child === 'number') {
13502      content.push(child);
13503    } else if (Array.isArray(child)) {
13504      child.forEach(function (c) {
13505        return recurse(c);
13506      });
13507    } else if (child && child.props) {
13508      var children = child.props.children;
13509
13510      if (Array.isArray(children)) {
13511        children.forEach(function (c) {
13512          return recurse(c);
13513        });
13514      } else {
13515        recurse(children);
13516      }
13517    }
13518  };
13519
13520  recurse(root);
13521  return content.join(' ').trim();
13522}
13523function hasOwnProperty(value, key) {
13524  return Object.prototype.hasOwnProperty.call(value, key);
13525}
13526function hasValidKeys(value, keys) {
13527  if (!is_lite__WEBPACK_IMPORTED_MODULE_3___default.a.plainObject(value) || !is_lite__WEBPACK_IMPORTED_MODULE_3___default.a.array(keys)) {
13528    return false;
13529  }
13530
13531  return Object.keys(value).every(function (d) {
13532    return keys.indexOf(d) !== -1;
13533  });
13534}
13535/**
13536 * Convert hex to RGB
13537 *
13538 * @param {string} hex
13539 * @returns {Array}
13540 */
13541
13542function hexToRGB(hex) {
13543  var shorthandRegex = /^#?([a-f\d])([a-f\d])([a-f\d])$/i;
13544  var properHex = hex.replace(shorthandRegex, function (m, r, g, b) {
13545    return r + r + g + g + b + b;
13546  });
13547  var result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(properHex);
13548  return result ? [parseInt(result[1], 16), parseInt(result[2], 16), parseInt(result[3], 16)] : [];
13549}
13550/**
13551 * Decide if the step shouldn't skip the beacon
13552 * @param {Object} step
13553 *
13554 * @returns {boolean}
13555 */
13556
13557function hideBeacon(step) {
13558  return step.disableBeacon || step.placement === 'center';
13559}
13560/**
13561 * Compare if two variables are equal
13562 *
13563 * @param {*} left
13564 * @param {*} right
13565 *
13566 * @returns {boolean}
13567 */
13568
13569function isEqual(left, right) {
13570  var type;
13571  var hasReactElement = Object(react__WEBPACK_IMPORTED_MODULE_0__["isValidElement"])(left) || Object(react__WEBPACK_IMPORTED_MODULE_0__["isValidElement"])(right);
13572  var hasUndefined = is_lite__WEBPACK_IMPORTED_MODULE_3___default.a.undefined(left) || is_lite__WEBPACK_IMPORTED_MODULE_3___default.a.undefined(right);
13573
13574  if (getObjectType(left) !== getObjectType(right) || hasReactElement || hasUndefined) {
13575    return false;
13576  }
13577
13578  if (is_lite__WEBPACK_IMPORTED_MODULE_3___default.a.domElement(left)) {
13579    return left.isSameNode(right);
13580  }
13581
13582  if (is_lite__WEBPACK_IMPORTED_MODULE_3___default.a.number(left)) {
13583    return left === right;
13584  }
13585
13586  if (is_lite__WEBPACK_IMPORTED_MODULE_3___default.a["function"](left)) {
13587    return left.toString() === right.toString();
13588  }
13589
13590  for (var key in left) {
13591    /* istanbul ignore else */
13592    if (hasOwnProperty(left, key)) {
13593      if (typeof left[key] === 'undefined' || typeof right[key] === 'undefined') {
13594        return false;
13595      }
13596
13597      type = getObjectType(left[key]);
13598
13599      if (['object', 'array'].indexOf(type) !== -1 && isEqual(left[key], right[key])) {
13600        continue;
13601      }
13602
13603      if (type === 'function' && isEqual(left[key], right[key])) {
13604        continue;
13605      }
13606
13607      if (left[key] !== right[key]) {
13608        return false;
13609      }
13610    }
13611  }
13612
13613  for (var p in right) {
13614    /* istanbul ignore else */
13615    if (hasOwnProperty(right, p)) {
13616      if (typeof left[p] === 'undefined') {
13617        return false;
13618      }
13619    }
13620  }
13621
13622  return true;
13623}
13624/**
13625 * Detect legacy browsers
13626 *
13627 * @returns {boolean}
13628 */
13629
13630function isLegacy() {
13631  return !(['chrome', 'safari', 'firefox', 'opera'].indexOf(getBrowser()) !== -1);
13632}
13633/**
13634 * Log method calls if debug is enabled
13635 *
13636 * @private
13637 * @param {Object}       arg
13638 * @param {string}       arg.title    - The title the logger was called from
13639 * @param {Object|Array} [arg.data]   - The data to be logged
13640 * @param {boolean}      [arg.warn]  - If true, the message will be a warning
13641 * @param {boolean}      [arg.debug] - Nothing will be logged unless debug is true
13642 */
13643
13644function log(_ref) {
13645  var title = _ref.title,
13646      data = _ref.data,
13647      _ref$warn = _ref.warn,
13648      warn = _ref$warn === void 0 ? false : _ref$warn,
13649      _ref$debug = _ref.debug,
13650      debug = _ref$debug === void 0 ? false : _ref$debug;
13651
13652  /* eslint-disable no-console */
13653  var logFn = warn ? console.warn || console.error : console.log;
13654
13655  if (debug) {
13656    if (title && data) {
13657      console.groupCollapsed("%creact-joyride: ".concat(title), 'color: #ff0044; font-weight: bold; font-size: 12px;');
13658
13659      if (Array.isArray(data)) {
13660        data.forEach(function (d) {
13661          if (is_lite__WEBPACK_IMPORTED_MODULE_3___default.a.plainObject(d) && d.key) {
13662            logFn.apply(console, [d.key, d.value]);
13663          } else {
13664            logFn.apply(console, [d]);
13665          }
13666        });
13667      } else {
13668        logFn.apply(console, [data]);
13669      }
13670
13671      console.groupEnd();
13672    } else {
13673      console.error('Missing title or data props');
13674    }
13675  }
13676  /* eslint-enable */
13677
13678}
13679
13680var defaultState = {
13681  action: '',
13682  controlled: false,
13683  index: 0,
13684  lifecycle: LIFECYCLE.INIT,
13685  size: 0,
13686  status: STATUS.IDLE
13687};
13688var validKeys = ['action', 'index', 'lifecycle', 'status'];
13689function createStore(props) {
13690  var store = new Map();
13691  var data = new Map();
13692
13693  var Store =
13694  /*#__PURE__*/
13695  function () {
13696    function Store() {
13697      var _this = this;
13698
13699      var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
13700          _ref$continuous = _ref.continuous,
13701          continuous = _ref$continuous === void 0 ? false : _ref$continuous,
13702          stepIndex = _ref.stepIndex,
13703          _ref$steps = _ref.steps,
13704          _steps = _ref$steps === void 0 ? [] : _ref$steps;
13705
13706      _classCallCheck(this, Store);
13707
13708      _defineProperty(this, "listener", void 0);
13709
13710      _defineProperty(this, "setSteps", function (steps) {
13711        var _this$getState = _this.getState(),
13712            size = _this$getState.size,
13713            status = _this$getState.status;
13714
13715        var state = {
13716          size: steps.length,
13717          status: status
13718        };
13719        data.set('steps', steps);
13720
13721        if (status === STATUS.WAITING && !size && steps.length) {
13722          state.status = STATUS.RUNNING;
13723        }
13724
13725        _this.setState(state);
13726      });
13727
13728      _defineProperty(this, "addListener", function (listener) {
13729        _this.listener = listener;
13730      });
13731
13732      _defineProperty(this, "update", function (state) {
13733        if (!hasValidKeys(state, validKeys)) {
13734          throw new Error("State is not valid. Valid keys: ".concat(validKeys.join(', ')));
13735        }
13736
13737        _this.setState(_objectSpread2({}, _this.getNextState(_objectSpread2({}, _this.getState(), {}, state, {
13738          action: state.action || ACTIONS.UPDATE
13739        }), true)));
13740      });
13741
13742      _defineProperty(this, "start", function (nextIndex) {
13743        var _this$getState2 = _this.getState(),
13744            index = _this$getState2.index,
13745            size = _this$getState2.size;
13746
13747        _this.setState(_objectSpread2({}, _this.getNextState({
13748          action: ACTIONS.START,
13749          index: is_lite__WEBPACK_IMPORTED_MODULE_3___default.a.number(nextIndex) ? nextIndex : index
13750        }, true), {
13751          status: size ? STATUS.RUNNING : STATUS.WAITING
13752        }));
13753      });
13754
13755      _defineProperty(this, "stop", function () {
13756        var advance = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
13757
13758        var _this$getState3 = _this.getState(),
13759            index = _this$getState3.index,
13760            status = _this$getState3.status;
13761
13762        if ([STATUS.FINISHED, STATUS.SKIPPED].indexOf(status) !== -1) return;
13763
13764        _this.setState(_objectSpread2({}, _this.getNextState({
13765          action: ACTIONS.STOP,
13766          index: index + (advance ? 1 : 0)
13767        }), {
13768          status: STATUS.PAUSED
13769        }));
13770      });
13771
13772      _defineProperty(this, "close", function () {
13773        var _this$getState4 = _this.getState(),
13774            index = _this$getState4.index,
13775            status = _this$getState4.status;
13776
13777        if (status !== STATUS.RUNNING) return;
13778
13779        _this.setState(_objectSpread2({}, _this.getNextState({
13780          action: ACTIONS.CLOSE,
13781          index: index + 1
13782        })));
13783      });
13784
13785      _defineProperty(this, "go", function (nextIndex) {
13786        var _this$getState5 = _this.getState(),
13787            controlled = _this$getState5.controlled,
13788            status = _this$getState5.status;
13789
13790        if (controlled || status !== STATUS.RUNNING) return;
13791
13792        var step = _this.getSteps()[nextIndex];
13793
13794        _this.setState(_objectSpread2({}, _this.getNextState({
13795          action: ACTIONS.GO,
13796          index: nextIndex
13797        }), {
13798          status: step ? status : STATUS.FINISHED
13799        }));
13800      });
13801
13802      _defineProperty(this, "info", function () {
13803        return _this.getState();
13804      });
13805
13806      _defineProperty(this, "next", function () {
13807        var _this$getState6 = _this.getState(),
13808            index = _this$getState6.index,
13809            status = _this$getState6.status;
13810
13811        if (status !== STATUS.RUNNING) return;
13812
13813        _this.setState(_this.getNextState({
13814          action: ACTIONS.NEXT,
13815          index: index + 1
13816        }));
13817      });
13818
13819      _defineProperty(this, "open", function () {
13820        var _this$getState7 = _this.getState(),
13821            status = _this$getState7.status;
13822
13823        if (status !== STATUS.RUNNING) return;
13824
13825        _this.setState(_objectSpread2({}, _this.getNextState({
13826          action: ACTIONS.UPDATE,
13827          lifecycle: LIFECYCLE.TOOLTIP
13828        })));
13829      });
13830
13831      _defineProperty(this, "prev", function () {
13832        var _this$getState8 = _this.getState(),
13833            index = _this$getState8.index,
13834            status = _this$getState8.status;
13835
13836        if (status !== STATUS.RUNNING) return;
13837
13838        _this.setState(_objectSpread2({}, _this.getNextState({
13839          action: ACTIONS.PREV,
13840          index: index - 1
13841        })));
13842      });
13843
13844      _defineProperty(this, "reset", function () {
13845        var restart = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
13846
13847        var _this$getState9 = _this.getState(),
13848            controlled = _this$getState9.controlled;
13849
13850        if (controlled) return;
13851
13852        _this.setState(_objectSpread2({}, _this.getNextState({
13853          action: ACTIONS.RESET,
13854          index: 0
13855        }), {
13856          status: restart ? STATUS.RUNNING : STATUS.READY
13857        }));
13858      });
13859
13860      _defineProperty(this, "skip", function () {
13861        var _this$getState10 = _this.getState(),
13862            status = _this$getState10.status;
13863
13864        if (status !== STATUS.RUNNING) return;
13865
13866        _this.setState({
13867          action: ACTIONS.SKIP,
13868          lifecycle: LIFECYCLE.INIT,
13869          status: STATUS.SKIPPED
13870        });
13871      });
13872
13873      this.setState({
13874        action: ACTIONS.INIT,
13875        controlled: is_lite__WEBPACK_IMPORTED_MODULE_3___default.a.number(stepIndex),
13876        continuous: continuous,
13877        index: is_lite__WEBPACK_IMPORTED_MODULE_3___default.a.number(stepIndex) ? stepIndex : 0,
13878        lifecycle: LIFECYCLE.INIT,
13879        status: _steps.length ? STATUS.READY : STATUS.IDLE
13880      }, true);
13881      this.setSteps(_steps);
13882    }
13883
13884    _createClass(Store, [{
13885      key: "setState",
13886      value: function setState(nextState) {
13887        var initial = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
13888        var state = this.getState();
13889
13890        var _state$nextState = _objectSpread2({}, state, {}, nextState),
13891            action = _state$nextState.action,
13892            index = _state$nextState.index,
13893            lifecycle = _state$nextState.lifecycle,
13894            size = _state$nextState.size,
13895            status = _state$nextState.status;
13896
13897        store.set('action', action);
13898        store.set('index', index);
13899        store.set('lifecycle', lifecycle);
13900        store.set('size', size);
13901        store.set('status', status);
13902
13903        if (initial) {
13904          store.set('controlled', nextState.controlled);
13905          store.set('continuous', nextState.continuous);
13906        }
13907        /* istanbul ignore else */
13908
13909
13910        if (this.listener && this.hasUpdatedState(state)) {
13911          // console.log('▶ ▶ ▶ NEW STATE', this.getState());
13912          this.listener(this.getState());
13913        }
13914      }
13915    }, {
13916      key: "getState",
13917      value: function getState() {
13918        if (!store.size) {
13919          return _objectSpread2({}, defaultState);
13920        }
13921
13922        return {
13923          action: store.get('action') || '',
13924          controlled: store.get('controlled') || false,
13925          index: parseInt(store.get('index'), 10),
13926          lifecycle: store.get('lifecycle') || '',
13927          size: store.get('size') || 0,
13928          status: store.get('status') || ''
13929        };
13930      }
13931    }, {
13932      key: "getNextState",
13933      value: function getNextState(state) {
13934        var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
13935
13936        var _this$getState11 = this.getState(),
13937            action = _this$getState11.action,
13938            controlled = _this$getState11.controlled,
13939            index = _this$getState11.index,
13940            size = _this$getState11.size,
13941            status = _this$getState11.status;
13942
13943        var newIndex = is_lite__WEBPACK_IMPORTED_MODULE_3___default.a.number(state.index) ? state.index : index;
13944        var nextIndex = controlled && !force ? index : Math.min(Math.max(newIndex, 0), size);
13945        return {
13946          action: state.action || action,
13947          controlled: controlled,
13948          index: nextIndex,
13949          lifecycle: state.lifecycle || LIFECYCLE.INIT,
13950          size: state.size || size,
13951          status: nextIndex === size ? STATUS.FINISHED : state.status || status
13952        };
13953      }
13954    }, {
13955      key: "hasUpdatedState",
13956      value: function hasUpdatedState(oldState) {
13957        var before = JSON.stringify(oldState);
13958        var after = JSON.stringify(this.getState());
13959        return before !== after;
13960      }
13961    }, {
13962      key: "getSteps",
13963      value: function getSteps() {
13964        var steps = data.get('steps');
13965        return Array.isArray(steps) ? steps : [];
13966      }
13967    }, {
13968      key: "getHelpers",
13969      value: function getHelpers() {
13970        return {
13971          close: this.close,
13972          go: this.go,
13973          info: this.info,
13974          next: this.next,
13975          open: this.open,
13976          prev: this.prev,
13977          reset: this.reset,
13978          skip: this.skip
13979        };
13980      }
13981    }]);
13982
13983    return Store;
13984  }();
13985
13986  return new Store(props);
13987}
13988
13989function scrollDoc() {
13990  return document.scrollingElement || document.createElement('body');
13991}
13992/**
13993 * Find the bounding client rect
13994 *
13995 * @private
13996 * @param {HTMLElement} element - The target element
13997 * @returns {Object}
13998 */
13999
14000function getClientRect(element) {
14001  if (!element) {
14002    return {};
14003  }
14004
14005  return element.getBoundingClientRect();
14006}
14007/**
14008 * Helper function to get the browser-normalized "document height"
14009 * @returns {Number}
14010 */
14011
14012function getDocumentHeight() {
14013  var _document = document,
14014      body = _document.body,
14015      html = _document.documentElement;
14016
14017  if (!body || !html) {
14018    return 0;
14019  }
14020
14021  return Math.max(body.scrollHeight, body.offsetHeight, html.clientHeight, html.scrollHeight, html.offsetHeight);
14022}
14023/**
14024 * Find and return the target DOM element based on a step's 'target'.
14025 *
14026 * @private
14027 * @param {string|HTMLElement} element
14028 *
14029 * @returns {HTMLElement|null}
14030 */
14031
14032function getElement(element) {
14033  /* istanbul ignore else */
14034  if (typeof element === 'string') {
14035    return document.querySelector(element);
14036  }
14037
14038  return element;
14039}
14040/**
14041 *  Get computed style property
14042 *
14043 * @param {HTMLElement} el
14044 *
14045 * @returns {Object}
14046 */
14047
14048function getStyleComputedProperty(el) {
14049  if (!el || el.nodeType !== 1) {
14050    return {};
14051  }
14052
14053  return getComputedStyle(el);
14054}
14055/**
14056 * Get scroll parent with fix
14057 *
14058 * @param {HTMLElement} element
14059 * @param {boolean} skipFix
14060 * @param {boolean} [forListener]
14061 *
14062 * @returns {*}
14063 */
14064
14065function getScrollParent(element, skipFix, forListener) {
14066  var parent = scrollparent__WEBPACK_IMPORTED_MODULE_7___default()(element);
14067
14068  if (parent.isSameNode(scrollDoc())) {
14069    if (forListener) {
14070      return document;
14071    }
14072
14073    return scrollDoc();
14074  }
14075
14076  var hasScrolling = parent.scrollHeight > parent.offsetHeight;
14077  /* istanbul ignore else */
14078
14079  if (!hasScrolling && !skipFix) {
14080    parent.style.overflow = 'initial';
14081    return scrollDoc();
14082  }
14083
14084  return parent;
14085}
14086/**
14087 * Check if the element has custom scroll parent
14088 *
14089 * @param {HTMLElement} element
14090 * @param {boolean} skipFix
14091 *
14092 * @returns {boolean}
14093 */
14094
14095function hasCustomScrollParent(element, skipFix) {
14096  if (!element) return false;
14097  var parent = getScrollParent(element, skipFix);
14098  return !parent.isSameNode(scrollDoc());
14099}
14100/**
14101 * Check if the element has custom offset parent
14102 *
14103 * @param {HTMLElement} element
14104 *
14105 * @returns {boolean}
14106 */
14107
14108function hasCustomOffsetParent(element) {
14109  return element.offsetParent !== document.body;
14110}
14111/**
14112 * Check if an element has fixed/sticky position
14113 * @param {HTMLElement|Node} el
14114 * @param {string} [type]
14115 *
14116 * @returns {boolean}
14117 */
14118
14119function hasPosition(el) {
14120  var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'fixed';
14121
14122  if (!el || !(el instanceof HTMLElement)) {
14123    return false;
14124  }
14125
14126  var nodeName = el.nodeName;
14127
14128  if (nodeName === 'BODY' || nodeName === 'HTML') {
14129    return false;
14130  }
14131
14132  if (getStyleComputedProperty(el).position === type) {
14133    return true;
14134  }
14135
14136  return hasPosition(el.parentNode, type);
14137}
14138/**
14139 * Check if the element is visible
14140 *
14141 * @param {HTMLElement} element
14142 *
14143 * @returns {boolean}
14144 */
14145
14146function isElementVisible(element) {
14147  if (!element) return false;
14148  var parentElement = element;
14149
14150  while (parentElement) {
14151    if (parentElement === document.body) break;
14152    /* istanbul ignore else */
14153
14154    if (parentElement instanceof HTMLElement) {
14155      var _getComputedStyle = getComputedStyle(parentElement),
14156          display = _getComputedStyle.display,
14157          visibility = _getComputedStyle.visibility;
14158
14159      if (display === 'none' || visibility === 'hidden') {
14160        return false;
14161      }
14162    }
14163
14164    parentElement = parentElement.parentNode;
14165  }
14166
14167  return true;
14168}
14169/**
14170 * Find and return the target DOM element based on a step's 'target'.
14171 *
14172 * @private
14173 * @param {string|HTMLElement} element
14174 * @param {number} offset
14175 * @param {boolean} skipFix
14176 *
14177 * @returns {HTMLElement|undefined}
14178 */
14179
14180function getElementPosition(element, offset, skipFix) {
14181  var elementRect = getClientRect(element);
14182  var parent = getScrollParent(element, skipFix);
14183  var hasScrollParent = hasCustomScrollParent(element, skipFix);
14184  var parentTop = 0;
14185  /* istanbul ignore else */
14186
14187  if (parent instanceof HTMLElement) {
14188    parentTop = parent.scrollTop;
14189  }
14190
14191  var top = elementRect.top + (!hasScrollParent && !hasPosition(element) ? parentTop : 0);
14192  return Math.floor(top - offset);
14193}
14194/**
14195 * Get the scrollTop position
14196 *
14197 * @param {HTMLElement} element
14198 * @param {number} offset
14199 * @param {boolean} skipFix
14200 *
14201 * @returns {number}
14202 */
14203
14204function getScrollTo(element, offset, skipFix) {
14205  if (!element) {
14206    return 0;
14207  }
14208
14209  var parent = scrollparent__WEBPACK_IMPORTED_MODULE_7___default()(element);
14210  var top = element.offsetTop;
14211
14212  if (hasCustomScrollParent(element, skipFix) && !hasCustomOffsetParent(element)) {
14213    top -= parent.offsetTop;
14214  }
14215
14216  return Math.floor(top - offset);
14217}
14218/**
14219 * Scroll to position
14220 * @param {number} value
14221 * @param {HTMLElement} element
14222 * @param {number} scrollDuration
14223 * @returns {Promise<*>}
14224 */
14225
14226function scrollTo(value) {
14227  var element = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : scrollDoc();
14228  var scrollDuration = arguments.length > 2 ? arguments[2] : undefined;
14229  return new Promise(function (resolve, reject) {
14230    var scrollTop = element.scrollTop;
14231    var limit = value > scrollTop ? value - scrollTop : scrollTop - value;
14232    scroll__WEBPACK_IMPORTED_MODULE_6___default.a.top(element, value, {
14233      duration: limit < 100 ? 50 : scrollDuration
14234    }, function (error) {
14235      if (error && error.message !== 'Element already at target scroll position') {
14236        return reject(error);
14237      }
14238
14239      return resolve();
14240    });
14241  });
14242}
14243
14244function createChainableTypeChecker(validate) {
14245  function checkType(isRequired, props, propName, componentName, location, propFullName) {
14246    var componentNameSafe = componentName || '<<anonymous>>';
14247    var propFullNameSafe = propFullName || propName;
14248    /* istanbul ignore else */
14249
14250    if (props[propName] == null) {
14251      if (isRequired) {
14252        return new Error("Required ".concat(location, " `").concat(propFullNameSafe, "` was not specified in `").concat(componentNameSafe, "`."));
14253      }
14254
14255      return null;
14256    }
14257
14258    for (var _len = arguments.length, args = new Array(_len > 6 ? _len - 6 : 0), _key = 6; _key < _len; _key++) {
14259      args[_key - 6] = arguments[_key];
14260    }
14261
14262    return validate.apply(void 0, [props, propName, componentNameSafe, location, propFullNameSafe].concat(args));
14263  }
14264
14265  var chainedCheckType = checkType.bind(null, false);
14266  chainedCheckType.isRequired = checkType.bind(null, true);
14267  return chainedCheckType;
14268}
14269
14270var componentTypeWithRefs = createChainableTypeChecker(function (props, propName, componentName, location, propFullName) {
14271  var propValue = props[propName];
14272  var Component = propValue;
14273
14274  if (!react__WEBPACK_IMPORTED_MODULE_0___default.a.isValidElement(propValue) && Object(react_is__WEBPACK_IMPORTED_MODULE_8__["isValidElementType"])(propValue)) {
14275    var ownProps = {
14276      ref: function ref() {},
14277      step: {}
14278    };
14279    Component = react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(Component, ownProps);
14280  }
14281
14282  if (is_lite__WEBPACK_IMPORTED_MODULE_3___default.a.string(propValue) || is_lite__WEBPACK_IMPORTED_MODULE_3___default.a.number(propValue) || !Object(react_is__WEBPACK_IMPORTED_MODULE_8__["isValidElementType"])(propValue) || !([react_is__WEBPACK_IMPORTED_MODULE_8__["Element"], react_is__WEBPACK_IMPORTED_MODULE_8__["ForwardRef"]].indexOf(Object(react_is__WEBPACK_IMPORTED_MODULE_8__["typeOf"])(Component)) !== -1)) {
14283    return new Error("Invalid ".concat(location, " `").concat(propFullName, "` supplied to `").concat(componentName, "`. Expected a React class or forwardRef."));
14284  }
14285
14286  return undefined;
14287});
14288
14289var defaultOptions = {
14290  arrowColor: '#fff',
14291  backgroundColor: '#fff',
14292  beaconSize: 36,
14293  overlayColor: 'rgba(0, 0, 0, 0.5)',
14294  primaryColor: '#f04',
14295  spotlightShadow: '0 0 15px rgba(0, 0, 0, 0.5)',
14296  textColor: '#333',
14297  zIndex: 100
14298};
14299var buttonBase = {
14300  backgroundColor: 'transparent',
14301  border: 0,
14302  borderRadius: 0,
14303  color: '#555',
14304  cursor: 'pointer',
14305  fontSize: 16,
14306  lineHeight: 1,
14307  padding: 8,
14308  WebkitAppearance: 'none'
14309};
14310var spotlight = {
14311  borderRadius: 4,
14312  position: 'absolute'
14313};
14314function getStyles() {
14315  var stepStyles = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
14316  var options = deepmerge__WEBPACK_IMPORTED_MODULE_9___default()(defaultOptions, stepStyles.options || {});
14317  var width = 290;
14318
14319  if (window.innerWidth > 480) {
14320    width = 380;
14321  }
14322
14323  if (options.width) {
14324    if (window.innerWidth < options.width) {
14325      width = window.innerWidth - 30;
14326    } else {
14327      width = options.width; //eslint-disable-line prefer-destructuring
14328    }
14329  }
14330
14331  var overlay = {
14332    bottom: 0,
14333    left: 0,
14334    overflow: 'hidden',
14335    position: 'absolute',
14336    right: 0,
14337    top: 0,
14338    zIndex: options.zIndex
14339  };
14340  var defaultStyles = {
14341    beacon: _objectSpread2({}, buttonBase, {
14342      display: 'inline-block',
14343      height: options.beaconSize,
14344      position: 'relative',
14345      width: options.beaconSize,
14346      zIndex: options.zIndex
14347    }),
14348    beaconInner: {
14349      animation: 'joyride-beacon-inner 1.2s infinite ease-in-out',
14350      backgroundColor: options.primaryColor,
14351      borderRadius: '50%',
14352      display: 'block',
14353      height: '50%',
14354      left: '50%',
14355      opacity: 0.7,
14356      position: 'absolute',
14357      top: '50%',
14358      transform: 'translate(-50%, -50%)',
14359      width: '50%'
14360    },
14361    beaconOuter: {
14362      animation: 'joyride-beacon-outer 1.2s infinite ease-in-out',
14363      backgroundColor: "rgba(".concat(hexToRGB(options.primaryColor).join(','), ", 0.2)"),
14364      border: "2px solid ".concat(options.primaryColor),
14365      borderRadius: '50%',
14366      boxSizing: 'border-box',
14367      display: 'block',
14368      height: '100%',
14369      left: 0,
14370      opacity: 0.9,
14371      position: 'absolute',
14372      top: 0,
14373      transformOrigin: 'center',
14374      width: '100%'
14375    },
14376    tooltip: {
14377      backgroundColor: options.backgroundColor,
14378      borderRadius: 5,
14379      boxSizing: 'border-box',
14380      color: options.textColor,
14381      fontSize: 16,
14382      maxWidth: '100%',
14383      padding: 15,
14384      position: 'relative',
14385      width: width
14386    },
14387    tooltipContainer: {
14388      lineHeight: 1.4,
14389      textAlign: 'center'
14390    },
14391    tooltipTitle: {
14392      fontSize: 18,
14393      margin: 0
14394    },
14395    tooltipContent: {
14396      padding: '20px 10px'
14397    },
14398    tooltipFooter: {
14399      alignItems: 'center',
14400      display: 'flex',
14401      justifyContent: 'flex-end',
14402      marginTop: 15
14403    },
14404    tooltipFooterSpacer: {
14405      flex: 1
14406    },
14407    buttonNext: _objectSpread2({}, buttonBase, {
14408      backgroundColor: options.primaryColor,
14409      borderRadius: 4,
14410      color: '#fff'
14411    }),
14412    buttonBack: _objectSpread2({}, buttonBase, {
14413      color: options.primaryColor,
14414      marginLeft: 'auto',
14415      marginRight: 5
14416    }),
14417    buttonClose: _objectSpread2({}, buttonBase, {
14418      color: options.textColor,
14419      height: 14,
14420      padding: 15,
14421      position: 'absolute',
14422      right: 0,
14423      top: 0,
14424      width: 14
14425    }),
14426    buttonSkip: _objectSpread2({}, buttonBase, {
14427      color: options.textColor,
14428      fontSize: 14
14429    }),
14430    overlay: _objectSpread2({}, overlay, {
14431      backgroundColor: options.overlayColor,
14432      mixBlendMode: 'hard-light'
14433    }),
14434    overlayLegacy: _objectSpread2({}, overlay),
14435    overlayLegacyCenter: _objectSpread2({}, overlay, {
14436      backgroundColor: options.overlayColor
14437    }),
14438    spotlight: _objectSpread2({}, spotlight, {
14439      backgroundColor: 'gray'
14440    }),
14441    spotlightLegacy: _objectSpread2({}, spotlight, {
14442      boxShadow: "0 0 0 9999px ".concat(options.overlayColor, ", ").concat(options.spotlightShadow)
14443    }),
14444    floaterStyles: {
14445      arrow: {
14446        color: options.arrowColor
14447      },
14448      options: {
14449        zIndex: options.zIndex
14450      }
14451    },
14452    options: options
14453  };
14454  return deepmerge__WEBPACK_IMPORTED_MODULE_9___default()(defaultStyles, stepStyles);
14455}
14456
14457var DEFAULTS = {
14458  floaterProps: {
14459    options: {
14460      preventOverflow: {
14461        boundariesElement: 'scrollParent'
14462      }
14463    },
14464    wrapperOptions: {
14465      offset: -18,
14466      position: true
14467    }
14468  },
14469  locale: {
14470    back: 'Back',
14471    close: 'Close',
14472    last: 'Last',
14473    next: 'Next',
14474    open: 'Open the dialog',
14475    skip: 'Skip'
14476  },
14477  step: {
14478    event: 'click',
14479    placement: 'bottom',
14480    offset: 10
14481  }
14482};
14483
14484function getTourProps(props) {
14485  var sharedTourProps = ['beaconComponent', 'disableCloseOnEsc', 'disableOverlay', 'disableOverlayClose', 'disableScrolling', 'disableScrollParentFix', 'floaterProps', 'hideBackButton', 'locale', 'showProgress', 'showSkipButton', 'spotlightClicks', 'spotlightPadding', 'styles', 'tooltipComponent'];
14486  return Object.keys(props).filter(function (d) {
14487    return sharedTourProps.indexOf(d) !== -1;
14488  }).reduce(function (acc, i) {
14489    acc[i] = props[i]; //eslint-disable-line react/destructuring-assignment
14490
14491    return acc;
14492  }, {});
14493}
14494
14495function getMergedStep(step, props) {
14496  if (!step) return null;
14497  var mergedStep = deepmerge__WEBPACK_IMPORTED_MODULE_9___default.a.all([getTourProps(props), DEFAULTS.step, step], {
14498    isMergeableObject: is_lite__WEBPACK_IMPORTED_MODULE_3___default.a.plainObject
14499  });
14500  var mergedStyles = getStyles(deepmerge__WEBPACK_IMPORTED_MODULE_9___default()(props.styles || {}, step.styles || {}));
14501  var scrollParent = hasCustomScrollParent(getElement(step.target), mergedStep.disableScrollParentFix);
14502  var floaterProps = deepmerge__WEBPACK_IMPORTED_MODULE_9___default.a.all([props.floaterProps || {}, DEFAULTS.floaterProps, mergedStep.floaterProps || {}]); // Set react-floater props
14503
14504  floaterProps.offset = mergedStep.offset;
14505  floaterProps.styles = deepmerge__WEBPACK_IMPORTED_MODULE_9___default()(floaterProps.styles || {}, mergedStyles.floaterStyles || {});
14506  delete mergedStyles.floaterStyles;
14507  floaterProps.offset += props.spotlightPadding || step.spotlightPadding;
14508
14509  if (step.placementBeacon) {
14510    floaterProps.wrapperOptions.placement = step.placementBeacon;
14511  }
14512
14513  if (scrollParent) {
14514    floaterProps.options.preventOverflow.boundariesElement = 'window';
14515  }
14516
14517  return _objectSpread2({}, mergedStep, {
14518    locale: deepmerge__WEBPACK_IMPORTED_MODULE_9___default.a.all([DEFAULTS.locale, props.locale || {}, mergedStep.locale || {}]),
14519    floaterProps: floaterProps,
14520    styles: mergedStyles
14521  });
14522}
14523/**
14524 * Validate if a step is valid
14525 *
14526 * @param {Object} step - A step object
14527 * @param {boolean} debug
14528 *
14529 * @returns {boolean} - True if the step is valid, false otherwise
14530 */
14531
14532function validateStep(step) {
14533  var debug = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
14534
14535  if (!is_lite__WEBPACK_IMPORTED_MODULE_3___default.a.plainObject(step)) {
14536    log({
14537      title: 'validateStep',
14538      data: 'step must be an object',
14539      warn: true,
14540      debug: debug
14541    });
14542    return false;
14543  }
14544
14545  if (!step.target) {
14546    log({
14547      title: 'validateStep',
14548      data: 'target is missing from the step',
14549      warn: true,
14550      debug: debug
14551    });
14552    return false;
14553  }
14554
14555  return true;
14556}
14557/**
14558 * Validate if steps is valid
14559 *
14560 * @param {Array} steps - A steps array
14561 * @param {boolean} debug
14562 *
14563 * @returns {boolean} - True if the steps are valid, false otherwise
14564 */
14565
14566function validateSteps(steps) {
14567  var debug = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
14568
14569  if (!is_lite__WEBPACK_IMPORTED_MODULE_3___default.a.array(steps)) {
14570    log({
14571      title: 'validateSteps',
14572      data: 'steps must be an array',
14573      warn: true,
14574      debug: debug
14575    });
14576    return false;
14577  }
14578
14579  return steps.every(function (d) {
14580    return validateStep(d, debug);
14581  });
14582}
14583
14584var Scope = function Scope(_element) {
14585  var _this = this;
14586
14587  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
14588
14589  _classCallCheck(this, Scope);
14590
14591  _defineProperty(this, "element", void 0);
14592
14593  _defineProperty(this, "options", void 0);
14594
14595  _defineProperty(this, "canBeTabbed", function (element) {
14596    var tabIndex = element.tabIndex;
14597    if (tabIndex === null || tabIndex < 0) tabIndex = undefined;
14598    var isTabIndexNaN = isNaN(tabIndex);
14599    return !isTabIndexNaN && _this.canHaveFocus(element, true);
14600  });
14601
14602  _defineProperty(this, "canHaveFocus", function (element, isTabIndexNotNaN) {
14603    var validTabNodes = /input|select|textarea|button|object/;
14604    var nodeName = element.nodeName.toLowerCase();
14605    var res = validTabNodes.test(nodeName) && !element.getAttribute('disabled') || (nodeName === 'a' ? element.getAttribute('href') || isTabIndexNotNaN : isTabIndexNotNaN);
14606    return res && _this.isVisible(element);
14607  });
14608
14609  _defineProperty(this, "findValidTabElements", function () {
14610    return [].slice.call(_this.element.querySelectorAll('*'), 0).filter(_this.canBeTabbed);
14611  });
14612
14613  _defineProperty(this, "handleKeyDown", function (e) {
14614    var _this$options$keyCode = _this.options.keyCode,
14615        keyCode = _this$options$keyCode === void 0 ? 9 : _this$options$keyCode;
14616    /* istanbul ignore else */
14617
14618    if (e.keyCode === keyCode) {
14619      _this.interceptTab(e);
14620    }
14621  });
14622
14623  _defineProperty(this, "interceptTab", function (event) {
14624    event.preventDefault();
14625
14626    var elements = _this.findValidTabElements();
14627
14628    var shiftKey = event.shiftKey;
14629
14630    if (!elements.length) {
14631      return;
14632    }
14633
14634    var x = elements.indexOf(document.activeElement);
14635
14636    if (x === -1 || !shiftKey && x + 1 === elements.length) {
14637      x = 0;
14638    } else if (shiftKey && x === 0) {
14639      x = elements.length - 1;
14640    } else {
14641      x += shiftKey ? -1 : 1;
14642    }
14643
14644    elements[x].focus();
14645  });
14646
14647  _defineProperty(this, "isHidden", function (element) {
14648    var noSize = element.offsetWidth <= 0 && element.offsetHeight <= 0;
14649    var style = window.getComputedStyle(element);
14650    if (noSize && !element.innerHTML) return true;
14651    return noSize && style.getPropertyValue('overflow') !== 'visible' || style.getPropertyValue('display') === 'none';
14652  });
14653
14654  _defineProperty(this, "isVisible", function (element) {
14655    var parentElement = element;
14656
14657    while (parentElement) {
14658      /* istanbul ignore else */
14659      if (parentElement instanceof HTMLElement) {
14660        if (parentElement === document.body) break;
14661        /* istanbul ignore else */
14662
14663        if (_this.isHidden(parentElement)) return false;
14664        parentElement = parentElement.parentNode;
14665      }
14666    }
14667
14668    return true;
14669  });
14670
14671  _defineProperty(this, "removeScope", function () {
14672    window.removeEventListener('keydown', _this.handleKeyDown);
14673  });
14674
14675  _defineProperty(this, "checkFocus", function (target) {
14676    if (document.activeElement !== target) {
14677      target.focus();
14678      window.requestAnimationFrame(function () {
14679        return _this.checkFocus(target);
14680      });
14681    }
14682  });
14683
14684  _defineProperty(this, "setFocus", function () {
14685    var selector = _this.options.selector;
14686    if (!selector) return;
14687
14688    var target = _this.element.querySelector(selector);
14689    /* istanbul ignore else */
14690
14691
14692    if (target) {
14693      window.requestAnimationFrame(function () {
14694        return _this.checkFocus(target);
14695      });
14696    }
14697  });
14698
14699  if (!(_element instanceof HTMLElement)) {
14700    throw new TypeError('Invalid parameter: element must be an HTMLElement');
14701  }
14702
14703  this.element = _element;
14704  this.options = options;
14705  window.addEventListener('keydown', this.handleKeyDown, false);
14706  this.setFocus();
14707};
14708
14709var JoyrideBeacon =
14710/*#__PURE__*/
14711function (_React$Component) {
14712  _inherits(JoyrideBeacon, _React$Component);
14713
14714  function JoyrideBeacon(props) {
14715    var _this;
14716
14717    _classCallCheck(this, JoyrideBeacon);
14718
14719    _this = _possibleConstructorReturn(this, _getPrototypeOf(JoyrideBeacon).call(this, props));
14720
14721    _defineProperty(_assertThisInitialized(_this), "setBeaconRef", function (c) {
14722      _this.beacon = c;
14723    });
14724
14725    if (!props.beaconComponent) {
14726      var head = document.head || document.getElementsByTagName('head')[0];
14727      var style = document.createElement('style');
14728      var css = "\n        @keyframes joyride-beacon-inner {\n          20% {\n            opacity: 0.9;\n          }\n        \n          90% {\n            opacity: 0.7;\n          }\n        }\n        \n        @keyframes joyride-beacon-outer {\n          0% {\n            transform: scale(1);\n          }\n        \n          45% {\n            opacity: 0.7;\n            transform: scale(0.75);\n          }\n        \n          100% {\n            opacity: 0.9;\n            transform: scale(1);\n          }\n        }\n      ";
14729      style.type = 'text/css';
14730      style.id = 'joyride-beacon-animation';
14731      style.appendChild(document.createTextNode(css));
14732      head.appendChild(style);
14733    }
14734
14735    return _this;
14736  }
14737
14738  _createClass(JoyrideBeacon, [{
14739    key: "componentDidMount",
14740    value: function componentDidMount() {
14741      var _this2 = this;
14742
14743      var shouldFocus = this.props.shouldFocus;
14744
14745      setTimeout(function () {
14746        if (is_lite__WEBPACK_IMPORTED_MODULE_3___default.a.domElement(_this2.beacon) && shouldFocus) {
14747          _this2.beacon.focus();
14748        }
14749      }, 0);
14750    }
14751  }, {
14752    key: "componentWillUnmount",
14753    value: function componentWillUnmount() {
14754      var style = document.getElementById('joyride-beacon-animation');
14755
14756      if (style) {
14757        style.parentNode.removeChild(style);
14758      }
14759    }
14760  }, {
14761    key: "render",
14762    value: function render() {
14763      var _this$props = this.props,
14764          beaconComponent = _this$props.beaconComponent,
14765          locale = _this$props.locale,
14766          onClickOrHover = _this$props.onClickOrHover,
14767          styles = _this$props.styles;
14768      var props = {
14769        'aria-label': locale.open,
14770        onClick: onClickOrHover,
14771        onMouseEnter: onClickOrHover,
14772        ref: this.setBeaconRef,
14773        title: locale.open
14774      };
14775      var component;
14776
14777      if (beaconComponent) {
14778        var BeaconComponent = beaconComponent;
14779        component = react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(BeaconComponent, props);
14780      } else {
14781        component = react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("button", _extends({
14782          key: "JoyrideBeacon",
14783          className: "react-joyride__beacon",
14784          style: styles.beacon,
14785          type: "button"
14786        }, props), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("span", {
14787          style: styles.beaconInner
14788        }), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("span", {
14789          style: styles.beaconOuter
14790        }));
14791      }
14792
14793      return component;
14794    }
14795  }]);
14796
14797  return JoyrideBeacon;
14798}(react__WEBPACK_IMPORTED_MODULE_0___default.a.Component);
14799
14800var JoyrideSpotlight = function JoyrideSpotlight(_ref) {
14801  var styles = _ref.styles;
14802  return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {
14803    key: "JoyrideSpotlight",
14804    className: "react-joyride__spotlight",
14805    style: styles
14806  });
14807};
14808
14809var JoyrideOverlay =
14810/*#__PURE__*/
14811function (_React$Component) {
14812  _inherits(JoyrideOverlay, _React$Component);
14813
14814  function JoyrideOverlay() {
14815    var _getPrototypeOf2;
14816
14817    var _this;
14818
14819    _classCallCheck(this, JoyrideOverlay);
14820
14821    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
14822      args[_key] = arguments[_key];
14823    }
14824
14825    _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(JoyrideOverlay)).call.apply(_getPrototypeOf2, [this].concat(args)));
14826
14827    _defineProperty(_assertThisInitialized(_this), "_isMounted", false);
14828
14829    _defineProperty(_assertThisInitialized(_this), "state", {
14830      mouseOverSpotlight: false,
14831      isScrolling: false,
14832      showSpotlight: true
14833    });
14834
14835    _defineProperty(_assertThisInitialized(_this), "handleMouseMove", function (e) {
14836      var mouseOverSpotlight = _this.state.mouseOverSpotlight;
14837      var _this$spotlightStyles = _this.spotlightStyles,
14838          height = _this$spotlightStyles.height,
14839          left = _this$spotlightStyles.left,
14840          position = _this$spotlightStyles.position,
14841          top = _this$spotlightStyles.top,
14842          width = _this$spotlightStyles.width;
14843      var offsetY = position === 'fixed' ? e.clientY : e.pageY;
14844      var offsetX = position === 'fixed' ? e.clientX : e.pageX;
14845      var inSpotlightHeight = offsetY >= top && offsetY <= top + height;
14846      var inSpotlightWidth = offsetX >= left && offsetX <= left + width;
14847      var inSpotlight = inSpotlightWidth && inSpotlightHeight;
14848
14849      if (inSpotlight !== mouseOverSpotlight) {
14850        _this.updateState({
14851          mouseOverSpotlight: inSpotlight
14852        });
14853      }
14854    });
14855
14856    _defineProperty(_assertThisInitialized(_this), "handleScroll", function () {
14857      var target = _this.props.target;
14858      var element = getElement(target);
14859
14860      if (_this.scrollParent !== document) {
14861        var isScrolling = _this.state.isScrolling;
14862
14863        if (!isScrolling) {
14864          _this.updateState({
14865            isScrolling: true,
14866            showSpotlight: false
14867          });
14868        }
14869
14870        clearTimeout(_this.scrollTimeout);
14871        _this.scrollTimeout = setTimeout(function () {
14872          _this.updateState({
14873            isScrolling: false,
14874            showSpotlight: true
14875          });
14876        }, 50);
14877      } else if (hasPosition(element, 'sticky')) {
14878        _this.updateState({});
14879      }
14880    });
14881
14882    _defineProperty(_assertThisInitialized(_this), "handleResize", function () {
14883      clearTimeout(_this.resizeTimeout);
14884      _this.resizeTimeout = setTimeout(function () {
14885        if (!_this._isMounted) {
14886          return;
14887        }
14888
14889        _this.forceUpdate();
14890      }, 100);
14891    });
14892
14893    return _this;
14894  }
14895
14896  _createClass(JoyrideOverlay, [{
14897    key: "componentDidMount",
14898    value: function componentDidMount() {
14899      var _this$props = this.props,
14900          debug = _this$props.debug,
14901          disableScrolling = _this$props.disableScrolling,
14902          disableScrollParentFix = _this$props.disableScrollParentFix,
14903          target = _this$props.target;
14904      var element = getElement(target);
14905      this.scrollParent = getScrollParent(element, disableScrollParentFix, true);
14906      this._isMounted = true;
14907
14908      window.addEventListener('resize', this.handleResize);
14909    }
14910  }, {
14911    key: "componentDidUpdate",
14912    value: function componentDidUpdate(prevProps) {
14913      var _this2 = this;
14914
14915      var _this$props2 = this.props,
14916          lifecycle = _this$props2.lifecycle,
14917          spotlightClicks = _this$props2.spotlightClicks;
14918
14919      var _treeChanges = tree_changes__WEBPACK_IMPORTED_MODULE_2___default()(prevProps, this.props),
14920          changed = _treeChanges.changed,
14921          changedTo = _treeChanges.changedTo;
14922      /* istanbul ignore else */
14923
14924
14925      if (changedTo('lifecycle', LIFECYCLE.TOOLTIP)) {
14926        this.scrollParent.addEventListener('scroll', this.handleScroll, {
14927          passive: true
14928        });
14929        setTimeout(function () {
14930          var isScrolling = _this2.state.isScrolling;
14931
14932          if (!isScrolling) {
14933            _this2.updateState({
14934              showSpotlight: true
14935            });
14936          }
14937        }, 100);
14938      }
14939
14940      if (changed('spotlightClicks') || changed('disableOverlay') || changed('lifecycle')) {
14941        if (spotlightClicks && lifecycle === LIFECYCLE.TOOLTIP) {
14942          window.addEventListener('mousemove', this.handleMouseMove, false);
14943        } else if (lifecycle !== LIFECYCLE.TOOLTIP) {
14944          window.removeEventListener('mousemove', this.handleMouseMove);
14945        }
14946      }
14947    }
14948  }, {
14949    key: "componentWillUnmount",
14950    value: function componentWillUnmount() {
14951      this._isMounted = false;
14952      window.removeEventListener('mousemove', this.handleMouseMove);
14953      window.removeEventListener('resize', this.handleResize);
14954      clearTimeout(this.resizeTimeout);
14955      clearTimeout(this.scrollTimeout);
14956      this.scrollParent.removeEventListener('scroll', this.handleScroll);
14957    }
14958  }, {
14959    key: "updateState",
14960    value: function updateState(state) {
14961      if (!this._isMounted) {
14962        return;
14963      }
14964
14965      this.setState(state);
14966    }
14967  }, {
14968    key: "render",
14969    value: function render() {
14970      var _this$state = this.state,
14971          mouseOverSpotlight = _this$state.mouseOverSpotlight,
14972          showSpotlight = _this$state.showSpotlight;
14973      var _this$props3 = this.props,
14974          disableOverlay = _this$props3.disableOverlay,
14975          lifecycle = _this$props3.lifecycle,
14976          onClickOverlay = _this$props3.onClickOverlay,
14977          placement = _this$props3.placement,
14978          styles = _this$props3.styles;
14979
14980      if (disableOverlay || lifecycle !== LIFECYCLE.TOOLTIP) {
14981        return null;
14982      }
14983
14984      var baseStyles = styles.overlay;
14985      /* istanbul ignore else */
14986
14987      if (isLegacy()) {
14988        baseStyles = placement === 'center' ? styles.overlayLegacyCenter : styles.overlayLegacy;
14989      }
14990
14991      var stylesOverlay = _objectSpread2({
14992        cursor: 'pointer',
14993        height: getDocumentHeight(),
14994        pointerEvents: mouseOverSpotlight ? 'none' : 'auto'
14995      }, baseStyles);
14996
14997      var spotlight = placement !== 'center' && showSpotlight && react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(JoyrideSpotlight, {
14998        styles: this.spotlightStyles
14999      }); // Hack for Safari bug with mix-blend-mode with z-index
15000
15001      if (getBrowser() === 'safari') {
15002        var mixBlendMode = stylesOverlay.mixBlendMode,
15003            zIndex = stylesOverlay.zIndex,
15004            safarOverlay = _objectWithoutProperties(stylesOverlay, ["mixBlendMode", "zIndex"]);
15005
15006        spotlight = react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {
15007          style: _objectSpread2({}, safarOverlay)
15008        }, spotlight);
15009        delete stylesOverlay.backgroundColor;
15010      }
15011
15012      return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {
15013        className: "react-joyride__overlay",
15014        style: stylesOverlay,
15015        onClick: onClickOverlay
15016      }, spotlight);
15017    }
15018  }, {
15019    key: "spotlightStyles",
15020    get: function get() {
15021      var showSpotlight = this.state.showSpotlight;
15022      var _this$props4 = this.props,
15023          disableScrollParentFix = _this$props4.disableScrollParentFix,
15024          spotlightClicks = _this$props4.spotlightClicks,
15025          spotlightPadding = _this$props4.spotlightPadding,
15026          styles = _this$props4.styles,
15027          target = _this$props4.target;
15028      var element = getElement(target);
15029      var elementRect = getClientRect(element);
15030      var isFixedTarget = hasPosition(element);
15031      var top = getElementPosition(element, spotlightPadding, disableScrollParentFix);
15032      return _objectSpread2({}, isLegacy() ? styles.spotlightLegacy : styles.spotlight, {
15033        height: Math.round(elementRect.height + spotlightPadding * 2),
15034        left: Math.round(elementRect.left - spotlightPadding),
15035        opacity: showSpotlight ? 1 : 0,
15036        pointerEvents: spotlightClicks ? 'none' : 'auto',
15037        position: isFixedTarget ? 'fixed' : 'absolute',
15038        top: top,
15039        transition: 'opacity 0.2s',
15040        width: Math.round(elementRect.width + spotlightPadding * 2)
15041      });
15042    }
15043  }]);
15044
15045  return JoyrideOverlay;
15046}(react__WEBPACK_IMPORTED_MODULE_0___default.a.Component);
15047
15048var JoyrideTooltipCloseBtn = function JoyrideTooltipCloseBtn(_ref) {
15049  var styles = _ref.styles,
15050      props = _objectWithoutProperties(_ref, ["styles"]);
15051
15052  var color = styles.color,
15053      height = styles.height,
15054      width = styles.width,
15055      style = _objectWithoutProperties(styles, ["color", "height", "width"]);
15056
15057  return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("button", _extends({
15058    style: style,
15059    type: "button"
15060  }, props), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("svg", {
15061    width: typeof width === 'number' ? "".concat(width, "px") : width,
15062    height: typeof height === 'number' ? "".concat(height, "px") : height,
15063    viewBox: "0 0 18 18",
15064    version: "1.1",
15065    xmlns: "http://www.w3.org/2000/svg",
15066    preserveAspectRatio: "xMidYMid"
15067  }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("g", null, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
15068    d: "M8.13911129,9.00268191 L0.171521827,17.0258467 C-0.0498027049,17.248715 -0.0498027049,17.6098394 0.171521827,17.8327545 C0.28204354,17.9443526 0.427188206,17.9998706 0.572051765,17.9998706 C0.71714958,17.9998706 0.862013139,17.9443526 0.972581703,17.8327545 L9.0000937,9.74924618 L17.0276057,17.8327545 C17.1384085,17.9443526 17.2832721,17.9998706 17.4281356,17.9998706 C17.5729992,17.9998706 17.718097,17.9443526 17.8286656,17.8327545 C18.0499901,17.6098862 18.0499901,17.2487618 17.8286656,17.0258467 L9.86135722,9.00268191 L17.8340066,0.973848225 C18.0553311,0.750979934 18.0553311,0.389855532 17.8340066,0.16694039 C17.6126821,-0.0556467968 17.254037,-0.0556467968 17.0329467,0.16694039 L9.00042166,8.25611765 L0.967006424,0.167268345 C0.745681892,-0.0553188426 0.387317931,-0.0553188426 0.165993399,0.167268345 C-0.0553311331,0.390136635 -0.0553311331,0.751261038 0.165993399,0.974176179 L8.13920499,9.00268191 L8.13911129,9.00268191 Z",
15069    fill: color
15070  }))));
15071};
15072
15073var JoyrideTooltipContainer =
15074/*#__PURE__*/
15075function (_React$Component) {
15076  _inherits(JoyrideTooltipContainer, _React$Component);
15077
15078  function JoyrideTooltipContainer() {
15079    _classCallCheck(this, JoyrideTooltipContainer);
15080
15081    return _possibleConstructorReturn(this, _getPrototypeOf(JoyrideTooltipContainer).apply(this, arguments));
15082  }
15083
15084  _createClass(JoyrideTooltipContainer, [{
15085    key: "render",
15086    value: function render() {
15087      var _this$props = this.props,
15088          backProps = _this$props.backProps,
15089          closeProps = _this$props.closeProps,
15090          continuous = _this$props.continuous,
15091          index = _this$props.index,
15092          isLastStep = _this$props.isLastStep,
15093          primaryProps = _this$props.primaryProps,
15094          size = _this$props.size,
15095          skipProps = _this$props.skipProps,
15096          step = _this$props.step,
15097          tooltipProps = _this$props.tooltipProps;
15098      var content = step.content,
15099          hideBackButton = step.hideBackButton,
15100          hideCloseButton = step.hideCloseButton,
15101          hideFooter = step.hideFooter,
15102          showProgress = step.showProgress,
15103          showSkipButton = step.showSkipButton,
15104          title = step.title,
15105          styles = step.styles;
15106      var _step$locale = step.locale,
15107          back = _step$locale.back,
15108          close = _step$locale.close,
15109          last = _step$locale.last,
15110          next = _step$locale.next,
15111          skip = _step$locale.skip;
15112      var output = {
15113        primary: close
15114      };
15115
15116      if (continuous) {
15117        output.primary = isLastStep ? last : next;
15118
15119        if (showProgress) {
15120          output.primary = react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("span", null, output.primary, " (", index + 1, "/", size, ")");
15121        }
15122      }
15123
15124      if (showSkipButton && !isLastStep) {
15125        output.skip = react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("button", _extends({
15126          style: styles.buttonSkip,
15127          type: "button",
15128          "aria-live": "off"
15129        }, skipProps), skip);
15130      }
15131
15132      if (!hideBackButton && index > 0) {
15133        output.back = react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("button", _extends({
15134          style: styles.buttonBack,
15135          type: "button"
15136        }, backProps), back);
15137      }
15138
15139      output.close = !hideCloseButton && react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(JoyrideTooltipCloseBtn, _extends({
15140        styles: styles.buttonClose
15141      }, closeProps));
15142      return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", _extends({
15143        key: "JoyrideTooltip",
15144        className: "react-joyride__tooltip",
15145        style: styles.tooltip
15146      }, tooltipProps), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {
15147        style: styles.tooltipContainer
15148      }, title && react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("h4", {
15149        style: styles.tooltipTitle,
15150        "aria-label": title
15151      }, title), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {
15152        style: styles.tooltipContent
15153      }, content)), !hideFooter && react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {
15154        style: styles.tooltipFooter
15155      }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {
15156        style: styles.tooltipFooterSpacer
15157      }, output.skip), output.back, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("button", _extends({
15158        style: styles.buttonNext,
15159        type: "button"
15160      }, primaryProps), output.primary)), output.close);
15161    }
15162  }]);
15163
15164  return JoyrideTooltipContainer;
15165}(react__WEBPACK_IMPORTED_MODULE_0___default.a.Component);
15166
15167var JoyrideTooltip =
15168/*#__PURE__*/
15169function (_React$Component) {
15170  _inherits(JoyrideTooltip, _React$Component);
15171
15172  function JoyrideTooltip() {
15173    var _getPrototypeOf2;
15174
15175    var _this;
15176
15177    _classCallCheck(this, JoyrideTooltip);
15178
15179    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
15180      args[_key] = arguments[_key];
15181    }
15182
15183    _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(JoyrideTooltip)).call.apply(_getPrototypeOf2, [this].concat(args)));
15184
15185    _defineProperty(_assertThisInitialized(_this), "handleClickBack", function (e) {
15186      e.preventDefault();
15187      var helpers = _this.props.helpers;
15188      helpers.prev();
15189    });
15190
15191    _defineProperty(_assertThisInitialized(_this), "handleClickClose", function (e) {
15192      e.preventDefault();
15193      var helpers = _this.props.helpers;
15194      helpers.close();
15195    });
15196
15197    _defineProperty(_assertThisInitialized(_this), "handleClickPrimary", function (e) {
15198      e.preventDefault();
15199      var _this$props = _this.props,
15200          continuous = _this$props.continuous,
15201          helpers = _this$props.helpers;
15202
15203      if (!continuous) {
15204        helpers.close();
15205        return;
15206      }
15207
15208      helpers.next();
15209    });
15210
15211    _defineProperty(_assertThisInitialized(_this), "handleClickSkip", function (e) {
15212      e.preventDefault();
15213      var helpers = _this.props.helpers;
15214      helpers.skip();
15215    });
15216
15217    _defineProperty(_assertThisInitialized(_this), "getElementsProps", function () {
15218      var _this$props2 = _this.props,
15219          continuous = _this$props2.continuous,
15220          isLastStep = _this$props2.isLastStep,
15221          setTooltipRef = _this$props2.setTooltipRef,
15222          step = _this$props2.step;
15223      var back = getText(step.locale.back);
15224      var close = getText(step.locale.close);
15225      var last = getText(step.locale.last);
15226      var next = getText(step.locale.next);
15227      var skip = getText(step.locale.skip);
15228      var primaryText = continuous ? next : close;
15229
15230      if (isLastStep) {
15231        primaryText = last;
15232      }
15233
15234      return {
15235        backProps: {
15236          'aria-label': back,
15237          'data-action': 'back',
15238          onClick: _this.handleClickBack,
15239          role: 'button',
15240          title: back
15241        },
15242        closeProps: {
15243          'aria-label': close,
15244          'data-action': 'close',
15245          onClick: _this.handleClickClose,
15246          role: 'button',
15247          title: close
15248        },
15249        primaryProps: {
15250          'aria-label': primaryText,
15251          'data-action': 'primary',
15252          onClick: _this.handleClickPrimary,
15253          role: 'button',
15254          title: primaryText
15255        },
15256        skipProps: {
15257          'aria-label': skip,
15258          'data-action': 'skip',
15259          onClick: _this.handleClickSkip,
15260          role: 'button',
15261          title: skip
15262        },
15263        tooltipProps: {
15264          'aria-modal': true,
15265          ref: setTooltipRef,
15266          role: 'alertdialog'
15267        }
15268      };
15269    });
15270
15271    return _this;
15272  }
15273
15274  _createClass(JoyrideTooltip, [{
15275    key: "render",
15276    value: function render() {
15277      var _this$props3 = this.props,
15278          continuous = _this$props3.continuous,
15279          index = _this$props3.index,
15280          isLastStep = _this$props3.isLastStep,
15281          size = _this$props3.size,
15282          step = _this$props3.step;
15283
15284      var beaconComponent = step.beaconComponent,
15285          tooltipComponent = step.tooltipComponent,
15286          cleanStep = _objectWithoutProperties(step, ["beaconComponent", "tooltipComponent"]);
15287
15288      var component;
15289
15290      if (tooltipComponent) {
15291        var renderProps = _objectSpread2({}, this.getElementsProps(), {
15292          continuous: continuous,
15293          index: index,
15294          isLastStep: isLastStep,
15295          size: size,
15296          step: cleanStep
15297        });
15298
15299        var TooltipComponent = tooltipComponent;
15300        component = react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(TooltipComponent, renderProps);
15301      } else {
15302        component = react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(JoyrideTooltipContainer, _extends({}, this.getElementsProps(), {
15303          continuous: continuous,
15304          index: index,
15305          isLastStep: isLastStep,
15306          size: size,
15307          step: step
15308        }));
15309      }
15310
15311      return component;
15312    }
15313  }]);
15314
15315  return JoyrideTooltip;
15316}(react__WEBPACK_IMPORTED_MODULE_0___default.a.Component);
15317
15318var JoyridePortal =
15319/*#__PURE__*/
15320function (_React$Component) {
15321  _inherits(JoyridePortal, _React$Component);
15322
15323  function JoyridePortal(props) {
15324    var _this;
15325
15326    _classCallCheck(this, JoyridePortal);
15327
15328    _this = _possibleConstructorReturn(this, _getPrototypeOf(JoyridePortal).call(this, props));
15329    if (!canUseDOM) return _possibleConstructorReturn(_this);
15330    _this.node = document.createElement('div');
15331    /* istanbul ignore else */
15332
15333    if (props.id) {
15334      _this.node.id = props.id;
15335    }
15336
15337    document.body.appendChild(_this.node);
15338    return _this;
15339  }
15340
15341  _createClass(JoyridePortal, [{
15342    key: "componentDidMount",
15343    value: function componentDidMount() {
15344      if (!canUseDOM) return;
15345
15346      if (!isReact16) {
15347        this.renderReact15();
15348      }
15349    }
15350  }, {
15351    key: "componentDidUpdate",
15352    value: function componentDidUpdate() {
15353      if (!canUseDOM) return;
15354
15355      if (!isReact16) {
15356        this.renderReact15();
15357      }
15358    }
15359  }, {
15360    key: "componentWillUnmount",
15361    value: function componentWillUnmount() {
15362      if (!canUseDOM || !this.node) return;
15363
15364      if (!isReact16) {
15365        react_dom__WEBPACK_IMPORTED_MODULE_4___default.a.unmountComponentAtNode(this.node);
15366      }
15367
15368      document.body.removeChild(this.node);
15369    }
15370  }, {
15371    key: "renderReact15",
15372    value: function renderReact15() {
15373      if (!canUseDOM) return null;
15374      var children = this.props.children;
15375      react_dom__WEBPACK_IMPORTED_MODULE_4___default.a.unstable_renderSubtreeIntoContainer(this, children, this.node);
15376      return null;
15377    }
15378  }, {
15379    key: "renderReact16",
15380    value: function renderReact16() {
15381      if (!canUseDOM || !isReact16) return null;
15382      var children = this.props.children;
15383      return react_dom__WEBPACK_IMPORTED_MODULE_4___default.a.createPortal(children, this.node);
15384    }
15385  }, {
15386    key: "render",
15387    value: function render() {
15388      if (!isReact16) {
15389        return null;
15390      }
15391
15392      return this.renderReact16();
15393    }
15394  }]);
15395
15396  return JoyridePortal;
15397}(react__WEBPACK_IMPORTED_MODULE_0___default.a.Component);
15398
15399var JoyrideStep =
15400/*#__PURE__*/
15401function (_React$Component) {
15402  _inherits(JoyrideStep, _React$Component);
15403
15404  function JoyrideStep() {
15405    var _getPrototypeOf2;
15406
15407    var _this;
15408
15409    _classCallCheck(this, JoyrideStep);
15410
15411    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
15412      args[_key] = arguments[_key];
15413    }
15414
15415    _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(JoyrideStep)).call.apply(_getPrototypeOf2, [this].concat(args)));
15416
15417    _defineProperty(_assertThisInitialized(_this), "scope", {
15418      removeScope: function removeScope() {}
15419    });
15420
15421    _defineProperty(_assertThisInitialized(_this), "handleClickHoverBeacon", function (e) {
15422      var _this$props = _this.props,
15423          step = _this$props.step,
15424          update = _this$props.update;
15425
15426      if (e.type === 'mouseenter' && step.event !== 'hover') {
15427        return;
15428      }
15429
15430      update({
15431        lifecycle: LIFECYCLE.TOOLTIP
15432      });
15433    });
15434
15435    _defineProperty(_assertThisInitialized(_this), "handleClickOverlay", function () {
15436      var _this$props2 = _this.props,
15437          helpers = _this$props2.helpers,
15438          step = _this$props2.step;
15439
15440      if (!step.disableOverlayClose) {
15441        helpers.close();
15442      }
15443    });
15444
15445    _defineProperty(_assertThisInitialized(_this), "setTooltipRef", function (c) {
15446      _this.tooltip = c;
15447    });
15448
15449    _defineProperty(_assertThisInitialized(_this), "setPopper", function (popper, type) {
15450      var _this$props3 = _this.props,
15451          action = _this$props3.action,
15452          setPopper = _this$props3.setPopper,
15453          update = _this$props3.update;
15454
15455      if (type === 'wrapper') {
15456        _this.beaconPopper = popper;
15457      } else {
15458        _this.tooltipPopper = popper;
15459      }
15460
15461      setPopper(popper, type);
15462
15463      if (_this.beaconPopper && _this.tooltipPopper) {
15464        update({
15465          action: action === ACTIONS.CLOSE ? ACTIONS.CLOSE : action,
15466          lifecycle: LIFECYCLE.READY
15467        });
15468      }
15469    });
15470
15471    return _this;
15472  }
15473
15474  _createClass(JoyrideStep, [{
15475    key: "componentDidMount",
15476    value: function componentDidMount() {
15477      var _this$props4 = this.props,
15478          debug = _this$props4.debug,
15479          index = _this$props4.index;
15480      log({
15481        title: "step:".concat(index),
15482        data: [{
15483          key: 'props',
15484          value: this.props
15485        }],
15486        debug: debug
15487      });
15488    }
15489  }, {
15490    key: "componentDidUpdate",
15491    value: function componentDidUpdate(prevProps) {
15492      var _this$props5 = this.props,
15493          action = _this$props5.action,
15494          callback = _this$props5.callback,
15495          continuous = _this$props5.continuous,
15496          controlled = _this$props5.controlled,
15497          debug = _this$props5.debug,
15498          index = _this$props5.index,
15499          lifecycle = _this$props5.lifecycle,
15500          size = _this$props5.size,
15501          status = _this$props5.status,
15502          step = _this$props5.step,
15503          update = _this$props5.update;
15504
15505      var _treeChanges = tree_changes__WEBPACK_IMPORTED_MODULE_2___default()(prevProps, this.props),
15506          changed = _treeChanges.changed,
15507          changedTo = _treeChanges.changedTo,
15508          changedFrom = _treeChanges.changedFrom;
15509
15510      var state = {
15511        action: action,
15512        controlled: controlled,
15513        index: index,
15514        lifecycle: lifecycle,
15515        size: size,
15516        status: status
15517      };
15518      var skipBeacon = continuous && action !== ACTIONS.CLOSE && (index > 0 || action === ACTIONS.PREV);
15519      var hasStoreChanged = changed('action') || changed('index') || changed('lifecycle') || changed('status');
15520      var hasStarted = changedFrom('lifecycle', [LIFECYCLE.TOOLTIP, LIFECYCLE.INIT], LIFECYCLE.INIT);
15521      var isAfterAction = changedTo('action', [ACTIONS.NEXT, ACTIONS.PREV, A
15521CTIONS.SKIP, ACTIONS.CLOSE]);
15522
15523      if (isAfterAction && (hasStarted || controlled)) {
15524        callback(_objectSpread2({}, state, {
15525          index: prevProps.index,
15526          lifecycle: LIFECYCLE.COMPLETE,
15527          step: prevProps.step,
15528          type: EVENTS.STEP_AFTER
15529        }));
15530      } // There's a step to use, but there's no target in the DOM
15531
15532
15533      if (hasStoreChanged && step) {
15534        var element = getElement(step.target);
15535        var elementExists = !!element;
15536        var hasRenderedTarget = elementExists && isElementVisible(element);
15537
15538        if (hasRenderedTarget) {
15539          if (changedFrom('status', STATUS.READY, STATUS.RUNNING) || changedFrom('lifecycle', LIFECYCLE.INIT, LIFECYCLE.READY)) {
15540            callback(_objectSpread2({}, state, {
15541              step: step,
15542              type: EVENTS.STEP_BEFORE
15543            }));
15544          }
15545        } else {
15546          console.warn(elementExists ? 'Target not visible' : 'Target not mounted', step); //eslint-disable-line no-console
15547
15548          callback(_objectSpread2({}, state, {
15549            type: EVENTS.TARGET_NOT_FOUND,
15550            step: step
15551          }));
15552
15553          if (!controlled) {
15554            update({
15555              index: index + ([ACTIONS.PREV].indexOf(action) !== -1 ? -1 : 1)
15556            });
15557          }
15558        }
15559      }
15560
15561      if (changedFrom('lifecycle', LIFECYCLE.INIT, LIFECYCLE.READY)) {
15562        update({
15563          lifecycle: hideBeacon(step) || skipBeacon ? LIFECYCLE.TOOLTIP : LIFECYCLE.BEACON
15564        });
15565      }
15566
15567      if (changed('index')) {
15568        log({
15569          title: "step:".concat(lifecycle),
15570          data: [{
15571            key: 'props',
15572            value: this.props
15573          }],
15574          debug: debug
15575        });
15576      }
15577      /* istanbul ignore else */
15578
15579
15580      if (changedTo('lifecycle', LIFECYCLE.BEACON)) {
15581        callback(_objectSpread2({}, state, {
15582          step: step,
15583          type: EVENTS.BEACON
15584        }));
15585      }
15586
15587      if (changedTo('lifecycle', LIFECYCLE.TOOLTIP)) {
15588        callback(_objectSpread2({}, state, {
15589          step: step,
15590          type: EVENTS.TOOLTIP
15591        }));
15592        this.scope = new Scope(this.tooltip, {
15593          selector: '[data-action=primary]'
15594        });
15595        this.scope.setFocus();
15596      }
15597
15598      if (changedFrom('lifecycle', [LIFECYCLE.TOOLTIP, LIFECYCLE.INIT], LIFECYCLE.INIT)) {
15599        this.scope.removeScope();
15600        delete this.beaconPopper;
15601        delete this.tooltipPopper;
15602      }
15603    }
15604  }, {
15605    key: "componentWillUnmount",
15606    value: function componentWillUnmount() {
15607      this.scope.removeScope();
15608    }
15609    /**
15610     * Beacon click/hover event listener
15611     *
15612     * @param {Event} e
15613     */
15614
15615  }, {
15616    key: "render",
15617    value: function render() {
15618      var _this$props6 = this.props,
15619          continuous = _this$props6.continuous,
15620          debug = _this$props6.debug,
15621          helpers = _this$props6.helpers,
15622          index = _this$props6.index,
15623          lifecycle = _this$props6.lifecycle,
15624          shouldScroll = _this$props6.shouldScroll,
15625          size = _this$props6.size,
15626          step = _this$props6.step;
15627      var target = getElement(step.target);
15628
15629      if (!validateStep(step) || !is_lite__WEBPACK_IMPORTED_MODULE_3___default.a.domElement(target)) {
15630        return null;
15631      }
15632
15633      return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {
15634        key: "JoyrideStep-".concat(index),
15635        className: "react-joyride__step"
15636      }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(JoyridePortal, {
15637        id: "react-joyride-portal"
15638      }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(JoyrideOverlay, _extends({}, step, {
15639        debug: debug,
15640        lifecycle: lifecycle,
15641        onClickOverlay: this.handleClickOverlay
15642      }))), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_floater__WEBPACK_IMPORTED_MODULE_10__[/* default */ "a"], _extends({
15643        component: react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(JoyrideTooltip, {
15644          continuous: continuous,
15645          helpers: helpers,
15646          index: index,
15647          isLastStep: index + 1 === size,
15648          setTooltipRef: this.setTooltipRef,
15649          size: size,
15650          step: step
15651        }),
15652        debug: debug,
15653        getPopper: this.setPopper,
15654        id: "react-joyride-step-".concat(index),
15655        isPositioned: step.isFixed || hasPosition(target),
15656        open: this.open,
15657        placement: step.placement,
15658        target: step.target
15659      }, step.floaterProps), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(JoyrideBeacon, {
15660        beaconComponent: step.beaconComponent,
15661        locale: step.locale,
15662        onClickOrHover: this.handleClickHoverBeacon,
15663        shouldFocus: shouldScroll,
15664        styles: step.styles
15665      })));
15666    }
15667  }, {
15668    key: "open",
15669    get: function get() {
15670      var _this$props7 = this.props,
15671          step = _this$props7.step,
15672          lifecycle = _this$props7.lifecycle;
15673      return !!(hideBeacon(step) || lifecycle === LIFECYCLE.TOOLTIP);
15674    }
15675  }]);
15676
15677  return JoyrideStep;
15678}(react__WEBPACK_IMPORTED_MODULE_0___default.a.Component);
15679
15680var Joyride =
15681/*#__PURE__*/
15682function (_React$Component) {
15683  _inherits(Joyride, _React$Component);
15684
15685  function Joyride(props) {
15686    var _this;
15687
15688    _classCallCheck(this, Joyride);
15689
15690    _this = _possibleConstructorReturn(this, _getPrototypeOf(Joyride).call(this, props));
15691
15692    _defineProperty(_assertThisInitialized(_this), "initStore", function () {
15693      var _this$props = _this.props,
15694          debug = _this$props.debug,
15695          getHelpers = _this$props.getHelpers,
15696          run = _this$props.run,
15697          stepIndex = _this$props.stepIndex;
15698      _this.store = new createStore(_objectSpread2({}, _this.props, {
15699        controlled: run && is_lite__WEBPACK_IMPORTED_MODULE_3___default.a.number(stepIndex)
15700      }));
15701      _this.helpers = _this.store.getHelpers();
15702      var addListener = _this.store.addListener;
15703      log({
15704        title: 'init',
15705        data: [{
15706          key: 'props',
15707          value: _this.props
15708        }, {
15709          key: 'state',
15710          value: _this.state
15711        }],
15712        debug: debug
15713      }); // Sync the store to this component's state.
15714
15715      addListener(_this.syncState);
15716      getHelpers(_this.helpers);
15717      return _this.store.getState();
15718    });
15719
15720    _defineProperty(_assertThisInitialized(_this), "callback", function (data) {
15721      var callback = _this.props.callback;
15722      /* istanbul ignore else */
15723
15724      if (is_lite__WEBPACK_IMPORTED_MODULE_3___default.a["function"](callback)) {
15725        callback(data);
15726      }
15727    });
15728
15729    _defineProperty(_assertThisInitialized(_this), "handleKeyboard", function (e) {
15730      var _this$state = _this.state,
15731          index = _this$state.index,
15732          lifecycle = _this$state.lifecycle;
15733      var steps = _this.props.steps;
15734      var step = steps[index];
15735      var intKey = window.Event ? e.which : e.keyCode;
15736
15737      if (lifecycle === LIFECYCLE.TOOLTIP) {
15738        if (intKey === 27 && step && !step.disableCloseOnEsc) {
15739          _this.store.close();
15740        }
15741      }
15742    });
15743
15744    _defineProperty(_assertThisInitialized(_this), "syncState", function (state) {
15745      _this.setState(state);
15746    });
15747
15748    _defineProperty(_assertThisInitialized(_this), "setPopper", function (popper, type) {
15749      if (type === 'wrapper') {
15750        _this.beaconPopper = popper;
15751      } else {
15752        _this.tooltipPopper = popper;
15753      }
15754    });
15755
15756    _defineProperty(_assertThisInitialized(_this), "shouldScroll", function (disableScrolling, index, scrollToFirstStep, lifecycle, step, target, prevState) {
15757      return !disableScrolling && (index !== 0 || scrollToFirstStep || lifecycle === LIFECYCLE.TOOLTIP) && step.placement !== 'center' && (!step.isFixed || !hasPosition(target)) && // fixed steps don't need to scroll
15758      prevState.lifecycle !== lifecycle && [LIFECYCLE.BEACON, LIFECYCLE.TOOLTIP].indexOf(lifecycle) !== -1;
15759    });
15760
15761    _this.state = _this.initStore();
15762    return _this;
15763  }
15764
15765  _createClass(Joyride, [{
15766    key: "componentDidMount",
15767    value: function componentDidMount() {
15768      if (!canUseDOM) return;
15769      var _this$props2 = this.props,
15770          disableCloseOnEsc = _this$props2.disableCloseOnEsc,
15771          debug = _this$props2.debug,
15772          run = _this$props2.run,
15773          steps = _this$props2.steps;
15774      var start = this.store.start;
15775
15776      if (validateSteps(steps, debug) && run) {
15777        start();
15778      }
15779      /* istanbul ignore else */
15780
15781
15782      if (!disableCloseOnEsc) {
15783        document.body.addEventListener('keydown', this.handleKeyboard, {
15784          passive: true
15785        });
15786      }
15787    }
15788  }, {
15789    key: "componentDidUpdate",
15790    value: function componentDidUpdate(prevProps, prevState) {
15791      if (!canUseDOM) return;
15792      var _this$state2 = this.state,
15793          action = _this$state2.action,
15794          controlled = _this$state2.controlled,
15795          index = _this$state2.index,
15796          lifecycle = _this$state2.lifecycle,
15797          status = _this$state2.status;
15798      var _this$props3 = this.props,
15799          debug = _this$props3.debug,
15800          run = _this$props3.run,
15801          stepIndex = _this$props3.stepIndex,
15802          steps = _this$props3.steps;
15803      var prevSteps = prevProps.steps,
15804          prevStepIndex = prevProps.stepIndex;
15805      var _this$store = this.store,
15806          setSteps = _this$store.setSteps,
15807          reset = _this$store.reset,
15808          start = _this$store.start,
15809          stop = _this$store.stop,
15810          update = _this$store.update;
15811
15812      var _treeChanges = tree_changes__WEBPACK_IMPORTED_MODULE_2___default()(prevProps, this.props),
15813          changedProps = _treeChanges.changed;
15814
15815      var _treeChanges2 = tree_changes__WEBPACK_IMPORTED_MODULE_2___default()(prevState, this.state),
15816          changed = _treeChanges2.changed,
15817          changedFrom = _treeChanges2.changedFrom,
15818          changedTo = _treeChanges2.changedTo;
15819
15820      var step = getMergedStep(steps[index], this.props);
15821      var stepsChanged = !isEqual(prevSteps, steps);
15822      var stepIndexChanged = is_lite__WEBPACK_IMPORTED_MODULE_3___default.a.number(stepIndex) && changedProps('stepIndex');
15823
15824      if (stepsChanged) {
15825        if (validateSteps(steps, debug)) {
15826          setSteps(steps);
15827        } else {
15828          console.warn('Steps are not valid', steps); //eslint-disable-line no-console
15829        }
15830      }
15831      /* istanbul ignore else */
15832
15833
15834      if (changedProps('run')) {
15835        if (run) {
15836          start(stepIndex);
15837        } else {
15838          stop();
15839        }
15840      }
15841      /* istanbul ignore else */
15842
15843
15844      if (stepIndexChanged) {
15845        var nextAction = prevStepIndex < stepIndex ? ACTIONS.NEXT : ACTIONS.PREV;
15846
15847        if (action === ACTIONS.STOP) {
15848          nextAction = ACTIONS.START;
15849        }
15850
15851        if (!([STATUS.FINISHED, STATUS.SKIPPED].indexOf(status) !== -1)) {
15852          update({
15853            action: action === ACTIONS.CLOSE ? ACTIONS.CLOSE : nextAction,
15854            index: stepIndex,
15855            lifecycle: LIFECYCLE.INIT
15856          });
15857        }
15858      }
15859
15860      var callbackData = _objectSpread2({}, this.state, {
15861        index: index,
15862        step: step
15863      });
15864
15865      var isAfterAction = changedTo('action', [ACTIONS.NEXT, ACTIONS.PREV, ACTIONS.SKIP, ACTIONS.CLOSE]);
15866
15867      if (isAfterAction && changedTo('status', STATUS.PAUSED)) {
15868        var prevStep = getMergedStep(steps[prevState.index], this.props);
15869        this.callback(_objectSpread2({}, callbackData, {
15870          index: prevState.index,
15871          lifecycle: LIFECYCLE.COMPLETE,
15872          step: prevStep,
15873          type: EVENTS.STEP_AFTER
15874        }));
15875      }
15876
15877      if (changedTo('status', [STATUS.FINISHED, STATUS.SKIPPED])) {
15878        var _prevStep = getMergedStep(steps[prevState.index], this.props);
15879
15880        if (!controlled) {
15881          this.callback(_objectSpread2({}, callbackData, {
15882            index: prevState.index,
15883            lifecycle: LIFECYCLE.COMPLETE,
15884            step: _prevStep,
15885            type: EVENTS.STEP_AFTER
15886          }));
15887        }
15888
15889        this.callback(_objectSpread2({}, callbackData, {
15890          type: EVENTS.TOUR_END,
15891          // Return the last step when the tour is finished
15892          step: _prevStep,
15893          index: prevState.index
15894        }));
15895        reset();
15896      } else if (changedFrom('status', [STATUS.IDLE, STATUS.READY], STATUS.RUNNING)) {
15897        this.callback(_objectSpread2({}, callbackData, {
15898          type: EVENTS.TOUR_START
15899        }));
15900      } else if (changed('status')) {
15901        this.callback(_objectSpread2({}, callbackData, {
15902          type: EVENTS.TOUR_STATUS
15903        }));
15904      } else if (changedTo('action', ACTIONS.RESET)) {
15905        this.callback(_objectSpread2({}, callbackData, {
15906          type: EVENTS.TOUR_STATUS
15907        }));
15908      }
15909
15910      if (step) {
15911        this.scrollToStep(prevState);
15912
15913        if (step.placement === 'center' && status === STATUS.RUNNING && lifecycle === LIFECYCLE.INIT) {
15914          this.store.update({
15915            lifecycle: LIFECYCLE.READY
15916          });
15917        }
15918      }
15919    }
15920  }, {
15921    key: "componentWillUnmount",
15922    value: function componentWillUnmount() {
15923      var disableCloseOnEsc = this.props.disableCloseOnEsc;
15924      /* istanbul ignore else */
15925
15926      if (!disableCloseOnEsc) {
15927        document.body.removeEventListener('keydown', this.handleKeyboard);
15928      }
15929    }
15930  }, {
15931    key: "scrollToStep",
15932    value: function scrollToStep(prevState) {
15933      var _this$state3 = this.state,
15934          index = _this$state3.index,
15935          lifecycle = _this$state3.lifecycle,
15936          status = _this$state3.status;
15937      var _this$props4 = this.props,
15938          debug = _this$props4.debug,
15939          disableScrolling = _this$props4.disableScrolling,
15940          disableScrollParentFix = _this$props4.disableScrollParentFix,
15941          scrollToFirstStep = _this$props4.scrollToFirstStep,
15942          scrollOffset = _this$props4.scrollOffset,
15943          scrollDuration = _this$props4.scrollDuration,
15944          steps = _this$props4.steps;
15945      var step = getMergedStep(steps[index], this.props);
15946      /* istanbul ignore else */
15947
15948      if (step) {
15949        var target = getElement(step.target);
15950        var shouldScroll = this.shouldScroll(disableScrolling, index, scrollToFirstStep, lifecycle, step, target, prevState);
15951
15952        if (status === STATUS.RUNNING && shouldScroll) {
15953          var hasCustomScroll = hasCustomScrollParent(target, disableScrollParentFix);
15954          var scrollParent = getScrollParent(target, disableScrollParentFix);
15955          var scrollY = Math.floor(getScrollTo(target, scrollOffset, disableScrollParentFix)) || 0;
15956          log({
15957            title: 'scrollToStep',
15958            data: [{
15959              key: 'index',
15960              value: index
15961            }, {
15962              key: 'lifecycle',
15963              value: lifecycle
15964            }, {
15965              key: 'status',
15966              value: status
15967            }],
15968            debug: debug
15969          });
15970          /* istanbul ignore else */
15971
15972          if (lifecycle === LIFECYCLE.BEACON && this.beaconPopper) {
15973            var _this$beaconPopper = this.beaconPopper,
15974                placement = _this$beaconPopper.placement,
15975                popper = _this$beaconPopper.popper;
15976            /* istanbul ignore else */
15977
15978            if (!(['bottom'].indexOf(placement) !== -1) && !hasCustomScroll) {
15979              scrollY = Math.floor(popper.top - scrollOffset);
15980            }
15981          } else if (lifecycle === LIFECYCLE.TOOLTIP && this.tooltipPopper) {
15982            var _this$tooltipPopper = this.tooltipPopper,
15983                flipped = _this$tooltipPopper.flipped,
15984                _placement = _this$tooltipPopper.placement,
15985                _popper = _this$tooltipPopper.popper;
15986
15987            if (['top', 'right', 'left'].indexOf(_placement) !== -1 && !flipped && !hasCustomScroll) {
15988              scrollY = Math.floor(_popper.top - scrollOffset);
15989            } else {
15990              scrollY -= step.spotlightPadding;
15991            }
15992          }
15993
15994          scrollY = scrollY >= 0 ? scrollY : 0;
15995          /* istanbul ignore else */
15996
15997          if (status === STATUS.RUNNING) {
15998            scrollTo(scrollY, scrollParent, scrollDuration);
15999          }
16000        }
16001      }
16002    }
16003    /**
16004     * Trigger the callback.
16005     *
16006     * @private
16007     * @param {Object} data
16008     */
16009
16010  }, {
16011    key: "render",
16012    value: function render() {
16013      if (!canUseDOM) return null;
16014      var _this$state4 = this.state,
16015          index = _this$state4.index,
16016          status = _this$state4.status;
16017      var _this$props5 = this.props,
16018          continuous = _this$props5.continuous,
16019          debug = _this$props5.debug,
16020          disableScrolling = _this$props5.disableScrolling,
16021          scrollToFirstStep = _this$props5.scrollToFirstStep,
16022          steps = _this$props5.steps;
16023      var step = getMergedStep(steps[index], this.props);
16024      var output;
16025
16026      if (status === STATUS.RUNNING && step) {
16027        output = react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(JoyrideStep, _extends({}, this.state, {
16028          callback: this.callback,
16029          continuous: continuous,
16030          debug: debug,
16031          setPopper: this.setPopper,
16032          helpers: this.helpers,
16033          shouldScroll: !disableScrolling && (index !== 0 || scrollToFirstStep),
16034          step: step,
16035          update: this.store.update
16036        }));
16037      }
16038
16039      return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {
16040        className: "react-joyride"
16041      }, output);
16042    }
16043  }]);
16044
16045  return Joyride;
16046}(react__WEBPACK_IMPORTED_MODULE_0___default.a.Component);
16047
16048_defineProperty(Joyride, "defaultProps", {
16049  continuous: false,
16050  debug: false,
16051  disableCloseOnEsc: false,
16052  disableOverlay: false,
16053  disableOverlayClose: false,
16054  disableScrolling: false,
16055  disableScrollParentFix: false,
16056  getHelpers: function getHelpers() {},
16057  hideBackButton: false,
16058  run: true,
16059  scrollOffset: 20,
16060  scrollDuration: 300,
16061  scrollToFirstStep: false,
16062  showSkipButton: false,
16063  showProgress: false,
16064  spotlightClicks: false,
16065  spotlightPadding: 10,
16066  steps: []
16067});
16068
16069/* harmony default export */ __webpack_exports__["default"] = (Joyride);
16070
16071
16072
16073/***/ }),
16074/* 82 */
16075/***/ (function(module, exports, __webpack_require__) {
16076
16077var __WEBPACK_AMD_DEFINE_RESULT__;;(function(root, factory) { // eslint-disable-line no-extra-semi
16078  var deepDiff = factory(root);
16079  // eslint-disable-next-line no-undef
16080  if (true) {
16081      // AMD
16082      !(__WEBPACK_AMD_DEFINE_RESULT__ = (function() { // eslint-disable-line no-undef
16083          return deepDiff;
16084      }).call(exports, __webpack_require__, exports, module),
16085				__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
16086  } else { var _deepdiff;
vendor: 14,671 bytes, lines 16086-16590
16086 }
16087}(this, function(root) {
16088  var validKinds = ['N', 'E', 'A', 'D'];
16089
16090  // nodejs compatible on server side and in the browser.
16091  function inherits(ctor, superCtor) {
16092    ctor.super_ = superCtor;
16093    ctor.prototype = Object.create(superCtor.prototype, {
16094      constructor: {
16095        value: ctor,
16096        enumerable: false,
16097        writable: true,
16098        configurable: true
16099      }
16100    });
16101  }
16102
16103  function Diff(kind, path) {
16104    Object.defineProperty(this, 'kind', {
16105      value: kind,
16106      enumerable: true
16107    });
16108    if (path && path.length) {
16109      Object.defineProperty(this, 'path', {
16110        value: path,
16111        enumerable: true
16112      });
16113    }
16114  }
16115
16116  function DiffEdit(path, origin, value) {
16117    DiffEdit.super_.call(this, 'E', path);
16118    Object.defineProperty(this, 'lhs', {
16119      value: origin,
16120      enumerable: true
16121    });
16122    Object.defineProperty(this, 'rhs', {
16123      value: value,
16124      enumerable: true
16125    });
16126  }
16127  inherits(DiffEdit, Diff);
16128
16129  function DiffNew(path, value) {
16130    DiffNew.super_.call(this, 'N', path);
16131    Object.defineProperty(this, 'rhs', {
16132      value: value,
16133      enumerable: true
16134    });
16135  }
16136  inherits(DiffNew, Diff);
16137
16138  function DiffDeleted(path, value) {
16139    DiffDeleted.super_.call(this, 'D', path);
16140    Object.defineProperty(this, 'lhs', {
16141      value: value,
16142      enumerable: true
16143    });
16144  }
16145  inherits(DiffDeleted, Diff);
16146
16147  function DiffArray(path, index, item) {
16148    DiffArray.super_.call(this, 'A', path);
16149    Object.defineProperty(this, 'index', {
16150      value: index,
16151      enumerable: true
16152    });
16153    Object.defineProperty(this, 'item', {
16154      value: item,
16155      enumerable: true
16156    });
16157  }
16158  inherits(DiffArray, Diff);
16159
16160  function arrayRemove(arr, from, to) {
16161    var rest = arr.slice((to || from) + 1 || arr.length);
16162    arr.length = from < 0 ? arr.length + from : from;
16163    arr.push.apply(arr, rest);
16164    return arr;
16165  }
16166
16167  function realTypeOf(subject) {
16168    var type = typeof subject;
16169    if (type !== 'object') {
16170      return type;
16171    }
16172
16173    if (subject === Math) {
16174      return 'math';
16175    } else if (subject === null) {
16176      return 'null';
16177    } else if (Array.isArray(subject)) {
16178      return 'array';
16179    } else if (Object.prototype.toString.call(subject) === '[object Date]') {
16180      return 'date';
16181    } else if (typeof subject.toString === 'function' && /^\/.*\//.test(subject.toString())) {
16182      return 'regexp';
16183    }
16184    return 'object';
16185  }
16186
16187  // http://werxltd.com/wp/2010/05/13/javascript-implementation-of-javas-string-hashcode-method/
16188  function hashThisString(string) {
16189    var hash = 0;
16190    if (string.length === 0) { return hash; }
16191    for (var i = 0; i < string.length; i++) {
16192      var char = string.charCodeAt(i);
16193      hash = ((hash << 5) - hash) + char;
16194      hash = hash & hash; // Convert to 32bit integer
16195    }
16196    return hash;
16197  }
16198
16199  // Gets a hash of the given object in an array order-independent fashion
16200  // also object key order independent (easier since they can be alphabetized)
16201  function getOrderIndependentHash(object) {
16202    var accum = 0;
16203    var type = realTypeOf(object);
16204
16205    if (type === 'array') {
16206      object.forEach(function (item) {
16207        // Addition is commutative so this is order indep
16208        accum += getOrderIndependentHash(item);
16209      });
16210
16211      var arrayString = '[type: array, hash: ' + accum + ']';
16212      return accum + hashThisString(arrayString);
16213    }
16214
16215    if (type === 'object') {
16216      for (var key in object) {
16217        if (object.hasOwnProperty(key)) {
16218          var keyValueString = '[ type: object, key: ' + key + ', value hash: ' + getOrderIndependentHash(object[key]) + ']';
16219          accum += hashThisString(keyValueString);
16220        }
16221      }
16222
16223      return accum;
16224    }
16225
16226    // Non object, non array...should be good?
16227    var stringToHash = '[ type: ' + type + ' ; value: ' + object + ']';
16228    return accum + hashThisString(stringToHash);
16229  }
16230
16231  function deepDiff(lhs, rhs, changes, prefilter, path, key, stack, orderIndependent) {
16232    changes = changes || [];
16233    path = path || [];
16234    stack = stack || [];
16235    var currentPath = path.slice(0);
16236    if (typeof key !== 'undefined' && key !== null) {
16237      if (prefilter) {
16238        if (typeof (prefilter) === 'function' && prefilter(currentPath, key)) {
16239          return;
16240        } else if (typeof (prefilter) === 'object') {
16241          if (prefilter.prefilter && prefilter.prefilter(currentPath, key)) {
16242            return;
16243          }
16244          if (prefilter.normalize) {
16245            var alt = prefilter.normalize(currentPath, key, lhs, rhs);
16246            if (alt) {
16247              lhs = alt[0];
16248              rhs = alt[1];
16249            }
16250          }
16251        }
16252      }
16253      currentPath.push(key);
16254    }
16255
16256    // Use string comparison for regexes
16257    if (realTypeOf(lhs) === 'regexp' && realTypeOf(rhs) === 'regexp') {
16258      lhs = lhs.toString();
16259      rhs = rhs.toString();
16260    }
16261
16262    var ltype = typeof lhs;
16263    var rtype = typeof rhs;
16264    var i, j, k, other;
16265
16266    var ldefined = ltype !== 'undefined' ||
16267      (stack && (stack.length > 0) && stack[stack.length - 1].lhs &&
16268        Object.getOwnPropertyDescriptor(stack[stack.length - 1].lhs, key));
16269    var rdefined = rtype !== 'undefined' ||
16270      (stack && (stack.length > 0) && stack[stack.length - 1].rhs &&
16271        Object.getOwnPropertyDescriptor(stack[stack.length - 1].rhs, key));
16272
16273    if (!ldefined && rdefined) {
16274      changes.push(new DiffNew(currentPath, rhs));
16275    } else if (!rdefined && ldefined) {
16276      changes.push(new DiffDeleted(currentPath, lhs));
16277    } else if (realTypeOf(lhs) !== realTypeOf(rhs)) {
16278      changes.push(new DiffEdit(currentPath, lhs, rhs));
16279    } else if (realTypeOf(lhs) === 'date' && (lhs - rhs) !== 0) {
16280      changes.push(new DiffEdit(currentPath, lhs, rhs));
16281    } else if (ltype === 'object' && lhs !== null && rhs !== null) {
16282      for (i = stack.length - 1; i > -1; --i) {
16283        if (stack[i].lhs === lhs) {
16284          other = true;
16285          break;
16286        }
16287      }
16288      if (!other) {
16289        stack.push({ lhs: lhs, rhs: rhs });
16290        if (Array.isArray(lhs)) {
16291          // If order doesn't matter, we need to sort our arrays
16292          if (orderIndependent) {
16293            lhs.sort(function (a, b) {
16294              return getOrderIndependentHash(a) - getOrderIndependentHash(b);
16295            });
16296
16297            rhs.sort(function (a, b) {
16298              return getOrderIndependentHash(a) - getOrderIndependentHash(b);
16299            });
16300          }
16301          i = rhs.length - 1;
16302          j = lhs.length - 1;
16303          while (i > j) {
16304            changes.push(new DiffArray(currentPath, i, new DiffNew(undefined, rhs[i--])));
16305          }
16306          while (j > i) {
16307            changes.push(new DiffArray(currentPath, j, new DiffDeleted(undefined, lhs[j--])));
16308          }
16309          for (; i >= 0; --i) {
16310            deepDiff(lhs[i], rhs[i], changes, prefilter, currentPath, i, stack, orderIndependent);
16311          }
16312        } else {
16313          var akeys = Object.keys(lhs);
16314          var pkeys = Object.keys(rhs);
16315          for (i = 0; i < akeys.length; ++i) {
16316            k = akeys[i];
16317            other = pkeys.indexOf(k);
16318            if (other >= 0) {
16319              deepDiff(lhs[k], rhs[k], changes, prefilter, currentPath, k, stack, orderIndependent);
16320              pkeys[other] = null;
16321            } else {
16322              deepDiff(lhs[k], undefined, changes, prefilter, currentPath, k, stack, orderIndependent);
16323            }
16324          }
16325          for (i = 0; i < pkeys.length; ++i) {
16326            k = pkeys[i];
16327            if (k) {
16328              deepDiff(undefined, rhs[k], changes, prefilter, currentPath, k, stack, orderIndependent);
16329            }
16330          }
16331        }
16332        stack.length = stack.length - 1;
16333      } else if (lhs !== rhs) {
16334        // lhs is contains a cycle at this element and it differs from rhs
16335        changes.push(new DiffEdit(currentPath, lhs, rhs));
16336      }
16337    } else if (lhs !== rhs) {
16338      if (!(ltype === 'number' && isNaN(lhs) && isNaN(rhs))) {
16339        changes.push(new DiffEdit(currentPath, lhs, rhs));
16340      }
16341    }
16342  }
16343
16344  function observableDiff(lhs, rhs, observer, prefilter, orderIndependent) {
16345    var changes = [];
16346    deepDiff(lhs, rhs, changes, prefilter, null, null, null, orderIndependent);
16347    if (observer) {
16348      for (var i = 0; i < changes.length; ++i) {
16349        observer(changes[i]);
16350      }
16351    }
16352    return changes;
16353  }
16354
16355  function orderIndependentDeepDiff(lhs, rhs, changes, prefilter, path, key, stack) {
16356    return deepDiff(lhs, rhs, changes, prefilter, path, key, stack, true);
16357  }
16358
16359  function accumulateDiff(lhs, rhs, prefilter, accum) {
16360    var observer = (accum) ?
16361      function (difference) {
16362        if (difference) {
16363          accum.push(difference);
16364        }
16365      } : undefined;
16366    var changes = observableDiff(lhs, rhs, observer, prefilter);
16367    return (accum) ? accum : (changes.length) ? changes : undefined;
16368  }
16369
16370  function accumulateOrderIndependentDiff(lhs, rhs, prefilter, accum) {
16371    var observer = (accum) ?
16372      function (difference) {
16373        if (difference) {
16374          accum.push(difference);
16375        }
16376      } : undefined;
16377    var changes = observableDiff(lhs, rhs, observer, prefilter, true);
16378    return (accum) ? accum : (changes.length) ? changes : undefined;
16379  }
16380
16381  function applyArrayChange(arr, index, change) {
16382    if (change.path && change.path.length) {
16383      var it = arr[index],
16384        i, u = change.path.length - 1;
16385      for (i = 0; i < u; i++) {
16386        it = it[change.path[i]];
16387      }
16388      switch (change.kind) {
16389        case 'A':
16390          applyArrayChange(it[change.path[i]], change.index, change.item);
16391          break;
16392        case 'D':
16393          delete it[change.path[i]];
16394          break;
16395        case 'E':
16396        case 'N':
16397          it[change.path[i]] = change.rhs;
16398          break;
16399      }
16400    } else {
16401      switch (change.kind) {
16402        case 'A':
16403          applyArrayChange(arr[index], change.index, change.item);
16404          break;
16405        case 'D':
16406          arr = arrayRemove(arr, index);
16407          break;
16408        case 'E':
16409        case 'N':
16410          arr[index] = change.rhs;
16411          break;
16412      }
16413    }
16414    return arr;
16415  }
16416
16417  function applyChange(target, source, change) {
16418    if (typeof change === 'undefined' && source && ~validKinds.indexOf(source.kind)) {
16419      change = source;
16420    }
16421    if (target && change && change.kind) {
16422      var it = target,
16423        i = -1,
16424        last = change.path ? change.path.length - 1 : 0;
16425      while (++i < last) {
16426        if (typeof it[change.path[i]] === 'undefined') {
16427          it[change.path[i]] = (typeof change.path[i + 1] !== 'undefined' && typeof change.path[i + 1] === 'number') ? [] : {};
16428        }
16429        it = it[change.path[i]];
16430      }
16431      switch (change.kind) {
16432        case 'A':
16433          if (change.path && typeof it[change.path[i]] === 'undefined') {
16434            it[change.path[i]] = [];
16435          }
16436          applyArrayChange(change.path ? it[change.path[i]] : it, change.index, change.item);
16437          break;
16438        case 'D':
16439          delete it[change.path[i]];
16440          break;
16441        case 'E':
16442        case 'N':
16443          it[change.path[i]] = change.rhs;
16444          break;
16445      }
16446    }
16447  }
16448
16449  function revertArrayChange(arr, index, change) {
16450    if (change.path && change.path.length) {
16451      // the structure of the object at the index has changed...
16452      var it = arr[index],
16453        i, u = change.path.length - 1;
16454      for (i = 0; i < u; i++) {
16455        it = it[change.path[i]];
16456      }
16457      switch (change.kind) {
16458        case 'A':
16459          revertArrayChange(it[change.path[i]], change.index, change.item);
16460          break;
16461        case 'D':
16462          it[change.path[i]] = change.lhs;
16463          break;
16464        case 'E':
16465          it[change.path[i]] = change.lhs;
16466          break;
16467        case 'N':
16468          delete it[change.path[i]];
16469          break;
16470      }
16471    } else {
16472      // the array item is different...
16473      switch (change.kind) {
16474        case 'A':
16475          revertArrayChange(arr[index], change.index, change.item);
16476          break;
16477        case 'D':
16478          arr[index] = change.lhs;
16479          break;
16480        case 'E':
16481          arr[index] = change.lhs;
16482          break;
16483        case 'N':
16484          arr = arrayRemove(arr, index);
16485          break;
16486      }
16487    }
16488    return arr;
16489  }
16490
16491  function revertChange(target, source, change) {
16492    if (target && source && change && change.kind) {
16493      var it = target,
16494        i, u;
16495      u = change.path.length - 1;
16496      for (i = 0; i < u; i++) {
16497        if (typeof it[change.path[i]] === 'undefined') {
16498          it[change.path[i]] = {};
16499        }
16500        it = it[change.path[i]];
16501      }
16502      switch (change.kind) {
16503        case 'A':
16504          // Array was modified...
16505          // it will be an array...
16506          revertArrayChange(it[change.path[i]], change.index, change.item);
16507          break;
16508        case 'D':
16509          // Item was deleted...
16510          it[change.path[i]] = change.lhs;
16511          break;
16512        case 'E':
16513          // Item was edited...
16514          it[change.path[i]] = change.lhs;
16515          break;
16516        case 'N':
16517          // Item is new...
16518          delete it[change.path[i]];
16519          break;
16520      }
16521    }
16522  }
16523
16524  function applyDiff(target, source, filter) {
16525    if (target && source) {
16526      var onChange = function (change) {
16527        if (!filter || filter(target, source, change)) {
16528          applyChange(target, source, change);
16529        }
16530      };
16531      observableDiff(target, source, onChange);
16532    }
16533  }
16534
16535  Object.defineProperties(accumulateDiff, {
16536
16537    diff: {
16538      value: accumulateDiff,
16539      enumerable: true
16540    },
16541    orderIndependentDiff: {
16542      value: accumulateOrderIndependentDiff,
16543      enumerable: true
16544    },
16545    observableDiff: {
16546      value: observableDiff,
16547      enumerable: true
16548    },
16549    orderIndependentObservableDiff: {
16550      value: orderIndependentDeepDiff,
16551      enumerable: true
16552    },
16553    orderIndepHash: {
16554      value: getOrderIndependentHash,
16555      enumerable: true
16556    },
16557    applyDiff: {
16558      value: applyDiff,
16559      enumerable: true
16560    },
16561    applyChange: {
16562      value: applyChange,
16563      enumerable: true
16564    },
16565    revertChange: {
16566      value: revertChange,
16567      enumerable: true
16568    },
16569    isConflict: {
16570      value: function () {
16571        return typeof $conflict !== 'undefined';
16572      },
16573      enumerable: true
16574    }
16575  });
16576
16577  // hackish...
16578  accumulateDiff.DeepDiff = accumulateDiff;
16579  // ...but works with:
16580  // import DeepDiff from 'deep-diff'
16581  // import { DeepDiff } from 'deep-diff'
16582  // const DeepDiff = require('deep-diff');
16583  // const { DeepDiff } = require('deep-diff');
16584
16585  if (root) {
16586    root.DeepDiff = accumulateDiff;
16587  }
16588
16589  return accumulateDiff;
16590}));
16591
16592
16593/***/ }),
16594/* 83 */
16595/***/ (function(module, exports, __webpack_require__) {
16596
16597"use strict";
16598/**
16599* @license nested-property https://github.com/cosmosio/nested-property
16600*
16601* The MIT License (MIT)
16602*
16603* Copyright (c) 2014-2015 Olivier Scherrer <[email protected]>
16604*/
16605
16606
16607module.exports = {
16608  set: setNestedProperty,
16609  get: getNestedProperty,
16610  has: hasNestedProperty,
16611  hasOwn: function (object, property, options) {
16612      return this.has(object, property, options || {own: true});
16613  },
16614  isIn: isInNestedProperty
16615};
16616
16617/**
16618 * Get the property of an object nested in one or more objects
16619 * given an object such as a.b.c.d = 5, getNestedProperty(a, "b.c.d") will return 5.
16620 * @param {Object} object the object to get the property from
16621 * @param {String} property the path to the property as a string
16622 * @returns the object or the the property value if found
16623 */
16624function getNestedProperty(object, property) {
16625    if (object && typeof object == "object") {
16626        if (typeof property == "string" && property !== "") {
16627            var split = property.split(".");
16628            return split.reduce(function (obj, prop) {
16629                return obj && obj[prop];
16630            }, object);
16631        } else if (typeof property == "number") {
16632            return object[property];
16633        } else {
16634            return object;
16635        }
16636    } else {
16637        return object;
16638    }
16639}
16640
16641/**
16642 * Tell if a nested object has a given property (or array a given index)
16643 * given an object such as a.b.c.d = 5, hasNestedProperty(a, "b.c.d") will return true.
16644 * It also returns true if the property is in the prototype chain.
16645 * @param {Object} object the object to get the property from
16646 * @param {String} property the path to the property as a string
16647 * @param {Object} options:
16648 *  - own: set to reject properties from the prototype
16649 * @returns true if has (property in object), false otherwise
16650 */
16651function hasNestedProperty(object, property, options) {
16652    options = options || {};
16653
16654    if (object && typeof object == "object") {
16655        if (typeof property == "string" && property !== "") {
16656            var split = property.split(".");
16657            return split.reduce(function (obj, prop, idx, array) {
16658                if (idx == array.length - 1) {
16659                    if (options.own) {
16660                        return !!(obj && obj.hasOwnProperty(prop));
16661                    } else {
16662                        return !!(obj !== null && typeof obj == "object" && prop in obj);
16663                    }
16664                }
16665                return obj && obj[prop];
16666            }, object);
16667        } else if (typeof property == "number") {
16668            return property in object;
16669        } else {
16670            return false;
16671        }
16672    } else {
16673        return false;
16674    }
16675}
16676
16677/**
16678 * Set the property of an object nested in one or more objects
16679 * If the property doesn't exist, it gets created.
16680 * @param {Object} object
16681 * @param {String} property
16682 * @param value the value to set
16683 * @returns object if no assignment was made or the value if the assignment was made
16684 */
16685function setNestedProperty(object, property, value) {
16686    if (object && typeof object == "object") {
16687        if (typeof property == "string" && property !== "") {
16688            var split = property.split(".");
16689            return split.reduce(function (obj, prop, idx) {
16690                const nextPropIsNumber = Number.isInteger(Number(split[idx + 1]));
16691                
16692                obj[prop] = obj[prop] || (nextPropIsNumber ? [] : {})
16693                if (split.length == (idx + 1)) {
16694                    obj[prop] = value;
16695                }
16696                return obj[prop];
16697            }, object);
16698        } else if (typeof property == "number") {
16699            object[property] = value;
16700            return object[property];
16701        } else {
16702            return object;
16703        }
16704    } else {
16705        return object;
16706    }
16707}
16708
16709/**
16710 * Tell if an object is on the path to a nested property
16711 * If the object is on the path, and the path exists, it returns true, and false otherwise.
16712 * @param {Object} object to get the nested property from
16713 * @param {String} property name of the nested property
16714 * @param {Object} objectInPath the object to check
16715 * @param {Object} options:
16716 *  - validPath: return false if the path is invalid, even if the object is in the path
16717 * @returns {boolean} true if the object is on the path
16718 */
16719function isInNestedProperty(object, property, objectInPath, options) {
16720    options = options || {};
16721
16722    if (object && typeof object == "object") {
16723        if (typeof property == "string" && property !== "") {
16724            var split = property.split("."),
16725                isIn = false,
16726                pathExists;
16727
16728            pathExists = !!split.reduce(function (obj, prop) {
16729                isIn = isIn || obj === objectInPath || (!!obj && obj[prop] === objectInPath);
16730                return obj && obj[prop];
16731            }, object);
16732
16733            if (options.validPath) {
16734                return isIn && pathExists;
16735            } else {
16736                return isIn;
16737            }
16738        } else {
16739            return false;
16740        }
16741    } else {
16742        return false;
16743    }
16744}
16745
16746
16747/***/ })
16748/******/ ]);

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.