diff --git a/.eslintrc b/.eslintrc index 7da69ac..49d4078 100644 --- a/.eslintrc +++ b/.eslintrc @@ -15,6 +15,7 @@ }, "extends": "eslint:recommended", "rules": { - "no-console": 1 + "no-console": 1, + "no-undef": 0 } } diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 0000000..2c0fc02 --- /dev/null +++ b/.prettierrc @@ -0,0 +1,4 @@ +{ + "singleQuote": true, + "endOfLine": "auto" +} \ No newline at end of file diff --git a/dist/render/silkrouter.iife.js b/dist/render/silkrouter.iife.js index c0348e0..f98fa36 100644 --- a/dist/render/silkrouter.iife.js +++ b/dist/render/silkrouter.iife.js @@ -72,2416 +72,2358 @@ } /** - * Router constants + * Function to extend an object with new and updated properties + * @private + * @returns {object} */ - var POP_STATE = 'popstate'; - var REG_ROUTE_PARAMS = /:[^/]+/g; - var REG_PATHNAME = /^\/(?=[^?]*)/; - var HISTORY_UNSUPPORTED = 'Current browser does not support history object'; - var INVALID_ROUTE = 'Route string is not a pure route'; - var VIRTUAL_PUSHSTATE = 'vpushstate'; - var CACHED_FIELDS = ['route', 'hashRouting', 'path', 'hash', 'search', 'hashSearch', 'data']; - var AMP = '&'; - var QRY = '?'; - var EMPTY = ''; - var UNDEF$1 = void 0; - var TYPEOF_STR$1 = _typeof$1(EMPTY); - var TYPEOF_BOOL = _typeof$1(true); - var TYPEOF_UNDEF$1 = _typeof$1(UNDEF$1); - _typeof$1({}); - _typeof$1(0); - var TYPEOF_FUNC = _typeof$1(function () {}); - var STATE = 'State'; - var PUSH = "push".concat(STATE); - var REPLACE = "replace".concat(STATE); - - function getGlobal() { - return (typeof globalThis === "undefined" ? "undefined" : _typeof$1(globalThis)) !== TYPEOF_UNDEF$1 ? globalThis : global || self; + function assign() { + return Object.assign.apply(Object, arguments); } - /*! - * Deparam plugin converts query string to a valid JavaScript object - * Released under MIT license - * @name Deparam.js - * @author Sachin Singh - * @version 3.0.6 - * @license MIT - */ - function _typeof(obj) { - "@babel/helpers - typeof"; - - return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { - return typeof obj; - } : function (obj) { - return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; - }, _typeof(obj); + /****************************************************************************** + Copyright (c) Microsoft Corporation. + + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted. + + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH + REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, + INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM + LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR + OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + PERFORMANCE OF THIS SOFTWARE. + ***************************************************************************** */ + /* global Reflect, Promise */ + + var extendStatics = function(d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + + function __extends(d, b) { + if (typeof b !== "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + } + + function __awaiter(thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); + } + + function __generator(thisArg, body) { + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; + return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; + function verb(n) { return function (v) { return step([n, v]); }; } + function step(op) { + if (f) throw new TypeError("Generator is already executing."); + while (_) try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; + if (y = 0, t) op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: case 1: t = op; break; + case 4: _.label++; return { value: op[1], done: false }; + case 5: _.label++; y = op[1]; op = [0]; continue; + case 7: op = _.ops.pop(); _.trys.pop(); continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } + if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } + if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } + if (t[2]) _.ops.pop(); + _.trys.pop(); continue; + } + op = body.call(thisArg, _); + } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } + if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; + } + } + + function __values(o) { + var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0; + if (m) return m.call(o); + if (o && typeof o.length === "number") return { + next: function () { + if (o && i >= o.length) o = void 0; + return { value: o && o[i++], done: !o }; + } + }; + throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); + } + + function __read(o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), r, ar = [], e; + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); + } + catch (error) { e = { error: error }; } + finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } + finally { if (e) throw e.error; } + } + return ar; + } + + function __spreadArray(to, from, pack) { + if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { + if (ar || !(i in from)) { + if (!ar) ar = Array.prototype.slice.call(from, 0, i); + ar[i] = from[i]; + } + } + return to.concat(ar || Array.prototype.slice.call(from)); + } + + function __await(v) { + return this instanceof __await ? (this.v = v, this) : new __await(v); + } + + function __asyncGenerator(thisArg, _arguments, generator) { + if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); + var g = generator.apply(thisArg, _arguments || []), i, q = []; + return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i; + function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; } + function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } } + function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); } + function fulfill(value) { resume("next", value); } + function reject(value) { resume("throw", value); } + function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); } + } + + function __asyncValues(o) { + if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); + var m = o[Symbol.asyncIterator], i; + return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i); + function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; } + function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); } } - /*! - * is-number - * - * Copyright (c) 2014-present, Jon Schlinkert. - * Released under the MIT License. - */ - - var isNumber = function(num) { - if (typeof num === 'number') { - return num - num === 0; - } - if (typeof num === 'string' && num.trim() !== '') { - return Number.isFinite ? Number.isFinite(+num) : isFinite(+num); - } - return false; - }; - - var isObject = function isObject(x) { - return typeof x === 'object' && x !== null; - }; - - var UNDEF = void 0; // Results to undefined - // Typeof undefined - - var TYPEOF_UNDEF = _typeof(UNDEF); // Typeof string - - - var TYPEOF_STR = _typeof(""); // location var - - - var loc = (typeof window === "undefined" ? "undefined" : _typeof(window)) !== TYPEOF_UNDEF ? window.location : null; // Shorthand for built-ins - - var isArr$1 = Array.isArray; - /** - * Checks if current key is safe - * @param {string} key Current key - * @returns {boolean} - */ - - function isSafe(key) { - return ["__proto__", "prototype"].indexOf(key) === -1; + function isFunction(value) { + return typeof value === 'function'; } - /** - * Shorthand for Object.prototype.hasOwnProperty - * @param {any} obj Any object - * @param {string} key key - * @returns {boolean} true or false if object has the property - */ - - function hasOwn(obj, key) { - return Object.prototype.hasOwnProperty.call(obj, key); + function createErrorClass(createImpl) { + var _super = function (instance) { + Error.call(instance); + instance.stack = new Error().stack; + }; + var ctorFunc = createImpl(_super); + ctorFunc.prototype = Object.create(Error.prototype); + ctorFunc.prototype.constructor = ctorFunc; + return ctorFunc; } - /** - * Returns true of input query string is complex - * @param {string} q Query string - * @returns {boolean} true or false - */ + var UnsubscriptionError = createErrorClass(function (_super) { + return function UnsubscriptionErrorImpl(errors) { + _super(this); + this.message = errors + ? errors.length + " errors occurred during unsubscription:\n" + errors.map(function (err, i) { return i + 1 + ") " + err.toString(); }).join('\n ') + : ''; + this.name = 'UnsubscriptionError'; + this.errors = errors; + }; + }); - function ifComplex(q) { - return /\[/.test(q); + function arrRemove(arr, item) { + if (arr) { + var index = arr.indexOf(item); + 0 <= index && arr.splice(index, 1); + } } - /** - * Returns an object without a prototype - * @returns {{[key in string|number]: any}} Object without __proto__ - */ - - function obNull() { - return Object.create(null); + var Subscription = (function () { + function Subscription(initialTeardown) { + this.initialTeardown = initialTeardown; + this.closed = false; + this._parentage = null; + this._finalizers = null; + } + Subscription.prototype.unsubscribe = function () { + var e_1, _a, e_2, _b; + var errors; + if (!this.closed) { + this.closed = true; + var _parentage = this._parentage; + if (_parentage) { + this._parentage = null; + if (Array.isArray(_parentage)) { + try { + for (var _parentage_1 = __values(_parentage), _parentage_1_1 = _parentage_1.next(); !_parentage_1_1.done; _parentage_1_1 = _parentage_1.next()) { + var parent_1 = _parentage_1_1.value; + parent_1.remove(this); + } + } + catch (e_1_1) { e_1 = { error: e_1_1 }; } + finally { + try { + if (_parentage_1_1 && !_parentage_1_1.done && (_a = _parentage_1.return)) _a.call(_parentage_1); + } + finally { if (e_1) throw e_1.error; } + } + } + else { + _parentage.remove(this); + } + } + var initialFinalizer = this.initialTeardown; + if (isFunction(initialFinalizer)) { + try { + initialFinalizer(); + } + catch (e) { + errors = e instanceof UnsubscriptionError ? e.errors : [e]; + } + } + var _finalizers = this._finalizers; + if (_finalizers) { + this._finalizers = null; + try { + for (var _finalizers_1 = __values(_finalizers), _finalizers_1_1 = _finalizers_1.next(); !_finalizers_1_1.done; _finalizers_1_1 = _finalizers_1.next()) { + var finalizer = _finalizers_1_1.value; + try { + execFinalizer(finalizer); + } + catch (err) { + errors = errors !== null && errors !== void 0 ? errors : []; + if (err instanceof UnsubscriptionError) { + errors = __spreadArray(__spreadArray([], __read(errors)), __read(err.errors)); + } + else { + errors.push(err); + } + } + } + } + catch (e_2_1) { e_2 = { error: e_2_1 }; } + finally { + try { + if (_finalizers_1_1 && !_finalizers_1_1.done && (_b = _finalizers_1.return)) _b.call(_finalizers_1); + } + finally { if (e_2) throw e_2.error; } + } + } + if (errors) { + throw new UnsubscriptionError(errors); + } + } + }; + Subscription.prototype.add = function (teardown) { + var _a; + if (teardown && teardown !== this) { + if (this.closed) { + execFinalizer(teardown); + } + else { + if (teardown instanceof Subscription) { + if (teardown.closed || teardown._hasParent(this)) { + return; + } + teardown._addParent(this); + } + (this._finalizers = (_a = this._finalizers) !== null && _a !== void 0 ? _a : []).push(teardown); + } + } + }; + Subscription.prototype._hasParent = function (parent) { + var _parentage = this._parentage; + return _parentage === parent || (Array.isArray(_parentage) && _parentage.includes(parent)); + }; + Subscription.prototype._addParent = function (parent) { + var _parentage = this._parentage; + this._parentage = Array.isArray(_parentage) ? (_parentage.push(parent), _parentage) : _parentage ? [_parentage, parent] : parent; + }; + Subscription.prototype._removeParent = function (parent) { + var _parentage = this._parentage; + if (_parentage === parent) { + this._parentage = null; + } + else if (Array.isArray(_parentage)) { + arrRemove(_parentage, parent); + } + }; + Subscription.prototype.remove = function (teardown) { + var _finalizers = this._finalizers; + _finalizers && arrRemove(_finalizers, teardown); + if (teardown instanceof Subscription) { + teardown._removeParent(this); + } + }; + Subscription.EMPTY = (function () { + var empty = new Subscription(); + empty.closed = true; + return empty; + })(); + return Subscription; + }()); + var EMPTY_SUBSCRIPTION = Subscription.EMPTY; + function isSubscription(value) { + return (value instanceof Subscription || + (value && 'closed' in value && isFunction(value.remove) && isFunction(value.add) && isFunction(value.unsubscribe))); } - /** - * Returns a parsed query object - * @param {string} qs Query string - * @param {boolean} coerce Coerce values - * @returns {{[key in string|number]: any}} Query object - */ - - - function lib(qs, coerce) { - var _this = this; - - if (_typeof(qs) !== TYPEOF_STR) { - qs = loc ? loc.search : ""; - } - - qs = qs.substring(qs.charAt(0) === "?"); - var queryObject = obNull(); - - if (qs) { - qs.split("&").forEach(function (qq) { - var qArr = qq.split("=").map(function (part) { - return decodeURIComponent(part); - }); - - if (ifComplex(qArr[0])) { - complex.apply(_this, [].concat(qArr).concat([queryObject, coerce])); - } else { - simple.apply(_this, [qArr, queryObject, false, coerce]); - } - }); - } - - return queryObject; + function execFinalizer(finalizer) { + if (isFunction(finalizer)) { + finalizer(); + } + else { + finalizer.unsubscribe(); + } } - /** - * Converts an array to equivalent object - * @param {any[]} arr Any array - * @returns {any} Any object - */ + var config = { + onUnhandledError: null, + onStoppedNotification: null, + Promise: undefined, + useDeprecatedSynchronousErrorHandling: false, + useDeprecatedNextContext: false, + }; - function toObject(arr) { - var convertedObj = obNull(); + var timeoutProvider = { + setTimeout: function (handler, timeout) { + var args = []; + for (var _i = 2; _i < arguments.length; _i++) { + args[_i - 2] = arguments[_i]; + } + return setTimeout.apply(void 0, __spreadArray([handler, timeout], __read(args))); + }, + clearTimeout: function (handle) { + return (clearTimeout)(handle); + }, + delegate: undefined, + }; - if (isArr$1(arr)) { - arr.forEach(function (value, index) { - convertedObj[index] = value; + function reportUnhandledError(err) { + timeoutProvider.setTimeout(function () { + { + throw err; + } }); - } - - return convertedObj; - } - /** - * Converts array to an object if required - * @param {any} ob Any object - * @param {booleab} isNextNumber Test for next key - * @returns {any} Any object - */ - - - function resolve(ob, isNextNumber) { - if (_typeof(ob) === TYPEOF_UNDEF) return isNextNumber ? [] : obNull(); - return isNextNumber ? ob : toObject(ob); } - /** - * Resolves the target object for next iteration - * @param {any} ob current reference object - * @param {string} nextProp reference property in current object - * @returns {any} Resolved object for next iteration - */ + function noop() { } - function resolveObj(ob, nextProp) { - if (isObject(ob) && !isArr$1(ob)) return { - ob: ob - }; - if (isArr$1(ob) || _typeof(ob) === TYPEOF_UNDEF) return { - ob: resolve(ob, isNumber(nextProp)) - }; - return { - ob: [ob], - push: ob !== null - }; + function errorContext(cb) { + { + cb(); + } } - /** - * Handles complex query parameters - * @param {string} key Query key - * @param {string} value Query value - * @param {Object} obj Query object - * @returns {void} - */ - - function complex(key, value, obj, doCoerce) { - var match = key.match(/([^\[]+)\[([^\[]*)\]/) || []; - - if (match.length === 3) { - var prop = match[1]; - var nextProp = match[2]; - key = key.replace(/\[([^\[]*)\]/, ""); - - if (ifComplex(key)) { - if (nextProp === "") nextProp = "0"; - key = key.replace(/[^\[]+/, nextProp); - complex(key, value, obj[prop] = resolveObj(obj[prop], nextProp).ob, doCoerce); - } else if (nextProp) { - if (isSafe(prop) && isSafe(nextProp)) { - var _resolveObj = resolveObj(obj[prop], nextProp), - ob = _resolveObj.ob, - push = _resolveObj.push; - - obj[prop] = ob; - var nextOb = push ? obNull() : obj[prop]; - nextOb[nextProp] = coerce(value, !doCoerce); - - if (push) { - obj[prop].push(nextOb); + var Subscriber = (function (_super) { + __extends(Subscriber, _super); + function Subscriber(destination) { + var _this = _super.call(this) || this; + _this.isStopped = false; + if (destination) { + _this.destination = destination; + if (isSubscription(destination)) { + destination.add(_this); + } } - } - } else { - simple([match[1], value], obj, true, doCoerce); + else { + _this.destination = EMPTY_OBSERVER; + } + return _this; } - } + Subscriber.create = function (next, error, complete) { + return new SafeSubscriber(next, error, complete); + }; + Subscriber.prototype.next = function (value) { + if (this.isStopped) ; + else { + this._next(value); + } + }; + Subscriber.prototype.error = function (err) { + if (this.isStopped) ; + else { + this.isStopped = true; + this._error(err); + } + }; + Subscriber.prototype.complete = function () { + if (this.isStopped) ; + else { + this.isStopped = true; + this._complete(); + } + }; + Subscriber.prototype.unsubscribe = function () { + if (!this.closed) { + this.isStopped = true; + _super.prototype.unsubscribe.call(this); + this.destination = null; + } + }; + Subscriber.prototype._next = function (value) { + this.destination.next(value); + }; + Subscriber.prototype._error = function (err) { + try { + this.destination.error(err); + } + finally { + this.unsubscribe(); + } + }; + Subscriber.prototype._complete = function () { + try { + this.destination.complete(); + } + finally { + this.unsubscribe(); + } + }; + return Subscriber; + }(Subscription)); + var _bind = Function.prototype.bind; + function bind(fn, thisArg) { + return _bind.call(fn, thisArg); } - /** - * Handles simple query - * @param {array} qArr Query list - * @param {Object} queryObject Query object - * @param {boolean} toArray Test for conversion to array - * @returns {void} - */ - - - function simple(qArr, queryObject, toArray, doCoerce) { - var key = qArr[0]; - var value = qArr[1]; - - if (isSafe(key)) { - value = coerce(value, !doCoerce); - - if (hasOwn(queryObject, key)) { - queryObject[key] = isArr$1(queryObject[key]) ? queryObject[key] : [queryObject[key]]; - queryObject[key].push(value); - } else { - queryObject[key] = toArray ? [value] : value; + var ConsumerObserver = (function () { + function ConsumerObserver(partialObserver) { + this.partialObserver = partialObserver; + } + ConsumerObserver.prototype.next = function (value) { + var partialObserver = this.partialObserver; + if (partialObserver.next) { + try { + partialObserver.next(value); + } + catch (error) { + handleUnhandledError(error); + } + } + }; + ConsumerObserver.prototype.error = function (err) { + var partialObserver = this.partialObserver; + if (partialObserver.error) { + try { + partialObserver.error(err); + } + catch (error) { + handleUnhandledError(error); + } + } + else { + handleUnhandledError(err); + } + }; + ConsumerObserver.prototype.complete = function () { + var partialObserver = this.partialObserver; + if (partialObserver.complete) { + try { + partialObserver.complete(); + } + catch (error) { + handleUnhandledError(error); + } + } + }; + return ConsumerObserver; + }()); + var SafeSubscriber = (function (_super) { + __extends(SafeSubscriber, _super); + function SafeSubscriber(observerOrNext, error, complete) { + var _this = _super.call(this) || this; + var partialObserver; + if (isFunction(observerOrNext) || !observerOrNext) { + partialObserver = { + next: (observerOrNext !== null && observerOrNext !== void 0 ? observerOrNext : undefined), + error: error !== null && error !== void 0 ? error : undefined, + complete: complete !== null && complete !== void 0 ? complete : undefined, + }; + } + else { + var context_1; + if (_this && config.useDeprecatedNextContext) { + context_1 = Object.create(observerOrNext); + context_1.unsubscribe = function () { return _this.unsubscribe(); }; + partialObserver = { + next: observerOrNext.next && bind(observerOrNext.next, context_1), + error: observerOrNext.error && bind(observerOrNext.error, context_1), + complete: observerOrNext.complete && bind(observerOrNext.complete, context_1), + }; + } + else { + partialObserver = observerOrNext; + } + } + _this.destination = new ConsumerObserver(partialObserver); + return _this; + } + return SafeSubscriber; + }(Subscriber)); + function handleUnhandledError(error) { + { + reportUnhandledError(error); } - } } - /** - * Converts input value to their appropriate types - * @param {any} value Input value - * @param {boolean} skip Test for skipping coercion - * @returns {any} Coerced value - */ - - - function coerce(value, skip) { - // eslint-disable-next-line - if (value == null) { - return ""; - } - - if (skip || _typeof(value) !== TYPEOF_STR) { - return value; - } - - value = value.trim(); - - if (isNumber(value)) { - return +value; - } - - switch (value) { - case "null": - return null; - - case TYPEOF_UNDEF: - return UNDEF; - - case "true": - return true; + function defaultErrorHandler(err) { + throw err; + } + var EMPTY_OBSERVER = { + closed: true, + next: noop, + error: defaultErrorHandler, + complete: noop, + }; - case "false": - return false; + var observable = (function () { return (typeof Symbol === 'function' && Symbol.observable) || '@@observable'; })(); - case "NaN": - return NaN; + function identity(x) { + return x; + } - default: - return value; - } + function pipeFromArray(fns) { + if (fns.length === 0) { + return identity; + } + if (fns.length === 1) { + return fns[0]; + } + return function piped(input) { + return fns.reduce(function (prev, fn) { return fn(prev); }, input); + }; } - /** - * Shorthand for Array.isArray - */ - - var isArr = Array.isArray; - /** - * Shorthand for Object.keys - */ - - var oKeys = Object.keys; - /** - * Safely trims string - * @param {string} str String - */ - - function trim(str) { - return _typeof$1(str) === TYPEOF_STR$1 ? str.trim() : EMPTY; - } - /** - * Checks if given route is valid - * @private - * @param {string} route Route string - */ - - function isValidRoute(route) { - return _typeof$1(route) === TYPEOF_STR$1 && REG_PATHNAME.test(route); - } - /** - * Loops over an array like object - * @param {object} arrayObj Array or array like object - * @param {function} callback Callback function - */ - - function each(arrayObj, callback) { - if (isObject(arrayObj)) { - var keys = oKeys(arrayObj); - - for (var i = 0; i < keys.length; i++) { - var key = keys[i]; - var cont = callback(arrayObj[key], isNumber(key) ? +key : key); - - if (_typeof$1(cont) === TYPEOF_BOOL) { - if (cont) { - continue; - } else { - break; + var Observable = (function () { + function Observable(subscribe) { + if (subscribe) { + this._subscribe = subscribe; } - } } - } + Observable.prototype.lift = function (operator) { + var observable = new Observable(); + observable.source = this; + observable.operator = operator; + return observable; + }; + Observable.prototype.subscribe = function (observerOrNext, error, complete) { + var _this = this; + var subscriber = isSubscriber(observerOrNext) ? observerOrNext : new SafeSubscriber(observerOrNext, error, complete); + errorContext(function () { + var _a = _this, operator = _a.operator, source = _a.source; + subscriber.add(operator + ? + operator.call(subscriber, source) + : source + ? + _this._subscribe(subscriber) + : + _this._trySubscribe(subscriber)); + }); + return subscriber; + }; + Observable.prototype._trySubscribe = function (sink) { + try { + return this._subscribe(sink); + } + catch (err) { + sink.error(err); + } + }; + Observable.prototype.forEach = function (next, promiseCtor) { + var _this = this; + promiseCtor = getPromiseCtor(promiseCtor); + return new promiseCtor(function (resolve, reject) { + var subscriber = new SafeSubscriber({ + next: function (value) { + try { + next(value); + } + catch (err) { + reject(err); + subscriber.unsubscribe(); + } + }, + error: reject, + complete: resolve, + }); + _this.subscribe(subscriber); + }); + }; + Observable.prototype._subscribe = function (subscriber) { + var _a; + return (_a = this.source) === null || _a === void 0 ? void 0 : _a.subscribe(subscriber); + }; + Observable.prototype[observable] = function () { + return this; + }; + Observable.prototype.pipe = function () { + var operations = []; + for (var _i = 0; _i < arguments.length; _i++) { + operations[_i] = arguments[_i]; + } + return pipeFromArray(operations)(this); + }; + Observable.prototype.toPromise = function (promiseCtor) { + var _this = this; + promiseCtor = getPromiseCtor(promiseCtor); + return new promiseCtor(function (resolve, reject) { + var value; + _this.subscribe(function (x) { return (value = x); }, function (err) { return reject(err); }, function () { return resolve(value); }); + }); + }; + Observable.create = function (subscribe) { + return new Observable(subscribe); + }; + return Observable; + }()); + function getPromiseCtor(promiseCtor) { + var _a; + return (_a = promiseCtor !== null && promiseCtor !== void 0 ? promiseCtor : config.Promise) !== null && _a !== void 0 ? _a : Promise; + } + function isObserver(value) { + return value && isFunction(value.next) && isFunction(value.error) && isFunction(value.complete); + } + function isSubscriber(value) { + return (value && value instanceof Subscriber) || (isObserver(value) && isSubscription(value)); } - var g$1 = getGlobal(); - - if (_typeof$1(g$1.CustomEvent) === TYPEOF_UNDEF$1) { - var CustomEvent = function CustomEvent(event, params) { - params = params || { - bubbles: false, - cancelable: false, - detail: UNDEF$1 + function hasLift(source) { + return isFunction(source === null || source === void 0 ? void 0 : source.lift); + } + function operate(init) { + return function (source) { + if (hasLift(source)) { + return source.lift(function (liftedSource) { + try { + return init(liftedSource, this); + } + catch (err) { + this.error(err); + } + }); + } + throw new TypeError('Unable to lift unknown Observable type'); }; - var evt = document.createEvent('CustomEvent'); - evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail); - return evt; - }; - - CustomEvent.prototype = g$1.Event.prototype; - g$1.CustomEvent = CustomEvent; - } // Polyfill Array.from - - - if (!Array.from) { - Array.from = function (arrayLike) { - if (isArr(arrayLike)) { - return arrayLike; - } - - var arr = []; - each(arrayLike, function (value) { - arr.push(value); - }); - return arr; - }; } - /** - * Inner loop function for assign - * @private - * @param {object} ref Argument object - * @param {object} target First object - */ - - function loopFunc(ref, target) { - if (isObject(ref)) { - each(ref, function (prop, key) { - target[key] = prop; - }); - } + function createOperatorSubscriber(destination, onNext, onComplete, onError, onFinalize) { + return new OperatorSubscriber(destination, onNext, onComplete, onError, onFinalize); } - /** - * Polyfill for Object.assign only smaller and with less features - * @private - * @returns {object} - */ - - - function assign() { - for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } + var OperatorSubscriber = (function (_super) { + __extends(OperatorSubscriber, _super); + function OperatorSubscriber(destination, onNext, onComplete, onError, onFinalize, shouldUnsubscribe) { + var _this = _super.call(this, destination) || this; + _this.onFinalize = onFinalize; + _this.shouldUnsubscribe = shouldUnsubscribe; + _this._next = onNext + ? function (value) { + try { + onNext(value); + } + catch (err) { + destination.error(err); + } + } + : _super.prototype._next; + _this._error = onError + ? function (err) { + try { + onError(err); + } + catch (err) { + destination.error(err); + } + finally { + this.unsubscribe(); + } + } + : _super.prototype._error; + _this._complete = onComplete + ? function () { + try { + onComplete(); + } + catch (err) { + destination.error(err); + } + finally { + this.unsubscribe(); + } + } + : _super.prototype._complete; + return _this; + } + OperatorSubscriber.prototype.unsubscribe = function () { + var _a; + if (!this.shouldUnsubscribe || this.shouldUnsubscribe()) { + var closed_1 = this.closed; + _super.prototype.unsubscribe.call(this); + !closed_1 && ((_a = this.onFinalize) === null || _a === void 0 ? void 0 : _a.call(this)); + } + }; + return OperatorSubscriber; + }(Subscriber)); - var target = isObject(args[0]) ? args[0] : {}; - each(args, function (arg) { - loopFunc(arg, target); - }); - return target; + function refCount() { + return operate(function (source, subscriber) { + var connection = null; + source._refCount++; + var refCounter = createOperatorSubscriber(subscriber, undefined, undefined, undefined, function () { + if (!source || source._refCount <= 0 || 0 < --source._refCount) { + connection = null; + return; + } + var sharedConnection = source._connection; + var conn = connection; + connection = null; + if (sharedConnection && (!conn || sharedConnection === conn)) { + sharedConnection.unsubscribe(); + } + subscriber.unsubscribe(); + }); + source.subscribe(refCounter); + if (!refCounter.closed) { + connection = source.connect(); + } + }); } - /****************************************************************************** - Copyright (c) Microsoft Corporation. - - Permission to use, copy, modify, and/or distribute this software for any - purpose with or without fee is hereby granted. - - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH - REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY - AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, - INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM - LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR - OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR - PERFORMANCE OF THIS SOFTWARE. - ***************************************************************************** */ - /* global Reflect, Promise */ - - var extendStatics = function(d, b) { - extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; - return extendStatics(d, b); - }; - - function __extends(d, b) { - if (typeof b !== "function" && b !== null) - throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - } - - function __awaiter(thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); - } - - function __generator(thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (_) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } - } - - function __values(o) { - var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0; - if (m) return m.call(o); - if (o && typeof o.length === "number") return { - next: function () { - if (o && i >= o.length) o = void 0; - return { value: o && o[i++], done: !o }; - } - }; - throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); - } - - function __read(o, n) { - var m = typeof Symbol === "function" && o[Symbol.iterator]; - if (!m) return o; - var i = m.call(o), r, ar = [], e; - try { - while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); - } - catch (error) { e = { error: error }; } - finally { - try { - if (r && !r.done && (m = i["return"])) m.call(i); - } - finally { if (e) throw e.error; } - } - return ar; - } - - function __spreadArray(to, from, pack) { - if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { - if (ar || !(i in from)) { - if (!ar) ar = Array.prototype.slice.call(from, 0, i); - ar[i] = from[i]; - } - } - return to.concat(ar || Array.prototype.slice.call(from)); - } - - function __await(v) { - return this instanceof __await ? (this.v = v, this) : new __await(v); - } - - function __asyncGenerator(thisArg, _arguments, generator) { - if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); - var g = generator.apply(thisArg, _arguments || []), i, q = []; - return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i; - function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; } - function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } } - function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); } - function fulfill(value) { resume("next", value); } - function reject(value) { resume("throw", value); } - function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); } - } - - function __asyncValues(o) { - if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); - var m = o[Symbol.asyncIterator], i; - return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i); - function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; } - function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); } - } + ((function (_super) { + __extends(ConnectableObservable, _super); + function ConnectableObservable(source, subjectFactory) { + var _this = _super.call(this) || this; + _this.source = source; + _this.subjectFactory = subjectFactory; + _this._subject = null; + _this._refCount = 0; + _this._connection = null; + if (hasLift(source)) { + _this.lift = source.lift; + } + return _this; + } + ConnectableObservable.prototype._subscribe = function (subscriber) { + return this.getSubject().subscribe(subscriber); + }; + ConnectableObservable.prototype.getSubject = function () { + var subject = this._subject; + if (!subject || subject.isStopped) { + this._subject = this.subjectFactory(); + } + return this._subject; + }; + ConnectableObservable.prototype._teardown = function () { + this._refCount = 0; + var _connection = this._connection; + this._subject = this._connection = null; + _connection === null || _connection === void 0 ? void 0 : _connection.unsubscribe(); + }; + ConnectableObservable.prototype.connect = function () { + var _this = this; + var connection = this._connection; + if (!connection) { + connection = this._connection = new Subscription(); + var subject_1 = this.getSubject(); + connection.add(this.source.subscribe(createOperatorSubscriber(subject_1, undefined, function () { + _this._teardown(); + subject_1.complete(); + }, function (err) { + _this._teardown(); + subject_1.error(err); + }, function () { return _this._teardown(); }))); + if (connection.closed) { + this._connection = null; + connection = Subscription.EMPTY; + } + } + return connection; + }; + ConnectableObservable.prototype.refCount = function () { + return refCount()(this); + }; + return ConnectableObservable; + })(Observable)); - function isFunction(value) { - return typeof value === 'function'; - } + var performanceTimestampProvider = { + now: function () { + return (performanceTimestampProvider.delegate || performance).now(); + }, + delegate: undefined, + }; - function createErrorClass(createImpl) { - var _super = function (instance) { - Error.call(instance); - instance.stack = new Error().stack; - }; - var ctorFunc = createImpl(_super); - ctorFunc.prototype = Object.create(Error.prototype); - ctorFunc.prototype.constructor = ctorFunc; - return ctorFunc; + var animationFrameProvider = { + schedule: function (callback) { + var request = requestAnimationFrame; + var cancel = cancelAnimationFrame; + var handle = request(function (timestamp) { + cancel = undefined; + callback(timestamp); + }); + return new Subscription(function () { return cancel === null || cancel === void 0 ? void 0 : cancel(handle); }); + }, + requestAnimationFrame: function () { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + var delegate = animationFrameProvider.delegate; + return ((delegate === null || delegate === void 0 ? void 0 : delegate.requestAnimationFrame) || requestAnimationFrame).apply(void 0, __spreadArray([], __read(args))); + }, + cancelAnimationFrame: function () { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + return (cancelAnimationFrame).apply(void 0, __spreadArray([], __read(args))); + }, + delegate: undefined, + }; + + function animationFramesFactory(timestampProvider) { + var schedule = animationFrameProvider.schedule; + return new Observable(function (subscriber) { + var subscription = new Subscription(); + var provider = timestampProvider || performanceTimestampProvider; + var start = provider.now(); + var run = function (timestamp) { + var now = provider.now(); + subscriber.next({ + timestamp: timestampProvider ? now : timestamp, + elapsed: now - start, + }); + if (!subscriber.closed) { + subscription.add(schedule(run)); + } + }; + subscription.add(schedule(run)); + return subscription; + }); } + animationFramesFactory(); - var UnsubscriptionError = createErrorClass(function (_super) { - return function UnsubscriptionErrorImpl(errors) { + var ObjectUnsubscribedError = createErrorClass(function (_super) { + return function ObjectUnsubscribedErrorImpl() { _super(this); - this.message = errors - ? errors.length + " errors occurred during unsubscription:\n" + errors.map(function (err, i) { return i + 1 + ") " + err.toString(); }).join('\n ') - : ''; - this.name = 'UnsubscriptionError'; - this.errors = errors; + this.name = 'ObjectUnsubscribedError'; + this.message = 'object unsubscribed'; + }; + }); + + var Subject = (function (_super) { + __extends(Subject, _super); + function Subject() { + var _this = _super.call(this) || this; + _this.closed = false; + _this.currentObservers = null; + _this.observers = []; + _this.isStopped = false; + _this.hasError = false; + _this.thrownError = null; + return _this; + } + Subject.prototype.lift = function (operator) { + var subject = new AnonymousSubject(this, this); + subject.operator = operator; + return subject; + }; + Subject.prototype._throwIfClosed = function () { + if (this.closed) { + throw new ObjectUnsubscribedError(); + } + }; + Subject.prototype.next = function (value) { + var _this = this; + errorContext(function () { + var e_1, _a; + _this._throwIfClosed(); + if (!_this.isStopped) { + if (!_this.currentObservers) { + _this.currentObservers = Array.from(_this.observers); + } + try { + for (var _b = __values(_this.currentObservers), _c = _b.next(); !_c.done; _c = _b.next()) { + var observer = _c.value; + observer.next(value); + } + } + catch (e_1_1) { e_1 = { error: e_1_1 }; } + finally { + try { + if (_c && !_c.done && (_a = _b.return)) _a.call(_b); + } + finally { if (e_1) throw e_1.error; } + } + } + }); + }; + Subject.prototype.error = function (err) { + var _this = this; + errorContext(function () { + _this._throwIfClosed(); + if (!_this.isStopped) { + _this.hasError = _this.isStopped = true; + _this.thrownError = err; + var observers = _this.observers; + while (observers.length) { + observers.shift().error(err); + } + } + }); + }; + Subject.prototype.complete = function () { + var _this = this; + errorContext(function () { + _this._throwIfClosed(); + if (!_this.isStopped) { + _this.isStopped = true; + var observers = _this.observers; + while (observers.length) { + observers.shift().complete(); + } + } + }); + }; + Subject.prototype.unsubscribe = function () { + this.isStopped = this.closed = true; + this.observers = this.currentObservers = null; + }; + Object.defineProperty(Subject.prototype, "observed", { + get: function () { + var _a; + return ((_a = this.observers) === null || _a === void 0 ? void 0 : _a.length) > 0; + }, + enumerable: false, + configurable: true + }); + Subject.prototype._trySubscribe = function (subscriber) { + this._throwIfClosed(); + return _super.prototype._trySubscribe.call(this, subscriber); + }; + Subject.prototype._subscribe = function (subscriber) { + this._throwIfClosed(); + this._checkFinalizedStatuses(subscriber); + return this._innerSubscribe(subscriber); + }; + Subject.prototype._innerSubscribe = function (subscriber) { + var _this = this; + var _a = this, hasError = _a.hasError, isStopped = _a.isStopped, observers = _a.observers; + if (hasError || isStopped) { + return EMPTY_SUBSCRIPTION; + } + this.currentObservers = null; + observers.push(subscriber); + return new Subscription(function () { + _this.currentObservers = null; + arrRemove(observers, subscriber); + }); + }; + Subject.prototype._checkFinalizedStatuses = function (subscriber) { + var _a = this, hasError = _a.hasError, thrownError = _a.thrownError, isStopped = _a.isStopped; + if (hasError) { + subscriber.error(thrownError); + } + else if (isStopped) { + subscriber.complete(); + } + }; + Subject.prototype.asObservable = function () { + var observable = new Observable(); + observable.source = this; + return observable; + }; + Subject.create = function (destination, source) { + return new AnonymousSubject(destination, source); + }; + return Subject; + }(Observable)); + var AnonymousSubject = (function (_super) { + __extends(AnonymousSubject, _super); + function AnonymousSubject(destination, source) { + var _this = _super.call(this) || this; + _this.destination = destination; + _this.source = source; + return _this; + } + AnonymousSubject.prototype.next = function (value) { + var _a, _b; + (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.next) === null || _b === void 0 ? void 0 : _b.call(_a, value); + }; + AnonymousSubject.prototype.error = function (err) { + var _a, _b; + (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.error) === null || _b === void 0 ? void 0 : _b.call(_a, err); + }; + AnonymousSubject.prototype.complete = function () { + var _a, _b; + (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.complete) === null || _b === void 0 ? void 0 : _b.call(_a); + }; + AnonymousSubject.prototype._subscribe = function (subscriber) { + var _a, _b; + return (_b = (_a = this.source) === null || _a === void 0 ? void 0 : _a.subscribe(subscriber)) !== null && _b !== void 0 ? _b : EMPTY_SUBSCRIPTION; + }; + return AnonymousSubject; + }(Subject)); + + ((function (_super) { + __extends(BehaviorSubject, _super); + function BehaviorSubject(_value) { + var _this = _super.call(this) || this; + _this._value = _value; + return _this; + } + Object.defineProperty(BehaviorSubject.prototype, "value", { + get: function () { + return this.getValue(); + }, + enumerable: false, + configurable: true + }); + BehaviorSubject.prototype._subscribe = function (subscriber) { + var subscription = _super.prototype._subscribe.call(this, subscriber); + !subscription.closed && subscriber.next(this._value); + return subscription; }; - }); + BehaviorSubject.prototype.getValue = function () { + var _a = this, hasError = _a.hasError, thrownError = _a.thrownError, _value = _a._value; + if (hasError) { + throw thrownError; + } + this._throwIfClosed(); + return _value; + }; + BehaviorSubject.prototype.next = function (value) { + _super.prototype.next.call(this, (this._value = value)); + }; + return BehaviorSubject; + })(Subject)); - function arrRemove(arr, item) { - if (arr) { - var index = arr.indexOf(item); - 0 <= index && arr.splice(index, 1); - } - } + var dateTimestampProvider = { + now: function () { + return (dateTimestampProvider.delegate || Date).now(); + }, + delegate: undefined, + }; - var Subscription = (function () { - function Subscription(initialTeardown) { - this.initialTeardown = initialTeardown; - this.closed = false; - this._parentage = null; - this._finalizers = null; + ((function (_super) { + __extends(ReplaySubject, _super); + function ReplaySubject(_bufferSize, _windowTime, _timestampProvider) { + if (_bufferSize === void 0) { _bufferSize = Infinity; } + if (_windowTime === void 0) { _windowTime = Infinity; } + if (_timestampProvider === void 0) { _timestampProvider = dateTimestampProvider; } + var _this = _super.call(this) || this; + _this._bufferSize = _bufferSize; + _this._windowTime = _windowTime; + _this._timestampProvider = _timestampProvider; + _this._buffer = []; + _this._infiniteTimeWindow = true; + _this._infiniteTimeWindow = _windowTime === Infinity; + _this._bufferSize = Math.max(1, _bufferSize); + _this._windowTime = Math.max(1, _windowTime); + return _this; } - Subscription.prototype.unsubscribe = function () { - var e_1, _a, e_2, _b; - var errors; - if (!this.closed) { - this.closed = true; - var _parentage = this._parentage; - if (_parentage) { - this._parentage = null; - if (Array.isArray(_parentage)) { - try { - for (var _parentage_1 = __values(_parentage), _parentage_1_1 = _parentage_1.next(); !_parentage_1_1.done; _parentage_1_1 = _parentage_1.next()) { - var parent_1 = _parentage_1_1.value; - parent_1.remove(this); - } - } - catch (e_1_1) { e_1 = { error: e_1_1 }; } - finally { - try { - if (_parentage_1_1 && !_parentage_1_1.done && (_a = _parentage_1.return)) _a.call(_parentage_1); - } - finally { if (e_1) throw e_1.error; } - } - } - else { - _parentage.remove(this); - } - } - var initialFinalizer = this.initialTeardown; - if (isFunction(initialFinalizer)) { - try { - initialFinalizer(); - } - catch (e) { - errors = e instanceof UnsubscriptionError ? e.errors : [e]; - } - } - var _finalizers = this._finalizers; - if (_finalizers) { - this._finalizers = null; - try { - for (var _finalizers_1 = __values(_finalizers), _finalizers_1_1 = _finalizers_1.next(); !_finalizers_1_1.done; _finalizers_1_1 = _finalizers_1.next()) { - var finalizer = _finalizers_1_1.value; - try { - execFinalizer(finalizer); - } - catch (err) { - errors = errors !== null && errors !== void 0 ? errors : []; - if (err instanceof UnsubscriptionError) { - errors = __spreadArray(__spreadArray([], __read(errors)), __read(err.errors)); - } - else { - errors.push(err); - } - } - } - } - catch (e_2_1) { e_2 = { error: e_2_1 }; } - finally { - try { - if (_finalizers_1_1 && !_finalizers_1_1.done && (_b = _finalizers_1.return)) _b.call(_finalizers_1); - } - finally { if (e_2) throw e_2.error; } - } - } - if (errors) { - throw new UnsubscriptionError(errors); - } + ReplaySubject.prototype.next = function (value) { + var _a = this, isStopped = _a.isStopped, _buffer = _a._buffer, _infiniteTimeWindow = _a._infiniteTimeWindow, _timestampProvider = _a._timestampProvider, _windowTime = _a._windowTime; + if (!isStopped) { + _buffer.push(value); + !_infiniteTimeWindow && _buffer.push(_timestampProvider.now() + _windowTime); } + this._trimBuffer(); + _super.prototype.next.call(this, value); }; - Subscription.prototype.add = function (teardown) { - var _a; - if (teardown && teardown !== this) { - if (this.closed) { - execFinalizer(teardown); - } - else { - if (teardown instanceof Subscription) { - if (teardown.closed || teardown._hasParent(this)) { - return; - } - teardown._addParent(this); - } - (this._finalizers = (_a = this._finalizers) !== null && _a !== void 0 ? _a : []).push(teardown); - } + ReplaySubject.prototype._subscribe = function (subscriber) { + this._throwIfClosed(); + this._trimBuffer(); + var subscription = this._innerSubscribe(subscriber); + var _a = this, _infiniteTimeWindow = _a._infiniteTimeWindow, _buffer = _a._buffer; + var copy = _buffer.slice(); + for (var i = 0; i < copy.length && !subscriber.closed; i += _infiniteTimeWindow ? 1 : 2) { + subscriber.next(copy[i]); } + this._checkFinalizedStatuses(subscriber); + return subscription; }; - Subscription.prototype._hasParent = function (parent) { - var _parentage = this._parentage; - return _parentage === parent || (Array.isArray(_parentage) && _parentage.includes(parent)); - }; - Subscription.prototype._addParent = function (parent) { - var _parentage = this._parentage; - this._parentage = Array.isArray(_parentage) ? (_parentage.push(parent), _parentage) : _parentage ? [_parentage, parent] : parent; + ReplaySubject.prototype._trimBuffer = function () { + var _a = this, _bufferSize = _a._bufferSize, _timestampProvider = _a._timestampProvider, _buffer = _a._buffer, _infiniteTimeWindow = _a._infiniteTimeWindow; + var adjustedBufferSize = (_infiniteTimeWindow ? 1 : 2) * _bufferSize; + _bufferSize < Infinity && adjustedBufferSize < _buffer.length && _buffer.splice(0, _buffer.length - adjustedBufferSize); + if (!_infiniteTimeWindow) { + var now = _timestampProvider.now(); + var last = 0; + for (var i = 1; i < _buffer.length && _buffer[i] <= now; i += 2) { + last = i; + } + last && _buffer.splice(0, last + 1); + } }; - Subscription.prototype._removeParent = function (parent) { - var _parentage = this._parentage; - if (_parentage === parent) { - this._parentage = null; + return ReplaySubject; + })(Subject)); + + ((function (_super) { + __extends(AsyncSubject, _super); + function AsyncSubject() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this._value = null; + _this._hasValue = false; + _this._isComplete = false; + return _this; + } + AsyncSubject.prototype._checkFinalizedStatuses = function (subscriber) { + var _a = this, hasError = _a.hasError, _hasValue = _a._hasValue, _value = _a._value, thrownError = _a.thrownError, isStopped = _a.isStopped, _isComplete = _a._isComplete; + if (hasError) { + subscriber.error(thrownError); } - else if (Array.isArray(_parentage)) { - arrRemove(_parentage, parent); + else if (isStopped || _isComplete) { + _hasValue && subscriber.next(_value); + subscriber.complete(); } }; - Subscription.prototype.remove = function (teardown) { - var _finalizers = this._finalizers; - _finalizers && arrRemove(_finalizers, teardown); - if (teardown instanceof Subscription) { - teardown._removeParent(this); + AsyncSubject.prototype.next = function (value) { + if (!this.isStopped) { + this._value = value; + this._hasValue = true; } }; - Subscription.EMPTY = (function () { - var empty = new Subscription(); - empty.closed = true; - return empty; - })(); - return Subscription; - }()); - var EMPTY_SUBSCRIPTION = Subscription.EMPTY; - function isSubscription(value) { - return (value instanceof Subscription || - (value && 'closed' in value && isFunction(value.remove) && isFunction(value.add) && isFunction(value.unsubscribe))); - } - function execFinalizer(finalizer) { - if (isFunction(finalizer)) { - finalizer(); - } - else { - finalizer.unsubscribe(); - } - } + AsyncSubject.prototype.complete = function () { + var _a = this, _hasValue = _a._hasValue, _value = _a._value, _isComplete = _a._isComplete; + if (!_isComplete) { + this._isComplete = true; + _hasValue && _super.prototype.next.call(this, _value); + _super.prototype.complete.call(this); + } + }; + return AsyncSubject; + })(Subject)); - var config = { - onUnhandledError: null, - onStoppedNotification: null, - Promise: undefined, - useDeprecatedSynchronousErrorHandling: false, - useDeprecatedNextContext: false, - }; + var Action = (function (_super) { + __extends(Action, _super); + function Action(scheduler, work) { + return _super.call(this) || this; + } + Action.prototype.schedule = function (state, delay) { + return this; + }; + return Action; + }(Subscription)); - var timeoutProvider = { - setTimeout: function (handler, timeout) { + var intervalProvider = { + setInterval: function (handler, timeout) { var args = []; for (var _i = 2; _i < arguments.length; _i++) { args[_i - 2] = arguments[_i]; } - return setTimeout.apply(void 0, __spreadArray([handler, timeout], __read(args))); + return setInterval.apply(void 0, __spreadArray([handler, timeout], __read(args))); }, - clearTimeout: function (handle) { - return (clearTimeout)(handle); + clearInterval: function (handle) { + return (clearInterval)(handle); }, delegate: undefined, }; - function reportUnhandledError(err) { - timeoutProvider.setTimeout(function () { - { - throw err; - } - }); - } - - function noop() { } - - function errorContext(cb) { - { - cb(); + var AsyncAction = (function (_super) { + __extends(AsyncAction, _super); + function AsyncAction(scheduler, work) { + var _this = _super.call(this, scheduler, work) || this; + _this.scheduler = scheduler; + _this.work = work; + _this.pending = false; + return _this; } - } - - var Subscriber = (function (_super) { - __extends(Subscriber, _super); - function Subscriber(destination) { - var _this = _super.call(this) || this; - _this.isStopped = false; - if (destination) { - _this.destination = destination; - if (isSubscription(destination)) { - destination.add(_this); - } + AsyncAction.prototype.schedule = function (state, delay) { + if (delay === void 0) { delay = 0; } + if (this.closed) { + return this; } - else { - _this.destination = EMPTY_OBSERVER; + this.state = state; + var id = this.id; + var scheduler = this.scheduler; + if (id != null) { + this.id = this.recycleAsyncId(scheduler, id, delay); } - return _this; - } - Subscriber.create = function (next, error, complete) { - return new SafeSubscriber(next, error, complete); + this.pending = true; + this.delay = delay; + this.id = this.id || this.requestAsyncId(scheduler, this.id, delay); + return this; }; - Subscriber.prototype.next = function (value) { - if (this.isStopped) ; - else { - this._next(value); - } + AsyncAction.prototype.requestAsyncId = function (scheduler, _id, delay) { + if (delay === void 0) { delay = 0; } + return intervalProvider.setInterval(scheduler.flush.bind(scheduler, this), delay); }; - Subscriber.prototype.error = function (err) { - if (this.isStopped) ; - else { - this.isStopped = true; - this._error(err); + AsyncAction.prototype.recycleAsyncId = function (_scheduler, id, delay) { + if (delay === void 0) { delay = 0; } + if (delay != null && this.delay === delay && this.pending === false) { + return id; } + intervalProvider.clearInterval(id); + return undefined; }; - Subscriber.prototype.complete = function () { - if (this.isStopped) ; - else { - this.isStopped = true; - this._complete(); + AsyncAction.prototype.execute = function (state, delay) { + if (this.closed) { + return new Error('executing a cancelled action'); } - }; - Subscriber.prototype.unsubscribe = function () { - if (!this.closed) { - this.isStopped = true; - _super.prototype.unsubscribe.call(this); - this.destination = null; + this.pending = false; + var error = this._execute(state, delay); + if (error) { + return error; + } + else if (this.pending === false && this.id != null) { + this.id = this.recycleAsyncId(this.scheduler, this.id, null); } }; - Subscriber.prototype._next = function (value) { - this.destination.next(value); - }; - Subscriber.prototype._error = function (err) { + AsyncAction.prototype._execute = function (state, _delay) { + var errored = false; + var errorValue; try { - this.destination.error(err); + this.work(state); } - finally { + catch (e) { + errored = true; + errorValue = e ? e : new Error('Scheduled action threw falsy error'); + } + if (errored) { this.unsubscribe(); + return errorValue; } }; - Subscriber.prototype._complete = function () { - try { - this.destination.complete(); - } - finally { - this.unsubscribe(); + AsyncAction.prototype.unsubscribe = function () { + if (!this.closed) { + var _a = this, id = _a.id, scheduler = _a.scheduler; + var actions = scheduler.actions; + this.work = this.state = this.scheduler = null; + this.pending = false; + arrRemove(actions, this); + if (id != null) { + this.id = this.recycleAsyncId(scheduler, id, null); + } + this.delay = null; + _super.prototype.unsubscribe.call(this); } }; - return Subscriber; - }(Subscription)); - var _bind = Function.prototype.bind; - function bind(fn, thisArg) { - return _bind.call(fn, thisArg); + return AsyncAction; + }(Action)); + + var nextHandle = 1; + var resolved; + var activeHandles = {}; + function findAndClearHandle(handle) { + if (handle in activeHandles) { + delete activeHandles[handle]; + return true; + } + return false; } - var ConsumerObserver = (function () { - function ConsumerObserver(partialObserver) { - this.partialObserver = partialObserver; + var Immediate = { + setImmediate: function (cb) { + var handle = nextHandle++; + activeHandles[handle] = true; + if (!resolved) { + resolved = Promise.resolve(); + } + resolved.then(function () { return findAndClearHandle(handle) && cb(); }); + return handle; + }, + clearImmediate: function (handle) { + findAndClearHandle(handle); + }, + }; + + var setImmediate = Immediate.setImmediate, clearImmediate = Immediate.clearImmediate; + var immediateProvider = { + setImmediate: function () { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + var delegate = immediateProvider.delegate; + return ((delegate === null || delegate === void 0 ? void 0 : delegate.setImmediate) || setImmediate).apply(void 0, __spreadArray([], __read(args))); + }, + clearImmediate: function (handle) { + return (clearImmediate)(handle); + }, + delegate: undefined, + }; + + var AsapAction = (function (_super) { + __extends(AsapAction, _super); + function AsapAction(scheduler, work) { + var _this = _super.call(this, scheduler, work) || this; + _this.scheduler = scheduler; + _this.work = work; + return _this; } - ConsumerObserver.prototype.next = function (value) { - var partialObserver = this.partialObserver; - if (partialObserver.next) { - try { - partialObserver.next(value); - } - catch (error) { - handleUnhandledError(error); - } + AsapAction.prototype.requestAsyncId = function (scheduler, id, delay) { + if (delay === void 0) { delay = 0; } + if (delay !== null && delay > 0) { + return _super.prototype.requestAsyncId.call(this, scheduler, id, delay); } + scheduler.actions.push(this); + return scheduler._scheduled || (scheduler._scheduled = immediateProvider.setImmediate(scheduler.flush.bind(scheduler, undefined))); }; - ConsumerObserver.prototype.error = function (err) { - var partialObserver = this.partialObserver; - if (partialObserver.error) { - try { - partialObserver.error(err); - } - catch (error) { - handleUnhandledError(error); - } + AsapAction.prototype.recycleAsyncId = function (scheduler, id, delay) { + if (delay === void 0) { delay = 0; } + if ((delay != null && delay > 0) || (delay == null && this.delay > 0)) { + return _super.prototype.recycleAsyncId.call(this, scheduler, id, delay); } - else { - handleUnhandledError(err); + if (!scheduler.actions.some(function (action) { return action.id === id; })) { + immediateProvider.clearImmediate(id); + scheduler._scheduled = undefined; + } + return undefined; + }; + return AsapAction; + }(AsyncAction)); + + var Scheduler = (function () { + function Scheduler(schedulerActionCtor, now) { + if (now === void 0) { now = Scheduler.now; } + this.schedulerActionCtor = schedulerActionCtor; + this.now = now; + } + Scheduler.prototype.schedule = function (work, delay, state) { + if (delay === void 0) { delay = 0; } + return new this.schedulerActionCtor(this, work).schedule(state, delay); + }; + Scheduler.now = dateTimestampProvider.now; + return Scheduler; + }()); + + var AsyncScheduler = (function (_super) { + __extends(AsyncScheduler, _super); + function AsyncScheduler(SchedulerAction, now) { + if (now === void 0) { now = Scheduler.now; } + var _this = _super.call(this, SchedulerAction, now) || this; + _this.actions = []; + _this._active = false; + _this._scheduled = undefined; + return _this; + } + AsyncScheduler.prototype.flush = function (action) { + var actions = this.actions; + if (this._active) { + actions.push(action); + return; } - }; - ConsumerObserver.prototype.complete = function () { - var partialObserver = this.partialObserver; - if (partialObserver.complete) { - try { - partialObserver.complete(); + var error; + this._active = true; + do { + if ((error = action.execute(action.state, action.delay))) { + break; } - catch (error) { - handleUnhandledError(error); + } while ((action = actions.shift())); + this._active = false; + if (error) { + while ((action = actions.shift())) { + action.unsubscribe(); } + throw error; } }; - return ConsumerObserver; - }()); - var SafeSubscriber = (function (_super) { - __extends(SafeSubscriber, _super); - function SafeSubscriber(observerOrNext, error, complete) { - var _this = _super.call(this) || this; - var partialObserver; - if (isFunction(observerOrNext) || !observerOrNext) { - partialObserver = { - next: (observerOrNext !== null && observerOrNext !== void 0 ? observerOrNext : undefined), - error: error !== null && error !== void 0 ? error : undefined, - complete: complete !== null && complete !== void 0 ? complete : undefined, - }; - } - else { - var context_1; - if (_this && config.useDeprecatedNextContext) { - context_1 = Object.create(observerOrNext); - context_1.unsubscribe = function () { return _this.unsubscribe(); }; - partialObserver = { - next: observerOrNext.next && bind(observerOrNext.next, context_1), - error: observerOrNext.error && bind(observerOrNext.error, context_1), - complete: observerOrNext.complete && bind(observerOrNext.complete, context_1), - }; + return AsyncScheduler; + }(Scheduler)); + + var AsapScheduler = (function (_super) { + __extends(AsapScheduler, _super); + function AsapScheduler() { + return _super !== null && _super.apply(this, arguments) || this; + } + AsapScheduler.prototype.flush = function (action) { + this._active = true; + var flushId = this._scheduled; + this._scheduled = undefined; + var actions = this.actions; + var error; + action = action || actions.shift(); + do { + if ((error = action.execute(action.state, action.delay))) { + break; } - else { - partialObserver = observerOrNext; + } while ((action = actions[0]) && action.id === flushId && actions.shift()); + this._active = false; + if (error) { + while ((action = actions[0]) && action.id === flushId && actions.shift()) { + action.unsubscribe(); } + throw error; } - _this.destination = new ConsumerObserver(partialObserver); + }; + return AsapScheduler; + }(AsyncScheduler)); + + new AsapScheduler(AsapAction); + + new AsyncScheduler(AsyncAction); + + var QueueAction = (function (_super) { + __extends(QueueAction, _super); + function QueueAction(scheduler, work) { + var _this = _super.call(this, scheduler, work) || this; + _this.scheduler = scheduler; + _this.work = work; return _this; } - return SafeSubscriber; - }(Subscriber)); - function handleUnhandledError(error) { - { - reportUnhandledError(error); - } - } - function defaultErrorHandler(err) { - throw err; - } - var EMPTY_OBSERVER = { - closed: true, - next: noop, - error: defaultErrorHandler, - complete: noop, - }; + QueueAction.prototype.schedule = function (state, delay) { + if (delay === void 0) { delay = 0; } + if (delay > 0) { + return _super.prototype.schedule.call(this, state, delay); + } + this.delay = delay; + this.state = state; + this.scheduler.flush(this); + return this; + }; + QueueAction.prototype.execute = function (state, delay) { + return (delay > 0 || this.closed) ? + _super.prototype.execute.call(this, state, delay) : + this._execute(state, delay); + }; + QueueAction.prototype.requestAsyncId = function (scheduler, id, delay) { + if (delay === void 0) { delay = 0; } + if ((delay != null && delay > 0) || (delay == null && this.delay > 0)) { + return _super.prototype.requestAsyncId.call(this, scheduler, id, delay); + } + return scheduler.flush(this); + }; + return QueueAction; + }(AsyncAction)); - var observable = (function () { return (typeof Symbol === 'function' && Symbol.observable) || '@@observable'; })(); + var QueueScheduler = (function (_super) { + __extends(QueueScheduler, _super); + function QueueScheduler() { + return _super !== null && _super.apply(this, arguments) || this; + } + return QueueScheduler; + }(AsyncScheduler)); - function identity(x) { - return x; - } + new QueueScheduler(QueueAction); - function pipeFromArray(fns) { - if (fns.length === 0) { - return identity; - } - if (fns.length === 1) { - return fns[0]; + var AnimationFrameAction = (function (_super) { + __extends(AnimationFrameAction, _super); + function AnimationFrameAction(scheduler, work) { + var _this = _super.call(this, scheduler, work) || this; + _this.scheduler = scheduler; + _this.work = work; + return _this; } - return function piped(input) { - return fns.reduce(function (prev, fn) { return fn(prev); }, input); + AnimationFrameAction.prototype.requestAsyncId = function (scheduler, id, delay) { + if (delay === void 0) { delay = 0; } + if (delay !== null && delay > 0) { + return _super.prototype.requestAsyncId.call(this, scheduler, id, delay); + } + scheduler.actions.push(this); + return scheduler._scheduled || (scheduler._scheduled = animationFrameProvider.requestAnimationFrame(function () { return scheduler.flush(undefined); })); }; - } - - var Observable = (function () { - function Observable(subscribe) { - if (subscribe) { - this._subscribe = subscribe; + AnimationFrameAction.prototype.recycleAsyncId = function (scheduler, id, delay) { + if (delay === void 0) { delay = 0; } + if ((delay != null && delay > 0) || (delay == null && this.delay > 0)) { + return _super.prototype.recycleAsyncId.call(this, scheduler, id, delay); } - } - Observable.prototype.lift = function (operator) { - var observable = new Observable(); - observable.source = this; - observable.operator = operator; - return observable; + if (!scheduler.actions.some(function (action) { return action.id === id; })) { + animationFrameProvider.cancelAnimationFrame(id); + scheduler._scheduled = undefined; + } + return undefined; }; - Observable.prototype.subscribe = function (observerOrNext, error, complete) { - var _this = this; - var subscriber = isSubscriber(observerOrNext) ? observerOrNext : new SafeSubscriber(observerOrNext, error, complete); - errorContext(function () { - var _a = _this, operator = _a.operator, source = _a.source; - subscriber.add(operator - ? - operator.call(subscriber, source) - : source - ? - _this._subscribe(subscriber) - : - _this._trySubscribe(subscriber)); - }); - return subscriber; + return AnimationFrameAction; + }(AsyncAction)); + + var AnimationFrameScheduler = (function (_super) { + __extends(AnimationFrameScheduler, _super); + function AnimationFrameScheduler() { + return _super !== null && _super.apply(this, arguments) || this; + } + AnimationFrameScheduler.prototype.flush = function (action) { + this._active = true; + var flushId = this._scheduled; + this._scheduled = undefined; + var actions = this.actions; + var error; + action = action || actions.shift(); + do { + if ((error = action.execute(action.state, action.delay))) { + break; + } + } while ((action = actions[0]) && action.id === flushId && actions.shift()); + this._active = false; + if (error) { + while ((action = actions[0]) && action.id === flushId && actions.shift()) { + action.unsubscribe(); + } + throw error; + } }; - Observable.prototype._trySubscribe = function (sink) { - try { - return this._subscribe(sink); + return AnimationFrameScheduler; + }(AsyncScheduler)); + + new AnimationFrameScheduler(AnimationFrameAction); + + ((function (_super) { + __extends(VirtualTimeScheduler, _super); + function VirtualTimeScheduler(schedulerActionCtor, maxFrames) { + if (schedulerActionCtor === void 0) { schedulerActionCtor = VirtualAction; } + if (maxFrames === void 0) { maxFrames = Infinity; } + var _this = _super.call(this, schedulerActionCtor, function () { return _this.frame; }) || this; + _this.maxFrames = maxFrames; + _this.frame = 0; + _this.index = -1; + return _this; + } + VirtualTimeScheduler.prototype.flush = function () { + var _a = this, actions = _a.actions, maxFrames = _a.maxFrames; + var error; + var action; + while ((action = actions[0]) && action.delay <= maxFrames) { + actions.shift(); + this.frame = action.delay; + if ((error = action.execute(action.state, action.delay))) { + break; + } } - catch (err) { - sink.error(err); + if (error) { + while ((action = actions.shift())) { + action.unsubscribe(); + } + throw error; } }; - Observable.prototype.forEach = function (next, promiseCtor) { - var _this = this; - promiseCtor = getPromiseCtor(promiseCtor); - return new promiseCtor(function (resolve, reject) { - var subscriber = new SafeSubscriber({ - next: function (value) { - try { - next(value); - } - catch (err) { - reject(err); - subscriber.unsubscribe(); - } - }, - error: reject, - complete: resolve, - }); - _this.subscribe(subscriber); - }); + VirtualTimeScheduler.frameTimeFactor = 10; + return VirtualTimeScheduler; + })(AsyncScheduler)); + var VirtualAction = (function (_super) { + __extends(VirtualAction, _super); + function VirtualAction(scheduler, work, index) { + if (index === void 0) { index = (scheduler.index += 1); } + var _this = _super.call(this, scheduler, work) || this; + _this.scheduler = scheduler; + _this.work = work; + _this.index = index; + _this.active = true; + _this.index = scheduler.index = index; + return _this; + } + VirtualAction.prototype.schedule = function (state, delay) { + if (delay === void 0) { delay = 0; } + if (Number.isFinite(delay)) { + if (!this.id) { + return _super.prototype.schedule.call(this, state, delay); + } + this.active = false; + var action = new VirtualAction(this.scheduler, this.work); + this.add(action); + return action.schedule(state, delay); + } + else { + return Subscription.EMPTY; + } }; - Observable.prototype._subscribe = function (subscriber) { - var _a; - return (_a = this.source) === null || _a === void 0 ? void 0 : _a.subscribe(subscriber); + VirtualAction.prototype.requestAsyncId = function (scheduler, id, delay) { + if (delay === void 0) { delay = 0; } + this.delay = scheduler.frame + delay; + var actions = scheduler.actions; + actions.push(this); + actions.sort(VirtualAction.sortActions); + return true; }; - Observable.prototype[observable] = function () { - return this; + VirtualAction.prototype.recycleAsyncId = function (scheduler, id, delay) { + return undefined; }; - Observable.prototype.pipe = function () { - var operations = []; - for (var _i = 0; _i < arguments.length; _i++) { - operations[_i] = arguments[_i]; + VirtualAction.prototype._execute = function (state, delay) { + if (this.active === true) { + return _super.prototype._execute.call(this, state, delay); } - return pipeFromArray(operations)(this); - }; - Observable.prototype.toPromise = function (promiseCtor) { - var _this = this; - promiseCtor = getPromiseCtor(promiseCtor); - return new promiseCtor(function (resolve, reject) { - var value; - _this.subscribe(function (x) { return (value = x); }, function (err) { return reject(err); }, function () { return resolve(value); }); - }); }; - Observable.create = function (subscribe) { - return new Observable(subscribe); + VirtualAction.sortActions = function (a, b) { + if (a.delay === b.delay) { + if (a.index === b.index) { + return 0; + } + else if (a.index > b.index) { + return 1; + } + else { + return -1; + } + } + else if (a.delay > b.delay) { + return 1; + } + else { + return -1; + } }; - return Observable; - }()); - function getPromiseCtor(promiseCtor) { - var _a; - return (_a = promiseCtor !== null && promiseCtor !== void 0 ? promiseCtor : config.Promise) !== null && _a !== void 0 ? _a : Promise; + return VirtualAction; + }(AsyncAction)); + + new Observable(function (subscriber) { return subscriber.complete(); }); + + var isArrayLike = (function (x) { return x && typeof x.length === 'number' && typeof x !== 'function'; }); + + function isPromise(value) { + return isFunction(value === null || value === void 0 ? void 0 : value.then); } - function isObserver(value) { - return value && isFunction(value.next) && isFunction(value.error) && isFunction(value.complete); + + function isInteropObservable(input) { + return isFunction(input[observable]); } - function isSubscriber(value) { - return (value && value instanceof Subscriber) || (isObserver(value) && isSubscription(value)); + + function isAsyncIterable(obj) { + return Symbol.asyncIterator && isFunction(obj === null || obj === void 0 ? void 0 : obj[Symbol.asyncIterator]); } - function hasLift(source) { - return isFunction(source === null || source === void 0 ? void 0 : source.lift); + function createInvalidObservableTypeError(input) { + return new TypeError("You provided " + (input !== null && typeof input === 'object' ? 'an invalid object' : "'" + input + "'") + " where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable."); } - function operate(init) { - return function (source) { - if (hasLift(source)) { - return source.lift(function (liftedSource) { - try { - return init(liftedSource, this); - } - catch (err) { - this.error(err); - } - }); - } - throw new TypeError('Unable to lift unknown Observable type'); - }; + + function getSymbolIterator() { + if (typeof Symbol !== 'function' || !Symbol.iterator) { + return '@@iterator'; + } + return Symbol.iterator; } + var iterator = getSymbolIterator(); - function createOperatorSubscriber(destination, onNext, onComplete, onError, onFinalize) { - return new OperatorSubscriber(destination, onNext, onComplete, onError, onFinalize); + function isIterable(input) { + return isFunction(input === null || input === void 0 ? void 0 : input[iterator]); } - var OperatorSubscriber = (function (_super) { - __extends(OperatorSubscriber, _super); - function OperatorSubscriber(destination, onNext, onComplete, onError, onFinalize, shouldUnsubscribe) { - var _this = _super.call(this, destination) || this; - _this.onFinalize = onFinalize; - _this.shouldUnsubscribe = shouldUnsubscribe; - _this._next = onNext - ? function (value) { - try { - onNext(value); - } - catch (err) { - destination.error(err); - } - } - : _super.prototype._next; - _this._error = onError - ? function (err) { - try { - onError(err); - } - catch (err) { - destination.error(err); - } - finally { - this.unsubscribe(); - } - } - : _super.prototype._error; - _this._complete = onComplete - ? function () { - try { - onComplete(); - } - catch (err) { - destination.error(err); - } - finally { - this.unsubscribe(); - } - } - : _super.prototype._complete; - return _this; - } - OperatorSubscriber.prototype.unsubscribe = function () { - var _a; - if (!this.shouldUnsubscribe || this.shouldUnsubscribe()) { - var closed_1 = this.closed; - _super.prototype.unsubscribe.call(this); - !closed_1 && ((_a = this.onFinalize) === null || _a === void 0 ? void 0 : _a.call(this)); - } - }; - return OperatorSubscriber; - }(Subscriber)); - function refCount() { - return operate(function (source, subscriber) { - var connection = null; - source._refCount++; - var refCounter = createOperatorSubscriber(subscriber, undefined, undefined, undefined, function () { - if (!source || source._refCount <= 0 || 0 < --source._refCount) { - connection = null; - return; - } - var sharedConnection = source._connection; - var conn = connection; - connection = null; - if (sharedConnection && (!conn || sharedConnection === conn)) { - sharedConnection.unsubscribe(); - } - subscriber.unsubscribe(); - }); - source.subscribe(refCounter); - if (!refCounter.closed) { - connection = source.connect(); - } + function readableStreamLikeToAsyncGenerator(readableStream) { + return __asyncGenerator(this, arguments, function readableStreamLikeToAsyncGenerator_1() { + var reader, _a, value, done; + return __generator(this, function (_b) { + switch (_b.label) { + case 0: + reader = readableStream.getReader(); + _b.label = 1; + case 1: + _b.trys.push([1, , 9, 10]); + _b.label = 2; + case 2: + return [4, __await(reader.read())]; + case 3: + _a = _b.sent(), value = _a.value, done = _a.done; + if (!done) return [3, 5]; + return [4, __await(void 0)]; + case 4: return [2, _b.sent()]; + case 5: return [4, __await(value)]; + case 6: return [4, _b.sent()]; + case 7: + _b.sent(); + return [3, 2]; + case 8: return [3, 10]; + case 9: + reader.releaseLock(); + return [7]; + case 10: return [2]; + } + }); }); } + function isReadableStreamLike(obj) { + return isFunction(obj === null || obj === void 0 ? void 0 : obj.getReader); + } - ((function (_super) { - __extends(ConnectableObservable, _super); - function ConnectableObservable(source, subjectFactory) { - var _this = _super.call(this) || this; - _this.source = source; - _this.subjectFactory = subjectFactory; - _this._subject = null; - _this._refCount = 0; - _this._connection = null; - if (hasLift(source)) { - _this.lift = source.lift; - } - return _this; + function innerFrom(input) { + if (input instanceof Observable) { + return input; } - ConnectableObservable.prototype._subscribe = function (subscriber) { - return this.getSubject().subscribe(subscriber); - }; - ConnectableObservable.prototype.getSubject = function () { - var subject = this._subject; - if (!subject || subject.isStopped) { - this._subject = this.subjectFactory(); + if (input != null) { + if (isInteropObservable(input)) { + return fromInteropObservable(input); } - return this._subject; - }; - ConnectableObservable.prototype._teardown = function () { - this._refCount = 0; - var _connection = this._connection; - this._subject = this._connection = null; - _connection === null || _connection === void 0 ? void 0 : _connection.unsubscribe(); - }; - ConnectableObservable.prototype.connect = function () { - var _this = this; - var connection = this._connection; - if (!connection) { - connection = this._connection = new Subscription(); - var subject_1 = this.getSubject(); - connection.add(this.source.subscribe(createOperatorSubscriber(subject_1, undefined, function () { - _this._teardown(); - subject_1.complete(); - }, function (err) { - _this._teardown(); - subject_1.error(err); - }, function () { return _this._teardown(); }))); - if (connection.closed) { - this._connection = null; - connection = Subscription.EMPTY; - } + if (isArrayLike(input)) { + return fromArrayLike(input); } - return connection; - }; - ConnectableObservable.prototype.refCount = function () { - return refCount()(this); - }; - return ConnectableObservable; - })(Observable)); - - var performanceTimestampProvider = { - now: function () { - return (performanceTimestampProvider.delegate || performance).now(); - }, - delegate: undefined, - }; - - var animationFrameProvider = { - schedule: function (callback) { - var request = requestAnimationFrame; - var cancel = cancelAnimationFrame; - var handle = request(function (timestamp) { - cancel = undefined; - callback(timestamp); - }); - return new Subscription(function () { return cancel === null || cancel === void 0 ? void 0 : cancel(handle); }); - }, - requestAnimationFrame: function () { - var args = []; - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; + if (isPromise(input)) { + return fromPromise(input); } - var delegate = animationFrameProvider.delegate; - return ((delegate === null || delegate === void 0 ? void 0 : delegate.requestAnimationFrame) || requestAnimationFrame).apply(void 0, __spreadArray([], __read(args))); - }, - cancelAnimationFrame: function () { - var args = []; - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; + if (isAsyncIterable(input)) { + return fromAsyncIterable(input); } - return (cancelAnimationFrame).apply(void 0, __spreadArray([], __read(args))); - }, - delegate: undefined, - }; - - function animationFramesFactory(timestampProvider) { - var schedule = animationFrameProvider.schedule; + if (isIterable(input)) { + return fromIterable(input); + } + if (isReadableStreamLike(input)) { + return fromReadableStreamLike(input); + } + } + throw createInvalidObservableTypeError(input); + } + function fromInteropObservable(obj) { return new Observable(function (subscriber) { - var subscription = new Subscription(); - var provider = timestampProvider || performanceTimestampProvider; - var start = provider.now(); - var run = function (timestamp) { - var now = provider.now(); - subscriber.next({ - timestamp: timestampProvider ? now : timestamp, - elapsed: now - start, - }); + var obs = obj[observable](); + if (isFunction(obs.subscribe)) { + return obs.subscribe(subscriber); + } + throw new TypeError('Provided object does not correctly implement Symbol.observable'); + }); + } + function fromArrayLike(array) { + return new Observable(function (subscriber) { + for (var i = 0; i < array.length && !subscriber.closed; i++) { + subscriber.next(array[i]); + } + subscriber.complete(); + }); + } + function fromPromise(promise) { + return new Observable(function (subscriber) { + promise + .then(function (value) { if (!subscriber.closed) { - subscription.add(schedule(run)); + subscriber.next(value); + subscriber.complete(); } - }; - subscription.add(schedule(run)); - return subscription; + }, function (err) { return subscriber.error(err); }) + .then(null, reportUnhandledError); }); } - animationFramesFactory(); - - var ObjectUnsubscribedError = createErrorClass(function (_super) { - return function ObjectUnsubscribedErrorImpl() { - _super(this); - this.name = 'ObjectUnsubscribedError'; - this.message = 'object unsubscribed'; - }; - }); - - var Subject = (function (_super) { - __extends(Subject, _super); - function Subject() { - var _this = _super.call(this) || this; - _this.closed = false; - _this.currentObservers = null; - _this.observers = []; - _this.isStopped = false; - _this.hasError = false; - _this.thrownError = null; - return _this; - } - Subject.prototype.lift = function (operator) { - var subject = new AnonymousSubject(this, this); - subject.operator = operator; - return subject; - }; - Subject.prototype._throwIfClosed = function () { - if (this.closed) { - throw new ObjectUnsubscribedError(); - } - }; - Subject.prototype.next = function (value) { - var _this = this; - errorContext(function () { - var e_1, _a; - _this._throwIfClosed(); - if (!_this.isStopped) { - if (!_this.currentObservers) { - _this.currentObservers = Array.from(_this.observers); - } - try { - for (var _b = __values(_this.currentObservers), _c = _b.next(); !_c.done; _c = _b.next()) { - var observer = _c.value; - observer.next(value); - } - } - catch (e_1_1) { e_1 = { error: e_1_1 }; } - finally { - try { - if (_c && !_c.done && (_a = _b.return)) _a.call(_b); - } - finally { if (e_1) throw e_1.error; } + function fromIterable(iterable) { + return new Observable(function (subscriber) { + var e_1, _a; + try { + for (var iterable_1 = __values(iterable), iterable_1_1 = iterable_1.next(); !iterable_1_1.done; iterable_1_1 = iterable_1.next()) { + var value = iterable_1_1.value; + subscriber.next(value); + if (subscriber.closed) { + return; } } - }); - }; - Subject.prototype.error = function (err) { - var _this = this; - errorContext(function () { - _this._throwIfClosed(); - if (!_this.isStopped) { - _this.hasError = _this.isStopped = true; - _this.thrownError = err; - var observers = _this.observers; - while (observers.length) { - observers.shift().error(err); - } + } + catch (e_1_1) { e_1 = { error: e_1_1 }; } + finally { + try { + if (iterable_1_1 && !iterable_1_1.done && (_a = iterable_1.return)) _a.call(iterable_1); } - }); - }; - Subject.prototype.complete = function () { - var _this = this; - errorContext(function () { - _this._throwIfClosed(); - if (!_this.isStopped) { - _this.isStopped = true; - var observers = _this.observers; - while (observers.length) { - observers.shift().complete(); - } + finally { if (e_1) throw e_1.error; } + } + subscriber.complete(); + }); + } + function fromAsyncIterable(asyncIterable) { + return new Observable(function (subscriber) { + process(asyncIterable, subscriber).catch(function (err) { return subscriber.error(err); }); + }); + } + function fromReadableStreamLike(readableStream) { + return fromAsyncIterable(readableStreamLikeToAsyncGenerator(readableStream)); + } + function process(asyncIterable, subscriber) { + var asyncIterable_1, asyncIterable_1_1; + var e_2, _a; + return __awaiter(this, void 0, void 0, function () { + var value, e_2_1; + return __generator(this, function (_b) { + switch (_b.label) { + case 0: + _b.trys.push([0, 5, 6, 11]); + asyncIterable_1 = __asyncValues(asyncIterable); + _b.label = 1; + case 1: return [4, asyncIterable_1.next()]; + case 2: + if (!(asyncIterable_1_1 = _b.sent(), !asyncIterable_1_1.done)) return [3, 4]; + value = asyncIterable_1_1.value; + subscriber.next(value); + if (subscriber.closed) { + return [2]; + } + _b.label = 3; + case 3: return [3, 1]; + case 4: return [3, 11]; + case 5: + e_2_1 = _b.sent(); + e_2 = { error: e_2_1 }; + return [3, 11]; + case 6: + _b.trys.push([6, , 9, 10]); + if (!(asyncIterable_1_1 && !asyncIterable_1_1.done && (_a = asyncIterable_1.return))) return [3, 8]; + return [4, _a.call(asyncIterable_1)]; + case 7: + _b.sent(); + _b.label = 8; + case 8: return [3, 10]; + case 9: + if (e_2) throw e_2.error; + return [7]; + case 10: return [7]; + case 11: + subscriber.complete(); + return [2]; } }); - }; - Subject.prototype.unsubscribe = function () { - this.isStopped = this.closed = true; - this.observers = this.currentObservers = null; - }; - Object.defineProperty(Subject.prototype, "observed", { - get: function () { - var _a; - return ((_a = this.observers) === null || _a === void 0 ? void 0 : _a.length) > 0; - }, - enumerable: false, - configurable: true }); - Subject.prototype._trySubscribe = function (subscriber) { - this._throwIfClosed(); - return _super.prototype._trySubscribe.call(this, subscriber); - }; - Subject.prototype._subscribe = function (subscriber) { - this._throwIfClosed(); - this._checkFinalizedStatuses(subscriber); - return this._innerSubscribe(subscriber); - }; - Subject.prototype._innerSubscribe = function (subscriber) { - var _this = this; - var _a = this, hasError = _a.hasError, isStopped = _a.isStopped, observers = _a.observers; - if (hasError || isStopped) { - return EMPTY_SUBSCRIPTION; - } - this.currentObservers = null; - observers.push(subscriber); - return new Subscription(function () { - _this.currentObservers = null; - arrRemove(observers, subscriber); - }); - }; - Subject.prototype._checkFinalizedStatuses = function (subscriber) { - var _a = this, hasError = _a.hasError, thrownError = _a.thrownError, isStopped = _a.isStopped; - if (hasError) { - subscriber.error(thrownError); + } + + function executeSchedule(parentSubscription, scheduler, work, delay, repeat) { + if (delay === void 0) { delay = 0; } + if (repeat === void 0) { repeat = false; } + var scheduleSubscription = scheduler.schedule(function () { + work(); + if (repeat) { + parentSubscription.add(this.schedule(null, delay)); } - else if (isStopped) { - subscriber.complete(); + else { + this.unsubscribe(); } - }; - Subject.prototype.asObservable = function () { - var observable = new Observable(); - observable.source = this; - return observable; - }; - Subject.create = function (destination, source) { - return new AnonymousSubject(destination, source); - }; - return Subject; - }(Observable)); - var AnonymousSubject = (function (_super) { - __extends(AnonymousSubject, _super); - function AnonymousSubject(destination, source) { - var _this = _super.call(this) || this; - _this.destination = destination; - _this.source = source; - return _this; + }, delay); + parentSubscription.add(scheduleSubscription); + if (!repeat) { + return scheduleSubscription; } - AnonymousSubject.prototype.next = function (value) { - var _a, _b; - (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.next) === null || _b === void 0 ? void 0 : _b.call(_a, value); - }; - AnonymousSubject.prototype.error = function (err) { - var _a, _b; - (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.error) === null || _b === void 0 ? void 0 : _b.call(_a, err); - }; - AnonymousSubject.prototype.complete = function () { - var _a, _b; - (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.complete) === null || _b === void 0 ? void 0 : _b.call(_a); - }; - AnonymousSubject.prototype._subscribe = function (subscriber) { - var _a, _b; - return (_b = (_a = this.source) === null || _a === void 0 ? void 0 : _a.subscribe(subscriber)) !== null && _b !== void 0 ? _b : EMPTY_SUBSCRIPTION; - }; - return AnonymousSubject; - }(Subject)); + } - ((function (_super) { - __extends(BehaviorSubject, _super); - function BehaviorSubject(_value) { - var _this = _super.call(this) || this; - _this._value = _value; - return _this; - } - Object.defineProperty(BehaviorSubject.prototype, "value", { - get: function () { - return this.getValue(); - }, - enumerable: false, - configurable: true - }); - BehaviorSubject.prototype._subscribe = function (subscriber) { - var subscription = _super.prototype._subscribe.call(this, subscriber); - !subscription.closed && subscriber.next(this._value); - return subscription; - }; - BehaviorSubject.prototype.getValue = function () { - var _a = this, hasError = _a.hasError, thrownError = _a.thrownError, _value = _a._value; - if (hasError) { - throw thrownError; - } - this._throwIfClosed(); - return _value; - }; - BehaviorSubject.prototype.next = function (value) { - _super.prototype.next.call(this, (this._value = value)); - }; - return BehaviorSubject; - })(Subject)); + var NotificationKind; + (function (NotificationKind) { + NotificationKind["NEXT"] = "N"; + NotificationKind["ERROR"] = "E"; + NotificationKind["COMPLETE"] = "C"; + })(NotificationKind || (NotificationKind = {})); - var dateTimestampProvider = { - now: function () { - return (dateTimestampProvider.delegate || Date).now(); - }, - delegate: undefined, - }; + createErrorClass(function (_super) { return function EmptyErrorImpl() { + _super(this); + this.name = 'EmptyError'; + this.message = 'no elements in sequence'; + }; }); - ((function (_super) { - __extends(ReplaySubject, _super); - function ReplaySubject(_bufferSize, _windowTime, _timestampProvider) { - if (_bufferSize === void 0) { _bufferSize = Infinity; } - if (_windowTime === void 0) { _windowTime = Infinity; } - if (_timestampProvider === void 0) { _timestampProvider = dateTimestampProvider; } - var _this = _super.call(this) || this; - _this._bufferSize = _bufferSize; - _this._windowTime = _windowTime; - _this._timestampProvider = _timestampProvider; - _this._buffer = []; - _this._infiniteTimeWindow = true; - _this._infiniteTimeWindow = _windowTime === Infinity; - _this._bufferSize = Math.max(1, _bufferSize); - _this._windowTime = Math.max(1, _windowTime); - return _this; - } - ReplaySubject.prototype.next = function (value) { - var _a = this, isStopped = _a.isStopped, _buffer = _a._buffer, _infiniteTimeWindow = _a._infiniteTimeWindow, _timestampProvider = _a._timestampProvider, _windowTime = _a._windowTime; - if (!isStopped) { - _buffer.push(value); - !_infiniteTimeWindow && _buffer.push(_timestampProvider.now() + _windowTime); - } - this._trimBuffer(); - _super.prototype.next.call(this, value); + createErrorClass(function (_super) { + return function ArgumentOutOfRangeErrorImpl() { + _super(this); + this.name = 'ArgumentOutOfRangeError'; + this.message = 'argument out of range'; }; - ReplaySubject.prototype._subscribe = function (subscriber) { - this._throwIfClosed(); - this._trimBuffer(); - var subscription = this._innerSubscribe(subscriber); - var _a = this, _infiniteTimeWindow = _a._infiniteTimeWindow, _buffer = _a._buffer; - var copy = _buffer.slice(); - for (var i = 0; i < copy.length && !subscriber.closed; i += _infiniteTimeWindow ? 1 : 2) { - subscriber.next(copy[i]); - } - this._checkFinalizedStatuses(subscriber); - return subscription; + }); + + createErrorClass(function (_super) { + return function NotFoundErrorImpl(message) { + _super(this); + this.name = 'NotFoundError'; + this.message = message; }; - ReplaySubject.prototype._trimBuffer = function () { - var _a = this, _bufferSize = _a._bufferSize, _timestampProvider = _a._timestampProvider, _buffer = _a._buffer, _infiniteTimeWindow = _a._infiniteTimeWindow; - var adjustedBufferSize = (_infiniteTimeWindow ? 1 : 2) * _bufferSize; - _bufferSize < Infinity && adjustedBufferSize < _buffer.length && _buffer.splice(0, _buffer.length - adjustedBufferSize); - if (!_infiniteTimeWindow) { - var now = _timestampProvider.now(); - var last = 0; - for (var i = 1; i < _buffer.length && _buffer[i] <= now; i += 2) { - last = i; - } - last && _buffer.splice(0, last + 1); - } + }); + + createErrorClass(function (_super) { + return function SequenceErrorImpl(message) { + _super(this); + this.name = 'SequenceError'; + this.message = message; + }; + }); + + createErrorClass(function (_super) { + return function TimeoutErrorImpl(info) { + if (info === void 0) { info = null; } + _super(this); + this.message = 'Timeout has occurred'; + this.name = 'TimeoutError'; + this.info = info; }; - return ReplaySubject; - })(Subject)); + }); - ((function (_super) { - __extends(AsyncSubject, _super); - function AsyncSubject() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this._value = null; - _this._hasValue = false; - _this._isComplete = false; - return _this; - } - AsyncSubject.prototype._checkFinalizedStatuses = function (subscriber) { - var _a = this, hasError = _a.hasError, _hasValue = _a._hasValue, _value = _a._value, thrownError = _a.thrownError, isStopped = _a.isStopped, _isComplete = _a._isComplete; - if (hasError) { - subscriber.error(thrownError); - } - else if (isStopped || _isComplete) { - _hasValue && subscriber.next(_value); + function map(project, thisArg) { + return operate(function (source, subscriber) { + var index = 0; + source.subscribe(createOperatorSubscriber(subscriber, function (value) { + subscriber.next(project.call(thisArg, value, index++)); + })); + }); + } + + var isArray = Array.isArray; + function callOrApply(fn, args) { + return isArray(args) ? fn.apply(void 0, __spreadArray([], __read(args))) : fn(args); + } + function mapOneOrManyArgs(fn) { + return map(function (args) { return callOrApply(fn, args); }); + } + + function mergeInternals(source, subscriber, project, concurrent, onBeforeNext, expand, innerSubScheduler, additionalFinalizer) { + var buffer = []; + var active = 0; + var index = 0; + var isComplete = false; + var checkComplete = function () { + if (isComplete && !buffer.length && !active) { subscriber.complete(); } }; - AsyncSubject.prototype.next = function (value) { - if (!this.isStopped) { - this._value = value; - this._hasValue = true; - } + var outerNext = function (value) { return (active < concurrent ? doInnerSub(value) : buffer.push(value)); }; + var doInnerSub = function (value) { + expand && subscriber.next(value); + active++; + var innerComplete = false; + innerFrom(project(value, index++)).subscribe(createOperatorSubscriber(subscriber, function (innerValue) { + onBeforeNext === null || onBeforeNext === void 0 ? void 0 : onBeforeNext(innerValue); + if (expand) { + outerNext(innerValue); + } + else { + subscriber.next(innerValue); + } + }, function () { + innerComplete = true; + }, undefined, function () { + if (innerComplete) { + try { + active--; + var _loop_1 = function () { + var bufferedValue = buffer.shift(); + if (innerSubScheduler) { + executeSchedule(subscriber, innerSubScheduler, function () { return doInnerSub(bufferedValue); }); + } + else { + doInnerSub(bufferedValue); + } + }; + while (buffer.length && active < concurrent) { + _loop_1(); + } + checkComplete(); + } + catch (err) { + subscriber.error(err); + } + } + })); }; - AsyncSubject.prototype.complete = function () { - var _a = this, _hasValue = _a._hasValue, _value = _a._value, _isComplete = _a._isComplete; - if (!_isComplete) { - this._isComplete = true; - _hasValue && _super.prototype.next.call(this, _value); - _super.prototype.complete.call(this); - } + source.subscribe(createOperatorSubscriber(subscriber, outerNext, function () { + isComplete = true; + checkComplete(); + })); + return function () { + additionalFinalizer === null || additionalFinalizer === void 0 ? void 0 : additionalFinalizer(); }; - return AsyncSubject; - })(Subject)); + } - var Action = (function (_super) { - __extends(Action, _super); - function Action(scheduler, work) { - return _super.call(this) || this; + function mergeMap(project, resultSelector, concurrent) { + if (concurrent === void 0) { concurrent = Infinity; } + if (isFunction(resultSelector)) { + return mergeMap(function (a, i) { return map(function (b, ii) { return resultSelector(a, b, i, ii); })(innerFrom(project(a, i))); }, concurrent); } - Action.prototype.schedule = function (state, delay) { - return this; - }; - return Action; - }(Subscription)); - - var intervalProvider = { - setInterval: function (handler, timeout) { - var args = []; - for (var _i = 2; _i < arguments.length; _i++) { - args[_i - 2] = arguments[_i]; - } - return setInterval.apply(void 0, __spreadArray([handler, timeout], __read(args))); - }, - clearInterval: function (handle) { - return (clearInterval)(handle); - }, - delegate: undefined, - }; + else if (typeof resultSelector === 'number') { + concurrent = resultSelector; + } + return operate(function (source, subscriber) { return mergeInternals(source, subscriber, project, concurrent); }); + } - var AsyncAction = (function (_super) { - __extends(AsyncAction, _super); - function AsyncAction(scheduler, work) { - var _this = _super.call(this, scheduler, work) || this; - _this.scheduler = scheduler; - _this.work = work; - _this.pending = false; - return _this; + var nodeEventEmitterMethods = ['addListener', 'removeListener']; + var eventTargetMethods = ['addEventListener', 'removeEventListener']; + var jqueryMethods = ['on', 'off']; + function fromEvent(target, eventName, options, resultSelector) { + if (isFunction(options)) { + resultSelector = options; + options = undefined; } - AsyncAction.prototype.schedule = function (state, delay) { - if (delay === void 0) { delay = 0; } - if (this.closed) { - return this; - } - this.state = state; - var id = this.id; - var scheduler = this.scheduler; - if (id != null) { - this.id = this.recycleAsyncId(scheduler, id, delay); - } - this.pending = true; - this.delay = delay; - this.id = this.id || this.requestAsyncId(scheduler, this.id, delay); - return this; - }; - AsyncAction.prototype.requestAsyncId = function (scheduler, _id, delay) { - if (delay === void 0) { delay = 0; } - return intervalProvider.setInterval(scheduler.flush.bind(scheduler, this), delay); - }; - AsyncAction.prototype.recycleAsyncId = function (_scheduler, id, delay) { - if (delay === void 0) { delay = 0; } - if (delay != null && this.delay === delay && this.pending === false) { - return id; - } - intervalProvider.clearInterval(id); - return undefined; - }; - AsyncAction.prototype.execute = function (state, delay) { - if (this.closed) { - return new Error('executing a cancelled action'); - } - this.pending = false; - var error = this._execute(state, delay); - if (error) { - return error; - } - else if (this.pending === false && this.id != null) { - this.id = this.recycleAsyncId(this.scheduler, this.id, null); - } - }; - AsyncAction.prototype._execute = function (state, _delay) { - var errored = false; - var errorValue; - try { - this.work(state); - } - catch (e) { - errored = true; - errorValue = e ? e : new Error('Scheduled action threw falsy error'); - } - if (errored) { - this.unsubscribe(); - return errorValue; + if (resultSelector) { + return fromEvent(target, eventName, options).pipe(mapOneOrManyArgs(resultSelector)); + } + var _a = __read(isEventTarget(target) + ? eventTargetMethods.map(function (methodName) { return function (handler) { return target[methodName](eventName, handler, options); }; }) + : + isNodeStyleEventEmitter(target) + ? nodeEventEmitterMethods.map(toCommonHandlerRegistry(target, eventName)) + : isJQueryStyleEventEmitter(target) + ? jqueryMethods.map(toCommonHandlerRegistry(target, eventName)) + : [], 2), add = _a[0], remove = _a[1]; + if (!add) { + if (isArrayLike(target)) { + return mergeMap(function (subTarget) { return fromEvent(subTarget, eventName, options); })(innerFrom(target)); } - }; - AsyncAction.prototype.unsubscribe = function () { - if (!this.closed) { - var _a = this, id = _a.id, scheduler = _a.scheduler; - var actions = scheduler.actions; - this.work = this.state = this.scheduler = null; - this.pending = false; - arrRemove(actions, this); - if (id != null) { - this.id = this.recycleAsyncId(scheduler, id, null); + } + if (!add) { + throw new TypeError('Invalid event target'); + } + return new Observable(function (subscriber) { + var handler = function () { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; } - this.delay = null; - _super.prototype.unsubscribe.call(this); - } - }; - return AsyncAction; - }(Action)); + return subscriber.next(1 < args.length ? args : args[0]); + }; + add(handler); + return function () { return remove(handler); }; + }); + } + function toCommonHandlerRegistry(target, eventName) { + return function (methodName) { return function (handler) { return target[methodName](eventName, handler); }; }; + } + function isNodeStyleEventEmitter(target) { + return isFunction(target.addListener) && isFunction(target.removeListener); + } + function isJQueryStyleEventEmitter(target) { + return isFunction(target.on) && isFunction(target.off); + } + function isEventTarget(target) { + return isFunction(target.addEventListener) && isFunction(target.removeEventListener); + } - var nextHandle = 1; - var resolved; - var activeHandles = {}; - function findAndClearHandle(handle) { - if (handle in activeHandles) { - delete activeHandles[handle]; - return true; - } - return false; + new Observable(noop); + + /** + * Router constants + */ + var POP_STATE = 'popstate'; + var REG_ROUTE_PARAMS = /:[^/]+/g; + var REG_PATHNAME = /^\/(?=[^?]*)/; + var HISTORY_UNSUPPORTED = 'History unsupported!'; + var INVALID_ROUTE = 'Route string is not a pure route'; + var VIRTUAL_PUSHSTATE = 'vpushstate'; + var CACHED_FIELDS = ['route', 'hashRouting', 'path', 'hash', 'search', 'hashSearch', 'data']; + var AMP = '&'; + var QRY = '?'; + var EMPTY = ''; + var UNDEF$1 = void 0; + var TYPEOF_STR$1 = _typeof$1(EMPTY); + var TYPEOF_BOOL = _typeof$1(true); + var TYPEOF_UNDEF$1 = _typeof$1(UNDEF$1); + _typeof$1({}); + _typeof$1(0); + var TYPEOF_FUNC = _typeof$1(function () {}); + var STATE = 'State'; + var PUSH = "push".concat(STATE); + var REPLACE = "replace".concat(STATE); + + function getGlobal() { + return (typeof globalThis === "undefined" ? "undefined" : _typeof$1(globalThis)) !== TYPEOF_UNDEF$1 ? globalThis : global || self; } - var Immediate = { - setImmediate: function (cb) { - var handle = nextHandle++; - activeHandles[handle] = true; - if (!resolved) { - resolved = Promise.resolve(); - } - resolved.then(function () { return findAndClearHandle(handle) && cb(); }); - return handle; - }, - clearImmediate: function (handle) { - findAndClearHandle(handle); - }, + + /*! + * Deparam plugin converts query string to a valid JavaScript object + * Released under MIT license + * @name Deparam.js + * @author Sachin Singh + * @version 3.0.6 + * @license MIT + */ + function _typeof(obj) { + "@babel/helpers - typeof"; + + return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { + return typeof obj; + } : function (obj) { + return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }, _typeof(obj); + } + + /*! + * is-number + * + * Copyright (c) 2014-present, Jon Schlinkert. + * Released under the MIT License. + */ + + var isNumber = function(num) { + if (typeof num === 'number') { + return num - num === 0; + } + if (typeof num === 'string' && num.trim() !== '') { + return Number.isFinite ? Number.isFinite(+num) : isFinite(+num); + } + return false; }; - var setImmediate = Immediate.setImmediate, clearImmediate = Immediate.clearImmediate; - var immediateProvider = { - setImmediate: function () { - var args = []; - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; - } - var delegate = immediateProvider.delegate; - return ((delegate === null || delegate === void 0 ? void 0 : delegate.setImmediate) || setImmediate).apply(void 0, __spreadArray([], __read(args))); - }, - clearImmediate: function (handle) { - return (clearImmediate)(handle); - }, - delegate: undefined, + var isObject = function isObject(x) { + return typeof x === 'object' && x !== null; }; - var AsapAction = (function (_super) { - __extends(AsapAction, _super); - function AsapAction(scheduler, work) { - var _this = _super.call(this, scheduler, work) || this; - _this.scheduler = scheduler; - _this.work = work; - return _this; - } - AsapAction.prototype.requestAsyncId = function (scheduler, id, delay) { - if (delay === void 0) { delay = 0; } - if (delay !== null && delay > 0) { - return _super.prototype.requestAsyncId.call(this, scheduler, id, delay); - } - scheduler.actions.push(this); - return scheduler._scheduled || (scheduler._scheduled = immediateProvider.setImmediate(scheduler.flush.bind(scheduler, undefined))); - }; - AsapAction.prototype.recycleAsyncId = function (scheduler, id, delay) { - if (delay === void 0) { delay = 0; } - if ((delay != null && delay > 0) || (delay == null && this.delay > 0)) { - return _super.prototype.recycleAsyncId.call(this, scheduler, id, delay); - } - if (!scheduler.actions.some(function (action) { return action.id === id; })) { - immediateProvider.clearImmediate(id); - scheduler._scheduled = undefined; - } - return undefined; - }; - return AsapAction; - }(AsyncAction)); + var UNDEF = void 0; // Results to undefined + // Typeof undefined - var Scheduler = (function () { - function Scheduler(schedulerActionCtor, now) { - if (now === void 0) { now = Scheduler.now; } - this.schedulerActionCtor = schedulerActionCtor; - this.now = now; - } - Scheduler.prototype.schedule = function (work, delay, state) { - if (delay === void 0) { delay = 0; } - return new this.schedulerActionCtor(this, work).schedule(state, delay); - }; - Scheduler.now = dateTimestampProvider.now; - return Scheduler; - }()); + var TYPEOF_UNDEF = _typeof(UNDEF); // Typeof string - var AsyncScheduler = (function (_super) { - __extends(AsyncScheduler, _super); - function AsyncScheduler(SchedulerAction, now) { - if (now === void 0) { now = Scheduler.now; } - var _this = _super.call(this, SchedulerAction, now) || this; - _this.actions = []; - _this._active = false; - _this._scheduled = undefined; - return _this; - } - AsyncScheduler.prototype.flush = function (action) { - var actions = this.actions; - if (this._active) { - actions.push(action); - return; - } - var error; - this._active = true; - do { - if ((error = action.execute(action.state, action.delay))) { - break; - } - } while ((action = actions.shift())); - this._active = false; - if (error) { - while ((action = actions.shift())) { - action.unsubscribe(); - } - throw error; - } - }; - return AsyncScheduler; - }(Scheduler)); - var AsapScheduler = (function (_super) { - __extends(AsapScheduler, _super); - function AsapScheduler() { - return _super !== null && _super.apply(this, arguments) || this; - } - AsapScheduler.prototype.flush = function (action) { - this._active = true; - var flushId = this._scheduled; - this._scheduled = undefined; - var actions = this.actions; - var error; - action = action || actions.shift(); - do { - if ((error = action.execute(action.state, action.delay))) { - break; - } - } while ((action = actions[0]) && action.id === flushId && actions.shift()); - this._active = false; - if (error) { - while ((action = actions[0]) && action.id === flushId && actions.shift()) { - action.unsubscribe(); - } - throw error; - } - }; - return AsapScheduler; - }(AsyncScheduler)); + var TYPEOF_STR = _typeof(""); // location var + + + var loc = (typeof window === "undefined" ? "undefined" : _typeof(window)) !== TYPEOF_UNDEF ? window.location : null; // Shorthand for built-ins + + var isArr$1 = Array.isArray; + /** + * Checks if current key is safe + * @param {string} key Current key + * @returns {boolean} + */ + + function isSafe(key) { + return ["__proto__", "prototype"].indexOf(key) === -1; + } + /** + * Shorthand for Object.prototype.hasOwnProperty + * @param {any} obj Any object + * @param {string} key key + * @returns {boolean} true or false if object has the property + */ + + + function hasOwn(obj, key) { + return Object.prototype.hasOwnProperty.call(obj, key); + } + /** + * Returns true of input query string is complex + * @param {string} q Query string + * @returns {boolean} true or false + */ + + + function ifComplex(q) { + return /\[/.test(q); + } + /** + * Returns an object without a prototype + * @returns {{[key in string|number]: any}} Object without __proto__ + */ + + + function obNull() { + return Object.create(null); + } + /** + * Returns a parsed query object + * @param {string} qs Query string + * @param {boolean} coerce Coerce values + * @returns {{[key in string|number]: any}} Query object + */ - new AsapScheduler(AsapAction); - new AsyncScheduler(AsyncAction); + function lib(qs, coerce) { + var _this = this; - var QueueAction = (function (_super) { - __extends(QueueAction, _super); - function QueueAction(scheduler, work) { - var _this = _super.call(this, scheduler, work) || this; - _this.scheduler = scheduler; - _this.work = work; - return _this; - } - QueueAction.prototype.schedule = function (state, delay) { - if (delay === void 0) { delay = 0; } - if (delay > 0) { - return _super.prototype.schedule.call(this, state, delay); - } - this.delay = delay; - this.state = state; - this.scheduler.flush(this); - return this; - }; - QueueAction.prototype.execute = function (state, delay) { - return (delay > 0 || this.closed) ? - _super.prototype.execute.call(this, state, delay) : - this._execute(state, delay); - }; - QueueAction.prototype.requestAsyncId = function (scheduler, id, delay) { - if (delay === void 0) { delay = 0; } - if ((delay != null && delay > 0) || (delay == null && this.delay > 0)) { - return _super.prototype.requestAsyncId.call(this, scheduler, id, delay); - } - return scheduler.flush(this); - }; - return QueueAction; - }(AsyncAction)); + if (_typeof(qs) !== TYPEOF_STR) { + qs = loc ? loc.search : ""; + } - var QueueScheduler = (function (_super) { - __extends(QueueScheduler, _super); - function QueueScheduler() { - return _super !== null && _super.apply(this, arguments) || this; - } - return QueueScheduler; - }(AsyncScheduler)); + qs = qs.substring(qs.charAt(0) === "?"); + var queryObject = obNull(); - new QueueScheduler(QueueAction); + if (qs) { + qs.split("&").forEach(function (qq) { + var qArr = qq.split("=").map(function (part) { + return decodeURIComponent(part); + }); - var AnimationFrameAction = (function (_super) { - __extends(AnimationFrameAction, _super); - function AnimationFrameAction(scheduler, work) { - var _this = _super.call(this, scheduler, work) || this; - _this.scheduler = scheduler; - _this.work = work; - return _this; - } - AnimationFrameAction.prototype.requestAsyncId = function (scheduler, id, delay) { - if (delay === void 0) { delay = 0; } - if (delay !== null && delay > 0) { - return _super.prototype.requestAsyncId.call(this, scheduler, id, delay); - } - scheduler.actions.push(this); - return scheduler._scheduled || (scheduler._scheduled = animationFrameProvider.requestAnimationFrame(function () { return scheduler.flush(undefined); })); - }; - AnimationFrameAction.prototype.recycleAsyncId = function (scheduler, id, delay) { - if (delay === void 0) { delay = 0; } - if ((delay != null && delay > 0) || (delay == null && this.delay > 0)) { - return _super.prototype.recycleAsyncId.call(this, scheduler, id, delay); - } - if (!scheduler.actions.some(function (action) { return action.id === id; })) { - animationFrameProvider.cancelAnimationFrame(id); - scheduler._scheduled = undefined; - } - return undefined; - }; - return AnimationFrameAction; - }(AsyncAction)); + if (ifComplex(qArr[0])) { + complex.apply(_this, [].concat(qArr).concat([queryObject, coerce])); + } else { + simple.apply(_this, [qArr, queryObject, false, coerce]); + } + }); + } - var AnimationFrameScheduler = (function (_super) { - __extends(AnimationFrameScheduler, _super); - function AnimationFrameScheduler() { - return _super !== null && _super.apply(this, arguments) || this; - } - AnimationFrameScheduler.prototype.flush = function (action) { - this._active = true; - var flushId = this._scheduled; - this._scheduled = undefined; - var actions = this.actions; - var error; - action = action || actions.shift(); - do { - if ((error = action.execute(action.state, action.delay))) { - break; - } - } while ((action = actions[0]) && action.id === flushId && actions.shift()); - this._active = false; - if (error) { - while ((action = actions[0]) && action.id === flushId && actions.shift()) { - action.unsubscribe(); - } - throw error; - } - }; - return AnimationFrameScheduler; - }(AsyncScheduler)); + return queryObject; + } + /** + * Converts an array to equivalent object + * @param {any[]} arr Any array + * @returns {any} Any object + */ - new AnimationFrameScheduler(AnimationFrameAction); - ((function (_super) { - __extends(VirtualTimeScheduler, _super); - function VirtualTimeScheduler(schedulerActionCtor, maxFrames) { - if (schedulerActionCtor === void 0) { schedulerActionCtor = VirtualAction; } - if (maxFrames === void 0) { maxFrames = Infinity; } - var _this = _super.call(this, schedulerActionCtor, function () { return _this.frame; }) || this; - _this.maxFrames = maxFrames; - _this.frame = 0; - _this.index = -1; - return _this; - } - VirtualTimeScheduler.prototype.flush = function () { - var _a = this, actions = _a.actions, maxFrames = _a.maxFrames; - var error; - var action; - while ((action = actions[0]) && action.delay <= maxFrames) { - actions.shift(); - this.frame = action.delay; - if ((error = action.execute(action.state, action.delay))) { - break; - } - } - if (error) { - while ((action = actions.shift())) { - action.unsubscribe(); - } - throw error; - } - }; - VirtualTimeScheduler.frameTimeFactor = 10; - return VirtualTimeScheduler; - })(AsyncScheduler)); - var VirtualAction = (function (_super) { - __extends(VirtualAction, _super); - function VirtualAction(scheduler, work, index) { - if (index === void 0) { index = (scheduler.index += 1); } - var _this = _super.call(this, scheduler, work) || this; - _this.scheduler = scheduler; - _this.work = work; - _this.index = index; - _this.active = true; - _this.index = scheduler.index = index; - return _this; - } - VirtualAction.prototype.schedule = function (state, delay) { - if (delay === void 0) { delay = 0; } - if (Number.isFinite(delay)) { - if (!this.id) { - return _super.prototype.schedule.call(this, state, delay); - } - this.active = false; - var action = new VirtualAction(this.scheduler, this.work); - this.add(action); - return action.schedule(state, delay); - } - else { - return Subscription.EMPTY; - } - }; - VirtualAction.prototype.requestAsyncId = function (scheduler, id, delay) { - if (delay === void 0) { delay = 0; } - this.delay = scheduler.frame + delay; - var actions = scheduler.actions; - actions.push(this); - actions.sort(VirtualAction.sortActions); - return true; - }; - VirtualAction.prototype.recycleAsyncId = function (scheduler, id, delay) { - return undefined; - }; - VirtualAction.prototype._execute = function (state, delay) { - if (this.active === true) { - return _super.prototype._execute.call(this, state, delay); - } - }; - VirtualAction.sortActions = function (a, b) { - if (a.delay === b.delay) { - if (a.index === b.index) { - return 0; - } - else if (a.index > b.index) { - return 1; - } - else { - return -1; - } - } - else if (a.delay > b.delay) { - return 1; - } - else { - return -1; - } - }; - return VirtualAction; - }(AsyncAction)); + function toObject(arr) { + var convertedObj = obNull(); - new Observable(function (subscriber) { return subscriber.complete(); }); + if (isArr$1(arr)) { + arr.forEach(function (value, index) { + convertedObj[index] = value; + }); + } - var isArrayLike = (function (x) { return x && typeof x.length === 'number' && typeof x !== 'function'; }); + return convertedObj; + } + /** + * Converts array to an object if required + * @param {any} ob Any object + * @param {booleab} isNextNumber Test for next key + * @returns {any} Any object + */ - function isPromise(value) { - return isFunction(value === null || value === void 0 ? void 0 : value.then); + + function resolve(ob, isNextNumber) { + if (_typeof(ob) === TYPEOF_UNDEF) return isNextNumber ? [] : obNull(); + return isNextNumber ? ob : toObject(ob); } + /** + * Resolves the target object for next iteration + * @param {any} ob current reference object + * @param {string} nextProp reference property in current object + * @returns {any} Resolved object for next iteration + */ - function isInteropObservable(input) { - return isFunction(input[observable]); - } - function isAsyncIterable(obj) { - return Symbol.asyncIterator && isFunction(obj === null || obj === void 0 ? void 0 : obj[Symbol.asyncIterator]); + function resolveObj(ob, nextProp) { + if (isObject(ob) && !isArr$1(ob)) return { + ob: ob + }; + if (isArr$1(ob) || _typeof(ob) === TYPEOF_UNDEF) return { + ob: resolve(ob, isNumber(nextProp)) + }; + return { + ob: [ob], + push: ob !== null + }; } + /** + * Handles complex query parameters + * @param {string} key Query key + * @param {string} value Query value + * @param {Object} obj Query object + * @returns {void} + */ - function createInvalidObservableTypeError(input) { - return new TypeError("You provided " + (input !== null && typeof input === 'object' ? 'an invalid object' : "'" + input + "'") + " where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable."); - } - function getSymbolIterator() { - if (typeof Symbol !== 'function' || !Symbol.iterator) { - return '@@iterator'; - } - return Symbol.iterator; - } - var iterator = getSymbolIterator(); + function complex(key, value, obj, doCoerce) { + var match = key.match(/([^\[]+)\[([^\[]*)\]/) || []; - function isIterable(input) { - return isFunction(input === null || input === void 0 ? void 0 : input[iterator]); - } + if (match.length === 3) { + var prop = match[1]; + var nextProp = match[2]; + key = key.replace(/\[([^\[]*)\]/, ""); - function readableStreamLikeToAsyncGenerator(readableStream) { - return __asyncGenerator(this, arguments, function readableStreamLikeToAsyncGenerator_1() { - var reader, _a, value, done; - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - reader = readableStream.getReader(); - _b.label = 1; - case 1: - _b.trys.push([1, , 9, 10]); - _b.label = 2; - case 2: - return [4, __await(reader.read())]; - case 3: - _a = _b.sent(), value = _a.value, done = _a.done; - if (!done) return [3, 5]; - return [4, __await(void 0)]; - case 4: return [2, _b.sent()]; - case 5: return [4, __await(value)]; - case 6: return [4, _b.sent()]; - case 7: - _b.sent(); - return [3, 2]; - case 8: return [3, 10]; - case 9: - reader.releaseLock(); - return [7]; - case 10: return [2]; - } - }); - }); - } - function isReadableStreamLike(obj) { - return isFunction(obj === null || obj === void 0 ? void 0 : obj.getReader); - } + if (ifComplex(key)) { + if (nextProp === "") nextProp = "0"; + key = key.replace(/[^\[]+/, nextProp); + complex(key, value, obj[prop] = resolveObj(obj[prop], nextProp).ob, doCoerce); + } else if (nextProp) { + if (isSafe(prop) && isSafe(nextProp)) { + var _resolveObj = resolveObj(obj[prop], nextProp), + ob = _resolveObj.ob, + push = _resolveObj.push; - function innerFrom(input) { - if (input instanceof Observable) { - return input; - } - if (input != null) { - if (isInteropObservable(input)) { - return fromInteropObservable(input); - } - if (isArrayLike(input)) { - return fromArrayLike(input); - } - if (isPromise(input)) { - return fromPromise(input); - } - if (isAsyncIterable(input)) { - return fromAsyncIterable(input); - } - if (isIterable(input)) { - return fromIterable(input); - } - if (isReadableStreamLike(input)) { - return fromReadableStreamLike(input); + obj[prop] = ob; + var nextOb = push ? obNull() : obj[prop]; + nextOb[nextProp] = coerce(value, !doCoerce); + + if (push) { + obj[prop].push(nextOb); } + } + } else { + simple([match[1], value], obj, true, doCoerce); } - throw createInvalidObservableTypeError(input); - } - function fromInteropObservable(obj) { - return new Observable(function (subscriber) { - var obs = obj[observable](); - if (isFunction(obs.subscribe)) { - return obs.subscribe(subscriber); - } - throw new TypeError('Provided object does not correctly implement Symbol.observable'); - }); - } - function fromArrayLike(array) { - return new Observable(function (subscriber) { - for (var i = 0; i < array.length && !subscriber.closed; i++) { - subscriber.next(array[i]); - } - subscriber.complete(); - }); - } - function fromPromise(promise) { - return new Observable(function (subscriber) { - promise - .then(function (value) { - if (!subscriber.closed) { - subscriber.next(value); - subscriber.complete(); - } - }, function (err) { return subscriber.error(err); }) - .then(null, reportUnhandledError); - }); - } - function fromIterable(iterable) { - return new Observable(function (subscriber) { - var e_1, _a; - try { - for (var iterable_1 = __values(iterable), iterable_1_1 = iterable_1.next(); !iterable_1_1.done; iterable_1_1 = iterable_1.next()) { - var value = iterable_1_1.value; - subscriber.next(value); - if (subscriber.closed) { - return; - } - } - } - catch (e_1_1) { e_1 = { error: e_1_1 }; } - finally { - try { - if (iterable_1_1 && !iterable_1_1.done && (_a = iterable_1.return)) _a.call(iterable_1); - } - finally { if (e_1) throw e_1.error; } - } - subscriber.complete(); - }); - } - function fromAsyncIterable(asyncIterable) { - return new Observable(function (subscriber) { - process(asyncIterable, subscriber).catch(function (err) { return subscriber.error(err); }); - }); - } - function fromReadableStreamLike(readableStream) { - return fromAsyncIterable(readableStreamLikeToAsyncGenerator(readableStream)); - } - function process(asyncIterable, subscriber) { - var asyncIterable_1, asyncIterable_1_1; - var e_2, _a; - return __awaiter(this, void 0, void 0, function () { - var value, e_2_1; - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - _b.trys.push([0, 5, 6, 11]); - asyncIterable_1 = __asyncValues(asyncIterable); - _b.label = 1; - case 1: return [4, asyncIterable_1.next()]; - case 2: - if (!(asyncIterable_1_1 = _b.sent(), !asyncIterable_1_1.done)) return [3, 4]; - value = asyncIterable_1_1.value; - subscriber.next(value); - if (subscriber.closed) { - return [2]; - } - _b.label = 3; - case 3: return [3, 1]; - case 4: return [3, 11]; - case 5: - e_2_1 = _b.sent(); - e_2 = { error: e_2_1 }; - return [3, 11]; - case 6: - _b.trys.push([6, , 9, 10]); - if (!(asyncIterable_1_1 && !asyncIterable_1_1.done && (_a = asyncIterable_1.return))) return [3, 8]; - return [4, _a.call(asyncIterable_1)]; - case 7: - _b.sent(); - _b.label = 8; - case 8: return [3, 10]; - case 9: - if (e_2) throw e_2.error; - return [7]; - case 10: return [7]; - case 11: - subscriber.complete(); - return [2]; - } - }); - }); + } } + /** + * Handles simple query + * @param {array} qArr Query list + * @param {Object} queryObject Query object + * @param {boolean} toArray Test for conversion to array + * @returns {void} + */ - function executeSchedule(parentSubscription, scheduler, work, delay, repeat) { - if (delay === void 0) { delay = 0; } - if (repeat === void 0) { repeat = false; } - var scheduleSubscription = scheduler.schedule(function () { - work(); - if (repeat) { - parentSubscription.add(this.schedule(null, delay)); - } - else { - this.unsubscribe(); - } - }, delay); - parentSubscription.add(scheduleSubscription); - if (!repeat) { - return scheduleSubscription; + + function simple(qArr, queryObject, toArray, doCoerce) { + var key = qArr[0]; + var value = qArr[1]; + + if (isSafe(key)) { + value = coerce(value, !doCoerce); + + if (hasOwn(queryObject, key)) { + queryObject[key] = isArr$1(queryObject[key]) ? queryObject[key] : [queryObject[key]]; + queryObject[key].push(value); + } else { + queryObject[key] = toArray ? [value] : value; } + } } + /** + * Converts input value to their appropriate types + * @param {any} value Input value + * @param {boolean} skip Test for skipping coercion + * @returns {any} Coerced value + */ - var NotificationKind; - (function (NotificationKind) { - NotificationKind["NEXT"] = "N"; - NotificationKind["ERROR"] = "E"; - NotificationKind["COMPLETE"] = "C"; - })(NotificationKind || (NotificationKind = {})); - createErrorClass(function (_super) { return function EmptyErrorImpl() { - _super(this); - this.name = 'EmptyError'; - this.message = 'no elements in sequence'; - }; }); + function coerce(value, skip) { + // eslint-disable-next-line + if (value == null) { + return ""; + } - createErrorClass(function (_super) { - return function ArgumentOutOfRangeErrorImpl() { - _super(this); - this.name = 'ArgumentOutOfRangeError'; - this.message = 'argument out of range'; - }; - }); + if (skip || _typeof(value) !== TYPEOF_STR) { + return value; + } - createErrorClass(function (_super) { - return function NotFoundErrorImpl(message) { - _super(this); - this.name = 'NotFoundError'; - this.message = message; - }; - }); + value = value.trim(); - createErrorClass(function (_super) { - return function SequenceErrorImpl(message) { - _super(this); - this.name = 'SequenceError'; - this.message = message; - }; - }); + if (isNumber(value)) { + return +value; + } - createErrorClass(function (_super) { - return function TimeoutErrorImpl(info) { - if (info === void 0) { info = null; } - _super(this); - this.message = 'Timeout has occurred'; - this.name = 'TimeoutError'; - this.info = info; - }; - }); + switch (value) { + case "null": + return null; - function map(project, thisArg) { - return operate(function (source, subscriber) { - var index = 0; - source.subscribe(createOperatorSubscriber(subscriber, function (value) { - subscriber.next(project.call(thisArg, value, index++)); - })); - }); - } + case TYPEOF_UNDEF: + return UNDEF; - var isArray = Array.isArray; - function callOrApply(fn, args) { - return isArray(args) ? fn.apply(void 0, __spreadArray([], __read(args))) : fn(args); - } - function mapOneOrManyArgs(fn) { - return map(function (args) { return callOrApply(fn, args); }); + case "true": + return true; + + case "false": + return false; + + case "NaN": + return NaN; + + default: + return value; + } } - function mergeInternals(source, subscriber, project, concurrent, onBeforeNext, expand, innerSubScheduler, additionalFinalizer) { - var buffer = []; - var active = 0; - var index = 0; - var isComplete = false; - var checkComplete = function () { - if (isComplete && !buffer.length && !active) { - subscriber.complete(); - } - }; - var outerNext = function (value) { return (active < concurrent ? doInnerSub(value) : buffer.push(value)); }; - var doInnerSub = function (value) { - expand && subscriber.next(value); - active++; - var innerComplete = false; - innerFrom(project(value, index++)).subscribe(createOperatorSubscriber(subscriber, function (innerValue) { - onBeforeNext === null || onBeforeNext === void 0 ? void 0 : onBeforeNext(innerValue); - if (expand) { - outerNext(innerValue); - } - else { - subscriber.next(innerValue); - } - }, function () { - innerComplete = true; - }, undefined, function () { - if (innerComplete) { - try { - active--; - var _loop_1 = function () { - var bufferedValue = buffer.shift(); - if (innerSubScheduler) { - executeSchedule(subscriber, innerSubScheduler, function () { return doInnerSub(bufferedValue); }); - } - else { - doInnerSub(bufferedValue); - } - }; - while (buffer.length && active < concurrent) { - _loop_1(); - } - checkComplete(); - } - catch (err) { - subscriber.error(err); - } - } - })); - }; - source.subscribe(createOperatorSubscriber(subscriber, outerNext, function () { - isComplete = true; - checkComplete(); - })); - return function () { - additionalFinalizer === null || additionalFinalizer === void 0 ? void 0 : additionalFinalizer(); - }; + /** + * Shorthand for Array.isArray + */ + + var isArr = Array.isArray; + /** + * Shorthand for Object.keys + */ + + var oKeys = Object.keys; + /** + * Safely trims string + * @param {string} str String + */ + + function trim(str) { + return _typeof$1(str) === TYPEOF_STR$1 ? str.trim() : EMPTY; } + /** + * Checks if given route is valid + * @private + * @param {string} route Route string + */ - function mergeMap(project, resultSelector, concurrent) { - if (concurrent === void 0) { concurrent = Infinity; } - if (isFunction(resultSelector)) { - return mergeMap(function (a, i) { return map(function (b, ii) { return resultSelector(a, b, i, ii); })(innerFrom(project(a, i))); }, concurrent); - } - else if (typeof resultSelector === 'number') { - concurrent = resultSelector; - } - return operate(function (source, subscriber) { return mergeInternals(source, subscriber, project, concurrent); }); + function isValidRoute(route) { + return REG_PATHNAME.test(route); } + /** + * Loops over an array like object + * @param {object} arrayObj Array or array like object + * @param {function} callback Callback function + */ - var nodeEventEmitterMethods = ['addListener', 'removeListener']; - var eventTargetMethods = ['addEventListener', 'removeEventListener']; - var jqueryMethods = ['on', 'off']; - function fromEvent(target, eventName, options, resultSelector) { - if (isFunction(options)) { - resultSelector = options; - options = undefined; - } - if (resultSelector) { - return fromEvent(target, eventName, options).pipe(mapOneOrManyArgs(resultSelector)); - } - var _a = __read(isEventTarget(target) - ? eventTargetMethods.map(function (methodName) { return function (handler) { return target[methodName](eventName, handler, options); }; }) - : - isNodeStyleEventEmitter(target) - ? nodeEventEmitterMethods.map(toCommonHandlerRegistry(target, eventName)) - : isJQueryStyleEventEmitter(target) - ? jqueryMethods.map(toCommonHandlerRegistry(target, eventName)) - : [], 2), add = _a[0], remove = _a[1]; - if (!add) { - if (isArrayLike(target)) { - return mergeMap(function (subTarget) { return fromEvent(subTarget, eventName, options); })(innerFrom(target)); + function each(arrayObj, callback) { + if (isObject(arrayObj)) { + var keys = oKeys(arrayObj); + + for (var i = 0; i < keys.length; i++) { + var key = keys[i]; + var cont = callback(arrayObj[key], isNumber(key) ? +key : key); + + if (_typeof$1(cont) === TYPEOF_BOOL) { + if (cont) { + continue; + } else { + break; } + } } - if (!add) { - throw new TypeError('Invalid event target'); - } - return new Observable(function (subscriber) { - var handler = function () { - var args = []; - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; - } - return subscriber.next(1 < args.length ? args : args[0]); - }; - add(handler); - return function () { return remove(handler); }; - }); - } - function toCommonHandlerRegistry(target, eventName) { - return function (methodName) { return function (handler) { return target[methodName](eventName, handler); }; }; - } - function isNodeStyleEventEmitter(target) { - return isFunction(target.addListener) && isFunction(target.removeListener); - } - function isJQueryStyleEventEmitter(target) { - return isFunction(target.on) && isFunction(target.off); - } - function isEventTarget(target) { - return isFunction(target.addEventListener) && isFunction(target.removeEventListener); + } } - new Observable(noop); - - var g = getGlobal(); /** * Function to trigger custom event * @param {Node|NodeList|HTMLCollection|Node[]} target Target element or list @@ -2494,7 +2436,7 @@ if (target.length && _typeof$1(eventType) === TYPEOF_STR$1) { each(target, function (el) { - var customEvent = new g.CustomEvent(eventType, { + var customEvent = new getGlobal().CustomEvent(eventType, { bubbles: true, cancelable: true, detail: data || [] @@ -2550,30 +2492,33 @@ }; } - function bindRouterEvents() { - var _this = this; + var getPath = function getPath(isHash, location) { + return trim(isHash ? location.hash.substring(1).split(QRY)[0] : location.pathname); + }; - var _this$config = this.config, - context = _this$config.context, - location = _this$config.location, - hashRouting = _this$config.hashRouting; - this.popStateSubscription = fromEvent(getGlobal(), POP_STATE).subscribe(function (e) { - var path = trim(hashRouting ? location.hash.substring(1).split(QRY)[0] : location.pathname); + function bindRouterEvents(inst) { + var _inst$config = inst.config, + context = _inst$config.context, + location = _inst$config.location, + hash = _inst$config.hashRouting; + inst.popStateSubscription = fromEvent(getGlobal(), POP_STATE).subscribe(function (e) { + var path = getPath(hash, location); if (path) { trigger(context, VIRTUAL_PUSHSTATE, [{ path: path, - hash: hashRouting - }, e, _this]); + hash: hash + }, e, inst]); } }); - this.listeners = fromEvent(context, VIRTUAL_PUSHSTATE).pipe(collate.apply(this)); + inst.listeners = fromEvent(context, VIRTUAL_PUSHSTATE).pipe(collate.apply(inst)); - if (hashRouting && !location.hash) { - this.set('/', true, false); // Replace current hash path without executing anythings + if (hash && !location.hash) { + inst.set('/', true, false); // Replace current hash path without executing anythings } } + var encode = encodeURIComponent; /** * Builds query string recursively * @private @@ -2588,7 +2533,7 @@ buildQuery(qsList, "".concat(key, "[").concat(isArr(obj) ? EMPTY : obKey, "]"), prop); }); } else if (_typeof$1(obj) !== TYPEOF_FUNC) { - qsList.push("".concat(encodeURIComponent(key), "=").concat(encodeURIComponent(obj))); + qsList.push("".concat(encode(key), "=").concat(encode(obj))); } } /** @@ -2622,7 +2567,7 @@ function resolveQuery(queryString, hashRouting) { var location = this.config.location; var search = trim(location.search && location.search.substring(1)); - var existingQuery = hashRouting ? trim(location.hash.split(QRY)[1]) : trim(search); + var existingQuery = trim(hashRouting ? location.hash.split(QRY)[1] : search); if (!existingQuery) return queryString; return toQueryString(assign(lib(search), lib(existingQuery), lib(queryString))); } @@ -2698,7 +2643,7 @@ hash = _this$config.hashRouting, location = _this$config.location, init = _this$config.init; - var path = trim(hash ? location.hash.substring(1).split(QRY)[0] : location.pathname); + var path = getPath(hash, location); return function (observable) { return new Observable(function (subscriber) { var subn = observable.subscribe(subscriber); @@ -2749,7 +2694,7 @@ }, config || {})); this.__paths__ = []; - bindRouterEvents.apply(this); + bindRouterEvents(this); } _createClass(Router, [{ @@ -2766,9 +2711,9 @@ }, { key: "subscribe", value: function subscribe() { - var _this$listeners$pipe; + var _this$pipe; - return (_this$listeners$pipe = this.listeners.pipe(callOnce.apply(this))).subscribe.apply(_this$listeners$pipe, arguments); + return (_this$pipe = this.pipe()).subscribe.apply(_this$pipe, arguments); } }, { key: "set", @@ -3017,7 +2962,7 @@ }; } - const name="silkrouter";const version="4.2.10";const description="Silk router is an app routing library";const main="dist/umd/silkrouter.min.js";const module="dist/esm/silkrouter.esm.min.js";const types="src/typings/silkrouter.d.ts";const scripts={start:"env-cmd -f ./.env.start rollup -c --watch",dev:"env-cmd -f ./.env.dev rollup -c","dev:serve":"env-cmd -f ./.env.start.prod rollup -c",prod:"env-cmd rollup -c",build:"npm run test && npm run dev && npm run dev:serve && npm run prod",test:"jest tests/*",deploy:"gh-pages -d dist"};const author="scssyworks";const license="MIT";const keywords=["router","routing","single page apps","single page application","SPA","silk","silk router","history","browser","url","hash","hash routing","pushState","popstate","hashchange","observables","observer","subscriber","subscribe","subscription","rxjs","reactivex"];const files=["dist/umd/","dist/esm/","src/typings/"];const repository={type:"git",url:"git+https://github.com/scssyworks/silkrouter.git"};const bugs={url:"https://github.com/scssyworks/silkrouter/issues"};const homepage="https://scssyworks.github.io/silkrouter";const dependencies={"deparam.js":"^3.0.6"};const devDependencies={"@babel/core":"^7.18.9","@babel/eslint-parser":"^7.18.9","@babel/preset-env":"^7.18.9","@rollup/plugin-babel":"^5.3.1","@rollup/plugin-commonjs":"^22.0.1","@rollup/plugin-eslint":"^8.0.2","@rollup/plugin-json":"^4.1.0","@rollup/plugin-node-resolve":"^13.3.0","@types/jest":"^28.1.6","env-cmd":"^10.1.0",eslint:"^8.20.0","gh-pages":"^4.0.0",jest:"^28.1.3",rollup:"^2.77.0","rollup-plugin-livereload":"^2.0.5","rollup-plugin-serve":"^2.0.0","rollup-plugin-terser":"^7.0.2",rxjs:"^7.5.6"};var pkg = {name:name,version:version,description:description,main:main,module:module,types:types,scripts:scripts,author:author,license:license,keywords:keywords,files:files,repository:repository,bugs:bugs,homepage:homepage,dependencies:dependencies,devDependencies:devDependencies}; + const name="silkrouter";const version="4.2.10";const description="Silk router is an app routing library";const main="dist/umd/silkrouter.min.js";const module="dist/esm/silkrouter.esm.min.js";const types="src/typings/silkrouter.d.ts";const scripts={start:"env-cmd -f ./.env.start rollup -c --watch",dev:"env-cmd -f ./.env.dev rollup -c","dev:serve":"env-cmd -f ./.env.start.prod rollup -c",prod:"env-cmd rollup -c",build:"npm run test && npm run dev && npm run dev:serve && npm run prod",test:"jest tests/*",deploy:"gh-pages -d dist"};const author="scssyworks";const license="MIT";const keywords=["router","routing","single page apps","single page application","SPA","silk","silk router","history","browser","url","hash","hash routing","pushState","popstate","hashchange","observables","observer","subscriber","subscribe","subscription","rxjs","reactivex"];const files=["dist/umd/","dist/esm/","src/typings/"];const repository={type:"git",url:"git+https://github.com/scssyworks/silkrouter.git"};const bugs={url:"https://github.com/scssyworks/silkrouter/issues"};const homepage="https://scssyworks.github.io/silkrouter";const dependencies={"deparam.js":"^3.0.6"};const devDependencies={"@babel/core":"^7.18.9","@babel/eslint-parser":"^7.18.9","@babel/preset-env":"^7.18.9","@rollup/plugin-babel":"^5.3.1","@rollup/plugin-commonjs":"^22.0.1","@rollup/plugin-eslint":"^8.0.2","@rollup/plugin-json":"^4.1.0","@rollup/plugin-node-resolve":"^13.3.0","@types/jest":"^28.1.6","env-cmd":"^10.1.0",eslint:"^8.20.0","gh-pages":"^4.0.0",jest:"^28.1.3",rollup:"^2.77.0","rollup-plugin-livereload":"^2.0.5","rollup-plugin-serve":"^2.0.0","rollup-plugin-terser":"^7.0.2",rxjs:"^7.5.6"};const peerDependencies={rxjs:"^7.5.6"};var pkg = {name:name,version:version,description:description,main:main,module:module,types:types,scripts:scripts,author:author,license:license,keywords:keywords,files:files,repository:repository,bugs:bugs,homepage:homepage,dependencies:dependencies,devDependencies:devDependencies,peerDependencies:peerDependencies}; function q(selector) { var _document; diff --git a/dist/render/silkrouter.iife.js.map b/dist/render/silkrouter.iife.js.map index f459187..179fb95 100644 --- a/dist/render/silkrouter.iife.js.map +++ b/dist/render/silkrouter.iife.js.map @@ -1 +1 @@ -{"version":3,"file":"silkrouter.iife.js","sources":["../../src/js/utils/constants.js","../../src/js/utils/getGlobal.js","../../node_modules/deparam.js/dist/esm/deparam.esm.js","../../src/js/utils/utils.js","../../src/js/utils/polyfills.js","../../src/js/utils/assign.js","../../node_modules/tslib/tslib.es6.js","../../node_modules/rxjs/dist/esm5/internal/util/isFunction.js","../../node_modules/rxjs/dist/esm5/internal/util/createErrorClass.js","../../node_modules/rxjs/dist/esm5/internal/util/UnsubscriptionError.js","../../node_modules/rxjs/dist/esm5/internal/util/arrRemove.js","../../node_modules/rxjs/dist/esm5/internal/Subscription.js","../../node_modules/rxjs/dist/esm5/internal/config.js","../../node_modules/rxjs/dist/esm5/internal/scheduler/timeoutProvider.js","../../node_modules/rxjs/dist/esm5/internal/util/reportUnhandledError.js","../../node_modules/rxjs/dist/esm5/internal/util/noop.js","../../node_modules/rxjs/dist/esm5/internal/util/errorContext.js","../../node_modules/rxjs/dist/esm5/internal/Subscriber.js","../../node_modules/rxjs/dist/esm5/internal/symbol/observable.js","../../node_modules/rxjs/dist/esm5/internal/util/identity.js","../../node_modules/rxjs/dist/esm5/internal/util/pipe.js","../../node_modules/rxjs/dist/esm5/internal/Observable.js","../../node_modules/rxjs/dist/esm5/internal/util/lift.js","../../node_modules/rxjs/dist/esm5/internal/operators/OperatorSubscriber.js","../../node_modules/rxjs/dist/esm5/internal/operators/refCount.js","../../node_modules/rxjs/dist/esm5/internal/observable/ConnectableObservable.js","../../node_modules/rxjs/dist/esm5/internal/scheduler/performanceTimestampProvider.js","../../node_modules/rxjs/dist/esm5/internal/scheduler/animationFrameProvider.js","../../node_modules/rxjs/dist/esm5/internal/observable/dom/animationFrames.js","../../node_modules/rxjs/dist/esm5/internal/util/ObjectUnsubscribedError.js","../../node_modules/rxjs/dist/esm5/internal/Subject.js","../../node_modules/rxjs/dist/esm5/internal/BehaviorSubject.js","../../node_modules/rxjs/dist/esm5/internal/scheduler/dateTimestampProvider.js","../../node_modules/rxjs/dist/esm5/internal/ReplaySubject.js","../../node_modules/rxjs/dist/esm5/internal/AsyncSubject.js","../../node_modules/rxjs/dist/esm5/internal/scheduler/Action.js","../../node_modules/rxjs/dist/esm5/internal/scheduler/intervalProvider.js","../../node_modules/rxjs/dist/esm5/internal/scheduler/AsyncAction.js","../../node_modules/rxjs/dist/esm5/internal/util/Immediate.js","../../node_modules/rxjs/dist/esm5/internal/scheduler/immediateProvider.js","../../node_modules/rxjs/dist/esm5/internal/scheduler/AsapAction.js","../../node_modules/rxjs/dist/esm5/internal/Scheduler.js","../../node_modules/rxjs/dist/esm5/internal/scheduler/AsyncScheduler.js","../../node_modules/rxjs/dist/esm5/internal/scheduler/AsapScheduler.js","../../node_modules/rxjs/dist/esm5/internal/scheduler/asap.js","../../node_modules/rxjs/dist/esm5/internal/scheduler/async.js","../../node_modules/rxjs/dist/esm5/internal/scheduler/QueueAction.js","../../node_modules/rxjs/dist/esm5/internal/scheduler/QueueScheduler.js","../../node_modules/rxjs/dist/esm5/internal/scheduler/queue.js","../../node_modules/rxjs/dist/esm5/internal/scheduler/AnimationFrameAction.js","../../node_modules/rxjs/dist/esm5/internal/scheduler/AnimationFrameScheduler.js","../../node_modules/rxjs/dist/esm5/internal/scheduler/animationFrame.js","../../node_modules/rxjs/dist/esm5/internal/scheduler/VirtualTimeScheduler.js","../../node_modules/rxjs/dist/esm5/internal/observable/empty.js","../../node_modules/rxjs/dist/esm5/internal/util/isArrayLike.js","../../node_modules/rxjs/dist/esm5/internal/util/isPromise.js","../../node_modules/rxjs/dist/esm5/internal/util/isInteropObservable.js","../../node_modules/rxjs/dist/esm5/internal/util/isAsyncIterable.js","../../node_modules/rxjs/dist/esm5/internal/util/throwUnobservableError.js","../../node_modules/rxjs/dist/esm5/internal/symbol/iterator.js","../../node_modules/rxjs/dist/esm5/internal/util/isIterable.js","../../node_modules/rxjs/dist/esm5/internal/util/isReadableStreamLike.js","../../node_modules/rxjs/dist/esm5/internal/observable/innerFrom.js","../../node_modules/rxjs/dist/esm5/internal/util/executeSchedule.js","../../node_modules/rxjs/dist/esm5/internal/Notification.js","../../node_modules/rxjs/dist/esm5/internal/util/EmptyError.js","../../node_modules/rxjs/dist/esm5/internal/util/ArgumentOutOfRangeError.js","../../node_modules/rxjs/dist/esm5/internal/util/NotFoundError.js","../../node_modules/rxjs/dist/esm5/internal/util/SequenceError.js","../../node_modules/rxjs/dist/esm5/internal/operators/timeout.js","../../node_modules/rxjs/dist/esm5/internal/operators/map.js","../../node_modules/rxjs/dist/esm5/internal/util/mapOneOrManyArgs.js","../../node_modules/rxjs/dist/esm5/internal/operators/mergeInternals.js","../../node_modules/rxjs/dist/esm5/internal/operators/mergeMap.js","../../node_modules/rxjs/dist/esm5/internal/observable/fromEvent.js","../../node_modules/rxjs/dist/esm5/internal/observable/never.js","../../src/js/utils/triggerEvent.js","../../src/js/api/routerEvent/index.js","../../src/js/api/collate/index.js","../../src/js/api/bindRouterEvents/index.js","../../src/js/utils/query.js","../../src/js/api/resolveQuery/index.js","../../src/js/api/set/index.js","../../src/js/api/callOnce/index.js","../../src/js/api/router/index.js","../../src/js/utils/params.js","../../src/js/operators/index.js","../../render/index.js"],"sourcesContent":["/**\n * Router constants\n */\nexport const POP_STATE = 'popstate';\nexport const REG_ROUTE_PARAMS = /:[^/]+/g;\nexport const REG_PATHNAME = /^\\/(?=[^?]*)/;\nexport const REG_COMPLEX = /\\[/;\nexport const REG_VARIABLE = /([^[]+)\\[([^[]*)\\]/;\nexport const REG_REPLACE_BRACKETS = /\\[([^[]*)\\]/;\nexport const REG_REPLACE_NEXTPROP = /[^[]+/;\nexport const HISTORY_UNSUPPORTED =\n 'Current browser does not support history object';\nexport const INVALID_ROUTE = 'Route string is not a pure route';\nexport const VIRTUAL_PUSHSTATE = 'vpushstate';\nexport const CACHED_FIELDS = [\n 'route',\n 'hashRouting',\n 'path',\n 'hash',\n 'search',\n 'hashSearch',\n 'data',\n];\nexport const AMP = '&';\nexport const QRY = '?';\nexport const EQ = '=';\nexport const EMPTY = '';\nexport const UNDEF = void 0;\nexport const TYPEOF_STR = typeof EMPTY;\nexport const TYPEOF_BOOL = typeof true;\nexport const TYPEOF_UNDEF = typeof UNDEF;\nexport const TYPEOF_OBJ = typeof {};\nexport const TYPEOF_NUM = typeof 0;\nexport const TYPEOF_FUNC = typeof (() => {});\nexport const STATE = 'State';\nexport const PUSH = `push${STATE}`;\nexport const REPLACE = `replace${STATE}`;\n","import { TYPEOF_UNDEF } from './constants';\n\nexport function getGlobal() {\n return typeof globalThis !== TYPEOF_UNDEF ? globalThis : global || self;\n}\n","/*!\n * Deparam plugin converts query string to a valid JavaScript object\n * Released under MIT license\n * @name Deparam.js\n * @author Sachin Singh \n * @version 3.0.6\n * @license MIT\n */\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}\n\n/*!\n * is-number \n *\n * Copyright (c) 2014-present, Jon Schlinkert.\n * Released under the MIT License.\n */\n\nvar isNumber = function(num) {\n if (typeof num === 'number') {\n return num - num === 0;\n }\n if (typeof num === 'string' && num.trim() !== '') {\n return Number.isFinite ? Number.isFinite(+num) : isFinite(+num);\n }\n return false;\n};\n\nvar isObject = function isObject(x) {\n\treturn typeof x === 'object' && x !== null;\n};\n\nvar UNDEF = void 0; // Results to undefined\n// Typeof undefined\n\nvar TYPEOF_UNDEF = _typeof(UNDEF); // Typeof string\n\n\nvar TYPEOF_STR = _typeof(\"\"); // location var\n\n\nvar loc = (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) !== TYPEOF_UNDEF ? window.location : null; // Shorthand for built-ins\n\nvar isArr = Array.isArray;\n/**\n * Checks if current key is safe\n * @param {string} key Current key\n * @returns {boolean}\n */\n\nfunction isSafe(key) {\n return [\"__proto__\", \"prototype\"].indexOf(key) === -1;\n}\n/**\n * Shorthand for Object.prototype.hasOwnProperty\n * @param {any} obj Any object\n * @param {string} key key\n * @returns {boolean} true or false if object has the property\n */\n\n\nfunction hasOwn(obj, key) {\n return Object.prototype.hasOwnProperty.call(obj, key);\n}\n/**\n * Returns true of input query string is complex\n * @param {string} q Query string\n * @returns {boolean} true or false\n */\n\n\nfunction ifComplex(q) {\n return /\\[/.test(q);\n}\n/**\n * Returns an object without a prototype\n * @returns {{[key in string|number]: any}} Object without __proto__\n */\n\n\nfunction obNull() {\n return Object.create(null);\n}\n/**\n * Returns a parsed query object\n * @param {string} qs Query string\n * @param {boolean} coerce Coerce values\n * @returns {{[key in string|number]: any}} Query object\n */\n\n\nfunction lib(qs, coerce) {\n var _this = this;\n\n if (_typeof(qs) !== TYPEOF_STR) {\n qs = loc ? loc.search : \"\";\n }\n\n qs = qs.substring(qs.charAt(0) === \"?\");\n var queryObject = obNull();\n\n if (qs) {\n qs.split(\"&\").forEach(function (qq) {\n var qArr = qq.split(\"=\").map(function (part) {\n return decodeURIComponent(part);\n });\n\n if (ifComplex(qArr[0])) {\n complex.apply(_this, [].concat(qArr).concat([queryObject, coerce]));\n } else {\n simple.apply(_this, [qArr, queryObject, false, coerce]);\n }\n });\n }\n\n return queryObject;\n}\n/**\n * Converts an array to equivalent object\n * @param {any[]} arr Any array\n * @returns {any} Any object\n */\n\n\nfunction toObject(arr) {\n var convertedObj = obNull();\n\n if (isArr(arr)) {\n arr.forEach(function (value, index) {\n convertedObj[index] = value;\n });\n }\n\n return convertedObj;\n}\n/**\n * Converts array to an object if required\n * @param {any} ob Any object\n * @param {booleab} isNextNumber Test for next key\n * @returns {any} Any object\n */\n\n\nfunction resolve(ob, isNextNumber) {\n if (_typeof(ob) === TYPEOF_UNDEF) return isNextNumber ? [] : obNull();\n return isNextNumber ? ob : toObject(ob);\n}\n/**\n * Resolves the target object for next iteration\n * @param {any} ob current reference object\n * @param {string} nextProp reference property in current object\n * @returns {any} Resolved object for next iteration\n */\n\n\nfunction resolveObj(ob, nextProp) {\n if (isObject(ob) && !isArr(ob)) return {\n ob: ob\n };\n if (isArr(ob) || _typeof(ob) === TYPEOF_UNDEF) return {\n ob: resolve(ob, isNumber(nextProp))\n };\n return {\n ob: [ob],\n push: ob !== null\n };\n}\n/**\n * Handles complex query parameters\n * @param {string} key Query key\n * @param {string} value Query value\n * @param {Object} obj Query object\n * @returns {void}\n */\n\n\nfunction complex(key, value, obj, doCoerce) {\n var match = key.match(/([^\\[]+)\\[([^\\[]*)\\]/) || [];\n\n if (match.length === 3) {\n var prop = match[1];\n var nextProp = match[2];\n key = key.replace(/\\[([^\\[]*)\\]/, \"\");\n\n if (ifComplex(key)) {\n if (nextProp === \"\") nextProp = \"0\";\n key = key.replace(/[^\\[]+/, nextProp);\n complex(key, value, obj[prop] = resolveObj(obj[prop], nextProp).ob, doCoerce);\n } else if (nextProp) {\n if (isSafe(prop) && isSafe(nextProp)) {\n var _resolveObj = resolveObj(obj[prop], nextProp),\n ob = _resolveObj.ob,\n push = _resolveObj.push;\n\n obj[prop] = ob;\n var nextOb = push ? obNull() : obj[prop];\n nextOb[nextProp] = coerce(value, !doCoerce);\n\n if (push) {\n obj[prop].push(nextOb);\n }\n }\n } else {\n simple([match[1], value], obj, true, doCoerce);\n }\n }\n}\n/**\n * Handles simple query\n * @param {array} qArr Query list\n * @param {Object} queryObject Query object\n * @param {boolean} toArray Test for conversion to array\n * @returns {void}\n */\n\n\nfunction simple(qArr, queryObject, toArray, doCoerce) {\n var key = qArr[0];\n var value = qArr[1];\n\n if (isSafe(key)) {\n value = coerce(value, !doCoerce);\n\n if (hasOwn(queryObject, key)) {\n queryObject[key] = isArr(queryObject[key]) ? queryObject[key] : [queryObject[key]];\n queryObject[key].push(value);\n } else {\n queryObject[key] = toArray ? [value] : value;\n }\n }\n}\n/**\n * Converts input value to their appropriate types\n * @param {any} value Input value\n * @param {boolean} skip Test for skipping coercion\n * @returns {any} Coerced value\n */\n\n\nfunction coerce(value, skip) {\n // eslint-disable-next-line\n if (value == null) {\n return \"\";\n }\n\n if (skip || _typeof(value) !== TYPEOF_STR) {\n return value;\n }\n\n value = value.trim();\n\n if (isNumber(value)) {\n return +value;\n }\n\n switch (value) {\n case \"null\":\n return null;\n\n case TYPEOF_UNDEF:\n return UNDEF;\n\n case \"true\":\n return true;\n\n case \"false\":\n return false;\n\n case \"NaN\":\n return NaN;\n\n default:\n return value;\n }\n}\n\nexport { lib as default, isNumber, isObject };\n//# sourceMappingURL=deparam.esm.js.map\n","import { isNumber, isObject } from \"deparam.js\";\nimport { EMPTY, REG_PATHNAME, TYPEOF_BOOL, TYPEOF_STR } from \"./constants\";\n\n/**\n * Shorthand for Array.isArray\n */\nexport const isArr = Array.isArray;\n\n/**\n * Shorthand for Object.keys\n */\nexport const oKeys = Object.keys;\n\n/**\n * Safely trims string\n * @param {string} str String\n */\nexport function trim(str) {\n return typeof str === TYPEOF_STR ? str.trim() : EMPTY;\n}\n\n/**\n * Checks if given route is valid\n * @private\n * @param {string} route Route string\n */\nexport function isValidRoute(route) {\n return typeof route === TYPEOF_STR && REG_PATHNAME.test(route);\n}\n\n/**\n * Checks if key is present in provided object\n * @param {object} ob Object\n * @param {*} key Key\n */\nexport function hasOwn(ob, key) {\n return Object.prototype.hasOwnProperty.call(ob, key);\n}\n\n/**\n * Loops over an array like object\n * @param {object} arrayObj Array or array like object\n * @param {function} callback Callback function\n */\nexport function each(arrayObj, callback) {\n if (isObject(arrayObj)) {\n const keys = oKeys(arrayObj);\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n const cont = callback(arrayObj[key], isNumber(key) ? +key : key);\n if (typeof cont === TYPEOF_BOOL) {\n if (cont) {\n continue;\n } else {\n break;\n }\n }\n }\n }\n}\n","import { TYPEOF_UNDEF, UNDEF } from './constants';\nimport { getGlobal } from './getGlobal';\nimport { each, isArr } from './utils';\n\n// Polyfill custom event\nconst g = getGlobal();\nif (typeof g.CustomEvent === TYPEOF_UNDEF) {\n const CustomEvent = function (event, params) {\n params = params || { bubbles: false, cancelable: false, detail: UNDEF };\n const evt = document.createEvent('CustomEvent');\n evt.initCustomEvent(\n event,\n params.bubbles,\n params.cancelable,\n params.detail\n );\n return evt;\n };\n\n CustomEvent.prototype = g.Event.prototype;\n g.CustomEvent = CustomEvent;\n}\n\n// Polyfill Array.from\n\nif (!Array.from) {\n Array.from = function (arrayLike) {\n if (isArr(arrayLike)) {\n return arrayLike;\n }\n const arr = [];\n each(arrayLike, (value) => {\n arr.push(value);\n });\n return arr;\n };\n}\n","import { isObject } from \"deparam.js\";\nimport { each } from \"./utils\";\n\n/**\n * Inner loop function for assign\n * @private\n * @param {object} ref Argument object\n * @param {object} target First object\n */\nfunction loopFunc(ref, target) {\n if (isObject(ref)) {\n each(ref, (prop, key) => {\n target[key] = prop;\n });\n }\n}\n\n/**\n * Polyfill for Object.assign only smaller and with less features\n * @private\n * @returns {object}\n */\nexport function assign(...args) {\n const target = isObject(args[0]) ? args[0] : {};\n each(args, (arg) => {\n loopFunc(arg, target);\n });\n return target;\n}\n","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n","export function isFunction(value) {\n return typeof value === 'function';\n}\n//# sourceMappingURL=isFunction.js.map","export function createErrorClass(createImpl) {\n var _super = function (instance) {\n Error.call(instance);\n instance.stack = new Error().stack;\n };\n var ctorFunc = createImpl(_super);\n ctorFunc.prototype = Object.create(Error.prototype);\n ctorFunc.prototype.constructor = ctorFunc;\n return ctorFunc;\n}\n//# sourceMappingURL=createErrorClass.js.map","import { createErrorClass } from './createErrorClass';\nexport var UnsubscriptionError = createErrorClass(function (_super) {\n return function UnsubscriptionErrorImpl(errors) {\n _super(this);\n this.message = errors\n ? errors.length + \" errors occurred during unsubscription:\\n\" + errors.map(function (err, i) { return i + 1 + \") \" + err.toString(); }).join('\\n ')\n : '';\n this.name = 'UnsubscriptionError';\n this.errors = errors;\n };\n});\n//# sourceMappingURL=UnsubscriptionError.js.map","export function arrRemove(arr, item) {\n if (arr) {\n var index = arr.indexOf(item);\n 0 <= index && arr.splice(index, 1);\n }\n}\n//# sourceMappingURL=arrRemove.js.map","import { __read, __spreadArray, __values } from \"tslib\";\nimport { isFunction } from './util/isFunction';\nimport { UnsubscriptionError } from './util/UnsubscriptionError';\nimport { arrRemove } from './util/arrRemove';\nvar Subscription = (function () {\n function Subscription(initialTeardown) {\n this.initialTeardown = initialTeardown;\n this.closed = false;\n this._parentage = null;\n this._finalizers = null;\n }\n Subscription.prototype.unsubscribe = function () {\n var e_1, _a, e_2, _b;\n var errors;\n if (!this.closed) {\n this.closed = true;\n var _parentage = this._parentage;\n if (_parentage) {\n this._parentage = null;\n if (Array.isArray(_parentage)) {\n try {\n for (var _parentage_1 = __values(_parentage), _parentage_1_1 = _parentage_1.next(); !_parentage_1_1.done; _parentage_1_1 = _parentage_1.next()) {\n var parent_1 = _parentage_1_1.value;\n parent_1.remove(this);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_parentage_1_1 && !_parentage_1_1.done && (_a = _parentage_1.return)) _a.call(_parentage_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }\n else {\n _parentage.remove(this);\n }\n }\n var initialFinalizer = this.initialTeardown;\n if (isFunction(initialFinalizer)) {\n try {\n initialFinalizer();\n }\n catch (e) {\n errors = e instanceof UnsubscriptionError ? e.errors : [e];\n }\n }\n var _finalizers = this._finalizers;\n if (_finalizers) {\n this._finalizers = null;\n try {\n for (var _finalizers_1 = __values(_finalizers), _finalizers_1_1 = _finalizers_1.next(); !_finalizers_1_1.done; _finalizers_1_1 = _finalizers_1.next()) {\n var finalizer = _finalizers_1_1.value;\n try {\n execFinalizer(finalizer);\n }\n catch (err) {\n errors = errors !== null && errors !== void 0 ? errors : [];\n if (err instanceof UnsubscriptionError) {\n errors = __spreadArray(__spreadArray([], __read(errors)), __read(err.errors));\n }\n else {\n errors.push(err);\n }\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_finalizers_1_1 && !_finalizers_1_1.done && (_b = _finalizers_1.return)) _b.call(_finalizers_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n }\n if (errors) {\n throw new UnsubscriptionError(errors);\n }\n }\n };\n Subscription.prototype.add = function (teardown) {\n var _a;\n if (teardown && teardown !== this) {\n if (this.closed) {\n execFinalizer(teardown);\n }\n else {\n if (teardown instanceof Subscription) {\n if (teardown.closed || teardown._hasParent(this)) {\n return;\n }\n teardown._addParent(this);\n }\n (this._finalizers = (_a = this._finalizers) !== null && _a !== void 0 ? _a : []).push(teardown);\n }\n }\n };\n Subscription.prototype._hasParent = function (parent) {\n var _parentage = this._parentage;\n return _parentage === parent || (Array.isArray(_parentage) && _parentage.includes(parent));\n };\n Subscription.prototype._addParent = function (parent) {\n var _parentage = this._parentage;\n this._parentage = Array.isArray(_parentage) ? (_parentage.push(parent), _parentage) : _parentage ? [_parentage, parent] : parent;\n };\n Subscription.prototype._removeParent = function (parent) {\n var _parentage = this._parentage;\n if (_parentage === parent) {\n this._parentage = null;\n }\n else if (Array.isArray(_parentage)) {\n arrRemove(_parentage, parent);\n }\n };\n Subscription.prototype.remove = function (teardown) {\n var _finalizers = this._finalizers;\n _finalizers && arrRemove(_finalizers, teardown);\n if (teardown instanceof Subscription) {\n teardown._removeParent(this);\n }\n };\n Subscription.EMPTY = (function () {\n var empty = new Subscription();\n empty.closed = true;\n return empty;\n })();\n return Subscription;\n}());\nexport { Subscription };\nexport var EMPTY_SUBSCRIPTION = Subscription.EMPTY;\nexport function isSubscription(value) {\n return (value instanceof Subscription ||\n (value && 'closed' in value && isFunction(value.remove) && isFunction(value.add) && isFunction(value.unsubscribe)));\n}\nfunction execFinalizer(finalizer) {\n if (isFunction(finalizer)) {\n finalizer();\n }\n else {\n finalizer.unsubscribe();\n }\n}\n//# sourceMappingURL=Subscription.js.map","export var config = {\n onUnhandledError: null,\n onStoppedNotification: null,\n Promise: undefined,\n useDeprecatedSynchronousErrorHandling: false,\n useDeprecatedNextContext: false,\n};\n//# sourceMappingURL=config.js.map","import { __read, __spreadArray } from \"tslib\";\nexport var timeoutProvider = {\n setTimeout: function (handler, timeout) {\n var args = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n args[_i - 2] = arguments[_i];\n }\n var delegate = timeoutProvider.delegate;\n if (delegate === null || delegate === void 0 ? void 0 : delegate.setTimeout) {\n return delegate.setTimeout.apply(delegate, __spreadArray([handler, timeout], __read(args)));\n }\n return setTimeout.apply(void 0, __spreadArray([handler, timeout], __read(args)));\n },\n clearTimeout: function (handle) {\n var delegate = timeoutProvider.delegate;\n return ((delegate === null || delegate === void 0 ? void 0 : delegate.clearTimeout) || clearTimeout)(handle);\n },\n delegate: undefined,\n};\n//# sourceMappingURL=timeoutProvider.js.map","import { config } from '../config';\nimport { timeoutProvider } from '../scheduler/timeoutProvider';\nexport function reportUnhandledError(err) {\n timeoutProvider.setTimeout(function () {\n var onUnhandledError = config.onUnhandledError;\n if (onUnhandledError) {\n onUnhandledError(err);\n }\n else {\n throw err;\n }\n });\n}\n//# sourceMappingURL=reportUnhandledError.js.map","export function noop() { }\n//# sourceMappingURL=noop.js.map","import { config } from '../config';\nvar context = null;\nexport function errorContext(cb) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n var isRoot = !context;\n if (isRoot) {\n context = { errorThrown: false, error: null };\n }\n cb();\n if (isRoot) {\n var _a = context, errorThrown = _a.errorThrown, error = _a.error;\n context = null;\n if (errorThrown) {\n throw error;\n }\n }\n }\n else {\n cb();\n }\n}\nexport function captureError(err) {\n if (config.useDeprecatedSynchronousErrorHandling && context) {\n context.errorThrown = true;\n context.error = err;\n }\n}\n//# sourceMappingURL=errorContext.js.map","import { __extends } from \"tslib\";\nimport { isFunction } from './util/isFunction';\nimport { isSubscription, Subscription } from './Subscription';\nimport { config } from './config';\nimport { reportUnhandledError } from './util/reportUnhandledError';\nimport { noop } from './util/noop';\nimport { nextNotification, errorNotification, COMPLETE_NOTIFICATION } from './NotificationFactories';\nimport { timeoutProvider } from './scheduler/timeoutProvider';\nimport { captureError } from './util/errorContext';\nvar Subscriber = (function (_super) {\n __extends(Subscriber, _super);\n function Subscriber(destination) {\n var _this = _super.call(this) || this;\n _this.isStopped = false;\n if (destination) {\n _this.destination = destination;\n if (isSubscription(destination)) {\n destination.add(_this);\n }\n }\n else {\n _this.destination = EMPTY_OBSERVER;\n }\n return _this;\n }\n Subscriber.create = function (next, error, complete) {\n return new SafeSubscriber(next, error, complete);\n };\n Subscriber.prototype.next = function (value) {\n if (this.isStopped) {\n handleStoppedNotification(nextNotification(value), this);\n }\n else {\n this._next(value);\n }\n };\n Subscriber.prototype.error = function (err) {\n if (this.isStopped) {\n handleStoppedNotification(errorNotification(err), this);\n }\n else {\n this.isStopped = true;\n this._error(err);\n }\n };\n Subscriber.prototype.complete = function () {\n if (this.isStopped) {\n handleStoppedNotification(COMPLETE_NOTIFICATION, this);\n }\n else {\n this.isStopped = true;\n this._complete();\n }\n };\n Subscriber.prototype.unsubscribe = function () {\n if (!this.closed) {\n this.isStopped = true;\n _super.prototype.unsubscribe.call(this);\n this.destination = null;\n }\n };\n Subscriber.prototype._next = function (value) {\n this.destination.next(value);\n };\n Subscriber.prototype._error = function (err) {\n try {\n this.destination.error(err);\n }\n finally {\n this.unsubscribe();\n }\n };\n Subscriber.prototype._complete = function () {\n try {\n this.destination.complete();\n }\n finally {\n this.unsubscribe();\n }\n };\n return Subscriber;\n}(Subscription));\nexport { Subscriber };\nvar _bind = Function.prototype.bind;\nfunction bind(fn, thisArg) {\n return _bind.call(fn, thisArg);\n}\nvar ConsumerObserver = (function () {\n function ConsumerObserver(partialObserver) {\n this.partialObserver = partialObserver;\n }\n ConsumerObserver.prototype.next = function (value) {\n var partialObserver = this.partialObserver;\n if (partialObserver.next) {\n try {\n partialObserver.next(value);\n }\n catch (error) {\n handleUnhandledError(error);\n }\n }\n };\n ConsumerObserver.prototype.error = function (err) {\n var partialObserver = this.partialObserver;\n if (partialObserver.error) {\n try {\n partialObserver.error(err);\n }\n catch (error) {\n handleUnhandledError(error);\n }\n }\n else {\n handleUnhandledError(err);\n }\n };\n ConsumerObserver.prototype.complete = function () {\n var partialObserver = this.partialObserver;\n if (partialObserver.complete) {\n try {\n partialObserver.complete();\n }\n catch (error) {\n handleUnhandledError(error);\n }\n }\n };\n return ConsumerObserver;\n}());\nvar SafeSubscriber = (function (_super) {\n __extends(SafeSubscriber, _super);\n function SafeSubscriber(observerOrNext, error, complete) {\n var _this = _super.call(this) || this;\n var partialObserver;\n if (isFunction(observerOrNext) || !observerOrNext) {\n partialObserver = {\n next: (observerOrNext !== null && observerOrNext !== void 0 ? observerOrNext : undefined),\n error: error !== null && error !== void 0 ? error : undefined,\n complete: complete !== null && complete !== void 0 ? complete : undefined,\n };\n }\n else {\n var context_1;\n if (_this && config.useDeprecatedNextContext) {\n context_1 = Object.create(observerOrNext);\n context_1.unsubscribe = function () { return _this.unsubscribe(); };\n partialObserver = {\n next: observerOrNext.next && bind(observerOrNext.next, context_1),\n error: observerOrNext.error && bind(observerOrNext.error, context_1),\n complete: observerOrNext.complete && bind(observerOrNext.complete, context_1),\n };\n }\n else {\n partialObserver = observerOrNext;\n }\n }\n _this.destination = new ConsumerObserver(partialObserver);\n return _this;\n }\n return SafeSubscriber;\n}(Subscriber));\nexport { SafeSubscriber };\nfunction handleUnhandledError(error) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n captureError(error);\n }\n else {\n reportUnhandledError(error);\n }\n}\nfunction defaultErrorHandler(err) {\n throw err;\n}\nfunction handleStoppedNotification(notification, subscriber) {\n var onStoppedNotification = config.onStoppedNotification;\n onStoppedNotification && timeoutProvider.setTimeout(function () { return onStoppedNotification(notification, subscriber); });\n}\nexport var EMPTY_OBSERVER = {\n closed: true,\n next: noop,\n error: defaultErrorHandler,\n complete: noop,\n};\n//# sourceMappingURL=Subscriber.js.map","export var observable = (function () { return (typeof Symbol === 'function' && Symbol.observable) || '@@observable'; })();\n//# sourceMappingURL=observable.js.map","export function identity(x) {\n return x;\n}\n//# sourceMappingURL=identity.js.map","import { identity } from './identity';\nexport function pipe() {\n var fns = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n fns[_i] = arguments[_i];\n }\n return pipeFromArray(fns);\n}\nexport function pipeFromArray(fns) {\n if (fns.length === 0) {\n return identity;\n }\n if (fns.length === 1) {\n return fns[0];\n }\n return function piped(input) {\n return fns.reduce(function (prev, fn) { return fn(prev); }, input);\n };\n}\n//# sourceMappingURL=pipe.js.map","import { SafeSubscriber, Subscriber } from './Subscriber';\nimport { isSubscription } from './Subscription';\nimport { observable as Symbol_observable } from './symbol/observable';\nimport { pipeFromArray } from './util/pipe';\nimport { config } from './config';\nimport { isFunction } from './util/isFunction';\nimport { errorContext } from './util/errorContext';\nvar Observable = (function () {\n function Observable(subscribe) {\n if (subscribe) {\n this._subscribe = subscribe;\n }\n }\n Observable.prototype.lift = function (operator) {\n var observable = new Observable();\n observable.source = this;\n observable.operator = operator;\n return observable;\n };\n Observable.prototype.subscribe = function (observerOrNext, error, complete) {\n var _this = this;\n var subscriber = isSubscriber(observerOrNext) ? observerOrNext : new SafeSubscriber(observerOrNext, error, complete);\n errorContext(function () {\n var _a = _this, operator = _a.operator, source = _a.source;\n subscriber.add(operator\n ?\n operator.call(subscriber, source)\n : source\n ?\n _this._subscribe(subscriber)\n :\n _this._trySubscribe(subscriber));\n });\n return subscriber;\n };\n Observable.prototype._trySubscribe = function (sink) {\n try {\n return this._subscribe(sink);\n }\n catch (err) {\n sink.error(err);\n }\n };\n Observable.prototype.forEach = function (next, promiseCtor) {\n var _this = this;\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor(function (resolve, reject) {\n var subscriber = new SafeSubscriber({\n next: function (value) {\n try {\n next(value);\n }\n catch (err) {\n reject(err);\n subscriber.unsubscribe();\n }\n },\n error: reject,\n complete: resolve,\n });\n _this.subscribe(subscriber);\n });\n };\n Observable.prototype._subscribe = function (subscriber) {\n var _a;\n return (_a = this.source) === null || _a === void 0 ? void 0 : _a.subscribe(subscriber);\n };\n Observable.prototype[Symbol_observable] = function () {\n return this;\n };\n Observable.prototype.pipe = function () {\n var operations = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n operations[_i] = arguments[_i];\n }\n return pipeFromArray(operations)(this);\n };\n Observable.prototype.toPromise = function (promiseCtor) {\n var _this = this;\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor(function (resolve, reject) {\n var value;\n _this.subscribe(function (x) { return (value = x); }, function (err) { return reject(err); }, function () { return resolve(value); });\n });\n };\n Observable.create = function (subscribe) {\n return new Observable(subscribe);\n };\n return Observable;\n}());\nexport { Observable };\nfunction getPromiseCtor(promiseCtor) {\n var _a;\n return (_a = promiseCtor !== null && promiseCtor !== void 0 ? promiseCtor : config.Promise) !== null && _a !== void 0 ? _a : Promise;\n}\nfunction isObserver(value) {\n return value && isFunction(value.next) && isFunction(value.error) && isFunction(value.complete);\n}\nfunction isSubscriber(value) {\n return (value && value instanceof Subscriber) || (isObserver(value) && isSubscription(value));\n}\n//# sourceMappingURL=Observable.js.map","import { isFunction } from './isFunction';\nexport function hasLift(source) {\n return isFunction(source === null || source === void 0 ? void 0 : source.lift);\n}\nexport function operate(init) {\n return function (source) {\n if (hasLift(source)) {\n return source.lift(function (liftedSource) {\n try {\n return init(liftedSource, this);\n }\n catch (err) {\n this.error(err);\n }\n });\n }\n throw new TypeError('Unable to lift unknown Observable type');\n };\n}\n//# sourceMappingURL=lift.js.map","import { __extends } from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function createOperatorSubscriber(destination, onNext, onComplete, onError, onFinalize) {\n return new OperatorSubscriber(destination, onNext, onComplete, onError, onFinalize);\n}\nvar OperatorSubscriber = (function (_super) {\n __extends(OperatorSubscriber, _super);\n function OperatorSubscriber(destination, onNext, onComplete, onError, onFinalize, shouldUnsubscribe) {\n var _this = _super.call(this, destination) || this;\n _this.onFinalize = onFinalize;\n _this.shouldUnsubscribe = shouldUnsubscribe;\n _this._next = onNext\n ? function (value) {\n try {\n onNext(value);\n }\n catch (err) {\n destination.error(err);\n }\n }\n : _super.prototype._next;\n _this._error = onError\n ? function (err) {\n try {\n onError(err);\n }\n catch (err) {\n destination.error(err);\n }\n finally {\n this.unsubscribe();\n }\n }\n : _super.prototype._error;\n _this._complete = onComplete\n ? function () {\n try {\n onComplete();\n }\n catch (err) {\n destination.error(err);\n }\n finally {\n this.unsubscribe();\n }\n }\n : _super.prototype._complete;\n return _this;\n }\n OperatorSubscriber.prototype.unsubscribe = function () {\n var _a;\n if (!this.shouldUnsubscribe || this.shouldUnsubscribe()) {\n var closed_1 = this.closed;\n _super.prototype.unsubscribe.call(this);\n !closed_1 && ((_a = this.onFinalize) === null || _a === void 0 ? void 0 : _a.call(this));\n }\n };\n return OperatorSubscriber;\n}(Subscriber));\nexport { OperatorSubscriber };\n//# sourceMappingURL=OperatorSubscriber.js.map","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function refCount() {\n return operate(function (source, subscriber) {\n var connection = null;\n source._refCount++;\n var refCounter = createOperatorSubscriber(subscriber, undefined, undefined, undefined, function () {\n if (!source || source._refCount <= 0 || 0 < --source._refCount) {\n connection = null;\n return;\n }\n var sharedConnection = source._connection;\n var conn = connection;\n connection = null;\n if (sharedConnection && (!conn || sharedConnection === conn)) {\n sharedConnection.unsubscribe();\n }\n subscriber.unsubscribe();\n });\n source.subscribe(refCounter);\n if (!refCounter.closed) {\n connection = source.connect();\n }\n });\n}\n//# sourceMappingURL=refCount.js.map","import { __extends } from \"tslib\";\nimport { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nimport { refCount as higherOrderRefCount } from '../operators/refCount';\nimport { createOperatorSubscriber } from '../operators/OperatorSubscriber';\nimport { hasLift } from '../util/lift';\nvar ConnectableObservable = (function (_super) {\n __extends(ConnectableObservable, _super);\n function ConnectableObservable(source, subjectFactory) {\n var _this = _super.call(this) || this;\n _this.source = source;\n _this.subjectFactory = subjectFactory;\n _this._subject = null;\n _this._refCount = 0;\n _this._connection = null;\n if (hasLift(source)) {\n _this.lift = source.lift;\n }\n return _this;\n }\n ConnectableObservable.prototype._subscribe = function (subscriber) {\n return this.getSubject().subscribe(subscriber);\n };\n ConnectableObservable.prototype.getSubject = function () {\n var subject = this._subject;\n if (!subject || subject.isStopped) {\n this._subject = this.subjectFactory();\n }\n return this._subject;\n };\n ConnectableObservable.prototype._teardown = function () {\n this._refCount = 0;\n var _connection = this._connection;\n this._subject = this._connection = null;\n _connection === null || _connection === void 0 ? void 0 : _connection.unsubscribe();\n };\n ConnectableObservable.prototype.connect = function () {\n var _this = this;\n var connection = this._connection;\n if (!connection) {\n connection = this._connection = new Subscription();\n var subject_1 = this.getSubject();\n connection.add(this.source.subscribe(createOperatorSubscriber(subject_1, undefined, function () {\n _this._teardown();\n subject_1.complete();\n }, function (err) {\n _this._teardown();\n subject_1.error(err);\n }, function () { return _this._teardown(); })));\n if (connection.closed) {\n this._connection = null;\n connection = Subscription.EMPTY;\n }\n }\n return connection;\n };\n ConnectableObservable.prototype.refCount = function () {\n return higherOrderRefCount()(this);\n };\n return ConnectableObservable;\n}(Observable));\nexport { ConnectableObservable };\n//# sourceMappingURL=ConnectableObservable.js.map","export var performanceTimestampProvider = {\n now: function () {\n return (performanceTimestampProvider.delegate || performance).now();\n },\n delegate: undefined,\n};\n//# sourceMappingURL=performanceTimestampProvider.js.map","import { __read, __spreadArray } from \"tslib\";\nimport { Subscription } from '../Subscription';\nexport var animationFrameProvider = {\n schedule: function (callback) {\n var request = requestAnimationFrame;\n var cancel = cancelAnimationFrame;\n var delegate = animationFrameProvider.delegate;\n if (delegate) {\n request = delegate.requestAnimationFrame;\n cancel = delegate.cancelAnimationFrame;\n }\n var handle = request(function (timestamp) {\n cancel = undefined;\n callback(timestamp);\n });\n return new Subscription(function () { return cancel === null || cancel === void 0 ? void 0 : cancel(handle); });\n },\n requestAnimationFrame: function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var delegate = animationFrameProvider.delegate;\n return ((delegate === null || delegate === void 0 ? void 0 : delegate.requestAnimationFrame) || requestAnimationFrame).apply(void 0, __spreadArray([], __read(args)));\n },\n cancelAnimationFrame: function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var delegate = animationFrameProvider.delegate;\n return ((delegate === null || delegate === void 0 ? void 0 : delegate.cancelAnimationFrame) || cancelAnimationFrame).apply(void 0, __spreadArray([], __read(args)));\n },\n delegate: undefined,\n};\n//# sourceMappingURL=animationFrameProvider.js.map","import { Observable } from '../../Observable';\nimport { Subscription } from '../../Subscription';\nimport { performanceTimestampProvider } from '../../scheduler/performanceTimestampProvider';\nimport { animationFrameProvider } from '../../scheduler/animationFrameProvider';\nexport function animationFrames(timestampProvider) {\n return timestampProvider ? animationFramesFactory(timestampProvider) : DEFAULT_ANIMATION_FRAMES;\n}\nfunction animationFramesFactory(timestampProvider) {\n var schedule = animationFrameProvider.schedule;\n return new Observable(function (subscriber) {\n var subscription = new Subscription();\n var provider = timestampProvider || performanceTimestampProvider;\n var start = provider.now();\n var run = function (timestamp) {\n var now = provider.now();\n subscriber.next({\n timestamp: timestampProvider ? now : timestamp,\n elapsed: now - start,\n });\n if (!subscriber.closed) {\n subscription.add(schedule(run));\n }\n };\n subscription.add(schedule(run));\n return subscription;\n });\n}\nvar DEFAULT_ANIMATION_FRAMES = animationFramesFactory();\n//# sourceMappingURL=animationFrames.js.map","import { createErrorClass } from './createErrorClass';\nexport var ObjectUnsubscribedError = createErrorClass(function (_super) {\n return function ObjectUnsubscribedErrorImpl() {\n _super(this);\n this.name = 'ObjectUnsubscribedError';\n this.message = 'object unsubscribed';\n };\n});\n//# sourceMappingURL=ObjectUnsubscribedError.js.map","import { __extends, __values } from \"tslib\";\nimport { Observable } from './Observable';\nimport { Subscription, EMPTY_SUBSCRIPTION } from './Subscription';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nimport { arrRemove } from './util/arrRemove';\nimport { errorContext } from './util/errorContext';\nvar Subject = (function (_super) {\n __extends(Subject, _super);\n function Subject() {\n var _this = _super.call(this) || this;\n _this.closed = false;\n _this.currentObservers = null;\n _this.observers = [];\n _this.isStopped = false;\n _this.hasError = false;\n _this.thrownError = null;\n return _this;\n }\n Subject.prototype.lift = function (operator) {\n var subject = new AnonymousSubject(this, this);\n subject.operator = operator;\n return subject;\n };\n Subject.prototype._throwIfClosed = function () {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n };\n Subject.prototype.next = function (value) {\n var _this = this;\n errorContext(function () {\n var e_1, _a;\n _this._throwIfClosed();\n if (!_this.isStopped) {\n if (!_this.currentObservers) {\n _this.currentObservers = Array.from(_this.observers);\n }\n try {\n for (var _b = __values(_this.currentObservers), _c = _b.next(); !_c.done; _c = _b.next()) {\n var observer = _c.value;\n observer.next(value);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }\n });\n };\n Subject.prototype.error = function (err) {\n var _this = this;\n errorContext(function () {\n _this._throwIfClosed();\n if (!_this.isStopped) {\n _this.hasError = _this.isStopped = true;\n _this.thrownError = err;\n var observers = _this.observers;\n while (observers.length) {\n observers.shift().error(err);\n }\n }\n });\n };\n Subject.prototype.complete = function () {\n var _this = this;\n errorContext(function () {\n _this._throwIfClosed();\n if (!_this.isStopped) {\n _this.isStopped = true;\n var observers = _this.observers;\n while (observers.length) {\n observers.shift().complete();\n }\n }\n });\n };\n Subject.prototype.unsubscribe = function () {\n this.isStopped = this.closed = true;\n this.observers = this.currentObservers = null;\n };\n Object.defineProperty(Subject.prototype, \"observed\", {\n get: function () {\n var _a;\n return ((_a = this.observers) === null || _a === void 0 ? void 0 : _a.length) > 0;\n },\n enumerable: false,\n configurable: true\n });\n Subject.prototype._trySubscribe = function (subscriber) {\n this._throwIfClosed();\n return _super.prototype._trySubscribe.call(this, subscriber);\n };\n Subject.prototype._subscribe = function (subscriber) {\n this._throwIfClosed();\n this._checkFinalizedStatuses(subscriber);\n return this._innerSubscribe(subscriber);\n };\n Subject.prototype._innerSubscribe = function (subscriber) {\n var _this = this;\n var _a = this, hasError = _a.hasError, isStopped = _a.isStopped, observers = _a.observers;\n if (hasError || isStopped) {\n return EMPTY_SUBSCRIPTION;\n }\n this.currentObservers = null;\n observers.push(subscriber);\n return new Subscription(function () {\n _this.currentObservers = null;\n arrRemove(observers, subscriber);\n });\n };\n Subject.prototype._checkFinalizedStatuses = function (subscriber) {\n var _a = this, hasError = _a.hasError, thrownError = _a.thrownError, isStopped = _a.isStopped;\n if (hasError) {\n subscriber.error(thrownError);\n }\n else if (isStopped) {\n subscriber.complete();\n }\n };\n Subject.prototype.asObservable = function () {\n var observable = new Observable();\n observable.source = this;\n return observable;\n };\n Subject.create = function (destination, source) {\n return new AnonymousSubject(destination, source);\n };\n return Subject;\n}(Observable));\nexport { Subject };\nvar AnonymousSubject = (function (_super) {\n __extends(AnonymousSubject, _super);\n function AnonymousSubject(destination, source) {\n var _this = _super.call(this) || this;\n _this.destination = destination;\n _this.source = source;\n return _this;\n }\n AnonymousSubject.prototype.next = function (value) {\n var _a, _b;\n (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.next) === null || _b === void 0 ? void 0 : _b.call(_a, value);\n };\n AnonymousSubject.prototype.error = function (err) {\n var _a, _b;\n (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.error) === null || _b === void 0 ? void 0 : _b.call(_a, err);\n };\n AnonymousSubject.prototype.complete = function () {\n var _a, _b;\n (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.complete) === null || _b === void 0 ? void 0 : _b.call(_a);\n };\n AnonymousSubject.prototype._subscribe = function (subscriber) {\n var _a, _b;\n return (_b = (_a = this.source) === null || _a === void 0 ? void 0 : _a.subscribe(subscriber)) !== null && _b !== void 0 ? _b : EMPTY_SUBSCRIPTION;\n };\n return AnonymousSubject;\n}(Subject));\nexport { AnonymousSubject };\n//# sourceMappingURL=Subject.js.map","import { __extends } from \"tslib\";\nimport { Subject } from './Subject';\nvar BehaviorSubject = (function (_super) {\n __extends(BehaviorSubject, _super);\n function BehaviorSubject(_value) {\n var _this = _super.call(this) || this;\n _this._value = _value;\n return _this;\n }\n Object.defineProperty(BehaviorSubject.prototype, \"value\", {\n get: function () {\n return this.getValue();\n },\n enumerable: false,\n configurable: true\n });\n BehaviorSubject.prototype._subscribe = function (subscriber) {\n var subscription = _super.prototype._subscribe.call(this, subscriber);\n !subscription.closed && subscriber.next(this._value);\n return subscription;\n };\n BehaviorSubject.prototype.getValue = function () {\n var _a = this, hasError = _a.hasError, thrownError = _a.thrownError, _value = _a._value;\n if (hasError) {\n throw thrownError;\n }\n this._throwIfClosed();\n return _value;\n };\n BehaviorSubject.prototype.next = function (value) {\n _super.prototype.next.call(this, (this._value = value));\n };\n return BehaviorSubject;\n}(Subject));\nexport { BehaviorSubject };\n//# sourceMappingURL=BehaviorSubject.js.map","export var dateTimestampProvider = {\n now: function () {\n return (dateTimestampProvider.delegate || Date).now();\n },\n delegate: undefined,\n};\n//# sourceMappingURL=dateTimestampProvider.js.map","import { __extends } from \"tslib\";\nimport { Subject } from './Subject';\nimport { dateTimestampProvider } from './scheduler/dateTimestampProvider';\nvar ReplaySubject = (function (_super) {\n __extends(ReplaySubject, _super);\n function ReplaySubject(_bufferSize, _windowTime, _timestampProvider) {\n if (_bufferSize === void 0) { _bufferSize = Infinity; }\n if (_windowTime === void 0) { _windowTime = Infinity; }\n if (_timestampProvider === void 0) { _timestampProvider = dateTimestampProvider; }\n var _this = _super.call(this) || this;\n _this._bufferSize = _bufferSize;\n _this._windowTime = _windowTime;\n _this._timestampProvider = _timestampProvider;\n _this._buffer = [];\n _this._infiniteTimeWindow = true;\n _this._infiniteTimeWindow = _windowTime === Infinity;\n _this._bufferSize = Math.max(1, _bufferSize);\n _this._windowTime = Math.max(1, _windowTime);\n return _this;\n }\n ReplaySubject.prototype.next = function (value) {\n var _a = this, isStopped = _a.isStopped, _buffer = _a._buffer, _infiniteTimeWindow = _a._infiniteTimeWindow, _timestampProvider = _a._timestampProvider, _windowTime = _a._windowTime;\n if (!isStopped) {\n _buffer.push(value);\n !_infiniteTimeWindow && _buffer.push(_timestampProvider.now() + _windowTime);\n }\n this._trimBuffer();\n _super.prototype.next.call(this, value);\n };\n ReplaySubject.prototype._subscribe = function (subscriber) {\n this._throwIfClosed();\n this._trimBuffer();\n var subscription = this._innerSubscribe(subscriber);\n var _a = this, _infiniteTimeWindow = _a._infiniteTimeWindow, _buffer = _a._buffer;\n var copy = _buffer.slice();\n for (var i = 0; i < copy.length && !subscriber.closed; i += _infiniteTimeWindow ? 1 : 2) {\n subscriber.next(copy[i]);\n }\n this._checkFinalizedStatuses(subscriber);\n return subscription;\n };\n ReplaySubject.prototype._trimBuffer = function () {\n var _a = this, _bufferSize = _a._bufferSize, _timestampProvider = _a._timestampProvider, _buffer = _a._buffer, _infiniteTimeWindow = _a._infiniteTimeWindow;\n var adjustedBufferSize = (_infiniteTimeWindow ? 1 : 2) * _bufferSize;\n _bufferSize < Infinity && adjustedBufferSize < _buffer.length && _buffer.splice(0, _buffer.length - adjustedBufferSize);\n if (!_infiniteTimeWindow) {\n var now = _timestampProvider.now();\n var last = 0;\n for (var i = 1; i < _buffer.length && _buffer[i] <= now; i += 2) {\n last = i;\n }\n last && _buffer.splice(0, last + 1);\n }\n };\n return ReplaySubject;\n}(Subject));\nexport { ReplaySubject };\n//# sourceMappingURL=ReplaySubject.js.map","import { __extends } from \"tslib\";\nimport { Subject } from './Subject';\nvar AsyncSubject = (function (_super) {\n __extends(AsyncSubject, _super);\n function AsyncSubject() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this._value = null;\n _this._hasValue = false;\n _this._isComplete = false;\n return _this;\n }\n AsyncSubject.prototype._checkFinalizedStatuses = function (subscriber) {\n var _a = this, hasError = _a.hasError, _hasValue = _a._hasValue, _value = _a._value, thrownError = _a.thrownError, isStopped = _a.isStopped, _isComplete = _a._isComplete;\n if (hasError) {\n subscriber.error(thrownError);\n }\n else if (isStopped || _isComplete) {\n _hasValue && subscriber.next(_value);\n subscriber.complete();\n }\n };\n AsyncSubject.prototype.next = function (value) {\n if (!this.isStopped) {\n this._value = value;\n this._hasValue = true;\n }\n };\n AsyncSubject.prototype.complete = function () {\n var _a = this, _hasValue = _a._hasValue, _value = _a._value, _isComplete = _a._isComplete;\n if (!_isComplete) {\n this._isComplete = true;\n _hasValue && _super.prototype.next.call(this, _value);\n _super.prototype.complete.call(this);\n }\n };\n return AsyncSubject;\n}(Subject));\nexport { AsyncSubject };\n//# sourceMappingURL=AsyncSubject.js.map","import { __extends } from \"tslib\";\nimport { Subscription } from '../Subscription';\nvar Action = (function (_super) {\n __extends(Action, _super);\n function Action(scheduler, work) {\n return _super.call(this) || this;\n }\n Action.prototype.schedule = function (state, delay) {\n if (delay === void 0) { delay = 0; }\n return this;\n };\n return Action;\n}(Subscription));\nexport { Action };\n//# sourceMappingURL=Action.js.map","import { __read, __spreadArray } from \"tslib\";\nexport var intervalProvider = {\n setInterval: function (handler, timeout) {\n var args = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n args[_i - 2] = arguments[_i];\n }\n var delegate = intervalProvider.delegate;\n if (delegate === null || delegate === void 0 ? void 0 : delegate.setInterval) {\n return delegate.setInterval.apply(delegate, __spreadArray([handler, timeout], __read(args)));\n }\n return setInterval.apply(void 0, __spreadArray([handler, timeout], __read(args)));\n },\n clearInterval: function (handle) {\n var delegate = intervalProvider.delegate;\n return ((delegate === null || delegate === void 0 ? void 0 : delegate.clearInterval) || clearInterval)(handle);\n },\n delegate: undefined,\n};\n//# sourceMappingURL=intervalProvider.js.map","import { __extends } from \"tslib\";\nimport { Action } from './Action';\nimport { intervalProvider } from './intervalProvider';\nimport { arrRemove } from '../util/arrRemove';\nvar AsyncAction = (function (_super) {\n __extends(AsyncAction, _super);\n function AsyncAction(scheduler, work) {\n var _this = _super.call(this, scheduler, work) || this;\n _this.scheduler = scheduler;\n _this.work = work;\n _this.pending = false;\n return _this;\n }\n AsyncAction.prototype.schedule = function (state, delay) {\n if (delay === void 0) { delay = 0; }\n if (this.closed) {\n return this;\n }\n this.state = state;\n var id = this.id;\n var scheduler = this.scheduler;\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, delay);\n }\n this.pending = true;\n this.delay = delay;\n this.id = this.id || this.requestAsyncId(scheduler, this.id, delay);\n return this;\n };\n AsyncAction.prototype.requestAsyncId = function (scheduler, _id, delay) {\n if (delay === void 0) { delay = 0; }\n return intervalProvider.setInterval(scheduler.flush.bind(scheduler, this), delay);\n };\n AsyncAction.prototype.recycleAsyncId = function (_scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n if (delay != null && this.delay === delay && this.pending === false) {\n return id;\n }\n intervalProvider.clearInterval(id);\n return undefined;\n };\n AsyncAction.prototype.execute = function (state, delay) {\n if (this.closed) {\n return new Error('executing a cancelled action');\n }\n this.pending = false;\n var error = this._execute(state, delay);\n if (error) {\n return error;\n }\n else if (this.pending === false && this.id != null) {\n this.id = this.recycleAsyncId(this.scheduler, this.id, null);\n }\n };\n AsyncAction.prototype._execute = function (state, _delay) {\n var errored = false;\n var errorValue;\n try {\n this.work(state);\n }\n catch (e) {\n errored = true;\n errorValue = e ? e : new Error('Scheduled action threw falsy error');\n }\n if (errored) {\n this.unsubscribe();\n return errorValue;\n }\n };\n AsyncAction.prototype.unsubscribe = function () {\n if (!this.closed) {\n var _a = this, id = _a.id, scheduler = _a.scheduler;\n var actions = scheduler.actions;\n this.work = this.state = this.scheduler = null;\n this.pending = false;\n arrRemove(actions, this);\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, null);\n }\n this.delay = null;\n _super.prototype.unsubscribe.call(this);\n }\n };\n return AsyncAction;\n}(Action));\nexport { AsyncAction };\n//# sourceMappingURL=AsyncAction.js.map","var nextHandle = 1;\nvar resolved;\nvar activeHandles = {};\nfunction findAndClearHandle(handle) {\n if (handle in activeHandles) {\n delete activeHandles[handle];\n return true;\n }\n return false;\n}\nexport var Immediate = {\n setImmediate: function (cb) {\n var handle = nextHandle++;\n activeHandles[handle] = true;\n if (!resolved) {\n resolved = Promise.resolve();\n }\n resolved.then(function () { return findAndClearHandle(handle) && cb(); });\n return handle;\n },\n clearImmediate: function (handle) {\n findAndClearHandle(handle);\n },\n};\nexport var TestTools = {\n pending: function () {\n return Object.keys(activeHandles).length;\n }\n};\n//# sourceMappingURL=Immediate.js.map","import { __read, __spreadArray } from \"tslib\";\nimport { Immediate } from '../util/Immediate';\nvar setImmediate = Immediate.setImmediate, clearImmediate = Immediate.clearImmediate;\nexport var immediateProvider = {\n setImmediate: function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var delegate = immediateProvider.delegate;\n return ((delegate === null || delegate === void 0 ? void 0 : delegate.setImmediate) || setImmediate).apply(void 0, __spreadArray([], __read(args)));\n },\n clearImmediate: function (handle) {\n var delegate = immediateProvider.delegate;\n return ((delegate === null || delegate === void 0 ? void 0 : delegate.clearImmediate) || clearImmediate)(handle);\n },\n delegate: undefined,\n};\n//# sourceMappingURL=immediateProvider.js.map","import { __extends } from \"tslib\";\nimport { AsyncAction } from './AsyncAction';\nimport { immediateProvider } from './immediateProvider';\nvar AsapAction = (function (_super) {\n __extends(AsapAction, _super);\n function AsapAction(scheduler, work) {\n var _this = _super.call(this, scheduler, work) || this;\n _this.scheduler = scheduler;\n _this.work = work;\n return _this;\n }\n AsapAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n if (delay !== null && delay > 0) {\n return _super.prototype.requestAsyncId.call(this, scheduler, id, delay);\n }\n scheduler.actions.push(this);\n return scheduler._scheduled || (scheduler._scheduled = immediateProvider.setImmediate(scheduler.flush.bind(scheduler, undefined)));\n };\n AsapAction.prototype.recycleAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n if ((delay != null && delay > 0) || (delay == null && this.delay > 0)) {\n return _super.prototype.recycleAsyncId.call(this, scheduler, id, delay);\n }\n if (!scheduler.actions.some(function (action) { return action.id === id; })) {\n immediateProvider.clearImmediate(id);\n scheduler._scheduled = undefined;\n }\n return undefined;\n };\n return AsapAction;\n}(AsyncAction));\nexport { AsapAction };\n//# sourceMappingURL=AsapAction.js.map","import { dateTimestampProvider } from './scheduler/dateTimestampProvider';\nvar Scheduler = (function () {\n function Scheduler(schedulerActionCtor, now) {\n if (now === void 0) { now = Scheduler.now; }\n this.schedulerActionCtor = schedulerActionCtor;\n this.now = now;\n }\n Scheduler.prototype.schedule = function (work, delay, state) {\n if (delay === void 0) { delay = 0; }\n return new this.schedulerActionCtor(this, work).schedule(state, delay);\n };\n Scheduler.now = dateTimestampProvider.now;\n return Scheduler;\n}());\nexport { Scheduler };\n//# sourceMappingURL=Scheduler.js.map","import { __extends } from \"tslib\";\nimport { Scheduler } from '../Scheduler';\nvar AsyncScheduler = (function (_super) {\n __extends(AsyncScheduler, _super);\n function AsyncScheduler(SchedulerAction, now) {\n if (now === void 0) { now = Scheduler.now; }\n var _this = _super.call(this, SchedulerAction, now) || this;\n _this.actions = [];\n _this._active = false;\n _this._scheduled = undefined;\n return _this;\n }\n AsyncScheduler.prototype.flush = function (action) {\n var actions = this.actions;\n if (this._active) {\n actions.push(action);\n return;\n }\n var error;\n this._active = true;\n do {\n if ((error = action.execute(action.state, action.delay))) {\n break;\n }\n } while ((action = actions.shift()));\n this._active = false;\n if (error) {\n while ((action = actions.shift())) {\n action.unsubscribe();\n }\n throw error;\n }\n };\n return AsyncScheduler;\n}(Scheduler));\nexport { AsyncScheduler };\n//# sourceMappingURL=AsyncScheduler.js.map","import { __extends } from \"tslib\";\nimport { AsyncScheduler } from './AsyncScheduler';\nvar AsapScheduler = (function (_super) {\n __extends(AsapScheduler, _super);\n function AsapScheduler() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n AsapScheduler.prototype.flush = function (action) {\n this._active = true;\n var flushId = this._scheduled;\n this._scheduled = undefined;\n var actions = this.actions;\n var error;\n action = action || actions.shift();\n do {\n if ((error = action.execute(action.state, action.delay))) {\n break;\n }\n } while ((action = actions[0]) && action.id === flushId && actions.shift());\n this._active = false;\n if (error) {\n while ((action = actions[0]) && action.id === flushId && actions.shift()) {\n action.unsubscribe();\n }\n throw error;\n }\n };\n return AsapScheduler;\n}(AsyncScheduler));\nexport { AsapScheduler };\n//# sourceMappingURL=AsapScheduler.js.map","import { AsapAction } from './AsapAction';\nimport { AsapScheduler } from './AsapScheduler';\nexport var asapScheduler = new AsapScheduler(AsapAction);\nexport var asap = asapScheduler;\n//# sourceMappingURL=asap.js.map","import { AsyncAction } from './AsyncAction';\nimport { AsyncScheduler } from './AsyncScheduler';\nexport var asyncScheduler = new AsyncScheduler(AsyncAction);\nexport var async = asyncScheduler;\n//# sourceMappingURL=async.js.map","import { __extends } from \"tslib\";\nimport { AsyncAction } from './AsyncAction';\nvar QueueAction = (function (_super) {\n __extends(QueueAction, _super);\n function QueueAction(scheduler, work) {\n var _this = _super.call(this, scheduler, work) || this;\n _this.scheduler = scheduler;\n _this.work = work;\n return _this;\n }\n QueueAction.prototype.schedule = function (state, delay) {\n if (delay === void 0) { delay = 0; }\n if (delay > 0) {\n return _super.prototype.schedule.call(this, state, delay);\n }\n this.delay = delay;\n this.state = state;\n this.scheduler.flush(this);\n return this;\n };\n QueueAction.prototype.execute = function (state, delay) {\n return (delay > 0 || this.closed) ?\n _super.prototype.execute.call(this, state, delay) :\n this._execute(state, delay);\n };\n QueueAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n if ((delay != null && delay > 0) || (delay == null && this.delay > 0)) {\n return _super.prototype.requestAsyncId.call(this, scheduler, id, delay);\n }\n return scheduler.flush(this);\n };\n return QueueAction;\n}(AsyncAction));\nexport { QueueAction };\n//# sourceMappingURL=QueueAction.js.map","import { __extends } from \"tslib\";\nimport { AsyncScheduler } from './AsyncScheduler';\nvar QueueScheduler = (function (_super) {\n __extends(QueueScheduler, _super);\n function QueueScheduler() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return QueueScheduler;\n}(AsyncScheduler));\nexport { QueueScheduler };\n//# sourceMappingURL=QueueScheduler.js.map","import { QueueAction } from './QueueAction';\nimport { QueueScheduler } from './QueueScheduler';\nexport var queueScheduler = new QueueScheduler(QueueAction);\nexport var queue = queueScheduler;\n//# sourceMappingURL=queue.js.map","import { __extends } from \"tslib\";\nimport { AsyncAction } from './AsyncAction';\nimport { animationFrameProvider } from './animationFrameProvider';\nvar AnimationFrameAction = (function (_super) {\n __extends(AnimationFrameAction, _super);\n function AnimationFrameAction(scheduler, work) {\n var _this = _super.call(this, scheduler, work) || this;\n _this.scheduler = scheduler;\n _this.work = work;\n return _this;\n }\n AnimationFrameAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n if (delay !== null && delay > 0) {\n return _super.prototype.requestAsyncId.call(this, scheduler, id, delay);\n }\n scheduler.actions.push(this);\n return scheduler._scheduled || (scheduler._scheduled = animationFrameProvider.requestAnimationFrame(function () { return scheduler.flush(undefined); }));\n };\n AnimationFrameAction.prototype.recycleAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n if ((delay != null && delay > 0) || (delay == null && this.delay > 0)) {\n return _super.prototype.recycleAsyncId.call(this, scheduler, id, delay);\n }\n if (!scheduler.actions.some(function (action) { return action.id === id; })) {\n animationFrameProvider.cancelAnimationFrame(id);\n scheduler._scheduled = undefined;\n }\n return undefined;\n };\n return AnimationFrameAction;\n}(AsyncAction));\nexport { AnimationFrameAction };\n//# sourceMappingURL=AnimationFrameAction.js.map","import { __extends } from \"tslib\";\nimport { AsyncScheduler } from './AsyncScheduler';\nvar AnimationFrameScheduler = (function (_super) {\n __extends(AnimationFrameScheduler, _super);\n function AnimationFrameScheduler() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n AnimationFrameScheduler.prototype.flush = function (action) {\n this._active = true;\n var flushId = this._scheduled;\n this._scheduled = undefined;\n var actions = this.actions;\n var error;\n action = action || actions.shift();\n do {\n if ((error = action.execute(action.state, action.delay))) {\n break;\n }\n } while ((action = actions[0]) && action.id === flushId && actions.shift());\n this._active = false;\n if (error) {\n while ((action = actions[0]) && action.id === flushId && actions.shift()) {\n action.unsubscribe();\n }\n throw error;\n }\n };\n return AnimationFrameScheduler;\n}(AsyncScheduler));\nexport { AnimationFrameScheduler };\n//# sourceMappingURL=AnimationFrameScheduler.js.map","import { AnimationFrameAction } from './AnimationFrameAction';\nimport { AnimationFrameScheduler } from './AnimationFrameScheduler';\nexport var animationFrameScheduler = new AnimationFrameScheduler(AnimationFrameAction);\nexport var animationFrame = animationFrameScheduler;\n//# sourceMappingURL=animationFrame.js.map","import { __extends } from \"tslib\";\nimport { AsyncAction } from './AsyncAction';\nimport { Subscription } from '../Subscription';\nimport { AsyncScheduler } from './AsyncScheduler';\nvar VirtualTimeScheduler = (function (_super) {\n __extends(VirtualTimeScheduler, _super);\n function VirtualTimeScheduler(schedulerActionCtor, maxFrames) {\n if (schedulerActionCtor === void 0) { schedulerActionCtor = VirtualAction; }\n if (maxFrames === void 0) { maxFrames = Infinity; }\n var _this = _super.call(this, schedulerActionCtor, function () { return _this.frame; }) || this;\n _this.maxFrames = maxFrames;\n _this.frame = 0;\n _this.index = -1;\n return _this;\n }\n VirtualTimeScheduler.prototype.flush = function () {\n var _a = this, actions = _a.actions, maxFrames = _a.maxFrames;\n var error;\n var action;\n while ((action = actions[0]) && action.delay <= maxFrames) {\n actions.shift();\n this.frame = action.delay;\n if ((error = action.execute(action.state, action.delay))) {\n break;\n }\n }\n if (error) {\n while ((action = actions.shift())) {\n action.unsubscribe();\n }\n throw error;\n }\n };\n VirtualTimeScheduler.frameTimeFactor = 10;\n return VirtualTimeScheduler;\n}(AsyncScheduler));\nexport { VirtualTimeScheduler };\nvar VirtualAction = (function (_super) {\n __extends(VirtualAction, _super);\n function VirtualAction(scheduler, work, index) {\n if (index === void 0) { index = (scheduler.index += 1); }\n var _this = _super.call(this, scheduler, work) || this;\n _this.scheduler = scheduler;\n _this.work = work;\n _this.index = index;\n _this.active = true;\n _this.index = scheduler.index = index;\n return _this;\n }\n VirtualAction.prototype.schedule = function (state, delay) {\n if (delay === void 0) { delay = 0; }\n if (Number.isFinite(delay)) {\n if (!this.id) {\n return _super.prototype.schedule.call(this, state, delay);\n }\n this.active = false;\n var action = new VirtualAction(this.scheduler, this.work);\n this.add(action);\n return action.schedule(state, delay);\n }\n else {\n return Subscription.EMPTY;\n }\n };\n VirtualAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n this.delay = scheduler.frame + delay;\n var actions = scheduler.actions;\n actions.push(this);\n actions.sort(VirtualAction.sortActions);\n return true;\n };\n VirtualAction.prototype.recycleAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n return undefined;\n };\n VirtualAction.prototype._execute = function (state, delay) {\n if (this.active === true) {\n return _super.prototype._execute.call(this, state, delay);\n }\n };\n VirtualAction.sortActions = function (a, b) {\n if (a.delay === b.delay) {\n if (a.index === b.index) {\n return 0;\n }\n else if (a.index > b.index) {\n return 1;\n }\n else {\n return -1;\n }\n }\n else if (a.delay > b.delay) {\n return 1;\n }\n else {\n return -1;\n }\n };\n return VirtualAction;\n}(AsyncAction));\nexport { VirtualAction };\n//# sourceMappingURL=VirtualTimeScheduler.js.map","import { Observable } from '../Observable';\nexport var EMPTY = new Observable(function (subscriber) { return subscriber.complete(); });\nexport function empty(scheduler) {\n return scheduler ? emptyScheduled(scheduler) : EMPTY;\n}\nfunction emptyScheduled(scheduler) {\n return new Observable(function (subscriber) { return scheduler.schedule(function () { return subscriber.complete(); }); });\n}\n//# sourceMappingURL=empty.js.map","export var isArrayLike = (function (x) { return x && typeof x.length === 'number' && typeof x !== 'function'; });\n//# sourceMappingURL=isArrayLike.js.map","import { isFunction } from \"./isFunction\";\nexport function isPromise(value) {\n return isFunction(value === null || value === void 0 ? void 0 : value.then);\n}\n//# sourceMappingURL=isPromise.js.map","import { observable as Symbol_observable } from '../symbol/observable';\nimport { isFunction } from './isFunction';\nexport function isInteropObservable(input) {\n return isFunction(input[Symbol_observable]);\n}\n//# sourceMappingURL=isInteropObservable.js.map","import { isFunction } from './isFunction';\nexport function isAsyncIterable(obj) {\n return Symbol.asyncIterator && isFunction(obj === null || obj === void 0 ? void 0 : obj[Symbol.asyncIterator]);\n}\n//# sourceMappingURL=isAsyncIterable.js.map","export function createInvalidObservableTypeError(input) {\n return new TypeError(\"You provided \" + (input !== null && typeof input === 'object' ? 'an invalid object' : \"'\" + input + \"'\") + \" where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.\");\n}\n//# sourceMappingURL=throwUnobservableError.js.map","export function getSymbolIterator() {\n if (typeof Symbol !== 'function' || !Symbol.iterator) {\n return '@@iterator';\n }\n return Symbol.iterator;\n}\nexport var iterator = getSymbolIterator();\n//# sourceMappingURL=iterator.js.map","import { iterator as Symbol_iterator } from '../symbol/iterator';\nimport { isFunction } from './isFunction';\nexport function isIterable(input) {\n return isFunction(input === null || input === void 0 ? void 0 : input[Symbol_iterator]);\n}\n//# sourceMappingURL=isIterable.js.map","import { __asyncGenerator, __await, __generator } from \"tslib\";\nimport { isFunction } from './isFunction';\nexport function readableStreamLikeToAsyncGenerator(readableStream) {\n return __asyncGenerator(this, arguments, function readableStreamLikeToAsyncGenerator_1() {\n var reader, _a, value, done;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n reader = readableStream.getReader();\n _b.label = 1;\n case 1:\n _b.trys.push([1, , 9, 10]);\n _b.label = 2;\n case 2:\n if (!true) return [3, 8];\n return [4, __await(reader.read())];\n case 3:\n _a = _b.sent(), value = _a.value, done = _a.done;\n if (!done) return [3, 5];\n return [4, __await(void 0)];\n case 4: return [2, _b.sent()];\n case 5: return [4, __await(value)];\n case 6: return [4, _b.sent()];\n case 7:\n _b.sent();\n return [3, 2];\n case 8: return [3, 10];\n case 9:\n reader.releaseLock();\n return [7];\n case 10: return [2];\n }\n });\n });\n}\nexport function isReadableStreamLike(obj) {\n return isFunction(obj === null || obj === void 0 ? void 0 : obj.getReader);\n}\n//# sourceMappingURL=isReadableStreamLike.js.map","import { __asyncValues, __awaiter, __generator, __values } from \"tslib\";\nimport { isArrayLike } from '../util/isArrayLike';\nimport { isPromise } from '../util/isPromise';\nimport { Observable } from '../Observable';\nimport { isInteropObservable } from '../util/isInteropObservable';\nimport { isAsyncIterable } from '../util/isAsyncIterable';\nimport { createInvalidObservableTypeError } from '../util/throwUnobservableError';\nimport { isIterable } from '../util/isIterable';\nimport { isReadableStreamLike, readableStreamLikeToAsyncGenerator } from '../util/isReadableStreamLike';\nimport { isFunction } from '../util/isFunction';\nimport { reportUnhandledError } from '../util/reportUnhandledError';\nimport { observable as Symbol_observable } from '../symbol/observable';\nexport function innerFrom(input) {\n if (input instanceof Observable) {\n return input;\n }\n if (input != null) {\n if (isInteropObservable(input)) {\n return fromInteropObservable(input);\n }\n if (isArrayLike(input)) {\n return fromArrayLike(input);\n }\n if (isPromise(input)) {\n return fromPromise(input);\n }\n if (isAsyncIterable(input)) {\n return fromAsyncIterable(input);\n }\n if (isIterable(input)) {\n return fromIterable(input);\n }\n if (isReadableStreamLike(input)) {\n return fromReadableStreamLike(input);\n }\n }\n throw createInvalidObservableTypeError(input);\n}\nexport function fromInteropObservable(obj) {\n return new Observable(function (subscriber) {\n var obs = obj[Symbol_observable]();\n if (isFunction(obs.subscribe)) {\n return obs.subscribe(subscriber);\n }\n throw new TypeError('Provided object does not correctly implement Symbol.observable');\n });\n}\nexport function fromArrayLike(array) {\n return new Observable(function (subscriber) {\n for (var i = 0; i < array.length && !subscriber.closed; i++) {\n subscriber.next(array[i]);\n }\n subscriber.complete();\n });\n}\nexport function fromPromise(promise) {\n return new Observable(function (subscriber) {\n promise\n .then(function (value) {\n if (!subscriber.closed) {\n subscriber.next(value);\n subscriber.complete();\n }\n }, function (err) { return subscriber.error(err); })\n .then(null, reportUnhandledError);\n });\n}\nexport function fromIterable(iterable) {\n return new Observable(function (subscriber) {\n var e_1, _a;\n try {\n for (var iterable_1 = __values(iterable), iterable_1_1 = iterable_1.next(); !iterable_1_1.done; iterable_1_1 = iterable_1.next()) {\n var value = iterable_1_1.value;\n subscriber.next(value);\n if (subscriber.closed) {\n return;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (iterable_1_1 && !iterable_1_1.done && (_a = iterable_1.return)) _a.call(iterable_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n subscriber.complete();\n });\n}\nexport function fromAsyncIterable(asyncIterable) {\n return new Observable(function (subscriber) {\n process(asyncIterable, subscriber).catch(function (err) { return subscriber.error(err); });\n });\n}\nexport function fromReadableStreamLike(readableStream) {\n return fromAsyncIterable(readableStreamLikeToAsyncGenerator(readableStream));\n}\nfunction process(asyncIterable, subscriber) {\n var asyncIterable_1, asyncIterable_1_1;\n var e_2, _a;\n return __awaiter(this, void 0, void 0, function () {\n var value, e_2_1;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _b.trys.push([0, 5, 6, 11]);\n asyncIterable_1 = __asyncValues(asyncIterable);\n _b.label = 1;\n case 1: return [4, asyncIterable_1.next()];\n case 2:\n if (!(asyncIterable_1_1 = _b.sent(), !asyncIterable_1_1.done)) return [3, 4];\n value = asyncIterable_1_1.value;\n subscriber.next(value);\n if (subscriber.closed) {\n return [2];\n }\n _b.label = 3;\n case 3: return [3, 1];\n case 4: return [3, 11];\n case 5:\n e_2_1 = _b.sent();\n e_2 = { error: e_2_1 };\n return [3, 11];\n case 6:\n _b.trys.push([6, , 9, 10]);\n if (!(asyncIterable_1_1 && !asyncIterable_1_1.done && (_a = asyncIterable_1.return))) return [3, 8];\n return [4, _a.call(asyncIterable_1)];\n case 7:\n _b.sent();\n _b.label = 8;\n case 8: return [3, 10];\n case 9:\n if (e_2) throw e_2.error;\n return [7];\n case 10: return [7];\n case 11:\n subscriber.complete();\n return [2];\n }\n });\n });\n}\n//# sourceMappingURL=innerFrom.js.map","export function executeSchedule(parentSubscription, scheduler, work, delay, repeat) {\n if (delay === void 0) { delay = 0; }\n if (repeat === void 0) { repeat = false; }\n var scheduleSubscription = scheduler.schedule(function () {\n work();\n if (repeat) {\n parentSubscription.add(this.schedule(null, delay));\n }\n else {\n this.unsubscribe();\n }\n }, delay);\n parentSubscription.add(scheduleSubscription);\n if (!repeat) {\n return scheduleSubscription;\n }\n}\n//# sourceMappingURL=executeSchedule.js.map","import { EMPTY } from './observable/empty';\nimport { of } from './observable/of';\nimport { throwError } from './observable/throwError';\nimport { isFunction } from './util/isFunction';\nexport var NotificationKind;\n(function (NotificationKind) {\n NotificationKind[\"NEXT\"] = \"N\";\n NotificationKind[\"ERROR\"] = \"E\";\n NotificationKind[\"COMPLETE\"] = \"C\";\n})(NotificationKind || (NotificationKind = {}));\nvar Notification = (function () {\n function Notification(kind, value, error) {\n this.kind = kind;\n this.value = value;\n this.error = error;\n this.hasValue = kind === 'N';\n }\n Notification.prototype.observe = function (observer) {\n return observeNotification(this, observer);\n };\n Notification.prototype.do = function (nextHandler, errorHandler, completeHandler) {\n var _a = this, kind = _a.kind, value = _a.value, error = _a.error;\n return kind === 'N' ? nextHandler === null || nextHandler === void 0 ? void 0 : nextHandler(value) : kind === 'E' ? errorHandler === null || errorHandler === void 0 ? void 0 : errorHandler(error) : completeHandler === null || completeHandler === void 0 ? void 0 : completeHandler();\n };\n Notification.prototype.accept = function (nextOrObserver, error, complete) {\n var _a;\n return isFunction((_a = nextOrObserver) === null || _a === void 0 ? void 0 : _a.next)\n ? this.observe(nextOrObserver)\n : this.do(nextOrObserver, error, complete);\n };\n Notification.prototype.toObservable = function () {\n var _a = this, kind = _a.kind, value = _a.value, error = _a.error;\n var result = kind === 'N'\n ?\n of(value)\n :\n kind === 'E'\n ?\n throwError(function () { return error; })\n :\n kind === 'C'\n ?\n EMPTY\n :\n 0;\n if (!result) {\n throw new TypeError(\"Unexpected notification kind \" + kind);\n }\n return result;\n };\n Notification.createNext = function (value) {\n return new Notification('N', value);\n };\n Notification.createError = function (err) {\n return new Notification('E', undefined, err);\n };\n Notification.createComplete = function () {\n return Notification.completeNotification;\n };\n Notification.completeNotification = new Notification('C');\n return Notification;\n}());\nexport { Notification };\nexport function observeNotification(notification, observer) {\n var _a, _b, _c;\n var _d = notification, kind = _d.kind, value = _d.value, error = _d.error;\n if (typeof kind !== 'string') {\n throw new TypeError('Invalid notification, missing \"kind\"');\n }\n kind === 'N' ? (_a = observer.next) === null || _a === void 0 ? void 0 : _a.call(observer, value) : kind === 'E' ? (_b = observer.error) === null || _b === void 0 ? void 0 : _b.call(observer, error) : (_c = observer.complete) === null || _c === void 0 ? void 0 : _c.call(observer);\n}\n//# sourceMappingURL=Notification.js.map","import { createErrorClass } from './createErrorClass';\nexport var EmptyError = createErrorClass(function (_super) { return function EmptyErrorImpl() {\n _super(this);\n this.name = 'EmptyError';\n this.message = 'no elements in sequence';\n}; });\n//# sourceMappingURL=EmptyError.js.map","import { createErrorClass } from './createErrorClass';\nexport var ArgumentOutOfRangeError = createErrorClass(function (_super) {\n return function ArgumentOutOfRangeErrorImpl() {\n _super(this);\n this.name = 'ArgumentOutOfRangeError';\n this.message = 'argument out of range';\n };\n});\n//# sourceMappingURL=ArgumentOutOfRangeError.js.map","import { createErrorClass } from './createErrorClass';\nexport var NotFoundError = createErrorClass(function (_super) {\n return function NotFoundErrorImpl(message) {\n _super(this);\n this.name = 'NotFoundError';\n this.message = message;\n };\n});\n//# sourceMappingURL=NotFoundError.js.map","import { createErrorClass } from './createErrorClass';\nexport var SequenceError = createErrorClass(function (_super) {\n return function SequenceErrorImpl(message) {\n _super(this);\n this.name = 'SequenceError';\n this.message = message;\n };\n});\n//# sourceMappingURL=SequenceError.js.map","import { asyncScheduler } from '../scheduler/async';\nimport { isValidDate } from '../util/isDate';\nimport { operate } from '../util/lift';\nimport { innerFrom } from '../observable/innerFrom';\nimport { createErrorClass } from '../util/createErrorClass';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nimport { executeSchedule } from '../util/executeSchedule';\nexport var TimeoutError = createErrorClass(function (_super) {\n return function TimeoutErrorImpl(info) {\n if (info === void 0) { info = null; }\n _super(this);\n this.message = 'Timeout has occurred';\n this.name = 'TimeoutError';\n this.info = info;\n };\n});\nexport function timeout(config, schedulerArg) {\n var _a = (isValidDate(config) ? { first: config } : typeof config === 'number' ? { each: config } : config), first = _a.first, each = _a.each, _b = _a.with, _with = _b === void 0 ? timeoutErrorFactory : _b, _c = _a.scheduler, scheduler = _c === void 0 ? schedulerArg !== null && schedulerArg !== void 0 ? schedulerArg : asyncScheduler : _c, _d = _a.meta, meta = _d === void 0 ? null : _d;\n if (first == null && each == null) {\n throw new TypeError('No timeout provided.');\n }\n return operate(function (source, subscriber) {\n var originalSourceSubscription;\n var timerSubscription;\n var lastValue = null;\n var seen = 0;\n var startTimer = function (delay) {\n timerSubscription = executeSchedule(subscriber, scheduler, function () {\n try {\n originalSourceSubscription.unsubscribe();\n innerFrom(_with({\n meta: meta,\n lastValue: lastValue,\n seen: seen,\n })).subscribe(subscriber);\n }\n catch (err) {\n subscriber.error(err);\n }\n }, delay);\n };\n originalSourceSubscription = source.subscribe(createOperatorSubscriber(subscriber, function (value) {\n timerSubscription === null || timerSubscription === void 0 ? void 0 : timerSubscription.unsubscribe();\n seen++;\n subscriber.next((lastValue = value));\n each > 0 && startTimer(each);\n }, undefined, undefined, function () {\n if (!(timerSubscription === null || timerSubscription === void 0 ? void 0 : timerSubscription.closed)) {\n timerSubscription === null || timerSubscription === void 0 ? void 0 : timerSubscription.unsubscribe();\n }\n lastValue = null;\n }));\n !seen && startTimer(first != null ? (typeof first === 'number' ? first : +first - scheduler.now()) : each);\n });\n}\nfunction timeoutErrorFactory(info) {\n throw new TimeoutError(info);\n}\n//# sourceMappingURL=timeout.js.map","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function map(project, thisArg) {\n return operate(function (source, subscriber) {\n var index = 0;\n source.subscribe(createOperatorSubscriber(subscriber, function (value) {\n subscriber.next(project.call(thisArg, value, index++));\n }));\n });\n}\n//# sourceMappingURL=map.js.map","import { __read, __spreadArray } from \"tslib\";\nimport { map } from \"../operators/map\";\nvar isArray = Array.isArray;\nfunction callOrApply(fn, args) {\n return isArray(args) ? fn.apply(void 0, __spreadArray([], __read(args))) : fn(args);\n}\nexport function mapOneOrManyArgs(fn) {\n return map(function (args) { return callOrApply(fn, args); });\n}\n//# sourceMappingURL=mapOneOrManyArgs.js.map","import { innerFrom } from '../observable/innerFrom';\nimport { executeSchedule } from '../util/executeSchedule';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function mergeInternals(source, subscriber, project, concurrent, onBeforeNext, expand, innerSubScheduler, additionalFinalizer) {\n var buffer = [];\n var active = 0;\n var index = 0;\n var isComplete = false;\n var checkComplete = function () {\n if (isComplete && !buffer.length && !active) {\n subscriber.complete();\n }\n };\n var outerNext = function (value) { return (active < concurrent ? doInnerSub(value) : buffer.push(value)); };\n var doInnerSub = function (value) {\n expand && subscriber.next(value);\n active++;\n var innerComplete = false;\n innerFrom(project(value, index++)).subscribe(createOperatorSubscriber(subscriber, function (innerValue) {\n onBeforeNext === null || onBeforeNext === void 0 ? void 0 : onBeforeNext(innerValue);\n if (expand) {\n outerNext(innerValue);\n }\n else {\n subscriber.next(innerValue);\n }\n }, function () {\n innerComplete = true;\n }, undefined, function () {\n if (innerComplete) {\n try {\n active--;\n var _loop_1 = function () {\n var bufferedValue = buffer.shift();\n if (innerSubScheduler) {\n executeSchedule(subscriber, innerSubScheduler, function () { return doInnerSub(bufferedValue); });\n }\n else {\n doInnerSub(bufferedValue);\n }\n };\n while (buffer.length && active < concurrent) {\n _loop_1();\n }\n checkComplete();\n }\n catch (err) {\n subscriber.error(err);\n }\n }\n }));\n };\n source.subscribe(createOperatorSubscriber(subscriber, outerNext, function () {\n isComplete = true;\n checkComplete();\n }));\n return function () {\n additionalFinalizer === null || additionalFinalizer === void 0 ? void 0 : additionalFinalizer();\n };\n}\n//# sourceMappingURL=mergeInternals.js.map","import { map } from './map';\nimport { innerFrom } from '../observable/innerFrom';\nimport { operate } from '../util/lift';\nimport { mergeInternals } from './mergeInternals';\nimport { isFunction } from '../util/isFunction';\nexport function mergeMap(project, resultSelector, concurrent) {\n if (concurrent === void 0) { concurrent = Infinity; }\n if (isFunction(resultSelector)) {\n return mergeMap(function (a, i) { return map(function (b, ii) { return resultSelector(a, b, i, ii); })(innerFrom(project(a, i))); }, concurrent);\n }\n else if (typeof resultSelector === 'number') {\n concurrent = resultSelector;\n }\n return operate(function (source, subscriber) { return mergeInternals(source, subscriber, project, concurrent); });\n}\n//# sourceMappingURL=mergeMap.js.map","import { __read } from \"tslib\";\nimport { innerFrom } from '../observable/innerFrom';\nimport { Observable } from '../Observable';\nimport { mergeMap } from '../operators/mergeMap';\nimport { isArrayLike } from '../util/isArrayLike';\nimport { isFunction } from '../util/isFunction';\nimport { mapOneOrManyArgs } from '../util/mapOneOrManyArgs';\nvar nodeEventEmitterMethods = ['addListener', 'removeListener'];\nvar eventTargetMethods = ['addEventListener', 'removeEventListener'];\nvar jqueryMethods = ['on', 'off'];\nexport function fromEvent(target, eventName, options, resultSelector) {\n if (isFunction(options)) {\n resultSelector = options;\n options = undefined;\n }\n if (resultSelector) {\n return fromEvent(target, eventName, options).pipe(mapOneOrManyArgs(resultSelector));\n }\n var _a = __read(isEventTarget(target)\n ? eventTargetMethods.map(function (methodName) { return function (handler) { return target[methodName](eventName, handler, options); }; })\n :\n isNodeStyleEventEmitter(target)\n ? nodeEventEmitterMethods.map(toCommonHandlerRegistry(target, eventName))\n : isJQueryStyleEventEmitter(target)\n ? jqueryMethods.map(toCommonHandlerRegistry(target, eventName))\n : [], 2), add = _a[0], remove = _a[1];\n if (!add) {\n if (isArrayLike(target)) {\n return mergeMap(function (subTarget) { return fromEvent(subTarget, eventName, options); })(innerFrom(target));\n }\n }\n if (!add) {\n throw new TypeError('Invalid event target');\n }\n return new Observable(function (subscriber) {\n var handler = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return subscriber.next(1 < args.length ? args : args[0]);\n };\n add(handler);\n return function () { return remove(handler); };\n });\n}\nfunction toCommonHandlerRegistry(target, eventName) {\n return function (methodName) { return function (handler) { return target[methodName](eventName, handler); }; };\n}\nfunction isNodeStyleEventEmitter(target) {\n return isFunction(target.addListener) && isFunction(target.removeListener);\n}\nfunction isJQueryStyleEventEmitter(target) {\n return isFunction(target.on) && isFunction(target.off);\n}\nfunction isEventTarget(target) {\n return isFunction(target.addEventListener) && isFunction(target.removeEventListener);\n}\n//# sourceMappingURL=fromEvent.js.map","import { Observable } from '../Observable';\nimport { noop } from '../util/noop';\nexport var NEVER = new Observable(noop);\nexport function never() {\n return NEVER;\n}\n//# sourceMappingURL=never.js.map","import { TYPEOF_STR } from './constants';\nimport { getGlobal } from './getGlobal';\nimport { each } from './utils';\n\nconst g = getGlobal();\n\n/**\n * Function to trigger custom event\n * @param {Node|NodeList|HTMLCollection|Node[]} target Target element or list\n * @param {string} eventType Event type\n * @param {any[]} data Data to be passed to handler\n */\nexport function trigger(target, eventType, data) {\n target = Array.from(target instanceof Node ? [target] : target);\n if (target.length && typeof eventType === TYPEOF_STR) {\n each(target, (el) => {\n const customEvent = new g.CustomEvent(eventType, {\n bubbles: true,\n cancelable: true,\n detail: data || [],\n });\n el.dispatchEvent(customEvent);\n });\n }\n}\n","import { QRY } from '../../utils/constants';\nimport { trim } from '../../utils/utils';\nexport default class RouterEvent {\n constructor(routeInfo, currentEvent) {\n // Set relevant parameters\n const routeObject = routeInfo[0];\n const originalEvent = routeInfo[1];\n const routerInstance = routeInfo[2];\n const { location, history } = routerInstance.config;\n this.route = routeObject.path;\n this.hashRouting = routeObject.hash;\n this.routerInstance = routerInstance;\n this.virtualEvent = currentEvent || {};\n this.originalEvent = originalEvent || {};\n this.path = trim(location.pathname);\n this.hash = location.hash;\n this.search = trim(location.search.substring(1));\n this.hashSearch = trim(location.hash && location.hash.split(QRY)[1]);\n const { state } = this.originalEvent;\n this.data = (state && state.data) || (history.state && history.state.data);\n }\n}\n","import { Observable } from 'rxjs';\nimport RouterEvent from '../routerEvent';\n\nexport default function collate() {\n return (observable) =>\n new Observable((subscriber) => {\n const subn = observable.subscribe({\n next: (event) => {\n const routerInstance = event.detail[2];\n if (routerInstance === this) {\n subscriber.next(new RouterEvent(event.detail, event));\n }\n },\n error: subscriber.error,\n complete: subscriber.complete,\n });\n return () => {\n subn.unsubscribe();\n };\n });\n}\n","import { fromEvent } from 'rxjs';\nimport { POP_STATE, QRY, VIRTUAL_PUSHSTATE } from '../../utils/constants';\nimport { trigger } from '../../utils/triggerEvent';\nimport collate from '../collate';\nimport { trim } from '../../utils/utils';\nimport { getGlobal } from '../../utils/getGlobal';\n\nexport default function bindRouterEvents() {\n const { context, location, hashRouting } = this.config;\n this.popStateSubscription = fromEvent(getGlobal(), POP_STATE).subscribe(\n (e) => {\n const path = trim(\n hashRouting\n ? location.hash.substring(1).split(QRY)[0]\n : location.pathname\n );\n if (path) {\n trigger(context, VIRTUAL_PUSHSTATE, [\n { path, hash: hashRouting },\n e,\n this,\n ]);\n }\n }\n );\n this.listeners = fromEvent(context, VIRTUAL_PUSHSTATE).pipe(\n collate.apply(this)\n );\n if (hashRouting && !location.hash) {\n this.set('/', true, false); // Replace current hash path without executing anythings\n }\n}\n","import { isObject } from \"deparam.js\";\nimport { AMP, EMPTY, TYPEOF_FUNC, TYPEOF_STR } from \"./constants\";\nimport { each, isArr } from \"./utils\";\n\n/**\n * Builds query string recursively\n * @private\n * @param {string[]} qsList List of query string key value pairs\n * @param {*} key Key\n * @param {*} obj Value\n */\nfunction buildQuery(qsList, key, obj) {\n if (isObject(obj)) {\n each(obj, (prop, obKey) => {\n buildQuery(qsList, `${key}[${isArr(obj) ? EMPTY : obKey}]`, prop);\n });\n } else if (typeof obj !== TYPEOF_FUNC) {\n qsList.push(`${encodeURIComponent(key)}=${encodeURIComponent(obj)}`);\n }\n}\n\n/**\n * Converts an object to a query string\n * @private\n * @param {object} obj Object which should be converted to a string\n * @returns {string}\n */\nexport function toQueryString(obj) {\n let qsList = [];\n if (isObject(obj)) {\n each(obj, (prop, key) => {\n buildQuery(qsList, key, prop);\n });\n return qsList.join(AMP);\n }\n return typeof obj === TYPEOF_STR ? obj : EMPTY;\n}\n","import deparam from 'deparam.js';\nimport { trim } from '../../utils/utils';\nimport { toQueryString } from '../../utils/query';\nimport { assign } from '../../utils/assign';\nimport { QRY } from '../../utils/constants';\n\n/**\n * Resolves and analyzes existing query string\n * @private\n * @param {string} queryString Query string\n * @param {string} hashRouting Flag to test if hash routing is enabled\n */\nexport default function resolveQuery(queryString, hashRouting) {\n const { location } = this.config;\n const search = trim(location.search && location.search.substring(1));\n const existingQuery = hashRouting\n ? trim(location.hash.split(QRY)[1])\n : trim(search);\n if (!existingQuery) return queryString;\n return toQueryString(\n assign(deparam(search), deparam(existingQuery), deparam(queryString))\n );\n}\n","import { isObject } from \"deparam.js\";\nimport { trigger } from \"../../utils/triggerEvent\";\nimport {\n VIRTUAL_PUSHSTATE,\n INVALID_ROUTE,\n UNDEF,\n TYPEOF_STR,\n EMPTY,\n QRY,\n REPLACE,\n PUSH,\n} from \"../../utils/constants\";\nimport { isValidRoute, trim } from \"../../utils/utils\";\nimport { toQueryString } from \"../../utils/query\";\nimport resolveQuery from \"../resolveQuery\";\nimport { assign } from \"../../utils/assign\";\n\nexport default function set(route, replace, exec) {\n exec = exec || true;\n const { preservePath, hashRouting, history } = this.config;\n const routeObject = assign(\n { replace, exec },\n typeof route === TYPEOF_STR ? { route } : route\n );\n replace = routeObject.replace;\n exec = routeObject.exec;\n let { route: routeStr, queryString } = routeObject;\n const { preserveQuery, data, pageTitle = null } = routeObject;\n const routeParts = routeStr.split(QRY);\n // Check if query string is an object\n if (isObject(queryString)) {\n queryString = toQueryString(queryString);\n }\n // Resolve to URL query string if it's not explicitly passed\n queryString = trim(queryString ? queryString : routeParts[1]);\n routeStr = trim(routeParts[0]);\n // Check if query preservation is required. Resolve query accordingly\n if (preserveQuery) {\n queryString = resolveQuery.apply(this, [queryString, hashRouting]);\n }\n if (isValidRoute(routeStr)) {\n const unmodifiedRoute = routeStr;\n if (hashRouting) {\n routeStr = `/#${routeStr}`;\n // Path preservation should only work for hash routing\n if (preservePath) {\n routeStr = `${routeStr.substring(1)}`;\n }\n }\n // Append query string\n routeStr = `${routeStr}${queryString ? `${QRY + queryString}` : EMPTY}`;\n history[replace ? REPLACE : PUSH]({ data }, pageTitle, routeStr);\n if (exec && unmodifiedRoute) {\n trigger(this.config.context, VIRTUAL_PUSHSTATE, [\n {\n path: unmodifiedRoute,\n hash: hashRouting,\n },\n UNDEF,\n this,\n ]);\n }\n } else {\n throw new TypeError(INVALID_ROUTE);\n }\n return this;\n}\n","import { Observable } from 'rxjs';\nimport { QRY, UNDEF } from '../../utils/constants';\nimport { trim } from '../../utils/utils';\nimport RouterEvent from '../routerEvent';\n\nexport default function callOnce(isDone) {\n const { hashRouting: hash, location, init } = this.config;\n const path = trim(\n hash ? location.hash.substring(1).split(QRY)[0] : location.pathname\n );\n return (observable) =>\n new Observable((subscriber) => {\n const subn = observable.subscribe(subscriber);\n if (!isDone) {\n isDone = true;\n if (init && path) {\n subscriber.next(new RouterEvent([{ path, hash }, UNDEF, this]));\n }\n }\n return () => {\n subn.unsubscribe();\n };\n });\n}\n","import { assign } from '../../utils/assign';\nimport bindRouterEvents from '../bindRouterEvents';\nimport set from '../set';\nimport { HISTORY_UNSUPPORTED, PUSH, TYPEOF_FUNC } from '../../utils/constants';\nimport callOnce from '../callOnce';\nimport { getGlobal } from '../../utils/getGlobal';\n\nexport default class Router {\n constructor(config) {\n const { history, location, document } = getGlobal();\n if (!history[PUSH]) {\n throw new Error(HISTORY_UNSUPPORTED);\n }\n this.config = Object.freeze(\n assign(\n {\n init: true, // Initialize as soon as route handler is attached\n hashRouting: false, // Switch to hash routing\n preservePath: false, // Works for hash routing\n context: document.body, // To change the context of \"vpushstate\" event\n location, // Should remain unchanged\n history, // History object\n },\n config || {}\n )\n );\n this.__paths__ = [];\n bindRouterEvents.apply(this);\n }\n pipe(...ops) {\n return this.listeners.pipe(callOnce.apply(this), ...ops);\n }\n subscribe(...fns) {\n return this.listeners.pipe(callOnce.apply(this)).subscribe(...fns);\n }\n set(...props) {\n return set.apply(this, props);\n }\n destroy(callback) {\n if (typeof callback === TYPEOF_FUNC) {\n callback();\n }\n this.popStateSubscription.unsubscribe(); // Unsubscribe popstate event\n this.__paths__.length = 0;\n }\n}\n","import { EMPTY, REG_ROUTE_PARAMS } from './constants';\nimport { each } from './utils';\n\n/**\n * Parses current path and returns params object\n * @private\n * @param {string} expr Route expression\n * @param {string} path URL path\n * @returns {object}\n */\nexport function extractParams(expr, path) {\n const params = {};\n if (REG_ROUTE_PARAMS.test(expr)) {\n const pathRegex = new RegExp(\n expr.replace(/\\//g, '\\\\/').replace(/:[^/\\\\]+/g, '([^\\\\/]+)')\n );\n REG_ROUTE_PARAMS.lastIndex = 0;\n if (pathRegex.test(path)) {\n const keys = Array.from(expr.match(REG_ROUTE_PARAMS)).map((key) =>\n key.replace(':', EMPTY)\n );\n const values = Array.from(path.match(pathRegex));\n values.shift();\n each(keys, (key, index) => {\n params[key] = values[index];\n });\n }\n }\n return params;\n}\n","import { trim, isValidRoute, each, oKeys } from \"../utils/utils\";\nimport queryDeparam, { isObject } from \"deparam.js\";\nimport { Observable } from \"rxjs\";\nimport {\n INVALID_ROUTE,\n CACHED_FIELDS,\n UNDEF,\n TYPEOF_BOOL,\n} from \"../utils/constants\";\nimport { extractParams } from \"../utils/params\";\nimport Router from \"../api/router\";\nimport { assign } from \"../utils/assign\";\n\n/**\n * Operator to compare a specific route\n * @param {string} routeStr Route string\n * @param {Router} routerInstance Current router object [optional]\n * @param {boolean} ignoreCase Ignore case in route string\n */\nexport function route(routeStr, routerInstance, ignoreCase) {\n if (typeof routerInstance === TYPEOF_BOOL) {\n ignoreCase = routerInstance;\n routerInstance = UNDEF;\n }\n routeStr = trim(routeStr);\n if (routerInstance instanceof Router) {\n const paths = routerInstance.__paths__;\n if (paths.indexOf(routeStr) === -1) {\n paths.push(routeStr);\n }\n }\n return (observable) =>\n new Observable((subscriber) => {\n const subn = observable.subscribe({\n next(event) {\n let incomingRoute = event.route;\n if (isValidRoute(routeStr)) {\n if (ignoreCase) {\n routeStr = routeStr.toLowerCase();\n incomingRoute = incomingRoute.toLowerCase();\n }\n const params = extractParams(routeStr, incomingRoute);\n const paramsLength = oKeys(params).length;\n if (incomingRoute === routeStr || paramsLength > 0) {\n if (paramsLength > 0) {\n event.params = params;\n }\n subscriber.next(event);\n }\n } else {\n subscriber.error(new Error(INVALID_ROUTE));\n }\n },\n error: subscriber.error,\n complete: subscriber.complete,\n });\n return () => {\n if (routerInstance instanceof Router) {\n const paths = routerInstance.__paths__;\n const existingRouteIndex = paths.indexOf(routeStr);\n if (existingRouteIndex > -1) {\n paths.splice(existingRouteIndex, 1);\n }\n }\n subn.unsubscribe();\n };\n });\n}\n\n/**\n * Converts search and hashSearch strings to object\n * @param {boolean} coerce Flag to enable value typecast\n */\nexport function deparam(coerce) {\n return (observable) =>\n new Observable((subscriber) => {\n const subn = observable.subscribe({\n next(event) {\n try {\n event.search = queryDeparam(event.search, coerce);\n event.hashSearch = queryDeparam(event.hashSearch, coerce);\n subscriber.next(event);\n } catch (e) {\n subscriber.error(e);\n }\n },\n error: subscriber.error,\n complete: subscriber.complete,\n });\n return () => {\n subn.unsubscribe();\n };\n });\n}\n\n/**\n * Modifies current subscriber to detect errors\n * @param {Router} routerInstance Current router object\n */\nexport function noMatch(routerInstance) {\n return (observable) =>\n new Observable((subscriber) => {\n const subn = observable.subscribe({\n next(event) {\n if (routerInstance instanceof Router) {\n const paths = routerInstance.__paths__;\n if (paths.length > 0) {\n const currentRoute = event.route;\n let match = false;\n each(paths, (path) => {\n if (\n path === currentRoute ||\n oKeys(extractParams(path, currentRoute)).length\n ) {\n return !(match = true);\n }\n });\n if (!match) {\n event.noMatch = true;\n subscriber.next(event);\n }\n }\n }\n },\n error: subscriber.error,\n complete: subscriber.complete,\n });\n return () => {\n subn.unsubscribe();\n };\n });\n}\n\nfunction deepComparison(first, second, result) {\n each(oKeys(first), (key) => {\n if (isObject(first[key]) && isObject(second[key])) {\n deepComparison(first[key], second[key], result);\n } else {\n result.break = first[key] !== second[key];\n }\n });\n}\n\n/**\n * Caches incoming routes to avoid calling handler if there is no change\n * @param {string[]} keys\n * @param {boolean} deep\n */\nexport function cache(keys = CACHED_FIELDS, deep) {\n let cache = {};\n if (typeof keys === TYPEOF_BOOL) {\n deep = keys;\n keys = CACHED_FIELDS;\n }\n return (observable) =>\n new Observable((subscriber) => {\n const subn = observable.subscribe({\n next(event) {\n each(keys, (key) => {\n if (deep && isObject(event[key]) && isObject(cache[key])) {\n const result = {};\n deepComparison(event[key], cache[key], result);\n if (result.break) {\n assign(cache, event);\n subscriber.next(event);\n return false;\n }\n } else if (event[key] !== cache[key]) {\n assign(cache, event);\n subscriber.next(event);\n return false; // break loop\n }\n });\n },\n error: subscriber.error,\n complete: subscriber.complete,\n });\n return () => {\n subn.unsubscribe();\n cache = {};\n };\n });\n}\n","import { Router } from '../src/js';\nimport { route, deparam, noMatch, cache } from '../src/js/operators';\nimport pkg from '../package.json';\n\nfunction q(selector) {\n if (typeof selector === 'string') {\n const elArray = [];\n selector\n .split(',')\n .map((selectorPart) => selectorPart.trim())\n .forEach((selectorPart) => {\n const selected = [...document.querySelectorAll(selectorPart)];\n selected.forEach((el) => {\n if (!elArray.includes(el)) {\n elArray.push(el);\n }\n });\n });\n return elArray;\n }\n return [...document.querySelectorAll(...arguments)];\n}\n\nfunction keywordHighlight(text) {\n [\n '(new|throw|let|const|var|typeof|instanceof|in|of|import|case|extends|delete)(\\\\s)',\n '(function|class|try|catch|finally|do|else)(\\\\s|{)',\n '(for|while|if)(\\\\s|\\\\()',\n '(return|break|continue)(\\\\s|;)',\n ].forEach((matcher) => {\n const regex = new RegExp(matcher, 'g');\n if (regex.test(text)) {\n text = text.replace(regex, (...args) => {\n const [, keyword, extra] = args;\n return `${keyword}${extra}`;\n });\n }\n });\n return text;\n}\n\nfunction methodHighlight(text) {\n text = text.replace(\n /(\\.)([^;:'\",.())?|\\\\/^*@%#!~+-[\\]{}=]+)(\\()/g,\n (...args) => {\n const [, dot, method, brace] = args;\n return `${dot}${method}${brace}`;\n }\n );\n return text;\n}\n\nfunction suppressComments(text) {\n text = text.replace(\n /\\/\\/[^\\n]+/g,\n (comment) => `${comment}`\n );\n return text;\n}\n\nfunction highlightFatArrow(text) {\n text = text.replace(\n /\\s=>\\s/g,\n (fatArrow) => `${fatArrow}`\n );\n return text;\n}\n\nfunction highlightString(text) {\n text = text.replace(\n /['\"`].*['\"`]/g,\n (str) => `${str.replace(/\\//g, '/')}`\n );\n return text;\n}\n\nfunction jsHighlight(text) {\n text = highlightString(text);\n text = keywordHighlight(text);\n text = methodHighlight(text);\n text = suppressComments(text);\n text = highlightFatArrow(text);\n return text;\n}\n\nfunction renderDecorators() {\n q('code pre').forEach((decorator) => {\n let html = decorator.innerHTML;\n const pattern = html.match(/^\\s+/);\n const originalIndent = pattern && pattern[0].length;\n html = html\n .split('\\n')\n .map((codePart) => {\n return codePart.substring(originalIndent);\n })\n .join('\\n');\n decorator.innerHTML = jsHighlight(html.trim());\n });\n}\n\nfunction renderVersion() {\n q('.version').forEach(\n (el) => (el.querySelector('span').textContent = pkg.version)\n );\n}\n\nfunction initializeRouting() {\n q('#checkHash').forEach((el) => {\n el.checked = window.sessionStorage.getItem('checkedStatus') === '1';\n });\n const router = new Router();\n let childRouter = router;\n router.subscribe((e) => {\n const eventRoute =\n location.hostname === 'scssyworks.github.io'\n ? e.route.replace(/\\/silkrouter\\//, '/')\n : e.route;\n q('[data-route]').forEach((el) => {\n el.classList.remove('active');\n const elRoute = el.getAttribute('data-route');\n if (elRoute === '/' && eventRoute === elRoute) {\n el.classList.add('active');\n } else if (elRoute !== '/' && eventRoute.includes(elRoute)) {\n el.classList.add('active');\n }\n });\n q('[data-section]').forEach((el) => {\n el.classList.add('d-none');\n const elSection = el.getAttribute('data-section');\n if (elSection === '/' && eventRoute === elSection) {\n el.classList.remove('d-none');\n } else if (elSection !== '/' && eventRoute.includes(elSection)) {\n el.classList.remove('d-none');\n }\n });\n q(\n '.params-data, .query-next-step, .query-data, .data-next-step, .state-data, .pass-data-tutorial'\n ).forEach((el) => {\n el.classList.add('d-none');\n });\n });\n const paramsRoute =\n location.hostname === 'scssyworks.github.io'\n ? '/silkrouter/tab3/:firstname/:lastname'\n : '/tab3/:firstname/:lastname';\n router.pipe(route(paramsRoute), deparam(true)).subscribe((e) => {\n q('.params-data pre').forEach((el) => {\n el.textContent = JSON.stringify(e.params, null, 2);\n });\n q('.params-data, .query-next-step').forEach((el) => {\n el.classList.remove('d-none');\n });\n if (Object.keys(e.search).length) {\n q('.query-data').forEach((el) => {\n el.querySelector('pre').textContent = JSON.stringify(e.search, null, 2);\n el.classList.remove('d-none');\n });\n q('.data-next-step').forEach((el) => {\n el.classList.remove('d-none');\n });\n }\n if (e.data) {\n q('.state-data').forEach((el) => {\n el.querySelector('pre').textContent = e.data;\n el.classList.remove('d-none');\n });\n q('.pass-data-tutorial').forEach((el) => {\n el.classList.remove('d-none');\n });\n }\n });\n document.addEventListener('click', (e) => {\n q('[data-route]').forEach((el) => {\n if (el.contains(e.target)) {\n const isRelative = el.hasAttribute('data-relative');\n let route =\n isRelative && q('#checkHash:checked').length === 0\n ? el.closest('section').getAttribute('data-section') +\n el.getAttribute('data-route')\n : el.getAttribute('data-route');\n if (location.hostname === 'scssyworks.github.io') {\n route = `/silkrouter${route}`;\n }\n if (isRelative) {\n if (\n location.hostname === 'scssyworks.github.io' &&\n childRouter.config.hashRouting\n ) {\n route = route.replace(/\\/silkrouter\\//, '/');\n }\n childRouter.set(route);\n } else {\n router.set(route);\n }\n }\n });\n q('.btn-primary.clear-session').forEach((el) => {\n if (el.contains(e.target)) {\n window.sessionStorage.clear();\n window.location.href =\n location.hostname === 'scssyworks.github.io'\n ? '/silkrouter/tab2/'\n : '/tab2/';\n }\n });\n q('.append-param').forEach((el) => {\n if (el.contains(e.target)) {\n router.set(\n `${\n location.hostname === 'scssyworks.github.io' ? '/silkrouter' : ''\n }/tab3/john/doe`\n );\n }\n });\n q('.append-query').forEach((el) => {\n if (el.contains(e.target)) {\n router.set({\n route: `${\n location.hostname === 'scssyworks.github.io' ? '/silkrouter' : ''\n }/tab3/john/doe`,\n queryString: 'q=HelloWorld',\n });\n }\n });\n q('.append-data').forEach((el) => {\n if (el.contains(e.target)) {\n router.set({\n route: `${\n location.hostname === 'scssyworks.github.io' ? '/silkrouter' : ''\n }/tab3/john/doe`,\n queryString: 'q=HelloWorld',\n data: 'Hi there!',\n });\n }\n });\n });\n q('#checkHash').forEach((el) => {\n el.addEventListener('change', () => {\n window.sessionStorage.setItem(\n 'checkedStatus',\n `${q('#checkHash:checked').length}`\n );\n window.location.href = `${\n location.hostname === 'scssyworks.github.io' ? '/silkrouter' : ''\n }/tab2/`;\n });\n });\n if (q('#checkHash:checked').length) {\n const hashRouter = new Router({\n hashRouting: true,\n preservePath: true,\n });\n hashRouter.subscribe((e) => {\n q('[data-route][data-relative]').forEach((el) => {\n el.classList.remove('active');\n if (e.route.includes(el.getAttribute('data-route'))) {\n el.classList.add('active');\n }\n });\n });\n childRouter = hashRouter;\n }\n}\n\nfunction setGlobals() {\n window.Router = Router;\n window.route = route;\n window.deparam = deparam;\n window.noMatch = noMatch;\n window.cache = cache;\n}\n\ninitializeRouting();\nrenderDecorators();\nrenderVersion();\nsetGlobals();\n"],"names":["POP_STATE","REG_ROUTE_PARAMS","REG_PATHNAME","HISTORY_UNSUPPORTED","INVALID_ROUTE","VIRTUAL_PUSHSTATE","CACHED_FIELDS","AMP","QRY","EMPTY","UNDEF","TYPEOF_STR","TYPEOF_BOOL","_typeof","TYPEOF_UNDEF","TYPEOF_FUNC","STATE","PUSH","REPLACE","getGlobal","globalThis","global","self","isArr","Array","isArray","oKeys","Object","keys","trim","str","isValidRoute","route","test","each","arrayObj","callback","isObject","i","length","key","cont","isNumber","g","CustomEvent","event","params","bubbles","cancelable","detail","evt","document","createEvent","initCustomEvent","prototype","Event","from","arrayLike","arr","value","push","loopFunc","ref","target","prop","assign","args","arg","Symbol_observable","higherOrderRefCount","Symbol_iterator","trigger","eventType","data","Node","el","customEvent","dispatchEvent","RouterEvent","routeInfo","currentEvent","routeObject","originalEvent","routerInstance","config","location","history","path","hashRouting","hash","virtualEvent","pathname","search","substring","hashSearch","split","state","collate","observable","Observable","subscriber","subn","subscribe","next","error","complete","unsubscribe","bindRouterEvents","context","popStateSubscription","fromEvent","e","listeners","pipe","apply","set","buildQuery","qsList","obj","obKey","encodeURIComponent","toQueryString","join","resolveQuery","queryString","existingQuery","deparam","replace","exec","preservePath","routeStr","preserveQuery","pageTitle","routeParts","unmodifiedRoute","TypeError","callOnce","isDone","init","Router","Error","freeze","body","__paths__","ops","props","extractParams","expr","pathRegex","RegExp","lastIndex","match","map","values","shift","index","ignoreCase","paths","indexOf","incomingRoute","toLowerCase","paramsLength","existingRouteIndex","splice","coerce","queryDeparam","noMatch","currentRoute","deepComparison","first","second","result","cache","deep","q","selector","elArray","selectorPart","forEach","selected","querySelectorAll","includes","arguments","keywordHighlight","text","matcher","regex","keyword","extra","methodHighlight","dot","method","brace","suppressComments","comment","highlightFatArrow","fatArrow","highlightString","jsHighlight","renderDecorators","decorator","html","innerHTML","pattern","originalIndent","codePart","renderVersion","querySelector","textContent","pkg","version","initializeRouting","checked","window","sessionStorage","getItem","router","childRouter","eventRoute","hostname","classList","remove","elRoute","getAttribute","add","elSection","paramsRoute","JSON","stringify","addEventListener","contains","isRelative","hasAttribute","closest","clear","href","setItem","hashRouter","setGlobals"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"silkrouter.iife.js","sources":["../../src/js/utils/assign.js","../../node_modules/tslib/tslib.es6.js","../../node_modules/rxjs/dist/esm5/internal/util/isFunction.js","../../node_modules/rxjs/dist/esm5/internal/util/createErrorClass.js","../../node_modules/rxjs/dist/esm5/internal/util/UnsubscriptionError.js","../../node_modules/rxjs/dist/esm5/internal/util/arrRemove.js","../../node_modules/rxjs/dist/esm5/internal/Subscription.js","../../node_modules/rxjs/dist/esm5/internal/config.js","../../node_modules/rxjs/dist/esm5/internal/scheduler/timeoutProvider.js","../../node_modules/rxjs/dist/esm5/internal/util/reportUnhandledError.js","../../node_modules/rxjs/dist/esm5/internal/util/noop.js","../../node_modules/rxjs/dist/esm5/internal/util/errorContext.js","../../node_modules/rxjs/dist/esm5/internal/Subscriber.js","../../node_modules/rxjs/dist/esm5/internal/symbol/observable.js","../../node_modules/rxjs/dist/esm5/internal/util/identity.js","../../node_modules/rxjs/dist/esm5/internal/util/pipe.js","../../node_modules/rxjs/dist/esm5/internal/Observable.js","../../node_modules/rxjs/dist/esm5/internal/util/lift.js","../../node_modules/rxjs/dist/esm5/internal/operators/OperatorSubscriber.js","../../node_modules/rxjs/dist/esm5/internal/operators/refCount.js","../../node_modules/rxjs/dist/esm5/internal/observable/ConnectableObservable.js","../../node_modules/rxjs/dist/esm5/internal/scheduler/performanceTimestampProvider.js","../../node_modules/rxjs/dist/esm5/internal/scheduler/animationFrameProvider.js","../../node_modules/rxjs/dist/esm5/internal/observable/dom/animationFrames.js","../../node_modules/rxjs/dist/esm5/internal/util/ObjectUnsubscribedError.js","../../node_modules/rxjs/dist/esm5/internal/Subject.js","../../node_modules/rxjs/dist/esm5/internal/BehaviorSubject.js","../../node_modules/rxjs/dist/esm5/internal/scheduler/dateTimestampProvider.js","../../node_modules/rxjs/dist/esm5/internal/ReplaySubject.js","../../node_modules/rxjs/dist/esm5/internal/AsyncSubject.js","../../node_modules/rxjs/dist/esm5/internal/scheduler/Action.js","../../node_modules/rxjs/dist/esm5/internal/scheduler/intervalProvider.js","../../node_modules/rxjs/dist/esm5/internal/scheduler/AsyncAction.js","../../node_modules/rxjs/dist/esm5/internal/util/Immediate.js","../../node_modules/rxjs/dist/esm5/internal/scheduler/immediateProvider.js","../../node_modules/rxjs/dist/esm5/internal/scheduler/AsapAction.js","../../node_modules/rxjs/dist/esm5/internal/Scheduler.js","../../node_modules/rxjs/dist/esm5/internal/scheduler/AsyncScheduler.js","../../node_modules/rxjs/dist/esm5/internal/scheduler/AsapScheduler.js","../../node_modules/rxjs/dist/esm5/internal/scheduler/asap.js","../../node_modules/rxjs/dist/esm5/internal/scheduler/async.js","../../node_modules/rxjs/dist/esm5/internal/scheduler/QueueAction.js","../../node_modules/rxjs/dist/esm5/internal/scheduler/QueueScheduler.js","../../node_modules/rxjs/dist/esm5/internal/scheduler/queue.js","../../node_modules/rxjs/dist/esm5/internal/scheduler/AnimationFrameAction.js","../../node_modules/rxjs/dist/esm5/internal/scheduler/AnimationFrameScheduler.js","../../node_modules/rxjs/dist/esm5/internal/scheduler/animationFrame.js","../../node_modules/rxjs/dist/esm5/internal/scheduler/VirtualTimeScheduler.js","../../node_modules/rxjs/dist/esm5/internal/observable/empty.js","../../node_modules/rxjs/dist/esm5/internal/util/isArrayLike.js","../../node_modules/rxjs/dist/esm5/internal/util/isPromise.js","../../node_modules/rxjs/dist/esm5/internal/util/isInteropObservable.js","../../node_modules/rxjs/dist/esm5/internal/util/isAsyncIterable.js","../../node_modules/rxjs/dist/esm5/internal/util/throwUnobservableError.js","../../node_modules/rxjs/dist/esm5/internal/symbol/iterator.js","../../node_modules/rxjs/dist/esm5/internal/util/isIterable.js","../../node_modules/rxjs/dist/esm5/internal/util/isReadableStreamLike.js","../../node_modules/rxjs/dist/esm5/internal/observable/innerFrom.js","../../node_modules/rxjs/dist/esm5/internal/util/executeSchedule.js","../../node_modules/rxjs/dist/esm5/internal/Notification.js","../../node_modules/rxjs/dist/esm5/internal/util/EmptyError.js","../../node_modules/rxjs/dist/esm5/internal/util/ArgumentOutOfRangeError.js","../../node_modules/rxjs/dist/esm5/internal/util/NotFoundError.js","../../node_modules/rxjs/dist/esm5/internal/util/SequenceError.js","../../node_modules/rxjs/dist/esm5/internal/operators/timeout.js","../../node_modules/rxjs/dist/esm5/internal/operators/map.js","../../node_modules/rxjs/dist/esm5/internal/util/mapOneOrManyArgs.js","../../node_modules/rxjs/dist/esm5/internal/operators/mergeInternals.js","../../node_modules/rxjs/dist/esm5/internal/operators/mergeMap.js","../../node_modules/rxjs/dist/esm5/internal/observable/fromEvent.js","../../node_modules/rxjs/dist/esm5/internal/observable/never.js","../../src/js/utils/constants.js","../../src/js/utils/getGlobal.js","../../node_modules/deparam.js/dist/esm/deparam.esm.js","../../src/js/utils/utils.js","../../src/js/utils/triggerEvent.js","../../src/js/api/routerEvent/index.js","../../src/js/api/collate/index.js","../../src/js/utils/getPath.js","../../src/js/api/bindRouterEvents/index.js","../../src/js/utils/query.js","../../src/js/api/resolveQuery/index.js","../../src/js/api/set/index.js","../../src/js/api/callOnce/index.js","../../src/js/api/router/index.js","../../src/js/utils/params.js","../../src/js/operators/index.js","../../render/index.js"],"sourcesContent":["/**\n * Function to extend an object with new and updated properties\n * @private\n * @returns {object}\n */\nexport function assign(...args) {\n return Object.assign(...args);\n}\n","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n","export function isFunction(value) {\n return typeof value === 'function';\n}\n//# sourceMappingURL=isFunction.js.map","export function createErrorClass(createImpl) {\n var _super = function (instance) {\n Error.call(instance);\n instance.stack = new Error().stack;\n };\n var ctorFunc = createImpl(_super);\n ctorFunc.prototype = Object.create(Error.prototype);\n ctorFunc.prototype.constructor = ctorFunc;\n return ctorFunc;\n}\n//# sourceMappingURL=createErrorClass.js.map","import { createErrorClass } from './createErrorClass';\nexport var UnsubscriptionError = createErrorClass(function (_super) {\n return function UnsubscriptionErrorImpl(errors) {\n _super(this);\n this.message = errors\n ? errors.length + \" errors occurred during unsubscription:\\n\" + errors.map(function (err, i) { return i + 1 + \") \" + err.toString(); }).join('\\n ')\n : '';\n this.name = 'UnsubscriptionError';\n this.errors = errors;\n };\n});\n//# sourceMappingURL=UnsubscriptionError.js.map","export function arrRemove(arr, item) {\n if (arr) {\n var index = arr.indexOf(item);\n 0 <= index && arr.splice(index, 1);\n }\n}\n//# sourceMappingURL=arrRemove.js.map","import { __read, __spreadArray, __values } from \"tslib\";\nimport { isFunction } from './util/isFunction';\nimport { UnsubscriptionError } from './util/UnsubscriptionError';\nimport { arrRemove } from './util/arrRemove';\nvar Subscription = (function () {\n function Subscription(initialTeardown) {\n this.initialTeardown = initialTeardown;\n this.closed = false;\n this._parentage = null;\n this._finalizers = null;\n }\n Subscription.prototype.unsubscribe = function () {\n var e_1, _a, e_2, _b;\n var errors;\n if (!this.closed) {\n this.closed = true;\n var _parentage = this._parentage;\n if (_parentage) {\n this._parentage = null;\n if (Array.isArray(_parentage)) {\n try {\n for (var _parentage_1 = __values(_parentage), _parentage_1_1 = _parentage_1.next(); !_parentage_1_1.done; _parentage_1_1 = _parentage_1.next()) {\n var parent_1 = _parentage_1_1.value;\n parent_1.remove(this);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_parentage_1_1 && !_parentage_1_1.done && (_a = _parentage_1.return)) _a.call(_parentage_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }\n else {\n _parentage.remove(this);\n }\n }\n var initialFinalizer = this.initialTeardown;\n if (isFunction(initialFinalizer)) {\n try {\n initialFinalizer();\n }\n catch (e) {\n errors = e instanceof UnsubscriptionError ? e.errors : [e];\n }\n }\n var _finalizers = this._finalizers;\n if (_finalizers) {\n this._finalizers = null;\n try {\n for (var _finalizers_1 = __values(_finalizers), _finalizers_1_1 = _finalizers_1.next(); !_finalizers_1_1.done; _finalizers_1_1 = _finalizers_1.next()) {\n var finalizer = _finalizers_1_1.value;\n try {\n execFinalizer(finalizer);\n }\n catch (err) {\n errors = errors !== null && errors !== void 0 ? errors : [];\n if (err instanceof UnsubscriptionError) {\n errors = __spreadArray(__spreadArray([], __read(errors)), __read(err.errors));\n }\n else {\n errors.push(err);\n }\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_finalizers_1_1 && !_finalizers_1_1.done && (_b = _finalizers_1.return)) _b.call(_finalizers_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n }\n if (errors) {\n throw new UnsubscriptionError(errors);\n }\n }\n };\n Subscription.prototype.add = function (teardown) {\n var _a;\n if (teardown && teardown !== this) {\n if (this.closed) {\n execFinalizer(teardown);\n }\n else {\n if (teardown instanceof Subscription) {\n if (teardown.closed || teardown._hasParent(this)) {\n return;\n }\n teardown._addParent(this);\n }\n (this._finalizers = (_a = this._finalizers) !== null && _a !== void 0 ? _a : []).push(teardown);\n }\n }\n };\n Subscription.prototype._hasParent = function (parent) {\n var _parentage = this._parentage;\n return _parentage === parent || (Array.isArray(_parentage) && _parentage.includes(parent));\n };\n Subscription.prototype._addParent = function (parent) {\n var _parentage = this._parentage;\n this._parentage = Array.isArray(_parentage) ? (_parentage.push(parent), _parentage) : _parentage ? [_parentage, parent] : parent;\n };\n Subscription.prototype._removeParent = function (parent) {\n var _parentage = this._parentage;\n if (_parentage === parent) {\n this._parentage = null;\n }\n else if (Array.isArray(_parentage)) {\n arrRemove(_parentage, parent);\n }\n };\n Subscription.prototype.remove = function (teardown) {\n var _finalizers = this._finalizers;\n _finalizers && arrRemove(_finalizers, teardown);\n if (teardown instanceof Subscription) {\n teardown._removeParent(this);\n }\n };\n Subscription.EMPTY = (function () {\n var empty = new Subscription();\n empty.closed = true;\n return empty;\n })();\n return Subscription;\n}());\nexport { Subscription };\nexport var EMPTY_SUBSCRIPTION = Subscription.EMPTY;\nexport function isSubscription(value) {\n return (value instanceof Subscription ||\n (value && 'closed' in value && isFunction(value.remove) && isFunction(value.add) && isFunction(value.unsubscribe)));\n}\nfunction execFinalizer(finalizer) {\n if (isFunction(finalizer)) {\n finalizer();\n }\n else {\n finalizer.unsubscribe();\n }\n}\n//# sourceMappingURL=Subscription.js.map","export var config = {\n onUnhandledError: null,\n onStoppedNotification: null,\n Promise: undefined,\n useDeprecatedSynchronousErrorHandling: false,\n useDeprecatedNextContext: false,\n};\n//# sourceMappingURL=config.js.map","import { __read, __spreadArray } from \"tslib\";\nexport var timeoutProvider = {\n setTimeout: function (handler, timeout) {\n var args = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n args[_i - 2] = arguments[_i];\n }\n var delegate = timeoutProvider.delegate;\n if (delegate === null || delegate === void 0 ? void 0 : delegate.setTimeout) {\n return delegate.setTimeout.apply(delegate, __spreadArray([handler, timeout], __read(args)));\n }\n return setTimeout.apply(void 0, __spreadArray([handler, timeout], __read(args)));\n },\n clearTimeout: function (handle) {\n var delegate = timeoutProvider.delegate;\n return ((delegate === null || delegate === void 0 ? void 0 : delegate.clearTimeout) || clearTimeout)(handle);\n },\n delegate: undefined,\n};\n//# sourceMappingURL=timeoutProvider.js.map","import { config } from '../config';\nimport { timeoutProvider } from '../scheduler/timeoutProvider';\nexport function reportUnhandledError(err) {\n timeoutProvider.setTimeout(function () {\n var onUnhandledError = config.onUnhandledError;\n if (onUnhandledError) {\n onUnhandledError(err);\n }\n else {\n throw err;\n }\n });\n}\n//# sourceMappingURL=reportUnhandledError.js.map","export function noop() { }\n//# sourceMappingURL=noop.js.map","import { config } from '../config';\nvar context = null;\nexport function errorContext(cb) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n var isRoot = !context;\n if (isRoot) {\n context = { errorThrown: false, error: null };\n }\n cb();\n if (isRoot) {\n var _a = context, errorThrown = _a.errorThrown, error = _a.error;\n context = null;\n if (errorThrown) {\n throw error;\n }\n }\n }\n else {\n cb();\n }\n}\nexport function captureError(err) {\n if (config.useDeprecatedSynchronousErrorHandling && context) {\n context.errorThrown = true;\n context.error = err;\n }\n}\n//# sourceMappingURL=errorContext.js.map","import { __extends } from \"tslib\";\nimport { isFunction } from './util/isFunction';\nimport { isSubscription, Subscription } from './Subscription';\nimport { config } from './config';\nimport { reportUnhandledError } from './util/reportUnhandledError';\nimport { noop } from './util/noop';\nimport { nextNotification, errorNotification, COMPLETE_NOTIFICATION } from './NotificationFactories';\nimport { timeoutProvider } from './scheduler/timeoutProvider';\nimport { captureError } from './util/errorContext';\nvar Subscriber = (function (_super) {\n __extends(Subscriber, _super);\n function Subscriber(destination) {\n var _this = _super.call(this) || this;\n _this.isStopped = false;\n if (destination) {\n _this.destination = destination;\n if (isSubscription(destination)) {\n destination.add(_this);\n }\n }\n else {\n _this.destination = EMPTY_OBSERVER;\n }\n return _this;\n }\n Subscriber.create = function (next, error, complete) {\n return new SafeSubscriber(next, error, complete);\n };\n Subscriber.prototype.next = function (value) {\n if (this.isStopped) {\n handleStoppedNotification(nextNotification(value), this);\n }\n else {\n this._next(value);\n }\n };\n Subscriber.prototype.error = function (err) {\n if (this.isStopped) {\n handleStoppedNotification(errorNotification(err), this);\n }\n else {\n this.isStopped = true;\n this._error(err);\n }\n };\n Subscriber.prototype.complete = function () {\n if (this.isStopped) {\n handleStoppedNotification(COMPLETE_NOTIFICATION, this);\n }\n else {\n this.isStopped = true;\n this._complete();\n }\n };\n Subscriber.prototype.unsubscribe = function () {\n if (!this.closed) {\n this.isStopped = true;\n _super.prototype.unsubscribe.call(this);\n this.destination = null;\n }\n };\n Subscriber.prototype._next = function (value) {\n this.destination.next(value);\n };\n Subscriber.prototype._error = function (err) {\n try {\n this.destination.error(err);\n }\n finally {\n this.unsubscribe();\n }\n };\n Subscriber.prototype._complete = function () {\n try {\n this.destination.complete();\n }\n finally {\n this.unsubscribe();\n }\n };\n return Subscriber;\n}(Subscription));\nexport { Subscriber };\nvar _bind = Function.prototype.bind;\nfunction bind(fn, thisArg) {\n return _bind.call(fn, thisArg);\n}\nvar ConsumerObserver = (function () {\n function ConsumerObserver(partialObserver) {\n this.partialObserver = partialObserver;\n }\n ConsumerObserver.prototype.next = function (value) {\n var partialObserver = this.partialObserver;\n if (partialObserver.next) {\n try {\n partialObserver.next(value);\n }\n catch (error) {\n handleUnhandledError(error);\n }\n }\n };\n ConsumerObserver.prototype.error = function (err) {\n var partialObserver = this.partialObserver;\n if (partialObserver.error) {\n try {\n partialObserver.error(err);\n }\n catch (error) {\n handleUnhandledError(error);\n }\n }\n else {\n handleUnhandledError(err);\n }\n };\n ConsumerObserver.prototype.complete = function () {\n var partialObserver = this.partialObserver;\n if (partialObserver.complete) {\n try {\n partialObserver.complete();\n }\n catch (error) {\n handleUnhandledError(error);\n }\n }\n };\n return ConsumerObserver;\n}());\nvar SafeSubscriber = (function (_super) {\n __extends(SafeSubscriber, _super);\n function SafeSubscriber(observerOrNext, error, complete) {\n var _this = _super.call(this) || this;\n var partialObserver;\n if (isFunction(observerOrNext) || !observerOrNext) {\n partialObserver = {\n next: (observerOrNext !== null && observerOrNext !== void 0 ? observerOrNext : undefined),\n error: error !== null && error !== void 0 ? error : undefined,\n complete: complete !== null && complete !== void 0 ? complete : undefined,\n };\n }\n else {\n var context_1;\n if (_this && config.useDeprecatedNextContext) {\n context_1 = Object.create(observerOrNext);\n context_1.unsubscribe = function () { return _this.unsubscribe(); };\n partialObserver = {\n next: observerOrNext.next && bind(observerOrNext.next, context_1),\n error: observerOrNext.error && bind(observerOrNext.error, context_1),\n complete: observerOrNext.complete && bind(observerOrNext.complete, context_1),\n };\n }\n else {\n partialObserver = observerOrNext;\n }\n }\n _this.destination = new ConsumerObserver(partialObserver);\n return _this;\n }\n return SafeSubscriber;\n}(Subscriber));\nexport { SafeSubscriber };\nfunction handleUnhandledError(error) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n captureError(error);\n }\n else {\n reportUnhandledError(error);\n }\n}\nfunction defaultErrorHandler(err) {\n throw err;\n}\nfunction handleStoppedNotification(notification, subscriber) {\n var onStoppedNotification = config.onStoppedNotification;\n onStoppedNotification && timeoutProvider.setTimeout(function () { return onStoppedNotification(notification, subscriber); });\n}\nexport var EMPTY_OBSERVER = {\n closed: true,\n next: noop,\n error: defaultErrorHandler,\n complete: noop,\n};\n//# sourceMappingURL=Subscriber.js.map","export var observable = (function () { return (typeof Symbol === 'function' && Symbol.observable) || '@@observable'; })();\n//# sourceMappingURL=observable.js.map","export function identity(x) {\n return x;\n}\n//# sourceMappingURL=identity.js.map","import { identity } from './identity';\nexport function pipe() {\n var fns = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n fns[_i] = arguments[_i];\n }\n return pipeFromArray(fns);\n}\nexport function pipeFromArray(fns) {\n if (fns.length === 0) {\n return identity;\n }\n if (fns.length === 1) {\n return fns[0];\n }\n return function piped(input) {\n return fns.reduce(function (prev, fn) { return fn(prev); }, input);\n };\n}\n//# sourceMappingURL=pipe.js.map","import { SafeSubscriber, Subscriber } from './Subscriber';\nimport { isSubscription } from './Subscription';\nimport { observable as Symbol_observable } from './symbol/observable';\nimport { pipeFromArray } from './util/pipe';\nimport { config } from './config';\nimport { isFunction } from './util/isFunction';\nimport { errorContext } from './util/errorContext';\nvar Observable = (function () {\n function Observable(subscribe) {\n if (subscribe) {\n this._subscribe = subscribe;\n }\n }\n Observable.prototype.lift = function (operator) {\n var observable = new Observable();\n observable.source = this;\n observable.operator = operator;\n return observable;\n };\n Observable.prototype.subscribe = function (observerOrNext, error, complete) {\n var _this = this;\n var subscriber = isSubscriber(observerOrNext) ? observerOrNext : new SafeSubscriber(observerOrNext, error, complete);\n errorContext(function () {\n var _a = _this, operator = _a.operator, source = _a.source;\n subscriber.add(operator\n ?\n operator.call(subscriber, source)\n : source\n ?\n _this._subscribe(subscriber)\n :\n _this._trySubscribe(subscriber));\n });\n return subscriber;\n };\n Observable.prototype._trySubscribe = function (sink) {\n try {\n return this._subscribe(sink);\n }\n catch (err) {\n sink.error(err);\n }\n };\n Observable.prototype.forEach = function (next, promiseCtor) {\n var _this = this;\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor(function (resolve, reject) {\n var subscriber = new SafeSubscriber({\n next: function (value) {\n try {\n next(value);\n }\n catch (err) {\n reject(err);\n subscriber.unsubscribe();\n }\n },\n error: reject,\n complete: resolve,\n });\n _this.subscribe(subscriber);\n });\n };\n Observable.prototype._subscribe = function (subscriber) {\n var _a;\n return (_a = this.source) === null || _a === void 0 ? void 0 : _a.subscribe(subscriber);\n };\n Observable.prototype[Symbol_observable] = function () {\n return this;\n };\n Observable.prototype.pipe = function () {\n var operations = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n operations[_i] = arguments[_i];\n }\n return pipeFromArray(operations)(this);\n };\n Observable.prototype.toPromise = function (promiseCtor) {\n var _this = this;\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor(function (resolve, reject) {\n var value;\n _this.subscribe(function (x) { return (value = x); }, function (err) { return reject(err); }, function () { return resolve(value); });\n });\n };\n Observable.create = function (subscribe) {\n return new Observable(subscribe);\n };\n return Observable;\n}());\nexport { Observable };\nfunction getPromiseCtor(promiseCtor) {\n var _a;\n return (_a = promiseCtor !== null && promiseCtor !== void 0 ? promiseCtor : config.Promise) !== null && _a !== void 0 ? _a : Promise;\n}\nfunction isObserver(value) {\n return value && isFunction(value.next) && isFunction(value.error) && isFunction(value.complete);\n}\nfunction isSubscriber(value) {\n return (value && value instanceof Subscriber) || (isObserver(value) && isSubscription(value));\n}\n//# sourceMappingURL=Observable.js.map","import { isFunction } from './isFunction';\nexport function hasLift(source) {\n return isFunction(source === null || source === void 0 ? void 0 : source.lift);\n}\nexport function operate(init) {\n return function (source) {\n if (hasLift(source)) {\n return source.lift(function (liftedSource) {\n try {\n return init(liftedSource, this);\n }\n catch (err) {\n this.error(err);\n }\n });\n }\n throw new TypeError('Unable to lift unknown Observable type');\n };\n}\n//# sourceMappingURL=lift.js.map","import { __extends } from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function createOperatorSubscriber(destination, onNext, onComplete, onError, onFinalize) {\n return new OperatorSubscriber(destination, onNext, onComplete, onError, onFinalize);\n}\nvar OperatorSubscriber = (function (_super) {\n __extends(OperatorSubscriber, _super);\n function OperatorSubscriber(destination, onNext, onComplete, onError, onFinalize, shouldUnsubscribe) {\n var _this = _super.call(this, destination) || this;\n _this.onFinalize = onFinalize;\n _this.shouldUnsubscribe = shouldUnsubscribe;\n _this._next = onNext\n ? function (value) {\n try {\n onNext(value);\n }\n catch (err) {\n destination.error(err);\n }\n }\n : _super.prototype._next;\n _this._error = onError\n ? function (err) {\n try {\n onError(err);\n }\n catch (err) {\n destination.error(err);\n }\n finally {\n this.unsubscribe();\n }\n }\n : _super.prototype._error;\n _this._complete = onComplete\n ? function () {\n try {\n onComplete();\n }\n catch (err) {\n destination.error(err);\n }\n finally {\n this.unsubscribe();\n }\n }\n : _super.prototype._complete;\n return _this;\n }\n OperatorSubscriber.prototype.unsubscribe = function () {\n var _a;\n if (!this.shouldUnsubscribe || this.shouldUnsubscribe()) {\n var closed_1 = this.closed;\n _super.prototype.unsubscribe.call(this);\n !closed_1 && ((_a = this.onFinalize) === null || _a === void 0 ? void 0 : _a.call(this));\n }\n };\n return OperatorSubscriber;\n}(Subscriber));\nexport { OperatorSubscriber };\n//# sourceMappingURL=OperatorSubscriber.js.map","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function refCount() {\n return operate(function (source, subscriber) {\n var connection = null;\n source._refCount++;\n var refCounter = createOperatorSubscriber(subscriber, undefined, undefined, undefined, function () {\n if (!source || source._refCount <= 0 || 0 < --source._refCount) {\n connection = null;\n return;\n }\n var sharedConnection = source._connection;\n var conn = connection;\n connection = null;\n if (sharedConnection && (!conn || sharedConnection === conn)) {\n sharedConnection.unsubscribe();\n }\n subscriber.unsubscribe();\n });\n source.subscribe(refCounter);\n if (!refCounter.closed) {\n connection = source.connect();\n }\n });\n}\n//# sourceMappingURL=refCount.js.map","import { __extends } from \"tslib\";\nimport { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nimport { refCount as higherOrderRefCount } from '../operators/refCount';\nimport { createOperatorSubscriber } from '../operators/OperatorSubscriber';\nimport { hasLift } from '../util/lift';\nvar ConnectableObservable = (function (_super) {\n __extends(ConnectableObservable, _super);\n function ConnectableObservable(source, subjectFactory) {\n var _this = _super.call(this) || this;\n _this.source = source;\n _this.subjectFactory = subjectFactory;\n _this._subject = null;\n _this._refCount = 0;\n _this._connection = null;\n if (hasLift(source)) {\n _this.lift = source.lift;\n }\n return _this;\n }\n ConnectableObservable.prototype._subscribe = function (subscriber) {\n return this.getSubject().subscribe(subscriber);\n };\n ConnectableObservable.prototype.getSubject = function () {\n var subject = this._subject;\n if (!subject || subject.isStopped) {\n this._subject = this.subjectFactory();\n }\n return this._subject;\n };\n ConnectableObservable.prototype._teardown = function () {\n this._refCount = 0;\n var _connection = this._connection;\n this._subject = this._connection = null;\n _connection === null || _connection === void 0 ? void 0 : _connection.unsubscribe();\n };\n ConnectableObservable.prototype.connect = function () {\n var _this = this;\n var connection = this._connection;\n if (!connection) {\n connection = this._connection = new Subscription();\n var subject_1 = this.getSubject();\n connection.add(this.source.subscribe(createOperatorSubscriber(subject_1, undefined, function () {\n _this._teardown();\n subject_1.complete();\n }, function (err) {\n _this._teardown();\n subject_1.error(err);\n }, function () { return _this._teardown(); })));\n if (connection.closed) {\n this._connection = null;\n connection = Subscription.EMPTY;\n }\n }\n return connection;\n };\n ConnectableObservable.prototype.refCount = function () {\n return higherOrderRefCount()(this);\n };\n return ConnectableObservable;\n}(Observable));\nexport { ConnectableObservable };\n//# sourceMappingURL=ConnectableObservable.js.map","export var performanceTimestampProvider = {\n now: function () {\n return (performanceTimestampProvider.delegate || performance).now();\n },\n delegate: undefined,\n};\n//# sourceMappingURL=performanceTimestampProvider.js.map","import { __read, __spreadArray } from \"tslib\";\nimport { Subscription } from '../Subscription';\nexport var animationFrameProvider = {\n schedule: function (callback) {\n var request = requestAnimationFrame;\n var cancel = cancelAnimationFrame;\n var delegate = animationFrameProvider.delegate;\n if (delegate) {\n request = delegate.requestAnimationFrame;\n cancel = delegate.cancelAnimationFrame;\n }\n var handle = request(function (timestamp) {\n cancel = undefined;\n callback(timestamp);\n });\n return new Subscription(function () { return cancel === null || cancel === void 0 ? void 0 : cancel(handle); });\n },\n requestAnimationFrame: function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var delegate = animationFrameProvider.delegate;\n return ((delegate === null || delegate === void 0 ? void 0 : delegate.requestAnimationFrame) || requestAnimationFrame).apply(void 0, __spreadArray([], __read(args)));\n },\n cancelAnimationFrame: function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var delegate = animationFrameProvider.delegate;\n return ((delegate === null || delegate === void 0 ? void 0 : delegate.cancelAnimationFrame) || cancelAnimationFrame).apply(void 0, __spreadArray([], __read(args)));\n },\n delegate: undefined,\n};\n//# sourceMappingURL=animationFrameProvider.js.map","import { Observable } from '../../Observable';\nimport { Subscription } from '../../Subscription';\nimport { performanceTimestampProvider } from '../../scheduler/performanceTimestampProvider';\nimport { animationFrameProvider } from '../../scheduler/animationFrameProvider';\nexport function animationFrames(timestampProvider) {\n return timestampProvider ? animationFramesFactory(timestampProvider) : DEFAULT_ANIMATION_FRAMES;\n}\nfunction animationFramesFactory(timestampProvider) {\n var schedule = animationFrameProvider.schedule;\n return new Observable(function (subscriber) {\n var subscription = new Subscription();\n var provider = timestampProvider || performanceTimestampProvider;\n var start = provider.now();\n var run = function (timestamp) {\n var now = provider.now();\n subscriber.next({\n timestamp: timestampProvider ? now : timestamp,\n elapsed: now - start,\n });\n if (!subscriber.closed) {\n subscription.add(schedule(run));\n }\n };\n subscription.add(schedule(run));\n return subscription;\n });\n}\nvar DEFAULT_ANIMATION_FRAMES = animationFramesFactory();\n//# sourceMappingURL=animationFrames.js.map","import { createErrorClass } from './createErrorClass';\nexport var ObjectUnsubscribedError = createErrorClass(function (_super) {\n return function ObjectUnsubscribedErrorImpl() {\n _super(this);\n this.name = 'ObjectUnsubscribedError';\n this.message = 'object unsubscribed';\n };\n});\n//# sourceMappingURL=ObjectUnsubscribedError.js.map","import { __extends, __values } from \"tslib\";\nimport { Observable } from './Observable';\nimport { Subscription, EMPTY_SUBSCRIPTION } from './Subscription';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nimport { arrRemove } from './util/arrRemove';\nimport { errorContext } from './util/errorContext';\nvar Subject = (function (_super) {\n __extends(Subject, _super);\n function Subject() {\n var _this = _super.call(this) || this;\n _this.closed = false;\n _this.currentObservers = null;\n _this.observers = [];\n _this.isStopped = false;\n _this.hasError = false;\n _this.thrownError = null;\n return _this;\n }\n Subject.prototype.lift = function (operator) {\n var subject = new AnonymousSubject(this, this);\n subject.operator = operator;\n return subject;\n };\n Subject.prototype._throwIfClosed = function () {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n };\n Subject.prototype.next = function (value) {\n var _this = this;\n errorContext(function () {\n var e_1, _a;\n _this._throwIfClosed();\n if (!_this.isStopped) {\n if (!_this.currentObservers) {\n _this.currentObservers = Array.from(_this.observers);\n }\n try {\n for (var _b = __values(_this.currentObservers), _c = _b.next(); !_c.done; _c = _b.next()) {\n var observer = _c.value;\n observer.next(value);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }\n });\n };\n Subject.prototype.error = function (err) {\n var _this = this;\n errorContext(function () {\n _this._throwIfClosed();\n if (!_this.isStopped) {\n _this.hasError = _this.isStopped = true;\n _this.thrownError = err;\n var observers = _this.observers;\n while (observers.length) {\n observers.shift().error(err);\n }\n }\n });\n };\n Subject.prototype.complete = function () {\n var _this = this;\n errorContext(function () {\n _this._throwIfClosed();\n if (!_this.isStopped) {\n _this.isStopped = true;\n var observers = _this.observers;\n while (observers.length) {\n observers.shift().complete();\n }\n }\n });\n };\n Subject.prototype.unsubscribe = function () {\n this.isStopped = this.closed = true;\n this.observers = this.currentObservers = null;\n };\n Object.defineProperty(Subject.prototype, \"observed\", {\n get: function () {\n var _a;\n return ((_a = this.observers) === null || _a === void 0 ? void 0 : _a.length) > 0;\n },\n enumerable: false,\n configurable: true\n });\n Subject.prototype._trySubscribe = function (subscriber) {\n this._throwIfClosed();\n return _super.prototype._trySubscribe.call(this, subscriber);\n };\n Subject.prototype._subscribe = function (subscriber) {\n this._throwIfClosed();\n this._checkFinalizedStatuses(subscriber);\n return this._innerSubscribe(subscriber);\n };\n Subject.prototype._innerSubscribe = function (subscriber) {\n var _this = this;\n var _a = this, hasError = _a.hasError, isStopped = _a.isStopped, observers = _a.observers;\n if (hasError || isStopped) {\n return EMPTY_SUBSCRIPTION;\n }\n this.currentObservers = null;\n observers.push(subscriber);\n return new Subscription(function () {\n _this.currentObservers = null;\n arrRemove(observers, subscriber);\n });\n };\n Subject.prototype._checkFinalizedStatuses = function (subscriber) {\n var _a = this, hasError = _a.hasError, thrownError = _a.thrownError, isStopped = _a.isStopped;\n if (hasError) {\n subscriber.error(thrownError);\n }\n else if (isStopped) {\n subscriber.complete();\n }\n };\n Subject.prototype.asObservable = function () {\n var observable = new Observable();\n observable.source = this;\n return observable;\n };\n Subject.create = function (destination, source) {\n return new AnonymousSubject(destination, source);\n };\n return Subject;\n}(Observable));\nexport { Subject };\nvar AnonymousSubject = (function (_super) {\n __extends(AnonymousSubject, _super);\n function AnonymousSubject(destination, source) {\n var _this = _super.call(this) || this;\n _this.destination = destination;\n _this.source = source;\n return _this;\n }\n AnonymousSubject.prototype.next = function (value) {\n var _a, _b;\n (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.next) === null || _b === void 0 ? void 0 : _b.call(_a, value);\n };\n AnonymousSubject.prototype.error = function (err) {\n var _a, _b;\n (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.error) === null || _b === void 0 ? void 0 : _b.call(_a, err);\n };\n AnonymousSubject.prototype.complete = function () {\n var _a, _b;\n (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.complete) === null || _b === void 0 ? void 0 : _b.call(_a);\n };\n AnonymousSubject.prototype._subscribe = function (subscriber) {\n var _a, _b;\n return (_b = (_a = this.source) === null || _a === void 0 ? void 0 : _a.subscribe(subscriber)) !== null && _b !== void 0 ? _b : EMPTY_SUBSCRIPTION;\n };\n return AnonymousSubject;\n}(Subject));\nexport { AnonymousSubject };\n//# sourceMappingURL=Subject.js.map","import { __extends } from \"tslib\";\nimport { Subject } from './Subject';\nvar BehaviorSubject = (function (_super) {\n __extends(BehaviorSubject, _super);\n function BehaviorSubject(_value) {\n var _this = _super.call(this) || this;\n _this._value = _value;\n return _this;\n }\n Object.defineProperty(BehaviorSubject.prototype, \"value\", {\n get: function () {\n return this.getValue();\n },\n enumerable: false,\n configurable: true\n });\n BehaviorSubject.prototype._subscribe = function (subscriber) {\n var subscription = _super.prototype._subscribe.call(this, subscriber);\n !subscription.closed && subscriber.next(this._value);\n return subscription;\n };\n BehaviorSubject.prototype.getValue = function () {\n var _a = this, hasError = _a.hasError, thrownError = _a.thrownError, _value = _a._value;\n if (hasError) {\n throw thrownError;\n }\n this._throwIfClosed();\n return _value;\n };\n BehaviorSubject.prototype.next = function (value) {\n _super.prototype.next.call(this, (this._value = value));\n };\n return BehaviorSubject;\n}(Subject));\nexport { BehaviorSubject };\n//# sourceMappingURL=BehaviorSubject.js.map","export var dateTimestampProvider = {\n now: function () {\n return (dateTimestampProvider.delegate || Date).now();\n },\n delegate: undefined,\n};\n//# sourceMappingURL=dateTimestampProvider.js.map","import { __extends } from \"tslib\";\nimport { Subject } from './Subject';\nimport { dateTimestampProvider } from './scheduler/dateTimestampProvider';\nvar ReplaySubject = (function (_super) {\n __extends(ReplaySubject, _super);\n function ReplaySubject(_bufferSize, _windowTime, _timestampProvider) {\n if (_bufferSize === void 0) { _bufferSize = Infinity; }\n if (_windowTime === void 0) { _windowTime = Infinity; }\n if (_timestampProvider === void 0) { _timestampProvider = dateTimestampProvider; }\n var _this = _super.call(this) || this;\n _this._bufferSize = _bufferSize;\n _this._windowTime = _windowTime;\n _this._timestampProvider = _timestampProvider;\n _this._buffer = [];\n _this._infiniteTimeWindow = true;\n _this._infiniteTimeWindow = _windowTime === Infinity;\n _this._bufferSize = Math.max(1, _bufferSize);\n _this._windowTime = Math.max(1, _windowTime);\n return _this;\n }\n ReplaySubject.prototype.next = function (value) {\n var _a = this, isStopped = _a.isStopped, _buffer = _a._buffer, _infiniteTimeWindow = _a._infiniteTimeWindow, _timestampProvider = _a._timestampProvider, _windowTime = _a._windowTime;\n if (!isStopped) {\n _buffer.push(value);\n !_infiniteTimeWindow && _buffer.push(_timestampProvider.now() + _windowTime);\n }\n this._trimBuffer();\n _super.prototype.next.call(this, value);\n };\n ReplaySubject.prototype._subscribe = function (subscriber) {\n this._throwIfClosed();\n this._trimBuffer();\n var subscription = this._innerSubscribe(subscriber);\n var _a = this, _infiniteTimeWindow = _a._infiniteTimeWindow, _buffer = _a._buffer;\n var copy = _buffer.slice();\n for (var i = 0; i < copy.length && !subscriber.closed; i += _infiniteTimeWindow ? 1 : 2) {\n subscriber.next(copy[i]);\n }\n this._checkFinalizedStatuses(subscriber);\n return subscription;\n };\n ReplaySubject.prototype._trimBuffer = function () {\n var _a = this, _bufferSize = _a._bufferSize, _timestampProvider = _a._timestampProvider, _buffer = _a._buffer, _infiniteTimeWindow = _a._infiniteTimeWindow;\n var adjustedBufferSize = (_infiniteTimeWindow ? 1 : 2) * _bufferSize;\n _bufferSize < Infinity && adjustedBufferSize < _buffer.length && _buffer.splice(0, _buffer.length - adjustedBufferSize);\n if (!_infiniteTimeWindow) {\n var now = _timestampProvider.now();\n var last = 0;\n for (var i = 1; i < _buffer.length && _buffer[i] <= now; i += 2) {\n last = i;\n }\n last && _buffer.splice(0, last + 1);\n }\n };\n return ReplaySubject;\n}(Subject));\nexport { ReplaySubject };\n//# sourceMappingURL=ReplaySubject.js.map","import { __extends } from \"tslib\";\nimport { Subject } from './Subject';\nvar AsyncSubject = (function (_super) {\n __extends(AsyncSubject, _super);\n function AsyncSubject() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this._value = null;\n _this._hasValue = false;\n _this._isComplete = false;\n return _this;\n }\n AsyncSubject.prototype._checkFinalizedStatuses = function (subscriber) {\n var _a = this, hasError = _a.hasError, _hasValue = _a._hasValue, _value = _a._value, thrownError = _a.thrownError, isStopped = _a.isStopped, _isComplete = _a._isComplete;\n if (hasError) {\n subscriber.error(thrownError);\n }\n else if (isStopped || _isComplete) {\n _hasValue && subscriber.next(_value);\n subscriber.complete();\n }\n };\n AsyncSubject.prototype.next = function (value) {\n if (!this.isStopped) {\n this._value = value;\n this._hasValue = true;\n }\n };\n AsyncSubject.prototype.complete = function () {\n var _a = this, _hasValue = _a._hasValue, _value = _a._value, _isComplete = _a._isComplete;\n if (!_isComplete) {\n this._isComplete = true;\n _hasValue && _super.prototype.next.call(this, _value);\n _super.prototype.complete.call(this);\n }\n };\n return AsyncSubject;\n}(Subject));\nexport { AsyncSubject };\n//# sourceMappingURL=AsyncSubject.js.map","import { __extends } from \"tslib\";\nimport { Subscription } from '../Subscription';\nvar Action = (function (_super) {\n __extends(Action, _super);\n function Action(scheduler, work) {\n return _super.call(this) || this;\n }\n Action.prototype.schedule = function (state, delay) {\n if (delay === void 0) { delay = 0; }\n return this;\n };\n return Action;\n}(Subscription));\nexport { Action };\n//# sourceMappingURL=Action.js.map","import { __read, __spreadArray } from \"tslib\";\nexport var intervalProvider = {\n setInterval: function (handler, timeout) {\n var args = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n args[_i - 2] = arguments[_i];\n }\n var delegate = intervalProvider.delegate;\n if (delegate === null || delegate === void 0 ? void 0 : delegate.setInterval) {\n return delegate.setInterval.apply(delegate, __spreadArray([handler, timeout], __read(args)));\n }\n return setInterval.apply(void 0, __spreadArray([handler, timeout], __read(args)));\n },\n clearInterval: function (handle) {\n var delegate = intervalProvider.delegate;\n return ((delegate === null || delegate === void 0 ? void 0 : delegate.clearInterval) || clearInterval)(handle);\n },\n delegate: undefined,\n};\n//# sourceMappingURL=intervalProvider.js.map","import { __extends } from \"tslib\";\nimport { Action } from './Action';\nimport { intervalProvider } from './intervalProvider';\nimport { arrRemove } from '../util/arrRemove';\nvar AsyncAction = (function (_super) {\n __extends(AsyncAction, _super);\n function AsyncAction(scheduler, work) {\n var _this = _super.call(this, scheduler, work) || this;\n _this.scheduler = scheduler;\n _this.work = work;\n _this.pending = false;\n return _this;\n }\n AsyncAction.prototype.schedule = function (state, delay) {\n if (delay === void 0) { delay = 0; }\n if (this.closed) {\n return this;\n }\n this.state = state;\n var id = this.id;\n var scheduler = this.scheduler;\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, delay);\n }\n this.pending = true;\n this.delay = delay;\n this.id = this.id || this.requestAsyncId(scheduler, this.id, delay);\n return this;\n };\n AsyncAction.prototype.requestAsyncId = function (scheduler, _id, delay) {\n if (delay === void 0) { delay = 0; }\n return intervalProvider.setInterval(scheduler.flush.bind(scheduler, this), delay);\n };\n AsyncAction.prototype.recycleAsyncId = function (_scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n if (delay != null && this.delay === delay && this.pending === false) {\n return id;\n }\n intervalProvider.clearInterval(id);\n return undefined;\n };\n AsyncAction.prototype.execute = function (state, delay) {\n if (this.closed) {\n return new Error('executing a cancelled action');\n }\n this.pending = false;\n var error = this._execute(state, delay);\n if (error) {\n return error;\n }\n else if (this.pending === false && this.id != null) {\n this.id = this.recycleAsyncId(this.scheduler, this.id, null);\n }\n };\n AsyncAction.prototype._execute = function (state, _delay) {\n var errored = false;\n var errorValue;\n try {\n this.work(state);\n }\n catch (e) {\n errored = true;\n errorValue = e ? e : new Error('Scheduled action threw falsy error');\n }\n if (errored) {\n this.unsubscribe();\n return errorValue;\n }\n };\n AsyncAction.prototype.unsubscribe = function () {\n if (!this.closed) {\n var _a = this, id = _a.id, scheduler = _a.scheduler;\n var actions = scheduler.actions;\n this.work = this.state = this.scheduler = null;\n this.pending = false;\n arrRemove(actions, this);\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, null);\n }\n this.delay = null;\n _super.prototype.unsubscribe.call(this);\n }\n };\n return AsyncAction;\n}(Action));\nexport { AsyncAction };\n//# sourceMappingURL=AsyncAction.js.map","var nextHandle = 1;\nvar resolved;\nvar activeHandles = {};\nfunction findAndClearHandle(handle) {\n if (handle in activeHandles) {\n delete activeHandles[handle];\n return true;\n }\n return false;\n}\nexport var Immediate = {\n setImmediate: function (cb) {\n var handle = nextHandle++;\n activeHandles[handle] = true;\n if (!resolved) {\n resolved = Promise.resolve();\n }\n resolved.then(function () { return findAndClearHandle(handle) && cb(); });\n return handle;\n },\n clearImmediate: function (handle) {\n findAndClearHandle(handle);\n },\n};\nexport var TestTools = {\n pending: function () {\n return Object.keys(activeHandles).length;\n }\n};\n//# sourceMappingURL=Immediate.js.map","import { __read, __spreadArray } from \"tslib\";\nimport { Immediate } from '../util/Immediate';\nvar setImmediate = Immediate.setImmediate, clearImmediate = Immediate.clearImmediate;\nexport var immediateProvider = {\n setImmediate: function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var delegate = immediateProvider.delegate;\n return ((delegate === null || delegate === void 0 ? void 0 : delegate.setImmediate) || setImmediate).apply(void 0, __spreadArray([], __read(args)));\n },\n clearImmediate: function (handle) {\n var delegate = immediateProvider.delegate;\n return ((delegate === null || delegate === void 0 ? void 0 : delegate.clearImmediate) || clearImmediate)(handle);\n },\n delegate: undefined,\n};\n//# sourceMappingURL=immediateProvider.js.map","import { __extends } from \"tslib\";\nimport { AsyncAction } from './AsyncAction';\nimport { immediateProvider } from './immediateProvider';\nvar AsapAction = (function (_super) {\n __extends(AsapAction, _super);\n function AsapAction(scheduler, work) {\n var _this = _super.call(this, scheduler, work) || this;\n _this.scheduler = scheduler;\n _this.work = work;\n return _this;\n }\n AsapAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n if (delay !== null && delay > 0) {\n return _super.prototype.requestAsyncId.call(this, scheduler, id, delay);\n }\n scheduler.actions.push(this);\n return scheduler._scheduled || (scheduler._scheduled = immediateProvider.setImmediate(scheduler.flush.bind(scheduler, undefined)));\n };\n AsapAction.prototype.recycleAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n if ((delay != null && delay > 0) || (delay == null && this.delay > 0)) {\n return _super.prototype.recycleAsyncId.call(this, scheduler, id, delay);\n }\n if (!scheduler.actions.some(function (action) { return action.id === id; })) {\n immediateProvider.clearImmediate(id);\n scheduler._scheduled = undefined;\n }\n return undefined;\n };\n return AsapAction;\n}(AsyncAction));\nexport { AsapAction };\n//# sourceMappingURL=AsapAction.js.map","import { dateTimestampProvider } from './scheduler/dateTimestampProvider';\nvar Scheduler = (function () {\n function Scheduler(schedulerActionCtor, now) {\n if (now === void 0) { now = Scheduler.now; }\n this.schedulerActionCtor = schedulerActionCtor;\n this.now = now;\n }\n Scheduler.prototype.schedule = function (work, delay, state) {\n if (delay === void 0) { delay = 0; }\n return new this.schedulerActionCtor(this, work).schedule(state, delay);\n };\n Scheduler.now = dateTimestampProvider.now;\n return Scheduler;\n}());\nexport { Scheduler };\n//# sourceMappingURL=Scheduler.js.map","import { __extends } from \"tslib\";\nimport { Scheduler } from '../Scheduler';\nvar AsyncScheduler = (function (_super) {\n __extends(AsyncScheduler, _super);\n function AsyncScheduler(SchedulerAction, now) {\n if (now === void 0) { now = Scheduler.now; }\n var _this = _super.call(this, SchedulerAction, now) || this;\n _this.actions = [];\n _this._active = false;\n _this._scheduled = undefined;\n return _this;\n }\n AsyncScheduler.prototype.flush = function (action) {\n var actions = this.actions;\n if (this._active) {\n actions.push(action);\n return;\n }\n var error;\n this._active = true;\n do {\n if ((error = action.execute(action.state, action.delay))) {\n break;\n }\n } while ((action = actions.shift()));\n this._active = false;\n if (error) {\n while ((action = actions.shift())) {\n action.unsubscribe();\n }\n throw error;\n }\n };\n return AsyncScheduler;\n}(Scheduler));\nexport { AsyncScheduler };\n//# sourceMappingURL=AsyncScheduler.js.map","import { __extends } from \"tslib\";\nimport { AsyncScheduler } from './AsyncScheduler';\nvar AsapScheduler = (function (_super) {\n __extends(AsapScheduler, _super);\n function AsapScheduler() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n AsapScheduler.prototype.flush = function (action) {\n this._active = true;\n var flushId = this._scheduled;\n this._scheduled = undefined;\n var actions = this.actions;\n var error;\n action = action || actions.shift();\n do {\n if ((error = action.execute(action.state, action.delay))) {\n break;\n }\n } while ((action = actions[0]) && action.id === flushId && actions.shift());\n this._active = false;\n if (error) {\n while ((action = actions[0]) && action.id === flushId && actions.shift()) {\n action.unsubscribe();\n }\n throw error;\n }\n };\n return AsapScheduler;\n}(AsyncScheduler));\nexport { AsapScheduler };\n//# sourceMappingURL=AsapScheduler.js.map","import { AsapAction } from './AsapAction';\nimport { AsapScheduler } from './AsapScheduler';\nexport var asapScheduler = new AsapScheduler(AsapAction);\nexport var asap = asapScheduler;\n//# sourceMappingURL=asap.js.map","import { AsyncAction } from './AsyncAction';\nimport { AsyncScheduler } from './AsyncScheduler';\nexport var asyncScheduler = new AsyncScheduler(AsyncAction);\nexport var async = asyncScheduler;\n//# sourceMappingURL=async.js.map","import { __extends } from \"tslib\";\nimport { AsyncAction } from './AsyncAction';\nvar QueueAction = (function (_super) {\n __extends(QueueAction, _super);\n function QueueAction(scheduler, work) {\n var _this = _super.call(this, scheduler, work) || this;\n _this.scheduler = scheduler;\n _this.work = work;\n return _this;\n }\n QueueAction.prototype.schedule = function (state, delay) {\n if (delay === void 0) { delay = 0; }\n if (delay > 0) {\n return _super.prototype.schedule.call(this, state, delay);\n }\n this.delay = delay;\n this.state = state;\n this.scheduler.flush(this);\n return this;\n };\n QueueAction.prototype.execute = function (state, delay) {\n return (delay > 0 || this.closed) ?\n _super.prototype.execute.call(this, state, delay) :\n this._execute(state, delay);\n };\n QueueAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n if ((delay != null && delay > 0) || (delay == null && this.delay > 0)) {\n return _super.prototype.requestAsyncId.call(this, scheduler, id, delay);\n }\n return scheduler.flush(this);\n };\n return QueueAction;\n}(AsyncAction));\nexport { QueueAction };\n//# sourceMappingURL=QueueAction.js.map","import { __extends } from \"tslib\";\nimport { AsyncScheduler } from './AsyncScheduler';\nvar QueueScheduler = (function (_super) {\n __extends(QueueScheduler, _super);\n function QueueScheduler() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return QueueScheduler;\n}(AsyncScheduler));\nexport { QueueScheduler };\n//# sourceMappingURL=QueueScheduler.js.map","import { QueueAction } from './QueueAction';\nimport { QueueScheduler } from './QueueScheduler';\nexport var queueScheduler = new QueueScheduler(QueueAction);\nexport var queue = queueScheduler;\n//# sourceMappingURL=queue.js.map","import { __extends } from \"tslib\";\nimport { AsyncAction } from './AsyncAction';\nimport { animationFrameProvider } from './animationFrameProvider';\nvar AnimationFrameAction = (function (_super) {\n __extends(AnimationFrameAction, _super);\n function AnimationFrameAction(scheduler, work) {\n var _this = _super.call(this, scheduler, work) || this;\n _this.scheduler = scheduler;\n _this.work = work;\n return _this;\n }\n AnimationFrameAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n if (delay !== null && delay > 0) {\n return _super.prototype.requestAsyncId.call(this, scheduler, id, delay);\n }\n scheduler.actions.push(this);\n return scheduler._scheduled || (scheduler._scheduled = animationFrameProvider.requestAnimationFrame(function () { return scheduler.flush(undefined); }));\n };\n AnimationFrameAction.prototype.recycleAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n if ((delay != null && delay > 0) || (delay == null && this.delay > 0)) {\n return _super.prototype.recycleAsyncId.call(this, scheduler, id, delay);\n }\n if (!scheduler.actions.some(function (action) { return action.id === id; })) {\n animationFrameProvider.cancelAnimationFrame(id);\n scheduler._scheduled = undefined;\n }\n return undefined;\n };\n return AnimationFrameAction;\n}(AsyncAction));\nexport { AnimationFrameAction };\n//# sourceMappingURL=AnimationFrameAction.js.map","import { __extends } from \"tslib\";\nimport { AsyncScheduler } from './AsyncScheduler';\nvar AnimationFrameScheduler = (function (_super) {\n __extends(AnimationFrameScheduler, _super);\n function AnimationFrameScheduler() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n AnimationFrameScheduler.prototype.flush = function (action) {\n this._active = true;\n var flushId = this._scheduled;\n this._scheduled = undefined;\n var actions = this.actions;\n var error;\n action = action || actions.shift();\n do {\n if ((error = action.execute(action.state, action.delay))) {\n break;\n }\n } while ((action = actions[0]) && action.id === flushId && actions.shift());\n this._active = false;\n if (error) {\n while ((action = actions[0]) && action.id === flushId && actions.shift()) {\n action.unsubscribe();\n }\n throw error;\n }\n };\n return AnimationFrameScheduler;\n}(AsyncScheduler));\nexport { AnimationFrameScheduler };\n//# sourceMappingURL=AnimationFrameScheduler.js.map","import { AnimationFrameAction } from './AnimationFrameAction';\nimport { AnimationFrameScheduler } from './AnimationFrameScheduler';\nexport var animationFrameScheduler = new AnimationFrameScheduler(AnimationFrameAction);\nexport var animationFrame = animationFrameScheduler;\n//# sourceMappingURL=animationFrame.js.map","import { __extends } from \"tslib\";\nimport { AsyncAction } from './AsyncAction';\nimport { Subscription } from '../Subscription';\nimport { AsyncScheduler } from './AsyncScheduler';\nvar VirtualTimeScheduler = (function (_super) {\n __extends(VirtualTimeScheduler, _super);\n function VirtualTimeScheduler(schedulerActionCtor, maxFrames) {\n if (schedulerActionCtor === void 0) { schedulerActionCtor = VirtualAction; }\n if (maxFrames === void 0) { maxFrames = Infinity; }\n var _this = _super.call(this, schedulerActionCtor, function () { return _this.frame; }) || this;\n _this.maxFrames = maxFrames;\n _this.frame = 0;\n _this.index = -1;\n return _this;\n }\n VirtualTimeScheduler.prototype.flush = function () {\n var _a = this, actions = _a.actions, maxFrames = _a.maxFrames;\n var error;\n var action;\n while ((action = actions[0]) && action.delay <= maxFrames) {\n actions.shift();\n this.frame = action.delay;\n if ((error = action.execute(action.state, action.delay))) {\n break;\n }\n }\n if (error) {\n while ((action = actions.shift())) {\n action.unsubscribe();\n }\n throw error;\n }\n };\n VirtualTimeScheduler.frameTimeFactor = 10;\n return VirtualTimeScheduler;\n}(AsyncScheduler));\nexport { VirtualTimeScheduler };\nvar VirtualAction = (function (_super) {\n __extends(VirtualAction, _super);\n function VirtualAction(scheduler, work, index) {\n if (index === void 0) { index = (scheduler.index += 1); }\n var _this = _super.call(this, scheduler, work) || this;\n _this.scheduler = scheduler;\n _this.work = work;\n _this.index = index;\n _this.active = true;\n _this.index = scheduler.index = index;\n return _this;\n }\n VirtualAction.prototype.schedule = function (state, delay) {\n if (delay === void 0) { delay = 0; }\n if (Number.isFinite(delay)) {\n if (!this.id) {\n return _super.prototype.schedule.call(this, state, delay);\n }\n this.active = false;\n var action = new VirtualAction(this.scheduler, this.work);\n this.add(action);\n return action.schedule(state, delay);\n }\n else {\n return Subscription.EMPTY;\n }\n };\n VirtualAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n this.delay = scheduler.frame + delay;\n var actions = scheduler.actions;\n actions.push(this);\n actions.sort(VirtualAction.sortActions);\n return true;\n };\n VirtualAction.prototype.recycleAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n return undefined;\n };\n VirtualAction.prototype._execute = function (state, delay) {\n if (this.active === true) {\n return _super.prototype._execute.call(this, state, delay);\n }\n };\n VirtualAction.sortActions = function (a, b) {\n if (a.delay === b.delay) {\n if (a.index === b.index) {\n return 0;\n }\n else if (a.index > b.index) {\n return 1;\n }\n else {\n return -1;\n }\n }\n else if (a.delay > b.delay) {\n return 1;\n }\n else {\n return -1;\n }\n };\n return VirtualAction;\n}(AsyncAction));\nexport { VirtualAction };\n//# sourceMappingURL=VirtualTimeScheduler.js.map","import { Observable } from '../Observable';\nexport var EMPTY = new Observable(function (subscriber) { return subscriber.complete(); });\nexport function empty(scheduler) {\n return scheduler ? emptyScheduled(scheduler) : EMPTY;\n}\nfunction emptyScheduled(scheduler) {\n return new Observable(function (subscriber) { return scheduler.schedule(function () { return subscriber.complete(); }); });\n}\n//# sourceMappingURL=empty.js.map","export var isArrayLike = (function (x) { return x && typeof x.length === 'number' && typeof x !== 'function'; });\n//# sourceMappingURL=isArrayLike.js.map","import { isFunction } from \"./isFunction\";\nexport function isPromise(value) {\n return isFunction(value === null || value === void 0 ? void 0 : value.then);\n}\n//# sourceMappingURL=isPromise.js.map","import { observable as Symbol_observable } from '../symbol/observable';\nimport { isFunction } from './isFunction';\nexport function isInteropObservable(input) {\n return isFunction(input[Symbol_observable]);\n}\n//# sourceMappingURL=isInteropObservable.js.map","import { isFunction } from './isFunction';\nexport function isAsyncIterable(obj) {\n return Symbol.asyncIterator && isFunction(obj === null || obj === void 0 ? void 0 : obj[Symbol.asyncIterator]);\n}\n//# sourceMappingURL=isAsyncIterable.js.map","export function createInvalidObservableTypeError(input) {\n return new TypeError(\"You provided \" + (input !== null && typeof input === 'object' ? 'an invalid object' : \"'\" + input + \"'\") + \" where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.\");\n}\n//# sourceMappingURL=throwUnobservableError.js.map","export function getSymbolIterator() {\n if (typeof Symbol !== 'function' || !Symbol.iterator) {\n return '@@iterator';\n }\n return Symbol.iterator;\n}\nexport var iterator = getSymbolIterator();\n//# sourceMappingURL=iterator.js.map","import { iterator as Symbol_iterator } from '../symbol/iterator';\nimport { isFunction } from './isFunction';\nexport function isIterable(input) {\n return isFunction(input === null || input === void 0 ? void 0 : input[Symbol_iterator]);\n}\n//# sourceMappingURL=isIterable.js.map","import { __asyncGenerator, __await, __generator } from \"tslib\";\nimport { isFunction } from './isFunction';\nexport function readableStreamLikeToAsyncGenerator(readableStream) {\n return __asyncGenerator(this, arguments, function readableStreamLikeToAsyncGenerator_1() {\n var reader, _a, value, done;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n reader = readableStream.getReader();\n _b.label = 1;\n case 1:\n _b.trys.push([1, , 9, 10]);\n _b.label = 2;\n case 2:\n if (!true) return [3, 8];\n return [4, __await(reader.read())];\n case 3:\n _a = _b.sent(), value = _a.value, done = _a.done;\n if (!done) return [3, 5];\n return [4, __await(void 0)];\n case 4: return [2, _b.sent()];\n case 5: return [4, __await(value)];\n case 6: return [4, _b.sent()];\n case 7:\n _b.sent();\n return [3, 2];\n case 8: return [3, 10];\n case 9:\n reader.releaseLock();\n return [7];\n case 10: return [2];\n }\n });\n });\n}\nexport function isReadableStreamLike(obj) {\n return isFunction(obj === null || obj === void 0 ? void 0 : obj.getReader);\n}\n//# sourceMappingURL=isReadableStreamLike.js.map","import { __asyncValues, __awaiter, __generator, __values } from \"tslib\";\nimport { isArrayLike } from '../util/isArrayLike';\nimport { isPromise } from '../util/isPromise';\nimport { Observable } from '../Observable';\nimport { isInteropObservable } from '../util/isInteropObservable';\nimport { isAsyncIterable } from '../util/isAsyncIterable';\nimport { createInvalidObservableTypeError } from '../util/throwUnobservableError';\nimport { isIterable } from '../util/isIterable';\nimport { isReadableStreamLike, readableStreamLikeToAsyncGenerator } from '../util/isReadableStreamLike';\nimport { isFunction } from '../util/isFunction';\nimport { reportUnhandledError } from '../util/reportUnhandledError';\nimport { observable as Symbol_observable } from '../symbol/observable';\nexport function innerFrom(input) {\n if (input instanceof Observable) {\n return input;\n }\n if (input != null) {\n if (isInteropObservable(input)) {\n return fromInteropObservable(input);\n }\n if (isArrayLike(input)) {\n return fromArrayLike(input);\n }\n if (isPromise(input)) {\n return fromPromise(input);\n }\n if (isAsyncIterable(input)) {\n return fromAsyncIterable(input);\n }\n if (isIterable(input)) {\n return fromIterable(input);\n }\n if (isReadableStreamLike(input)) {\n return fromReadableStreamLike(input);\n }\n }\n throw createInvalidObservableTypeError(input);\n}\nexport function fromInteropObservable(obj) {\n return new Observable(function (subscriber) {\n var obs = obj[Symbol_observable]();\n if (isFunction(obs.subscribe)) {\n return obs.subscribe(subscriber);\n }\n throw new TypeError('Provided object does not correctly implement Symbol.observable');\n });\n}\nexport function fromArrayLike(array) {\n return new Observable(function (subscriber) {\n for (var i = 0; i < array.length && !subscriber.closed; i++) {\n subscriber.next(array[i]);\n }\n subscriber.complete();\n });\n}\nexport function fromPromise(promise) {\n return new Observable(function (subscriber) {\n promise\n .then(function (value) {\n if (!subscriber.closed) {\n subscriber.next(value);\n subscriber.complete();\n }\n }, function (err) { return subscriber.error(err); })\n .then(null, reportUnhandledError);\n });\n}\nexport function fromIterable(iterable) {\n return new Observable(function (subscriber) {\n var e_1, _a;\n try {\n for (var iterable_1 = __values(iterable), iterable_1_1 = iterable_1.next(); !iterable_1_1.done; iterable_1_1 = iterable_1.next()) {\n var value = iterable_1_1.value;\n subscriber.next(value);\n if (subscriber.closed) {\n return;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (iterable_1_1 && !iterable_1_1.done && (_a = iterable_1.return)) _a.call(iterable_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n subscriber.complete();\n });\n}\nexport function fromAsyncIterable(asyncIterable) {\n return new Observable(function (subscriber) {\n process(asyncIterable, subscriber).catch(function (err) { return subscriber.error(err); });\n });\n}\nexport function fromReadableStreamLike(readableStream) {\n return fromAsyncIterable(readableStreamLikeToAsyncGenerator(readableStream));\n}\nfunction process(asyncIterable, subscriber) {\n var asyncIterable_1, asyncIterable_1_1;\n var e_2, _a;\n return __awaiter(this, void 0, void 0, function () {\n var value, e_2_1;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _b.trys.push([0, 5, 6, 11]);\n asyncIterable_1 = __asyncValues(asyncIterable);\n _b.label = 1;\n case 1: return [4, asyncIterable_1.next()];\n case 2:\n if (!(asyncIterable_1_1 = _b.sent(), !asyncIterable_1_1.done)) return [3, 4];\n value = asyncIterable_1_1.value;\n subscriber.next(value);\n if (subscriber.closed) {\n return [2];\n }\n _b.label = 3;\n case 3: return [3, 1];\n case 4: return [3, 11];\n case 5:\n e_2_1 = _b.sent();\n e_2 = { error: e_2_1 };\n return [3, 11];\n case 6:\n _b.trys.push([6, , 9, 10]);\n if (!(asyncIterable_1_1 && !asyncIterable_1_1.done && (_a = asyncIterable_1.return))) return [3, 8];\n return [4, _a.call(asyncIterable_1)];\n case 7:\n _b.sent();\n _b.label = 8;\n case 8: return [3, 10];\n case 9:\n if (e_2) throw e_2.error;\n return [7];\n case 10: return [7];\n case 11:\n subscriber.complete();\n return [2];\n }\n });\n });\n}\n//# sourceMappingURL=innerFrom.js.map","export function executeSchedule(parentSubscription, scheduler, work, delay, repeat) {\n if (delay === void 0) { delay = 0; }\n if (repeat === void 0) { repeat = false; }\n var scheduleSubscription = scheduler.schedule(function () {\n work();\n if (repeat) {\n parentSubscription.add(this.schedule(null, delay));\n }\n else {\n this.unsubscribe();\n }\n }, delay);\n parentSubscription.add(scheduleSubscription);\n if (!repeat) {\n return scheduleSubscription;\n }\n}\n//# sourceMappingURL=executeSchedule.js.map","import { EMPTY } from './observable/empty';\nimport { of } from './observable/of';\nimport { throwError } from './observable/throwError';\nimport { isFunction } from './util/isFunction';\nexport var NotificationKind;\n(function (NotificationKind) {\n NotificationKind[\"NEXT\"] = \"N\";\n NotificationKind[\"ERROR\"] = \"E\";\n NotificationKind[\"COMPLETE\"] = \"C\";\n})(NotificationKind || (NotificationKind = {}));\nvar Notification = (function () {\n function Notification(kind, value, error) {\n this.kind = kind;\n this.value = value;\n this.error = error;\n this.hasValue = kind === 'N';\n }\n Notification.prototype.observe = function (observer) {\n return observeNotification(this, observer);\n };\n Notification.prototype.do = function (nextHandler, errorHandler, completeHandler) {\n var _a = this, kind = _a.kind, value = _a.value, error = _a.error;\n return kind === 'N' ? nextHandler === null || nextHandler === void 0 ? void 0 : nextHandler(value) : kind === 'E' ? errorHandler === null || errorHandler === void 0 ? void 0 : errorHandler(error) : completeHandler === null || completeHandler === void 0 ? void 0 : completeHandler();\n };\n Notification.prototype.accept = function (nextOrObserver, error, complete) {\n var _a;\n return isFunction((_a = nextOrObserver) === null || _a === void 0 ? void 0 : _a.next)\n ? this.observe(nextOrObserver)\n : this.do(nextOrObserver, error, complete);\n };\n Notification.prototype.toObservable = function () {\n var _a = this, kind = _a.kind, value = _a.value, error = _a.error;\n var result = kind === 'N'\n ?\n of(value)\n :\n kind === 'E'\n ?\n throwError(function () { return error; })\n :\n kind === 'C'\n ?\n EMPTY\n :\n 0;\n if (!result) {\n throw new TypeError(\"Unexpected notification kind \" + kind);\n }\n return result;\n };\n Notification.createNext = function (value) {\n return new Notification('N', value);\n };\n Notification.createError = function (err) {\n return new Notification('E', undefined, err);\n };\n Notification.createComplete = function () {\n return Notification.completeNotification;\n };\n Notification.completeNotification = new Notification('C');\n return Notification;\n}());\nexport { Notification };\nexport function observeNotification(notification, observer) {\n var _a, _b, _c;\n var _d = notification, kind = _d.kind, value = _d.value, error = _d.error;\n if (typeof kind !== 'string') {\n throw new TypeError('Invalid notification, missing \"kind\"');\n }\n kind === 'N' ? (_a = observer.next) === null || _a === void 0 ? void 0 : _a.call(observer, value) : kind === 'E' ? (_b = observer.error) === null || _b === void 0 ? void 0 : _b.call(observer, error) : (_c = observer.complete) === null || _c === void 0 ? void 0 : _c.call(observer);\n}\n//# sourceMappingURL=Notification.js.map","import { createErrorClass } from './createErrorClass';\nexport var EmptyError = createErrorClass(function (_super) { return function EmptyErrorImpl() {\n _super(this);\n this.name = 'EmptyError';\n this.message = 'no elements in sequence';\n}; });\n//# sourceMappingURL=EmptyError.js.map","import { createErrorClass } from './createErrorClass';\nexport var ArgumentOutOfRangeError = createErrorClass(function (_super) {\n return function ArgumentOutOfRangeErrorImpl() {\n _super(this);\n this.name = 'ArgumentOutOfRangeError';\n this.message = 'argument out of range';\n };\n});\n//# sourceMappingURL=ArgumentOutOfRangeError.js.map","import { createErrorClass } from './createErrorClass';\nexport var NotFoundError = createErrorClass(function (_super) {\n return function NotFoundErrorImpl(message) {\n _super(this);\n this.name = 'NotFoundError';\n this.message = message;\n };\n});\n//# sourceMappingURL=NotFoundError.js.map","import { createErrorClass } from './createErrorClass';\nexport var SequenceError = createErrorClass(function (_super) {\n return function SequenceErrorImpl(message) {\n _super(this);\n this.name = 'SequenceError';\n this.message = message;\n };\n});\n//# sourceMappingURL=SequenceError.js.map","import { asyncScheduler } from '../scheduler/async';\nimport { isValidDate } from '../util/isDate';\nimport { operate } from '../util/lift';\nimport { innerFrom } from '../observable/innerFrom';\nimport { createErrorClass } from '../util/createErrorClass';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nimport { executeSchedule } from '../util/executeSchedule';\nexport var TimeoutError = createErrorClass(function (_super) {\n return function TimeoutErrorImpl(info) {\n if (info === void 0) { info = null; }\n _super(this);\n this.message = 'Timeout has occurred';\n this.name = 'TimeoutError';\n this.info = info;\n };\n});\nexport function timeout(config, schedulerArg) {\n var _a = (isValidDate(config) ? { first: config } : typeof config === 'number' ? { each: config } : config), first = _a.first, each = _a.each, _b = _a.with, _with = _b === void 0 ? timeoutErrorFactory : _b, _c = _a.scheduler, scheduler = _c === void 0 ? schedulerArg !== null && schedulerArg !== void 0 ? schedulerArg : asyncScheduler : _c, _d = _a.meta, meta = _d === void 0 ? null : _d;\n if (first == null && each == null) {\n throw new TypeError('No timeout provided.');\n }\n return operate(function (source, subscriber) {\n var originalSourceSubscription;\n var timerSubscription;\n var lastValue = null;\n var seen = 0;\n var startTimer = function (delay) {\n timerSubscription = executeSchedule(subscriber, scheduler, function () {\n try {\n originalSourceSubscription.unsubscribe();\n innerFrom(_with({\n meta: meta,\n lastValue: lastValue,\n seen: seen,\n })).subscribe(subscriber);\n }\n catch (err) {\n subscriber.error(err);\n }\n }, delay);\n };\n originalSourceSubscription = source.subscribe(createOperatorSubscriber(subscriber, function (value) {\n timerSubscription === null || timerSubscription === void 0 ? void 0 : timerSubscription.unsubscribe();\n seen++;\n subscriber.next((lastValue = value));\n each > 0 && startTimer(each);\n }, undefined, undefined, function () {\n if (!(timerSubscription === null || timerSubscription === void 0 ? void 0 : timerSubscription.closed)) {\n timerSubscription === null || timerSubscription === void 0 ? void 0 : timerSubscription.unsubscribe();\n }\n lastValue = null;\n }));\n !seen && startTimer(first != null ? (typeof first === 'number' ? first : +first - scheduler.now()) : each);\n });\n}\nfunction timeoutErrorFactory(info) {\n throw new TimeoutError(info);\n}\n//# sourceMappingURL=timeout.js.map","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function map(project, thisArg) {\n return operate(function (source, subscriber) {\n var index = 0;\n source.subscribe(createOperatorSubscriber(subscriber, function (value) {\n subscriber.next(project.call(thisArg, value, index++));\n }));\n });\n}\n//# sourceMappingURL=map.js.map","import { __read, __spreadArray } from \"tslib\";\nimport { map } from \"../operators/map\";\nvar isArray = Array.isArray;\nfunction callOrApply(fn, args) {\n return isArray(args) ? fn.apply(void 0, __spreadArray([], __read(args))) : fn(args);\n}\nexport function mapOneOrManyArgs(fn) {\n return map(function (args) { return callOrApply(fn, args); });\n}\n//# sourceMappingURL=mapOneOrManyArgs.js.map","import { innerFrom } from '../observable/innerFrom';\nimport { executeSchedule } from '../util/executeSchedule';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function mergeInternals(source, subscriber, project, concurrent, onBeforeNext, expand, innerSubScheduler, additionalFinalizer) {\n var buffer = [];\n var active = 0;\n var index = 0;\n var isComplete = false;\n var checkComplete = function () {\n if (isComplete && !buffer.length && !active) {\n subscriber.complete();\n }\n };\n var outerNext = function (value) { return (active < concurrent ? doInnerSub(value) : buffer.push(value)); };\n var doInnerSub = function (value) {\n expand && subscriber.next(value);\n active++;\n var innerComplete = false;\n innerFrom(project(value, index++)).subscribe(createOperatorSubscriber(subscriber, function (innerValue) {\n onBeforeNext === null || onBeforeNext === void 0 ? void 0 : onBeforeNext(innerValue);\n if (expand) {\n outerNext(innerValue);\n }\n else {\n subscriber.next(innerValue);\n }\n }, function () {\n innerComplete = true;\n }, undefined, function () {\n if (innerComplete) {\n try {\n active--;\n var _loop_1 = function () {\n var bufferedValue = buffer.shift();\n if (innerSubScheduler) {\n executeSchedule(subscriber, innerSubScheduler, function () { return doInnerSub(bufferedValue); });\n }\n else {\n doInnerSub(bufferedValue);\n }\n };\n while (buffer.length && active < concurrent) {\n _loop_1();\n }\n checkComplete();\n }\n catch (err) {\n subscriber.error(err);\n }\n }\n }));\n };\n source.subscribe(createOperatorSubscriber(subscriber, outerNext, function () {\n isComplete = true;\n checkComplete();\n }));\n return function () {\n additionalFinalizer === null || additionalFinalizer === void 0 ? void 0 : additionalFinalizer();\n };\n}\n//# sourceMappingURL=mergeInternals.js.map","import { map } from './map';\nimport { innerFrom } from '../observable/innerFrom';\nimport { operate } from '../util/lift';\nimport { mergeInternals } from './mergeInternals';\nimport { isFunction } from '../util/isFunction';\nexport function mergeMap(project, resultSelector, concurrent) {\n if (concurrent === void 0) { concurrent = Infinity; }\n if (isFunction(resultSelector)) {\n return mergeMap(function (a, i) { return map(function (b, ii) { return resultSelector(a, b, i, ii); })(innerFrom(project(a, i))); }, concurrent);\n }\n else if (typeof resultSelector === 'number') {\n concurrent = resultSelector;\n }\n return operate(function (source, subscriber) { return mergeInternals(source, subscriber, project, concurrent); });\n}\n//# sourceMappingURL=mergeMap.js.map","import { __read } from \"tslib\";\nimport { innerFrom } from '../observable/innerFrom';\nimport { Observable } from '../Observable';\nimport { mergeMap } from '../operators/mergeMap';\nimport { isArrayLike } from '../util/isArrayLike';\nimport { isFunction } from '../util/isFunction';\nimport { mapOneOrManyArgs } from '../util/mapOneOrManyArgs';\nvar nodeEventEmitterMethods = ['addListener', 'removeListener'];\nvar eventTargetMethods = ['addEventListener', 'removeEventListener'];\nvar jqueryMethods = ['on', 'off'];\nexport function fromEvent(target, eventName, options, resultSelector) {\n if (isFunction(options)) {\n resultSelector = options;\n options = undefined;\n }\n if (resultSelector) {\n return fromEvent(target, eventName, options).pipe(mapOneOrManyArgs(resultSelector));\n }\n var _a = __read(isEventTarget(target)\n ? eventTargetMethods.map(function (methodName) { return function (handler) { return target[methodName](eventName, handler, options); }; })\n :\n isNodeStyleEventEmitter(target)\n ? nodeEventEmitterMethods.map(toCommonHandlerRegistry(target, eventName))\n : isJQueryStyleEventEmitter(target)\n ? jqueryMethods.map(toCommonHandlerRegistry(target, eventName))\n : [], 2), add = _a[0], remove = _a[1];\n if (!add) {\n if (isArrayLike(target)) {\n return mergeMap(function (subTarget) { return fromEvent(subTarget, eventName, options); })(innerFrom(target));\n }\n }\n if (!add) {\n throw new TypeError('Invalid event target');\n }\n return new Observable(function (subscriber) {\n var handler = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return subscriber.next(1 < args.length ? args : args[0]);\n };\n add(handler);\n return function () { return remove(handler); };\n });\n}\nfunction toCommonHandlerRegistry(target, eventName) {\n return function (methodName) { return function (handler) { return target[methodName](eventName, handler); }; };\n}\nfunction isNodeStyleEventEmitter(target) {\n return isFunction(target.addListener) && isFunction(target.removeListener);\n}\nfunction isJQueryStyleEventEmitter(target) {\n return isFunction(target.on) && isFunction(target.off);\n}\nfunction isEventTarget(target) {\n return isFunction(target.addEventListener) && isFunction(target.removeEventListener);\n}\n//# sourceMappingURL=fromEvent.js.map","import { Observable } from '../Observable';\nimport { noop } from '../util/noop';\nexport var NEVER = new Observable(noop);\nexport function never() {\n return NEVER;\n}\n//# sourceMappingURL=never.js.map","/**\n * Router constants\n */\nexport const POP_STATE = 'popstate';\nexport const REG_ROUTE_PARAMS = /:[^/]+/g;\nexport const REG_PATHNAME = /^\\/(?=[^?]*)/;\nexport const REG_COMPLEX = /\\[/;\nexport const REG_VARIABLE = /([^[]+)\\[([^[]*)\\]/;\nexport const REG_REPLACE_BRACKETS = /\\[([^[]*)\\]/;\nexport const REG_REPLACE_NEXTPROP = /[^[]+/;\nexport const HISTORY_UNSUPPORTED = 'History unsupported!';\nexport const INVALID_ROUTE = 'Route string is not a pure route';\nexport const VIRTUAL_PUSHSTATE = 'vpushstate';\nexport const CACHED_FIELDS = [\n 'route',\n 'hashRouting',\n 'path',\n 'hash',\n 'search',\n 'hashSearch',\n 'data',\n];\nexport const AMP = '&';\nexport const QRY = '?';\nexport const EQ = '=';\nexport const EMPTY = '';\nexport const UNDEF = void 0;\nexport const TYPEOF_STR = typeof EMPTY;\nexport const TYPEOF_BOOL = typeof true;\nexport const TYPEOF_UNDEF = typeof UNDEF;\nexport const TYPEOF_OBJ = typeof {};\nexport const TYPEOF_NUM = typeof 0;\nexport const TYPEOF_FUNC = typeof (() => {});\nexport const STATE = 'State';\nexport const PUSH = `push${STATE}`;\nexport const REPLACE = `replace${STATE}`;\n","import { TYPEOF_UNDEF } from './constants';\n\nexport function getGlobal() {\n return typeof globalThis !== TYPEOF_UNDEF ? globalThis : global || self;\n}\n","/*!\n * Deparam plugin converts query string to a valid JavaScript object\n * Released under MIT license\n * @name Deparam.js\n * @author Sachin Singh \n * @version 3.0.6\n * @license MIT\n */\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}\n\n/*!\n * is-number \n *\n * Copyright (c) 2014-present, Jon Schlinkert.\n * Released under the MIT License.\n */\n\nvar isNumber = function(num) {\n if (typeof num === 'number') {\n return num - num === 0;\n }\n if (typeof num === 'string' && num.trim() !== '') {\n return Number.isFinite ? Number.isFinite(+num) : isFinite(+num);\n }\n return false;\n};\n\nvar isObject = function isObject(x) {\n\treturn typeof x === 'object' && x !== null;\n};\n\nvar UNDEF = void 0; // Results to undefined\n// Typeof undefined\n\nvar TYPEOF_UNDEF = _typeof(UNDEF); // Typeof string\n\n\nvar TYPEOF_STR = _typeof(\"\"); // location var\n\n\nvar loc = (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) !== TYPEOF_UNDEF ? window.location : null; // Shorthand for built-ins\n\nvar isArr = Array.isArray;\n/**\n * Checks if current key is safe\n * @param {string} key Current key\n * @returns {boolean}\n */\n\nfunction isSafe(key) {\n return [\"__proto__\", \"prototype\"].indexOf(key) === -1;\n}\n/**\n * Shorthand for Object.prototype.hasOwnProperty\n * @param {any} obj Any object\n * @param {string} key key\n * @returns {boolean} true or false if object has the property\n */\n\n\nfunction hasOwn(obj, key) {\n return Object.prototype.hasOwnProperty.call(obj, key);\n}\n/**\n * Returns true of input query string is complex\n * @param {string} q Query string\n * @returns {boolean} true or false\n */\n\n\nfunction ifComplex(q) {\n return /\\[/.test(q);\n}\n/**\n * Returns an object without a prototype\n * @returns {{[key in string|number]: any}} Object without __proto__\n */\n\n\nfunction obNull() {\n return Object.create(null);\n}\n/**\n * Returns a parsed query object\n * @param {string} qs Query string\n * @param {boolean} coerce Coerce values\n * @returns {{[key in string|number]: any}} Query object\n */\n\n\nfunction lib(qs, coerce) {\n var _this = this;\n\n if (_typeof(qs) !== TYPEOF_STR) {\n qs = loc ? loc.search : \"\";\n }\n\n qs = qs.substring(qs.charAt(0) === \"?\");\n var queryObject = obNull();\n\n if (qs) {\n qs.split(\"&\").forEach(function (qq) {\n var qArr = qq.split(\"=\").map(function (part) {\n return decodeURIComponent(part);\n });\n\n if (ifComplex(qArr[0])) {\n complex.apply(_this, [].concat(qArr).concat([queryObject, coerce]));\n } else {\n simple.apply(_this, [qArr, queryObject, false, coerce]);\n }\n });\n }\n\n return queryObject;\n}\n/**\n * Converts an array to equivalent object\n * @param {any[]} arr Any array\n * @returns {any} Any object\n */\n\n\nfunction toObject(arr) {\n var convertedObj = obNull();\n\n if (isArr(arr)) {\n arr.forEach(function (value, index) {\n convertedObj[index] = value;\n });\n }\n\n return convertedObj;\n}\n/**\n * Converts array to an object if required\n * @param {any} ob Any object\n * @param {booleab} isNextNumber Test for next key\n * @returns {any} Any object\n */\n\n\nfunction resolve(ob, isNextNumber) {\n if (_typeof(ob) === TYPEOF_UNDEF) return isNextNumber ? [] : obNull();\n return isNextNumber ? ob : toObject(ob);\n}\n/**\n * Resolves the target object for next iteration\n * @param {any} ob current reference object\n * @param {string} nextProp reference property in current object\n * @returns {any} Resolved object for next iteration\n */\n\n\nfunction resolveObj(ob, nextProp) {\n if (isObject(ob) && !isArr(ob)) return {\n ob: ob\n };\n if (isArr(ob) || _typeof(ob) === TYPEOF_UNDEF) return {\n ob: resolve(ob, isNumber(nextProp))\n };\n return {\n ob: [ob],\n push: ob !== null\n };\n}\n/**\n * Handles complex query parameters\n * @param {string} key Query key\n * @param {string} value Query value\n * @param {Object} obj Query object\n * @returns {void}\n */\n\n\nfunction complex(key, value, obj, doCoerce) {\n var match = key.match(/([^\\[]+)\\[([^\\[]*)\\]/) || [];\n\n if (match.length === 3) {\n var prop = match[1];\n var nextProp = match[2];\n key = key.replace(/\\[([^\\[]*)\\]/, \"\");\n\n if (ifComplex(key)) {\n if (nextProp === \"\") nextProp = \"0\";\n key = key.replace(/[^\\[]+/, nextProp);\n complex(key, value, obj[prop] = resolveObj(obj[prop], nextProp).ob, doCoerce);\n } else if (nextProp) {\n if (isSafe(prop) && isSafe(nextProp)) {\n var _resolveObj = resolveObj(obj[prop], nextProp),\n ob = _resolveObj.ob,\n push = _resolveObj.push;\n\n obj[prop] = ob;\n var nextOb = push ? obNull() : obj[prop];\n nextOb[nextProp] = coerce(value, !doCoerce);\n\n if (push) {\n obj[prop].push(nextOb);\n }\n }\n } else {\n simple([match[1], value], obj, true, doCoerce);\n }\n }\n}\n/**\n * Handles simple query\n * @param {array} qArr Query list\n * @param {Object} queryObject Query object\n * @param {boolean} toArray Test for conversion to array\n * @returns {void}\n */\n\n\nfunction simple(qArr, queryObject, toArray, doCoerce) {\n var key = qArr[0];\n var value = qArr[1];\n\n if (isSafe(key)) {\n value = coerce(value, !doCoerce);\n\n if (hasOwn(queryObject, key)) {\n queryObject[key] = isArr(queryObject[key]) ? queryObject[key] : [queryObject[key]];\n queryObject[key].push(value);\n } else {\n queryObject[key] = toArray ? [value] : value;\n }\n }\n}\n/**\n * Converts input value to their appropriate types\n * @param {any} value Input value\n * @param {boolean} skip Test for skipping coercion\n * @returns {any} Coerced value\n */\n\n\nfunction coerce(value, skip) {\n // eslint-disable-next-line\n if (value == null) {\n return \"\";\n }\n\n if (skip || _typeof(value) !== TYPEOF_STR) {\n return value;\n }\n\n value = value.trim();\n\n if (isNumber(value)) {\n return +value;\n }\n\n switch (value) {\n case \"null\":\n return null;\n\n case TYPEOF_UNDEF:\n return UNDEF;\n\n case \"true\":\n return true;\n\n case \"false\":\n return false;\n\n case \"NaN\":\n return NaN;\n\n default:\n return value;\n }\n}\n\nexport { lib as default, isNumber, isObject };\n//# sourceMappingURL=deparam.esm.js.map\n","import { isNumber, isObject } from 'deparam.js';\nimport { EMPTY, REG_PATHNAME, TYPEOF_BOOL, TYPEOF_STR } from './constants';\n\n/**\n * Shorthand for Array.isArray\n */\nexport const isArr = Array.isArray;\n\n/**\n * Shorthand for Object.keys\n */\nexport const oKeys = Object.keys;\n\n/**\n * Safely trims string\n * @param {string} str String\n */\nexport function trim(str) {\n return typeof str === TYPEOF_STR ? str.trim() : EMPTY;\n}\n\n/**\n * Checks if given route is valid\n * @private\n * @param {string} route Route string\n */\nexport function isValidRoute(route) {\n return REG_PATHNAME.test(route);\n}\n\n/**\n * Checks if key is present in provided object\n * @param {object} ob Object\n * @param {*} key Key\n */\nexport function hasOwn(ob, key) {\n return Object.prototype.hasOwnProperty.call(ob, key);\n}\n\n/**\n * Loops over an array like object\n * @param {object} arrayObj Array or array like object\n * @param {function} callback Callback function\n */\nexport function each(arrayObj, callback) {\n if (isObject(arrayObj)) {\n const keys = oKeys(arrayObj);\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n const cont = callback(arrayObj[key], isNumber(key) ? +key : key);\n if (typeof cont === TYPEOF_BOOL) {\n if (cont) {\n continue;\n } else {\n break;\n }\n }\n }\n }\n}\n","import { TYPEOF_STR } from './constants';\nimport { getGlobal } from './getGlobal';\nimport { each } from './utils';\n\n/**\n * Function to trigger custom event\n * @param {Node|NodeList|HTMLCollection|Node[]} target Target element or list\n * @param {string} eventType Event type\n * @param {any[]} data Data to be passed to handler\n */\nexport function trigger(target, eventType, data) {\n target = Array.from(target instanceof Node ? [target] : target);\n if (target.length && typeof eventType === TYPEOF_STR) {\n each(target, (el) => {\n const customEvent = new getGlobal().CustomEvent(eventType, {\n bubbles: true,\n cancelable: true,\n detail: data || [],\n });\n el.dispatchEvent(customEvent);\n });\n }\n}\n","import { QRY } from '../../utils/constants';\nimport { trim } from '../../utils/utils';\nexport default class RouterEvent {\n constructor(routeInfo, currentEvent) {\n // Set relevant parameters\n const routeObject = routeInfo[0];\n const originalEvent = routeInfo[1];\n const routerInstance = routeInfo[2];\n const { location, history } = routerInstance.config;\n this.route = routeObject.path;\n this.hashRouting = routeObject.hash;\n this.routerInstance = routerInstance;\n this.virtualEvent = currentEvent || {};\n this.originalEvent = originalEvent || {};\n this.path = trim(location.pathname);\n this.hash = location.hash;\n this.search = trim(location.search.substring(1));\n this.hashSearch = trim(location.hash && location.hash.split(QRY)[1]);\n const { state } = this.originalEvent;\n this.data = (state && state.data) || (history.state && history.state.data);\n }\n}\n","import { Observable } from 'rxjs';\nimport RouterEvent from '../routerEvent';\n\nexport default function collate() {\n return (observable) =>\n new Observable((subscriber) => {\n const subn = observable.subscribe({\n next: (event) => {\n const routerInstance = event.detail[2];\n if (routerInstance === this) {\n subscriber.next(new RouterEvent(event.detail, event));\n }\n },\n error: subscriber.error,\n complete: subscriber.complete,\n });\n return () => {\n subn.unsubscribe();\n };\n });\n}\n","import { QRY } from './constants';\nimport { trim } from './utils';\n\nexport const getPath = (isHash, location) => {\n return trim(\n isHash ? location.hash.substring(1).split(QRY)[0] : location.pathname\n );\n};\n","import { fromEvent } from 'rxjs';\nimport { POP_STATE, VIRTUAL_PUSHSTATE } from '../../utils/constants';\nimport { trigger } from '../../utils/triggerEvent';\nimport collate from '../collate';\nimport { getGlobal } from '../../utils/getGlobal';\nimport { getPath } from '../../utils/getPath';\n\nexport default function bindRouterEvents(inst) {\n const { context, location, hashRouting: hash } = inst.config;\n inst.popStateSubscription = fromEvent(getGlobal(), POP_STATE).subscribe(\n (e) => {\n const path = getPath(hash, location);\n if (path) {\n trigger(context, VIRTUAL_PUSHSTATE, [{ path, hash }, e, inst]);\n }\n }\n );\n inst.listeners = fromEvent(context, VIRTUAL_PUSHSTATE).pipe(\n collate.apply(inst)\n );\n if (hash && !location.hash) {\n inst.set('/', true, false); // Replace current hash path without executing anythings\n }\n}\n","import { isObject } from 'deparam.js';\nimport { AMP, EMPTY, TYPEOF_FUNC, TYPEOF_STR } from './constants';\nimport { each, isArr } from './utils';\n\nexport const encode = encodeURIComponent;\n\n/**\n * Builds query string recursively\n * @private\n * @param {string[]} qsList List of query string key value pairs\n * @param {*} key Key\n * @param {*} obj Value\n */\nfunction buildQuery(qsList, key, obj) {\n if (isObject(obj)) {\n each(obj, (prop, obKey) => {\n buildQuery(qsList, `${key}[${isArr(obj) ? EMPTY : obKey}]`, prop);\n });\n } else if (typeof obj !== TYPEOF_FUNC) {\n qsList.push(`${encode(key)}=${encode(obj)}`);\n }\n}\n\n/**\n * Converts an object to a query string\n * @private\n * @param {object} obj Object which should be converted to a string\n * @returns {string}\n */\nexport function toQueryString(obj) {\n let qsList = [];\n if (isObject(obj)) {\n each(obj, (prop, key) => {\n buildQuery(qsList, key, prop);\n });\n return qsList.join(AMP);\n }\n return typeof obj === TYPEOF_STR ? obj : EMPTY;\n}\n","import deparam from 'deparam.js';\nimport { trim } from '../../utils/utils';\nimport { toQueryString } from '../../utils/query';\nimport { assign } from '../../utils/assign';\nimport { QRY } from '../../utils/constants';\n\n/**\n * Resolves and analyzes existing query string\n * @private\n * @param {string} queryString Query string\n * @param {string} hashRouting Flag to test if hash routing is enabled\n */\nexport default function resolveQuery(queryString, hashRouting) {\n const { location } = this.config;\n const search = trim(location.search && location.search.substring(1));\n const existingQuery = trim(\n hashRouting ? location.hash.split(QRY)[1] : search\n );\n if (!existingQuery) return queryString;\n return toQueryString(\n assign(deparam(search), deparam(existingQuery), deparam(queryString))\n );\n}\n","import { isObject } from \"deparam.js\";\nimport { trigger } from \"../../utils/triggerEvent\";\nimport {\n VIRTUAL_PUSHSTATE,\n INVALID_ROUTE,\n UNDEF,\n TYPEOF_STR,\n EMPTY,\n QRY,\n REPLACE,\n PUSH,\n} from \"../../utils/constants\";\nimport { isValidRoute, trim } from \"../../utils/utils\";\nimport { toQueryString } from \"../../utils/query\";\nimport resolveQuery from \"../resolveQuery\";\nimport { assign } from \"../../utils/assign\";\n\nexport default function set(route, replace, exec) {\n exec = exec || true;\n const { preservePath, hashRouting, history } = this.config;\n const routeObject = assign(\n { replace, exec },\n typeof route === TYPEOF_STR ? { route } : route\n );\n replace = routeObject.replace;\n exec = routeObject.exec;\n let { route: routeStr, queryString } = routeObject;\n const { preserveQuery, data, pageTitle = null } = routeObject;\n const routeParts = routeStr.split(QRY);\n // Check if query string is an object\n if (isObject(queryString)) {\n queryString = toQueryString(queryString);\n }\n // Resolve to URL query string if it's not explicitly passed\n queryString = trim(queryString ? queryString : routeParts[1]);\n routeStr = trim(routeParts[0]);\n // Check if query preservation is required. Resolve query accordingly\n if (preserveQuery) {\n queryString = resolveQuery.apply(this, [queryString, hashRouting]);\n }\n if (isValidRoute(routeStr)) {\n const unmodifiedRoute = routeStr;\n if (hashRouting) {\n routeStr = `/#${routeStr}`;\n // Path preservation should only work for hash routing\n if (preservePath) {\n routeStr = `${routeStr.substring(1)}`;\n }\n }\n // Append query string\n routeStr = `${routeStr}${queryString ? `${QRY + queryString}` : EMPTY}`;\n history[replace ? REPLACE : PUSH]({ data }, pageTitle, routeStr);\n if (exec && unmodifiedRoute) {\n trigger(this.config.context, VIRTUAL_PUSHSTATE, [\n {\n path: unmodifiedRoute,\n hash: hashRouting,\n },\n UNDEF,\n this,\n ]);\n }\n } else {\n throw new TypeError(INVALID_ROUTE);\n }\n return this;\n}\n","import { Observable } from 'rxjs';\nimport { UNDEF } from '../../utils/constants';\nimport { getPath } from '../../utils/getPath';\nimport RouterEvent from '../routerEvent';\n\nexport default function callOnce(isDone) {\n const { hashRouting: hash, location, init } = this.config;\n const path = getPath(hash, location);\n return (observable) =>\n new Observable((subscriber) => {\n const subn = observable.subscribe(subscriber);\n if (!isDone) {\n isDone = true;\n if (init && path) {\n subscriber.next(new RouterEvent([{ path, hash }, UNDEF, this]));\n }\n }\n return () => {\n subn.unsubscribe();\n };\n });\n}\n","import { assign } from '../../utils/assign';\nimport bindRouterEvents from '../bindRouterEvents';\nimport set from '../set';\nimport { HISTORY_UNSUPPORTED, PUSH, TYPEOF_FUNC } from '../../utils/constants';\nimport callOnce from '../callOnce';\nimport { getGlobal } from '../../utils/getGlobal';\n\nexport default class Router {\n constructor(config) {\n const { history, location, document } = getGlobal();\n if (!history[PUSH]) {\n throw new Error(HISTORY_UNSUPPORTED);\n }\n this.config = Object.freeze(\n assign(\n {\n init: true, // Initialize as soon as route handler is attached\n hashRouting: false, // Switch to hash routing\n preservePath: false, // Works for hash routing\n context: document.body, // To change the context of \"vpushstate\" event\n location, // Should remain unchanged\n history, // History object\n },\n config || {}\n )\n );\n this.__paths__ = [];\n bindRouterEvents(this);\n }\n pipe(...ops) {\n return this.listeners.pipe(callOnce.apply(this), ...ops);\n }\n subscribe(...fns) {\n return this.pipe().subscribe(...fns);\n }\n set(...props) {\n return set.apply(this, props);\n }\n destroy(callback) {\n if (typeof callback === TYPEOF_FUNC) {\n callback();\n }\n this.popStateSubscription.unsubscribe(); // Unsubscribe popstate event\n this.__paths__.length = 0;\n }\n}\n","import { EMPTY, REG_ROUTE_PARAMS } from './constants';\nimport { each } from './utils';\n\n/**\n * Parses current path and returns params object\n * @private\n * @param {string} expr Route expression\n * @param {string} path URL path\n * @returns {object}\n */\nexport function extractParams(expr, path) {\n const params = {};\n if (REG_ROUTE_PARAMS.test(expr)) {\n const pathRegex = new RegExp(\n expr.replace(/\\//g, '\\\\/').replace(/:[^/\\\\]+/g, '([^\\\\/]+)')\n );\n REG_ROUTE_PARAMS.lastIndex = 0;\n if (pathRegex.test(path)) {\n const keys = Array.from(expr.match(REG_ROUTE_PARAMS)).map((key) =>\n key.replace(':', EMPTY)\n );\n const values = Array.from(path.match(pathRegex));\n values.shift();\n each(keys, (key, index) => {\n params[key] = values[index];\n });\n }\n }\n return params;\n}\n","import { trim, isValidRoute, each, oKeys } from \"../utils/utils\";\nimport queryDeparam, { isObject } from \"deparam.js\";\nimport { Observable } from \"rxjs\";\nimport {\n INVALID_ROUTE,\n CACHED_FIELDS,\n UNDEF,\n TYPEOF_BOOL,\n} from \"../utils/constants\";\nimport { extractParams } from \"../utils/params\";\nimport Router from \"../api/router\";\nimport { assign } from \"../utils/assign\";\n\n/**\n * Operator to compare a specific route\n * @param {string} routeStr Route string\n * @param {Router} routerInstance Current router object [optional]\n * @param {boolean} ignoreCase Ignore case in route string\n */\nexport function route(routeStr, routerInstance, ignoreCase) {\n if (typeof routerInstance === TYPEOF_BOOL) {\n ignoreCase = routerInstance;\n routerInstance = UNDEF;\n }\n routeStr = trim(routeStr);\n if (routerInstance instanceof Router) {\n const paths = routerInstance.__paths__;\n if (paths.indexOf(routeStr) === -1) {\n paths.push(routeStr);\n }\n }\n return (observable) =>\n new Observable((subscriber) => {\n const subn = observable.subscribe({\n next(event) {\n let incomingRoute = event.route;\n if (isValidRoute(routeStr)) {\n if (ignoreCase) {\n routeStr = routeStr.toLowerCase();\n incomingRoute = incomingRoute.toLowerCase();\n }\n const params = extractParams(routeStr, incomingRoute);\n const paramsLength = oKeys(params).length;\n if (incomingRoute === routeStr || paramsLength > 0) {\n if (paramsLength > 0) {\n event.params = params;\n }\n subscriber.next(event);\n }\n } else {\n subscriber.error(new Error(INVALID_ROUTE));\n }\n },\n error: subscriber.error,\n complete: subscriber.complete,\n });\n return () => {\n if (routerInstance instanceof Router) {\n const paths = routerInstance.__paths__;\n const existingRouteIndex = paths.indexOf(routeStr);\n if (existingRouteIndex > -1) {\n paths.splice(existingRouteIndex, 1);\n }\n }\n subn.unsubscribe();\n };\n });\n}\n\n/**\n * Converts search and hashSearch strings to object\n * @param {boolean} coerce Flag to enable value typecast\n */\nexport function deparam(coerce) {\n return (observable) =>\n new Observable((subscriber) => {\n const subn = observable.subscribe({\n next(event) {\n try {\n event.search = queryDeparam(event.search, coerce);\n event.hashSearch = queryDeparam(event.hashSearch, coerce);\n subscriber.next(event);\n } catch (e) {\n subscriber.error(e);\n }\n },\n error: subscriber.error,\n complete: subscriber.complete,\n });\n return () => {\n subn.unsubscribe();\n };\n });\n}\n\n/**\n * Modifies current subscriber to detect errors\n * @param {Router} routerInstance Current router object\n */\nexport function noMatch(routerInstance) {\n return (observable) =>\n new Observable((subscriber) => {\n const subn = observable.subscribe({\n next(event) {\n if (routerInstance instanceof Router) {\n const paths = routerInstance.__paths__;\n if (paths.length > 0) {\n const currentRoute = event.route;\n let match = false;\n each(paths, (path) => {\n if (\n path === currentRoute ||\n oKeys(extractParams(path, currentRoute)).length\n ) {\n return !(match = true);\n }\n });\n if (!match) {\n event.noMatch = true;\n subscriber.next(event);\n }\n }\n }\n },\n error: subscriber.error,\n complete: subscriber.complete,\n });\n return () => {\n subn.unsubscribe();\n };\n });\n}\n\nfunction deepComparison(first, second, result) {\n each(oKeys(first), (key) => {\n if (isObject(first[key]) && isObject(second[key])) {\n deepComparison(first[key], second[key], result);\n } else {\n result.break = first[key] !== second[key];\n }\n });\n}\n\n/**\n * Caches incoming routes to avoid calling handler if there is no change\n * @param {string[]} keys\n * @param {boolean} deep\n */\nexport function cache(keys = CACHED_FIELDS, deep) {\n let cache = {};\n if (typeof keys === TYPEOF_BOOL) {\n deep = keys;\n keys = CACHED_FIELDS;\n }\n return (observable) =>\n new Observable((subscriber) => {\n const subn = observable.subscribe({\n next(event) {\n each(keys, (key) => {\n if (deep && isObject(event[key]) && isObject(cache[key])) {\n const result = {};\n deepComparison(event[key], cache[key], result);\n if (result.break) {\n assign(cache, event);\n subscriber.next(event);\n return false;\n }\n } else if (event[key] !== cache[key]) {\n assign(cache, event);\n subscriber.next(event);\n return false; // break loop\n }\n });\n },\n error: subscriber.error,\n complete: subscriber.complete,\n });\n return () => {\n subn.unsubscribe();\n cache = {};\n };\n });\n}\n","import { Router } from '../src/js';\nimport { route, deparam, noMatch, cache } from '../src/js/operators';\nimport pkg from '../package.json';\n\nfunction q(selector) {\n if (typeof selector === 'string') {\n const elArray = [];\n selector\n .split(',')\n .map((selectorPart) => selectorPart.trim())\n .forEach((selectorPart) => {\n const selected = [...document.querySelectorAll(selectorPart)];\n selected.forEach((el) => {\n if (!elArray.includes(el)) {\n elArray.push(el);\n }\n });\n });\n return elArray;\n }\n return [...document.querySelectorAll(...arguments)];\n}\n\nfunction keywordHighlight(text) {\n [\n '(new|throw|let|const|var|typeof|instanceof|in|of|import|case|extends|delete)(\\\\s)',\n '(function|class|try|catch|finally|do|else)(\\\\s|{)',\n '(for|while|if)(\\\\s|\\\\()',\n '(return|break|continue)(\\\\s|;)',\n ].forEach((matcher) => {\n const regex = new RegExp(matcher, 'g');\n if (regex.test(text)) {\n text = text.replace(regex, (...args) => {\n const [, keyword, extra] = args;\n return `${keyword}${extra}`;\n });\n }\n });\n return text;\n}\n\nfunction methodHighlight(text) {\n text = text.replace(\n /(\\.)([^;:'\",.())?|\\\\/^*@%#!~+-[\\]{}=]+)(\\()/g,\n (...args) => {\n const [, dot, method, brace] = args;\n return `${dot}${method}${brace}`;\n }\n );\n return text;\n}\n\nfunction suppressComments(text) {\n text = text.replace(\n /\\/\\/[^\\n]+/g,\n (comment) => `${comment}`\n );\n return text;\n}\n\nfunction highlightFatArrow(text) {\n text = text.replace(\n /\\s=>\\s/g,\n (fatArrow) => `${fatArrow}`\n );\n return text;\n}\n\nfunction highlightString(text) {\n text = text.replace(\n /['\"`].*['\"`]/g,\n (str) => `${str.replace(/\\//g, '/')}`\n );\n return text;\n}\n\nfunction jsHighlight(text) {\n text = highlightString(text);\n text = keywordHighlight(text);\n text = methodHighlight(text);\n text = suppressComments(text);\n text = highlightFatArrow(text);\n return text;\n}\n\nfunction renderDecorators() {\n q('code pre').forEach((decorator) => {\n let html = decorator.innerHTML;\n const pattern = html.match(/^\\s+/);\n const originalIndent = pattern && pattern[0].length;\n html = html\n .split('\\n')\n .map((codePart) => {\n return codePart.substring(originalIndent);\n })\n .join('\\n');\n decorator.innerHTML = jsHighlight(html.trim());\n });\n}\n\nfunction renderVersion() {\n q('.version').forEach(\n (el) => (el.querySelector('span').textContent = pkg.version)\n );\n}\n\nfunction initializeRouting() {\n q('#checkHash').forEach((el) => {\n el.checked = window.sessionStorage.getItem('checkedStatus') === '1';\n });\n const router = new Router();\n let childRouter = router;\n router.subscribe((e) => {\n const eventRoute =\n location.hostname === 'scssyworks.github.io'\n ? e.route.replace(/\\/silkrouter\\//, '/')\n : e.route;\n q('[data-route]').forEach((el) => {\n el.classList.remove('active');\n const elRoute = el.getAttribute('data-route');\n if (elRoute === '/' && eventRoute === elRoute) {\n el.classList.add('active');\n } else if (elRoute !== '/' && eventRoute.includes(elRoute)) {\n el.classList.add('active');\n }\n });\n q('[data-section]').forEach((el) => {\n el.classList.add('d-none');\n const elSection = el.getAttribute('data-section');\n if (elSection === '/' && eventRoute === elSection) {\n el.classList.remove('d-none');\n } else if (elSection !== '/' && eventRoute.includes(elSection)) {\n el.classList.remove('d-none');\n }\n });\n q(\n '.params-data, .query-next-step, .query-data, .data-next-step, .state-data, .pass-data-tutorial'\n ).forEach((el) => {\n el.classList.add('d-none');\n });\n });\n const paramsRoute =\n location.hostname === 'scssyworks.github.io'\n ? '/silkrouter/tab3/:firstname/:lastname'\n : '/tab3/:firstname/:lastname';\n router.pipe(route(paramsRoute), deparam(true)).subscribe((e) => {\n q('.params-data pre').forEach((el) => {\n el.textContent = JSON.stringify(e.params, null, 2);\n });\n q('.params-data, .query-next-step').forEach((el) => {\n el.classList.remove('d-none');\n });\n if (Object.keys(e.search).length) {\n q('.query-data').forEach((el) => {\n el.querySelector('pre').textContent = JSON.stringify(e.search, null, 2);\n el.classList.remove('d-none');\n });\n q('.data-next-step').forEach((el) => {\n el.classList.remove('d-none');\n });\n }\n if (e.data) {\n q('.state-data').forEach((el) => {\n el.querySelector('pre').textContent = e.data;\n el.classList.remove('d-none');\n });\n q('.pass-data-tutorial').forEach((el) => {\n el.classList.remove('d-none');\n });\n }\n });\n document.addEventListener('click', (e) => {\n q('[data-route]').forEach((el) => {\n if (el.contains(e.target)) {\n const isRelative = el.hasAttribute('data-relative');\n let route =\n isRelative && q('#checkHash:checked').length === 0\n ? el.closest('section').getAttribute('data-section') +\n el.getAttribute('data-route')\n : el.getAttribute('data-route');\n if (location.hostname === 'scssyworks.github.io') {\n route = `/silkrouter${route}`;\n }\n if (isRelative) {\n if (\n location.hostname === 'scssyworks.github.io' &&\n childRouter.config.hashRouting\n ) {\n route = route.replace(/\\/silkrouter\\//, '/');\n }\n childRouter.set(route);\n } else {\n router.set(route);\n }\n }\n });\n q('.btn-primary.clear-session').forEach((el) => {\n if (el.contains(e.target)) {\n window.sessionStorage.clear();\n window.location.href =\n location.hostname === 'scssyworks.github.io'\n ? '/silkrouter/tab2/'\n : '/tab2/';\n }\n });\n q('.append-param').forEach((el) => {\n if (el.contains(e.target)) {\n router.set(\n `${\n location.hostname === 'scssyworks.github.io' ? '/silkrouter' : ''\n }/tab3/john/doe`\n );\n }\n });\n q('.append-query').forEach((el) => {\n if (el.contains(e.target)) {\n router.set({\n route: `${\n location.hostname === 'scssyworks.github.io' ? '/silkrouter' : ''\n }/tab3/john/doe`,\n queryString: 'q=HelloWorld',\n });\n }\n });\n q('.append-data').forEach((el) => {\n if (el.contains(e.target)) {\n router.set({\n route: `${\n location.hostname === 'scssyworks.github.io' ? '/silkrouter' : ''\n }/tab3/john/doe`,\n queryString: 'q=HelloWorld',\n data: 'Hi there!',\n });\n }\n });\n });\n q('#checkHash').forEach((el) => {\n el.addEventListener('change', () => {\n window.sessionStorage.setItem(\n 'checkedStatus',\n `${q('#checkHash:checked').length}`\n );\n window.location.href = `${\n location.hostname === 'scssyworks.github.io' ? '/silkrouter' : ''\n }/tab2/`;\n });\n });\n if (q('#checkHash:checked').length) {\n const hashRouter = new Router({\n hashRouting: true,\n preservePath: true,\n });\n hashRouter.subscribe((e) => {\n q('[data-route][data-relative]').forEach((el) => {\n el.classList.remove('active');\n if (e.route.includes(el.getAttribute('data-route'))) {\n el.classList.add('active');\n }\n });\n });\n childRouter = hashRouter;\n }\n}\n\nfunction setGlobals() {\n window.Router = Router;\n window.route = route;\n window.deparam = deparam;\n window.noMatch = noMatch;\n window.cache = cache;\n}\n\ninitializeRouting();\nrenderDecorators();\nrenderVersion();\nsetGlobals();\n"],"names":["assign","Object","Symbol_observable","higherOrderRefCount","Symbol_iterator","POP_STATE","REG_ROUTE_PARAMS","REG_PATHNAME","HISTORY_UNSUPPORTED","INVALID_ROUTE","VIRTUAL_PUSHSTATE","CACHED_FIELDS","AMP","QRY","EMPTY","UNDEF","TYPEOF_STR","TYPEOF_BOOL","_typeof","TYPEOF_UNDEF","TYPEOF_FUNC","STATE","PUSH","REPLACE","getGlobal","globalThis","global","self","isArr","Array","isArray","oKeys","keys","trim","str","isValidRoute","route","test","each","arrayObj","callback","isObject","i","length","key","cont","isNumber","trigger","target","eventType","data","from","Node","el","customEvent","CustomEvent","bubbles","cancelable","detail","dispatchEvent","RouterEvent","routeInfo","currentEvent","routeObject","originalEvent","routerInstance","config","location","history","path","hashRouting","hash","virtualEvent","pathname","search","substring","hashSearch","split","state","collate","observable","Observable","subscriber","subn","subscribe","next","event","error","complete","unsubscribe","getPath","isHash","bindRouterEvents","inst","context","popStateSubscription","fromEvent","e","listeners","pipe","apply","set","encode","encodeURIComponent","buildQuery","qsList","obj","prop","obKey","push","toQueryString","join","resolveQuery","queryString","existingQuery","deparam","replace","exec","preservePath","routeStr","preserveQuery","pageTitle","routeParts","unmodifiedRoute","TypeError","callOnce","isDone","init","Router","document","Error","freeze","body","__paths__","ops","props","extractParams","expr","params","pathRegex","RegExp","lastIndex","match","map","values","shift","index","ignoreCase","paths","indexOf","incomingRoute","toLowerCase","paramsLength","existingRouteIndex","splice","coerce","queryDeparam","noMatch","currentRoute","deepComparison","first","second","result","cache","deep","q","selector","elArray","selectorPart","forEach","selected","querySelectorAll","includes","arguments","keywordHighlight","text","matcher","regex","args","keyword","extra","methodHighlight","dot","method","brace","suppressComments","comment","highlightFatArrow","fatArrow","highlightString","jsHighlight","renderDecorators","decorator","html","innerHTML","pattern","originalIndent","codePart","renderVersion","querySelector","textContent","pkg","version","initializeRouting","checked","window","sessionStorage","getItem","router","childRouter","eventRoute","hostname","classList","remove","elRoute","getAttribute","add","elSection","paramsRoute","JSON","stringify","addEventListener","contains","isRelative","hasAttribute","closest","clear","href","setItem","hashRouter","setGlobals"],"mappings":"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"} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index f27aae3..80d5d1a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -30,6 +30,9 @@ "rollup-plugin-serve": "^2.0.0", "rollup-plugin-terser": "^7.0.2", "rxjs": "^7.5.6" + }, + "peerDependencies": { + "rxjs": "^7.5.6" } }, "node_modules/@ampproject/remapping": { diff --git a/src/js/api/bindRouterEvents/index.js b/src/js/api/bindRouterEvents/index.js index 8191c42..8faba80 100644 --- a/src/js/api/bindRouterEvents/index.js +++ b/src/js/api/bindRouterEvents/index.js @@ -1,32 +1,24 @@ import { fromEvent } from 'rxjs'; -import { POP_STATE, QRY, VIRTUAL_PUSHSTATE } from '../../utils/constants'; +import { POP_STATE, VIRTUAL_PUSHSTATE } from '../../utils/constants'; import { trigger } from '../../utils/triggerEvent'; import collate from '../collate'; -import { trim } from '../../utils/utils'; import { getGlobal } from '../../utils/getGlobal'; +import { getPath } from '../../utils/getPath'; -export default function bindRouterEvents() { - const { context, location, hashRouting } = this.config; - this.popStateSubscription = fromEvent(getGlobal(), POP_STATE).subscribe( +export default function bindRouterEvents(inst) { + const { context, location, hashRouting: hash } = inst.config; + inst.popStateSubscription = fromEvent(getGlobal(), POP_STATE).subscribe( (e) => { - const path = trim( - hashRouting - ? location.hash.substring(1).split(QRY)[0] - : location.pathname - ); + const path = getPath(hash, location); if (path) { - trigger(context, VIRTUAL_PUSHSTATE, [ - { path, hash: hashRouting }, - e, - this, - ]); + trigger(context, VIRTUAL_PUSHSTATE, [{ path, hash }, e, inst]); } } ); - this.listeners = fromEvent(context, VIRTUAL_PUSHSTATE).pipe( - collate.apply(this) + inst.listeners = fromEvent(context, VIRTUAL_PUSHSTATE).pipe( + collate.apply(inst) ); - if (hashRouting && !location.hash) { - this.set('/', true, false); // Replace current hash path without executing anythings + if (hash && !location.hash) { + inst.set('/', true, false); // Replace current hash path without executing anythings } } diff --git a/src/js/api/callOnce/index.js b/src/js/api/callOnce/index.js index fbbbb5e..d6fbac0 100644 --- a/src/js/api/callOnce/index.js +++ b/src/js/api/callOnce/index.js @@ -1,13 +1,11 @@ import { Observable } from 'rxjs'; -import { QRY, UNDEF } from '../../utils/constants'; -import { trim } from '../../utils/utils'; +import { UNDEF } from '../../utils/constants'; +import { getPath } from '../../utils/getPath'; import RouterEvent from '../routerEvent'; export default function callOnce(isDone) { const { hashRouting: hash, location, init } = this.config; - const path = trim( - hash ? location.hash.substring(1).split(QRY)[0] : location.pathname - ); + const path = getPath(hash, location); return (observable) => new Observable((subscriber) => { const subn = observable.subscribe(subscriber); diff --git a/src/js/api/resolveQuery/index.js b/src/js/api/resolveQuery/index.js index 2ce4b1f..43dae7a 100644 --- a/src/js/api/resolveQuery/index.js +++ b/src/js/api/resolveQuery/index.js @@ -13,9 +13,9 @@ import { QRY } from '../../utils/constants'; export default function resolveQuery(queryString, hashRouting) { const { location } = this.config; const search = trim(location.search && location.search.substring(1)); - const existingQuery = hashRouting - ? trim(location.hash.split(QRY)[1]) - : trim(search); + const existingQuery = trim( + hashRouting ? location.hash.split(QRY)[1] : search + ); if (!existingQuery) return queryString; return toQueryString( assign(deparam(search), deparam(existingQuery), deparam(queryString)) diff --git a/src/js/api/router/index.js b/src/js/api/router/index.js index 8339472..11637a6 100644 --- a/src/js/api/router/index.js +++ b/src/js/api/router/index.js @@ -25,13 +25,13 @@ export default class Router { ) ); this.__paths__ = []; - bindRouterEvents.apply(this); + bindRouterEvents(this); } pipe(...ops) { return this.listeners.pipe(callOnce.apply(this), ...ops); } subscribe(...fns) { - return this.listeners.pipe(callOnce.apply(this)).subscribe(...fns); + return this.pipe().subscribe(...fns); } set(...props) { return set.apply(this, props); diff --git a/src/js/index.js b/src/js/index.js index a7f5b11..9800878 100644 --- a/src/js/index.js +++ b/src/js/index.js @@ -1,5 +1,4 @@ -import './utils/polyfills'; -import Router from './api/router'; -import * as operators from './operators'; +import Router from "./api/router"; +import * as operators from "./operators"; export { Router, operators }; diff --git a/src/js/utils/assign.js b/src/js/utils/assign.js index 277081b..6a92813 100644 --- a/src/js/utils/assign.js +++ b/src/js/utils/assign.js @@ -1,29 +1,8 @@ -import { isObject } from "deparam.js"; -import { each } from "./utils"; - /** - * Inner loop function for assign - * @private - * @param {object} ref Argument object - * @param {object} target First object - */ -function loopFunc(ref, target) { - if (isObject(ref)) { - each(ref, (prop, key) => { - target[key] = prop; - }); - } -} - -/** - * Polyfill for Object.assign only smaller and with less features + * Function to extend an object with new and updated properties * @private * @returns {object} */ export function assign(...args) { - const target = isObject(args[0]) ? args[0] : {}; - each(args, (arg) => { - loopFunc(arg, target); - }); - return target; + return Object.assign(...args); } diff --git a/src/js/utils/constants.js b/src/js/utils/constants.js index 3a516f5..0ad3727 100644 --- a/src/js/utils/constants.js +++ b/src/js/utils/constants.js @@ -8,8 +8,7 @@ export const REG_COMPLEX = /\[/; export const REG_VARIABLE = /([^[]+)\[([^[]*)\]/; export const REG_REPLACE_BRACKETS = /\[([^[]*)\]/; export const REG_REPLACE_NEXTPROP = /[^[]+/; -export const HISTORY_UNSUPPORTED = - 'Current browser does not support history object'; +export const HISTORY_UNSUPPORTED = 'History unsupported!'; export const INVALID_ROUTE = 'Route string is not a pure route'; export const VIRTUAL_PUSHSTATE = 'vpushstate'; export const CACHED_FIELDS = [ diff --git a/src/js/utils/getPath.js b/src/js/utils/getPath.js new file mode 100644 index 0000000..19cb370 --- /dev/null +++ b/src/js/utils/getPath.js @@ -0,0 +1,8 @@ +import { QRY } from './constants'; +import { trim } from './utils'; + +export const getPath = (isHash, location) => { + return trim( + isHash ? location.hash.substring(1).split(QRY)[0] : location.pathname + ); +}; diff --git a/src/js/utils/polyfills.js b/src/js/utils/polyfills.js deleted file mode 100644 index 6bf2690..0000000 --- a/src/js/utils/polyfills.js +++ /dev/null @@ -1,37 +0,0 @@ -import { TYPEOF_UNDEF, UNDEF } from './constants'; -import { getGlobal } from './getGlobal'; -import { each, isArr } from './utils'; - -// Polyfill custom event -const g = getGlobal(); -if (typeof g.CustomEvent === TYPEOF_UNDEF) { - const CustomEvent = function (event, params) { - params = params || { bubbles: false, cancelable: false, detail: UNDEF }; - const evt = document.createEvent('CustomEvent'); - evt.initCustomEvent( - event, - params.bubbles, - params.cancelable, - params.detail - ); - return evt; - }; - - CustomEvent.prototype = g.Event.prototype; - g.CustomEvent = CustomEvent; -} - -// Polyfill Array.from - -if (!Array.from) { - Array.from = function (arrayLike) { - if (isArr(arrayLike)) { - return arrayLike; - } - const arr = []; - each(arrayLike, (value) => { - arr.push(value); - }); - return arr; - }; -} diff --git a/src/js/utils/query.js b/src/js/utils/query.js index b42185b..822abd5 100644 --- a/src/js/utils/query.js +++ b/src/js/utils/query.js @@ -1,6 +1,8 @@ -import { isObject } from "deparam.js"; -import { AMP, EMPTY, TYPEOF_FUNC, TYPEOF_STR } from "./constants"; -import { each, isArr } from "./utils"; +import { isObject } from 'deparam.js'; +import { AMP, EMPTY, TYPEOF_FUNC, TYPEOF_STR } from './constants'; +import { each, isArr } from './utils'; + +export const encode = encodeURIComponent; /** * Builds query string recursively @@ -15,7 +17,7 @@ function buildQuery(qsList, key, obj) { buildQuery(qsList, `${key}[${isArr(obj) ? EMPTY : obKey}]`, prop); }); } else if (typeof obj !== TYPEOF_FUNC) { - qsList.push(`${encodeURIComponent(key)}=${encodeURIComponent(obj)}`); + qsList.push(`${encode(key)}=${encode(obj)}`); } } diff --git a/src/js/utils/triggerEvent.js b/src/js/utils/triggerEvent.js index e8cd7aa..a978291 100644 --- a/src/js/utils/triggerEvent.js +++ b/src/js/utils/triggerEvent.js @@ -2,8 +2,6 @@ import { TYPEOF_STR } from './constants'; import { getGlobal } from './getGlobal'; import { each } from './utils'; -const g = getGlobal(); - /** * Function to trigger custom event * @param {Node|NodeList|HTMLCollection|Node[]} target Target element or list @@ -14,7 +12,7 @@ export function trigger(target, eventType, data) { target = Array.from(target instanceof Node ? [target] : target); if (target.length && typeof eventType === TYPEOF_STR) { each(target, (el) => { - const customEvent = new g.CustomEvent(eventType, { + const customEvent = new getGlobal().CustomEvent(eventType, { bubbles: true, cancelable: true, detail: data || [], diff --git a/src/js/utils/utils.js b/src/js/utils/utils.js index 3fa0784..7a52971 100644 --- a/src/js/utils/utils.js +++ b/src/js/utils/utils.js @@ -1,5 +1,5 @@ -import { isNumber, isObject } from "deparam.js"; -import { EMPTY, REG_PATHNAME, TYPEOF_BOOL, TYPEOF_STR } from "./constants"; +import { isNumber, isObject } from 'deparam.js'; +import { EMPTY, REG_PATHNAME, TYPEOF_BOOL, TYPEOF_STR } from './constants'; /** * Shorthand for Array.isArray @@ -25,7 +25,7 @@ export function trim(str) { * @param {string} route Route string */ export function isValidRoute(route) { - return typeof route === TYPEOF_STR && REG_PATHNAME.test(route); + return REG_PATHNAME.test(route); } /** diff --git a/tests/assign.test.js b/tests/assign.test.js deleted file mode 100644 index 092ab03..0000000 --- a/tests/assign.test.js +++ /dev/null @@ -1,42 +0,0 @@ -import { assign } from '../src/js/utils/assign'; - -describe('Assign module', () => { - test('should assign properties to empty object', () => { - const emptyObject = {}; - assign(emptyObject, { prop1: 'Hello World' }); - expect(emptyObject).toEqual({ prop1: 'Hello World' }); - }); - test('should combine properties to first object and second object', () => { - const firstObject = { prop1: 'Prop 1' }; - assign(firstObject, { prop2: 'Prop 2' }); - expect(firstObject).toEqual({ prop1: 'Prop 1', prop2: 'Prop 2' }); - }); - test('should return the resultant object after assign', () => { - const firstObject = { prop1: 'Prop 1' }; - const result = assign(firstObject, { prop2: 'Prop 2' }); - expect(result).toEqual({ prop1: 'Prop 1', prop2: 'Prop 2' }); - }); - test('should replace the property value with value of second object if there is a collision between properties', () => { - const firstObject = { prop1: 'Prop 1' }; - const result = assign(firstObject, { prop1: 'New Prop 1', prop2: 'Prop 2' }); - expect(result).toEqual({ prop1: 'New Prop 1', prop2: 'Prop 2' }); - }); - test('should allow multiple assignments', () => { - const firstObject = { prop1: 'Prop 1' }; - const result = assign(firstObject, { prop1: 'New Prop 1' }, { prop2: 'Prop 2' }); - expect(result).toEqual({ prop1: 'New Prop 1', prop2: 'Prop 2' }); - }); - test('should resolve to valid object if first argument is undefined', () => { - const firstObject = undefined; - const result = assign(firstObject, { prop1: 'New Prop 1' }, { prop2: 'Prop 2' }); - expect(result).toEqual({ prop1: 'New Prop 1', prop2: 'Prop 2' }); - }); - test('should resolve to valid object if any of the other values are undefined', () => { - const firstObject = undefined; - const result = assign(firstObject, { prop1: 'New Prop 1' }, undefined); - expect(result).toEqual({ prop1: 'New Prop 1' }); - }); - test('should return an empty object is no arguments are passed', () => { - expect(assign()).toEqual({}); - }); -}); \ No newline at end of file diff --git a/tests/utils.test.js b/tests/utils.test.js new file mode 100644 index 0000000..04d55a0 --- /dev/null +++ b/tests/utils.test.js @@ -0,0 +1,25 @@ +import { isValidRoute, trim } from '../src/js/utils/utils'; + +describe('Utils', () => { + describe('trim', () => { + it('should trim text', () => { + expect(trim(' test ')).toBe('test'); + }); + it('should return empty string if input value is invalid', () => { + expect(trim(null)).toBe(''); + }); + }); + + describe('isValidRoute', () => { + it('should return true of route is valid', () => { + expect(isValidRoute('/test/path')).toBeTruthy(); + }); + it('should return false of route is INVALID', () => { + expect(isValidRoute('test/path')).toBeFalsy(); + }); + it('should return false of route is UNDEFINED or NULL', () => { + expect(isValidRoute()).toBeFalsy(); + expect(isValidRoute(null)).toBeFalsy(); + }); + }); +});