diff --git a/UI/WebServerResources/js/vendor/angular-ui-router.js b/UI/WebServerResources/js/vendor/angular-ui-router.js index 0766feb94..e30025c41 100644 --- a/UI/WebServerResources/js/vendor/angular-ui-router.js +++ b/UI/WebServerResources/js/vendor/angular-ui-router.js @@ -4,7 +4,7 @@ * This causes it to be incompatible with plugins that depend on @uirouter/core. * We recommend switching to the ui-router-core.js and ui-router-angularjs.js bundles instead. * For more information, see https://ui-router.github.io/blog/uirouter-for-angularjs-umd-bundles - * @version v1.0.30 + * @version v1.1.2 * @link https://ui-router.github.io * @license MIT License, http://www.opensource.org/licenses/MIT */ @@ -25,12 +25,14 @@ * * @packageDocumentation */ - var __spreadArrays = (undefined && undefined.__spreadArrays) || function () { - for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length; - for (var r = Array(s), k = 0, i = 0; i < il; i++) - for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) - r[k] = a[j]; - return r; + var __spreadArray = (undefined && undefined.__spreadArray) || function (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)); }; /** * Returns a new function for [Partial Application](https://en.wikipedia.org/wiki/Partial_application) of the original function. @@ -79,7 +81,7 @@ return fn.apply(this, arguments); } var args = Array.prototype.slice.call(arguments); - return curried.bind.apply(curried, __spreadArrays([this], args)); + return curried.bind.apply(curried, __spreadArray([this], args, false)); }; } /** @@ -139,13 +141,15 @@ * Given a function that returns a truthy or falsey value, returns a * function that returns the opposite (falsey or truthy) value given the same inputs */ - var not = function (fn) { return function () { - var args = []; - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; - } - return !fn.apply(null, args); - }; }; + var not = function (fn) { + return function () { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + return !fn.apply(null, args); + }; + }; /** * Given two functions that return truthy or falsey values, returns a function that returns truthy * if both functions return truthy for the given arguments @@ -182,13 +186,19 @@ // tslint:disable-next-line:variable-name var any = function (fn1) { return function (arr) { return arr.reduce(function (b, x) { return b || !!fn1(x); }, false); }; }; /** Given a class, returns a Predicate function that returns true if the object is of that class */ - var is = function (ctor) { return function (obj) { - return (obj != null && obj.constructor === ctor) || obj instanceof ctor; - }; }; + var is = function (ctor) { + return function (obj) { + return (obj != null && obj.constructor === ctor) || obj instanceof ctor; + }; + }; /** Given a value, returns a Predicate function that returns true if another value is === equal to the original value */ var eq = function (value) { return function (other) { return value === other; }; }; /** Given a value, returns a function which returns the value */ - var val = function (v) { return function () { return v; }; }; + var val = function (v) { + return function () { + return v; + }; + }; function invoke(fnName, args) { return function (obj) { return obj[fnName].apply(obj, args); }; } @@ -283,22 +293,24 @@ var isPromise = and(isObject, pipe(prop('then'), isFunction)); var noImpl = function (fnname) { return function () { - throw new Error("No implementation for " + fnname + ". The framework specific code did not implement this method."); + throw new Error("No implementation for ".concat(fnname, ". The framework specific code did not implement this method.")); }; }; var makeStub = function (service, methods) { - return methods.reduce(function (acc, key) { return ((acc[key] = noImpl(service + "." + key + "()")), acc); }, {}); + return methods.reduce(function (acc, key) { return ((acc[key] = noImpl("".concat(service, ".").concat(String(key), "()"))), acc); }, {}); }; var services = { $q: undefined, $injector: undefined, }; - var __spreadArrays$1 = (undefined && undefined.__spreadArrays) || function () { - for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length; - for (var r = Array(s), k = 0, i = 0; i < il; i++) - for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) - r[k] = a[j]; - return r; + var __spreadArray$1 = (undefined && undefined.__spreadArray) || function (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)); }; var root = (typeof self === 'object' && self.self === self && self) || (typeof global === 'object' && global.global === global && global) || @@ -427,7 +439,7 @@ for (var _i = 1; _i < arguments.length; _i++) { defaultsList[_i - 1] = arguments[_i]; } - var defaultVals = extend.apply(void 0, __spreadArrays$1([{}], defaultsList.reverse())); + var defaultVals = extend.apply(void 0, __spreadArray$1([{}], defaultsList.reverse(), false)); return extend(defaultVals, pick(opts || {}, Object.keys(defaultVals))); } /** Reduce function that merges each element of the list into a single object, using extend */ @@ -1049,7 +1061,7 @@ var detailString = function (d) { return (d && d.toString !== Object.prototype.toString ? d.toString() : stringify(d)); }; var detail = detailString(this.detail); var _a = this, $id = _a.$id, type = _a.type, message = _a.message; - return "Transition Rejection($id: " + $id + " type: " + type + ", message: " + message + ", detail: " + detail + ")"; + return "Transition Rejection($id: ".concat($id, " type: ").concat(type, ", message: ").concat(message, ", detail: ").concat(detail, ")"); }; Rejection.prototype.toPromise = function () { return extend(silentRejection(this), { _transitionRejection: this }); @@ -1263,12 +1275,12 @@ if (!uiview) return 'ui-view (defunct)'; var state = uiview.creationContext ? uiview.creationContext.name || '(root)' : '(none)'; - return "[ui-view#" + uiview.id + " " + uiview.$type + ":" + uiview.fqn + " (" + uiview.name + "@" + state + ")]"; + return "[ui-view#".concat(uiview.id, " ").concat(uiview.$type, ":").concat(uiview.fqn, " (").concat(uiview.name, "@").concat(state, ")]"); } var viewConfigString = function (viewConfig) { var view = viewConfig.viewDecl; var state = view.$context.name || '(root)'; - return "[View#" + viewConfig.$id + " from '" + state + "' state]: target ui-view: '" + view.$uiViewName + "@" + view.$uiViewContextAnchor + "'"; + return "[View#".concat(viewConfig.$id, " from '").concat(state, "' state]: target ui-view: '").concat(view.$uiViewName, "@").concat(view.$uiViewContextAnchor, "'"); }; function normalizedCat(input) { return isNumber(input) ? exports.Category[input] : exports.Category[exports.Category[input]]; @@ -1296,7 +1308,7 @@ })(exports.Category || (exports.Category = {})); var _tid = parse('$id'); var _rid = parse('router.$id'); - var transLbl = function (trans) { return "Transition #" + _tid(trans) + "-" + _rid(trans); }; + var transLbl = function (trans) { return "Transition #".concat(_tid(trans), "-").concat(_rid(trans)); }; /** * Prints UI-Router Transition trace information to the console. */ @@ -1348,69 +1360,69 @@ Trace.prototype.traceTransitionStart = function (trans) { if (!this.enabled(exports.Category.TRANSITION)) return; - safeConsole.log(transLbl(trans) + ": Started -> " + stringify(trans)); + safeConsole.log("".concat(transLbl(trans), ": Started -> ").concat(stringify(trans))); }; /** @internal called by ui-router code */ Trace.prototype.traceTransitionIgnored = function (trans) { if (!this.enabled(exports.Category.TRANSITION)) return; - safeConsole.log(transLbl(trans) + ": Ignored <> " + stringify(trans)); + safeConsole.log("".concat(transLbl(trans), ": Ignored <> ").concat(stringify(trans))); }; /** @internal called by ui-router code */ Trace.prototype.traceHookInvocation = function (step, trans, options) { if (!this.enabled(exports.Category.HOOK)) return; var event = parse('traceData.hookType')(options) || 'internal', context = parse('traceData.context.state.name')(options) || parse('traceData.context')(options) || 'unknown', name = functionToString(step.registeredHook.callback); - safeConsole.log(transLbl(trans) + ": Hook -> " + event + " context: " + context + ", " + maxLength(200, name)); + safeConsole.log("".concat(transLbl(trans), ": Hook -> ").concat(event, " context: ").concat(context, ", ").concat(maxLength(200, name))); }; /** @internal called by ui-router code */ Trace.prototype.traceHookResult = function (hookResult, trans, transitionOptions) { if (!this.enabled(exports.Category.HOOK)) return; - safeConsole.log(transLbl(trans) + ": <- Hook returned: " + maxLength(200, stringify(hookResult))); + safeConsole.log("".concat(transLbl(trans), ": <- Hook returned: ").concat(maxLength(200, stringify(hookResult)))); }; /** @internal called by ui-router code */ Trace.prototype.traceResolvePath = function (path, when, trans) { if (!this.enabled(exports.Category.RESOLVE)) return; - safeConsole.log(transLbl(trans) + ": Resolving " + path + " (" + when + ")"); + safeConsole.log("".concat(transLbl(trans), ": Resolving ").concat(path, " (").concat(when, ")")); }; /** @internal called by ui-router code */ Trace.prototype.traceResolvableResolved = function (resolvable, trans) { if (!this.enabled(exports.Category.RESOLVE)) return; - safeConsole.log(transLbl(trans) + ": <- Resolved " + resolvable + " to: " + maxLength(200, stringify(resolvable.data))); + safeConsole.log("".concat(transLbl(trans), ": <- Resolved ").concat(resolvable, " to: ").concat(maxLength(200, stringify(resolvable.data)))); }; /** @internal called by ui-router code */ Trace.prototype.traceError = function (reason, trans) { if (!this.enabled(exports.Category.TRANSITION)) return; - safeConsole.log(transLbl(trans) + ": <- Rejected " + stringify(trans) + ", reason: " + reason); + safeConsole.log("".concat(transLbl(trans), ": <- Rejected ").concat(stringify(trans), ", reason: ").concat(reason)); }; /** @internal called by ui-router code */ Trace.prototype.traceSuccess = function (finalState, trans) { if (!this.enabled(exports.Category.TRANSITION)) return; - safeConsole.log(transLbl(trans) + ": <- Success " + stringify(trans) + ", final state: " + finalState.name); + safeConsole.log("".concat(transLbl(trans), ": <- Success ").concat(stringify(trans), ", final state: ").concat(finalState.name)); }; /** @internal called by ui-router code */ Trace.prototype.traceUIViewEvent = function (event, viewData, extra) { if (extra === void 0) { extra = ''; } if (!this.enabled(exports.Category.UIVIEW)) return; - safeConsole.log("ui-view: " + padString(30, event) + " " + uiViewString(viewData) + extra); + safeConsole.log("ui-view: ".concat(padString(30, event), " ").concat(uiViewString(viewData)).concat(extra)); }; /** @internal called by ui-router code */ Trace.prototype.traceUIViewConfigUpdated = function (viewData, context) { if (!this.enabled(exports.Category.UIVIEW)) return; - this.traceUIViewEvent('Updating', viewData, " with ViewConfig from context='" + context + "'"); + this.traceUIViewEvent('Updating', viewData, " with ViewConfig from context='".concat(context, "'")); }; /** @internal called by ui-router code */ Trace.prototype.traceUIViewFill = function (viewData, html) { if (!this.enabled(exports.Category.UIVIEW)) return; - this.traceUIViewEvent('Fill', viewData, " with: " + maxLength(200, html)); + this.traceUIViewEvent('Fill', viewData, " with: ".concat(maxLength(200, html))); }; /** @internal called by ui-router code */ Trace.prototype.traceViewSync = function (pairs) { @@ -1423,7 +1435,7 @@ var _b; var uiView = _a.uiView, viewConfig = _a.viewConfig; var uiv = uiView && uiView.fqn; - var cfg = viewConfig && viewConfig.viewDecl.$context.name + ": (" + viewConfig.viewDecl.$name + ")"; + var cfg = viewConfig && "".concat(viewConfig.viewDecl.$context.name, ": (").concat(viewConfig.viewDecl.$name, ")"); return _b = {}, _b[uivheader] = uiv, _b[cfgheader] = cfg, _b; }) .sort(function (a, b) { return (a[uivheader] || '').localeCompare(b[uivheader] || ''); }); @@ -1433,13 +1445,13 @@ Trace.prototype.traceViewServiceEvent = function (event, viewConfig) { if (!this.enabled(exports.Category.VIEWCONFIG)) return; - safeConsole.log("VIEWCONFIG: " + event + " " + viewConfigString(viewConfig)); + safeConsole.log("VIEWCONFIG: ".concat(event, " ").concat(viewConfigString(viewConfig))); }; /** @internal called by ui-router code */ Trace.prototype.traceViewServiceUIViewEvent = function (event, viewData) { if (!this.enabled(exports.Category.VIEWCONFIG)) return; - safeConsole.log("VIEWCONFIG: " + event + " " + uiViewString(viewData)); + safeConsole.log("VIEWCONFIG: ".concat(event, " ").concat(uiViewString(viewData))); }; return Trace; }()); @@ -1513,7 +1525,7 @@ return sub.substr(1, sub.length - 2); }; ParamType.prototype.toString = function () { - return "{ParamType:" + this.name + "}"; + return "{ParamType:".concat(this.name, "}"); }; /** Given an encoded string, or a decoded object, returns a decoded object */ ParamType.prototype.$normalize = function (val) { @@ -1623,7 +1635,7 @@ } function getType(cfg, urlType, location, id, paramTypes) { if (cfg.type && urlType && urlType.name !== 'string') - throw new Error("Param '" + id + "' has two type configurations."); + throw new Error("Param '".concat(id, "' has two type configurations.")); if (cfg.type && urlType && urlType.name === 'string' && paramTypes.type(cfg.type)) return paramTypes.type(cfg.type); if (urlType) @@ -1649,7 +1661,7 @@ return defaultPolicy; if (squash === true || isString(squash)) return squash; - throw new Error("Invalid squash policy: '" + squash + "'. Valid policies: false, true, or arbitrary string"); + throw new Error("Invalid squash policy: '".concat(squash, "'. Valid policies: false, true, or arbitrary string")); } function getReplace(config, arrayMode, isOptional, squash) { var defaultPolicy = [ @@ -1745,7 +1757,7 @@ throw new Error('Injectable functions cannot be called at configuration time'); var defaultValue = services.$injector.invoke(_this.config.$$fn); if (defaultValue !== null && defaultValue !== undefined && !_this.type.is(defaultValue)) - throw new Error("Default value (" + defaultValue + ") for parameter '" + _this.id + "' is not an instance of ParamType (" + _this.type.name + ")"); + throw new Error("Default value (".concat(defaultValue, ") for parameter '").concat(_this.id, "' is not an instance of ParamType (").concat(_this.type.name, ")")); if (_this.config.$$fn['__cacheable']) { _this._defaultValueCache = { defaultValue: defaultValue }; } @@ -1778,7 +1790,7 @@ return !(isString(encoded) && !this.type.pattern.exec(encoded)); }; Param.prototype.toString = function () { - return "{Param:" + this.id + " " + this.type + " squash: '" + this.squash + "' optional: " + this.isOptional + "}"; + return "{Param:".concat(this.id, " ").concat(this.type, " squash: '").concat(this.squash, "' optional: ").concat(this.isOptional, "}"); }; return Param; }()); @@ -1837,7 +1849,7 @@ if (!isDefined(definition)) return this.types[name]; if (this.types.hasOwnProperty(name)) - throw new Error("A type named '" + name + "' has already been defined."); + throw new Error("A type named '".concat(name, "' has already been defined.")); this.types[name] = new ParamType(extend({ name: name }, definition)); if (definitionFn) { this.typeQueue.push({ name: name, def: definitionFn }); @@ -1865,7 +1877,7 @@ is: is(String), pattern: /.*/, // tslint:disable-next-line:triple-equals - equals: function (a, b) { return a == b; }, + equals: function (a, b) { return a == b; }, // allow coersion for null/undefined/"" }; return extend({}, defaultTypeBase, def); }; @@ -1943,19 +1955,21 @@ * @param {Object} $to Internal definition of object representing state to transition to. */ StateParams.prototype.$inherit = function (newParams, $current, $to) { - var parentParams; var parents = ancestors($current, $to), inherited = {}, inheritList = []; for (var i in parents) { if (!parents[i] || !parents[i].params) continue; - parentParams = Object.keys(parents[i].params); - if (!parentParams.length) + var parentParams = parents[i].params; + var parentParamsKeys = Object.keys(parentParams); + if (!parentParamsKeys.length) continue; - for (var j in parentParams) { - if (inheritList.indexOf(parentParams[j]) >= 0) + for (var j in parentParamsKeys) { + if (!parentParamsKeys.hasOwnProperty(j) || + parentParams[parentParamsKeys[j]].inherit == false || + inheritList.indexOf(parentParamsKeys[j]) >= 0) continue; - inheritList.push(parentParams[j]); - inherited[parentParams[j]] = this[parentParams[j]]; + inheritList.push(parentParamsKeys[j]); + inherited[parentParamsKeys[j]] = this[parentParamsKeys[j]]; } } return extend({}, inherited, newParams); @@ -2124,15 +2138,15 @@ var base = this.options().relative; if (!this._definition && !!base) { var stateName = base.name ? base.name : base; - return "Could not resolve '" + this.name() + "' from state '" + stateName + "'"; + return "Could not resolve '".concat(this.name(), "' from state '").concat(stateName, "'"); } if (!this._definition) - return "No such state '" + this.name() + "'"; + return "No such state '".concat(this.name(), "'"); if (!this._definition.self) - return "State '" + this.name() + "' has an invalid definition"; + return "State '".concat(this.name(), "' has an invalid definition"); }; TargetState.prototype.toString = function () { - return "'" + this.name() + "'" + stringify(this.params()); + return "'".concat(this.name(), "'").concat(stringify(this.params())); }; /** * Returns a copy of this TargetState which targets a different state. @@ -2444,7 +2458,7 @@ return this.promise || this.resolve(resolveContext, trans); }; Resolvable.prototype.toString = function () { - return "Resolvable(token: " + stringify(this.token) + ", requires: [" + this.deps.map(stringify) + "])"; + return "Resolvable(token: ".concat(stringify(this.token), ", requires: [").concat(this.deps.map(stringify), "])"); }; Resolvable.prototype.clone = function () { return new Resolvable(this); @@ -2681,7 +2695,7 @@ if (!url) return null; if (!$urlMatcherFactoryProvider.isMatcher(url)) - throw new Error("Invalid url '" + url + "' in state '" + stateObject + "'"); + throw new Error("Invalid url '".concat(url, "' in state '").concat(stateObject, "'")); return parsed && parsed.root ? url : ((parent && parent.navigable) || root()).url.append(url); }; }; @@ -2896,7 +2910,7 @@ segments.pop(); if (segments.length) { if (state.parent) { - throw new Error("States that specify the 'parent:' property should not have a '.' in their name (" + name + ")"); + throw new Error("States that specify the 'parent:' property should not have a '.' in their name (".concat(name, ")")); } // 'foo.bar' return segments.join('.'); @@ -2944,7 +2958,7 @@ stateDecl.$$state = function () { return state; }; state.self = stateDecl; state.__stateObjectCache = { - nameGlob: Glob.fromString(state.name), + nameGlob: Glob.fromString(state.name), // might return null }; return state; }; @@ -3047,7 +3061,7 @@ var _states = values(this._states); var matches = _states.filter(function (_state) { return _state.__stateObjectCache.nameGlob && _state.__stateObjectCache.nameGlob.matches(name); }); if (matches.length > 1) { - safeConsole.error("stateMatcher.find: Found multiple matches for " + name + " using glob: ", matches.map(function (match) { return match.name; })); + safeConsole.error("stateMatcher.find: Found multiple matches for ".concat(name, " using glob: "), matches.map(function (match) { return match.name; })); } return matches[0]; } @@ -3055,7 +3069,7 @@ }; StateMatcher.prototype.resolvePath = function (name, base) { if (!base) - throw new Error("No reference point given for path '" + name + "'"); + throw new Error("No reference point given for path '".concat(name, "'")); var baseState = this.find(base); var splitName = name.split('.'); var pathLength = splitName.length; @@ -3067,7 +3081,7 @@ } if (splitName[i] === '^') { if (!current.parent) - throw new Error("Path '" + name + "' not valid for state '" + baseState.name + "'"); + throw new Error("Path '".concat(name, "' not valid for state '").concat(baseState.name, "'")); current = current.parent; continue; } @@ -3097,7 +3111,7 @@ if (!isString(name)) throw new Error('State must have a valid name'); if (this.states.hasOwnProperty(name) || inArray(queue.map(prop('name')), name)) - throw new Error("State '" + name + "' is already defined"); + throw new Error("State '".concat(name, "' is already defined")); queue.push(state); this.flush(); return state; @@ -3124,7 +3138,7 @@ if (result) { var existingState = getState(name_1); if (existingState && existingState.name === name_1) { - throw new Error("State '" + name_1 + "' is already defined"); + throw new Error("State '".concat(name_1, "' is already defined")); } var existingFutureState = getState(name_1 + '.**'); if (existingFutureState) { @@ -3485,7 +3499,7 @@ var router = this.transition.router; // The router is stopped if (router._disposed) { - return Rejection.aborted("UIRouter instance #" + router.$id + " has been stopped (disposed)").toPromise(); + return Rejection.aborted("UIRouter instance #".concat(router.$id, " has been stopped (disposed)")).toPromise(); } if (this.transition._aborted) { return Rejection.aborted().toPromise(); @@ -3500,7 +3514,7 @@ TransitionHook.prototype.toString = function () { var _a = this, options = _a.options, registeredHook = _a.registeredHook; var event = parse('traceData.hookType')(options) || 'internal', context = parse('traceData.context.state.name')(options) || parse('traceData.context')(options) || 'unknown', name = fnToString(registeredHook.callback); - return event + " context: " + context + ", " + maxLength(200, name); + return "".concat(event, " context: ").concat(context, ", ").concat(maxLength(200, name)); }; /** * These GetResultHandler(s) are used by [[invokeHook]] below @@ -3762,7 +3776,7 @@ var registries = isCreate ? [$transitions] : [this.transition, $transitions]; return registries .map(function (reg) { return reg.getHooks(hookType.name); }) // Get named hooks from registries - .filter(assertPredicate(isArray, "broken event named: " + hookType.name)) // Sanity check + .filter(assertPredicate(isArray, "broken event named: ".concat(hookType.name))) // Sanity check .reduce(unnestR, []) // Un-nest RegisteredHook[][] to RegisteredHook[] array .filter(function (hook) { return hook.matches(treeChanges, transition); }); // Only those satisfying matchCriteria }; @@ -4405,14 +4419,14 @@ Transition.prototype.error = function () { var state = this.$to(); if (state.self.abstract) { - return Rejection.invalid("Cannot transition to abstract state '" + state.name + "'"); + return Rejection.invalid("Cannot transition to abstract state '".concat(state.name, "'")); } var paramDefs = state.parameters(); var values = this.params(); var invalidParams = paramDefs.filter(function (param) { return !param.validates(values[param.id]); }); if (invalidParams.length) { - var invalidValues = invalidParams.map(function (param) { return "[" + param.id + ":" + stringify(values[param.id]) + "]"; }).join(', '); - var detail = "The following parameter values are not valid for state '" + state.name + "': " + invalidValues; + var invalidValues = invalidParams.map(function (param) { return "[".concat(param.id, ":").concat(stringify(values[param.id]), "]"); }).join(', '); + var detail = "The following parameter values are not valid for state '".concat(state.name, "': ").concat(invalidValues); return Rejection.invalid(detail); } if (this.success === false) @@ -4431,7 +4445,7 @@ }; // (X) means the to state is invalid. var id = this.$id, from = isObject(fromStateOrName) ? fromStateOrName.name : fromStateOrName, fromParams = stringify(avoidEmptyHash(this._treeChanges.from.map(prop('paramValues')).reduce(mergeR, {}))), toValid = this.valid() ? '' : '(X) ', to = isObject(toStateOrName) ? toStateOrName.name : toStateOrName, toParams = stringify(avoidEmptyHash(this.params())); - return "Transition#" + id + "( '" + from + "'" + fromParams + " -> " + toValid + "'" + to + "'" + toParams + " )"; + return "Transition#".concat(id, "( '").concat(from, "'").concat(fromParams, " -> ").concat(toValid, "'").concat(to, "'").concat(toParams, " )"); }; /** @internal */ Transition.diToken = Transition; @@ -4451,7 +4465,7 @@ surroundPattern = ['(?:/(', ')|/)?']; break; default: - surroundPattern = ["(" + param.squash + "|", ')?']; + surroundPattern = ["(".concat(param.squash, "|"), ')?']; break; } return result + surroundPattern[0] + param.type.pattern.source + surroundPattern[1]; @@ -4544,28 +4558,28 @@ // The regular expression is somewhat complicated due to the need to allow curly braces // inside the regular expression. The placeholder regexp breaks down as follows: // ([:*])([\w\[\]]+) - classic placeholder ($1 / $2) (search version has - for snake-case) - // \{([\w\[\]]+)(?:\:\s*( ... ))?\} - curly brace placeholder ($3) with optional regexp/type ... ($4) (search version has - for snake-case + // \{([\w\[\]]+)(?:\: ... ( ... ))?\} - curly brace placeholder ($3) with optional regexp/type ... ($5) (search version has - for snake-case // (?: ... | ... | ... )+ - the regexp consists of any number of atoms, an atom being either - // [^{}\\]+ - anything other than curly braces or backslash + // [^{}\\] - anything other than curly braces or backslash // \\. - a backslash escape - // \{(?:[^{}\\]+|\\.)*\} - a matched set of curly braces containing other atoms - var placeholder = /([:*])([\w\[\]]+)|\{([\w\[\]]+)(?:\:\s*((?:[^{}\\]+|\\.|\{(?:[^{}\\]+|\\.)*\})+))?\}/g; - var searchPlaceholder = /([:]?)([\w\[\].-]+)|\{([\w\[\].-]+)(?:\:\s*((?:[^{}\\]+|\\.|\{(?:[^{}\\]+|\\.)*\})+))?\}/g; + // \{(?:[^{}\\]|\\.)*\} - a matched set of curly braces containing other atoms + var placeholder = /([:*])([\w\[\]]+)|\{([\w\[\]]+)(?:\:(?=(\s*))\4((?:[^{}\\]|\\.|\{(?:[^{}\\]|\\.)*\})+))?\}/g; + var searchPlaceholder = /([:]?)([\w\[\].-]+)|\{([\w\[\].-]+)(?:\:(?=(\s*))\4((?:[^{}\\]|\\.|\{(?:[^{}\\]|\\.)*\})+))?\}/g; var patterns = []; var last = 0; var matchArray; var checkParamErrors = function (id) { if (!UrlMatcher.nameValidator.test(id)) - throw new Error("Invalid parameter name '" + id + "' in pattern '" + pattern + "'"); + throw new Error("Invalid parameter name '".concat(id, "' in pattern '").concat(pattern, "'")); if (find(_this._params, propEq('id', id))) - throw new Error("Duplicate parameter name '" + id + "' in pattern '" + pattern + "'"); + throw new Error("Duplicate parameter name '".concat(id, "' in pattern '").concat(pattern, "'")); }; // Split into static segments separated by path parameter placeholders. // The number of segments is always 1 more than the number of parameters. var matchDetails = function (m, isSearch) { // IE[78] returns '' for unmatched groups instead of null var id = m[2] || m[3]; - var regexp = isSearch ? m[4] : m[4] || (m[1] === '*' ? '[\\s\\S]*' : null); + var regexp = isSearch ? m[5] : m[5] || (m[1] === '*' ? '[\\s\\S]*' : null); var makeRegexpType = function (str) { return inherit(paramTypes.type(isSearch ? 'query' : 'path'), { pattern: new RegExp(str, _this.config.caseInsensitive ? 'i' : undefined), @@ -4615,7 +4629,7 @@ /** @internal */ UrlMatcher.encodeDashes = function (str) { // Replace dashes with encoded "\-" - return encodeURIComponent(str).replace(/-/g, function (c) { return "%5C%" + c.charCodeAt(0).toString(16).toUpperCase(); }); + return encodeURIComponent(str).replace(/-/g, function (c) { return "%5C%".concat(c.charCodeAt(0).toString(16).toUpperCase()); }); }; /** @internal Given a matcher, return an array with the matcher's path segments and path params, in order */ UrlMatcher.pathSegmentsAndParams = function (matcher) { @@ -4778,7 +4792,7 @@ // options = defaults(options, { isolate: false }); var allParams = this.parameters(), pathParams = allParams.filter(function (param) { return !param.isSearch(); }), searchParams = allParams.filter(function (param) { return param.isSearch(); }), nPathSegments = this._cache.path.map(function (urlm) { return urlm._segments.length - 1; }).reduce(function (a, x) { return a + x; }), values = {}; if (nPathSegments !== match.length - 1) - throw new Error("Unbalanced capture group in route '" + this.pattern + "'"); + throw new Error("Unbalanced capture group in route '".concat(this.pattern, "'")); function decodePathArray(paramVal) { var reverseString = function (str) { return str.split('').reverse().join(''); }; var unquoteDashes = function (str) { return str.replace(/\\-/g, '-'); }; @@ -4947,13 +4961,13 @@ return; if (!param.raw) encoded = map(encoded, encodeURIComponent); - return encoded.map(function (val) { return param.id + "=" + val; }); + return encoded.map(function (val) { return "".concat(param.id, "=").concat(val); }); }) .filter(identity) .reduce(unnestR, []) .join('&'); // Concat the pathstring with the queryString (if exists) and the hashString (if exists) - return pathString + (queryString ? "?" + queryString : '') + (values['#'] ? '#' + values['#'] : ''); + return pathString + (queryString ? "?".concat(queryString) : '') + (values['#'] ? '#' + values['#'] : ''); }; /** @internal */ UrlMatcher.nameValidator = /^\w+([-.]+\w+)*(?:\[\])?$/; @@ -5407,7 +5421,7 @@ this._pluginapi = { _rootViewContext: this._rootViewContext.bind(this), _viewConfigFactory: this._viewConfigFactory.bind(this), - _registeredUIView: function (id) { return find(_this._uiViews, function (view) { return _this.router.$id + "." + view.id === id; }); }, + _registeredUIView: function (id) { return find(_this._uiViews, function (view) { return "".concat(_this.router.$id, ".").concat(view.id) === id; }); }, _registeredUIViews: function () { return _this._uiViews; }, _activeViewConfigs: function () { return _this._viewConfigs; }, _onSync: function (listener) { @@ -6126,7 +6140,7 @@ */ UrlConfig.prototype.defaultSquashPolicy = function (value) { if (isDefined(value) && value !== true && value !== false && !isString(value)) - throw new Error("Invalid squash policy: " + value + ". Valid policies: false, true, arbitrary-string"); + throw new Error("Invalid squash policy: ".concat(value, ". Valid policies: false, true, arbitrary-string")); return (this._defaultSquashPolicy = isDefined(value) ? value : this._defaultSquashPolicy); }; /** @@ -7529,7 +7543,7 @@ options.reloadState = options.reload === true ? reg.root() : reg.matcher.find(options.reload, options.relative); if (options.reload && !options.reloadState) - throw new Error("No such reload state '" + (isString(options.reload) ? options.reload : options.reload.name) + "'"); + throw new Error("No such reload state '".concat(isString(options.reload) ? options.reload : options.reload.name, "'")); return new TargetState(this.router.stateRegistry, identifier, params, options); }; /** @internal */ @@ -7931,7 +7945,7 @@ invoke: function (fn, context, locals) { var all = extend({}, globals, locals || {}); var params = $injector.annotate(fn); - var ensureExist = assertPredicate(function (key) { return all.hasOwnProperty(key); }, function (key) { return "DI can't find injectable: '" + key + "'"; }); + var ensureExist = assertPredicate(function (key) { return all.hasOwnProperty(key); }, function (key) { return "DI can't find injectable: '".concat(key, "'"); }); var args = params.filter(ensureExist).map(function (x) { return all[x]; }); if (isFunction(fn)) return fn.apply(context, args); @@ -7946,7 +7960,7 @@ */ annotate: function (fn) { if (!isInjectable(fn)) - throw new Error("Not an injectable function: " + fn); + throw new Error("Not an injectable function: ".concat(fn)); if (fn && fn.$inject) return fn.$inject; if (isArray(fn)) @@ -8043,10 +8057,12 @@ 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 (b.hasOwnProperty(p)) d[p] = b[p]; }; + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; return extendStatics(d, b); }; return function (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 __()); @@ -8077,10 +8093,12 @@ 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 (b.hasOwnProperty(p)) d[p] = b[p]; }; + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; return extendStatics(d, b); }; return function (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 __()); @@ -8105,10 +8123,12 @@ 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 (b.hasOwnProperty(p)) d[p] = b[p]; }; + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; return extendStatics(d, b); }; return function (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 __()); diff --git a/UI/WebServerResources/js/vendor/angular-ui-router.js.map b/UI/WebServerResources/js/vendor/angular-ui-router.js.map index 9a1b886de..dfd0397a9 100644 --- a/UI/WebServerResources/js/vendor/angular-ui-router.js.map +++ b/UI/WebServerResources/js/vendor/angular-ui-router.js.map @@ -82,9 +82,9 @@ ], "sourcesContent": [ "/** @publicapi @module ng1 */ /** */\nimport * as ng_from_import from 'angular';\n/** @hidden */ declare let angular;\n/** @hidden */ const ng_from_global = angular;\n/** @hidden */ export const ng = ng_from_import && ng_from_import.module ? ng_from_import : ng_from_global;\n", - "/**\n * Higher order functions\n *\n * These utility functions are exported, but are subject to change without notice.\n *\n * @packageDocumentation\n */\n\nimport { Predicate } from './common';\n/**\n * Returns a new function for [Partial Application](https://en.wikipedia.org/wiki/Partial_application) of the original function.\n *\n * Given a function with N parameters, returns a new function that supports partial application.\n * The new function accepts anywhere from 1 to N parameters. When that function is called with M parameters,\n * where M is less than N, it returns a new function that accepts the remaining parameters. It continues to\n * accept more parameters until all N parameters have been supplied.\n *\n *\n * This contrived example uses a partially applied function as an predicate, which returns true\n * if an object is found in both arrays.\n * @example\n * ```\n * // returns true if an object is in both of the two arrays\n * function inBoth(array1, array2, object) {\n * return array1.indexOf(object) !== -1 &&\n * array2.indexOf(object) !== 1;\n * }\n * let obj1, obj2, obj3, obj4, obj5, obj6, obj7\n * let foos = [obj1, obj3]\n * let bars = [obj3, obj4, obj5]\n *\n * // A curried \"copy\" of inBoth\n * let curriedInBoth = curry(inBoth);\n * // Partially apply both the array1 and array2\n * let inFoosAndBars = curriedInBoth(foos, bars);\n *\n * // Supply the final argument; since all arguments are\n * // supplied, the original inBoth function is then called.\n * let obj1InBoth = inFoosAndBars(obj1); // false\n *\n * // Use the inFoosAndBars as a predicate.\n * // Filter, on each iteration, supplies the final argument\n * let allObjs = [ obj1, obj2, obj3, obj4, obj5, obj6, obj7 ];\n * let foundInBoth = allObjs.filter(inFoosAndBars); // [ obj3 ]\n *\n * ```\n *\n * @param fn\n * @returns {*|function(): (*|any)}\n */\nexport function curry(fn: Function): Function {\n return function curried() {\n if (arguments.length >= fn.length) {\n return fn.apply(this, arguments);\n }\n const args = Array.prototype.slice.call(arguments);\n return curried.bind(this, ...args);\n };\n}\n\n/**\n * Given a varargs list of functions, returns a function that composes the argument functions, right-to-left\n * given: f(x), g(x), h(x)\n * let composed = compose(f,g,h)\n * then, composed is: f(g(h(x)))\n */\nexport function compose() {\n const args = arguments;\n const start = args.length - 1;\n return function () {\n let i = start,\n result = args[start].apply(this, arguments);\n while (i--) result = args[i].call(this, result);\n return result;\n };\n}\n\n/**\n * Given a varargs list of functions, returns a function that is composes the argument functions, left-to-right\n * given: f(x), g(x), h(x)\n * let piped = pipe(f,g,h);\n * then, piped is: h(g(f(x)))\n */\nexport function pipe(...funcs: Function[]): (obj: any) => any {\n return compose.apply(null, [].slice.call(arguments).reverse());\n}\n\n/**\n * Given a property name, returns a function that returns that property from an object\n * let obj = { foo: 1, name: \"blarg\" };\n * let getName = prop(\"name\");\n * getName(obj) === \"blarg\"\n */\nexport const prop = (name: string) => (obj: any) => obj && obj[name];\n\n/**\n * Given a property name and a value, returns a function that returns a boolean based on whether\n * the passed object has a property that matches the value\n * let obj = { foo: 1, name: \"blarg\" };\n * let getName = propEq(\"name\", \"blarg\");\n * getName(obj) === true\n */\nexport const propEq = curry((name: string, _val: any, obj: any) => obj && obj[name] === _val);\n\n/**\n * Given a dotted property name, returns a function that returns a nested property from an object, or undefined\n * let obj = { id: 1, nestedObj: { foo: 1, name: \"blarg\" }, };\n * let getName = prop(\"nestedObj.name\");\n * getName(obj) === \"blarg\"\n * let propNotFound = prop(\"this.property.doesnt.exist\");\n * propNotFound(obj) === undefined\n */\nexport const parse = (name: string) => pipe.apply(null, name.split('.').map(prop));\n\n/**\n * Given a function that returns a truthy or falsey value, returns a\n * function that returns the opposite (falsey or truthy) value given the same inputs\n */\nexport const not: (fn: Predicate) => Predicate = (fn: Predicate) => (...args: any[]) =>\n !fn.apply(null, args);\n\n/**\n * Given two functions that return truthy or falsey values, returns a function that returns truthy\n * if both functions return truthy for the given arguments\n */\nexport function and(fn1: Predicate, fn2: Predicate): Predicate {\n return (...args: any[]) => fn1.apply(null, args) && fn2.apply(null, args);\n}\n\n/**\n * Given two functions that return truthy or falsey values, returns a function that returns truthy\n * if at least one of the functions returns truthy for the given arguments\n */\nexport function or(fn1: Predicate, fn2: Predicate): Predicate {\n return (...args: any[]) => fn1.apply(null, args) || fn2.apply(null, args);\n}\n\n/**\n * Check if all the elements of an array match a predicate function\n *\n * @param fn1 a predicate function `fn1`\n * @returns a function which takes an array and returns true if `fn1` is true for all elements of the array\n */\nexport const all = (fn1: Predicate) => (arr: any[]) => arr.reduce((b, x) => b && !!fn1(x), true) as boolean;\n\n// tslint:disable-next-line:variable-name\nexport const any = (fn1: Predicate) => (arr: any[]) => arr.reduce((b, x) => b || !!fn1(x), false) as boolean;\n\n/** Given a class, returns a Predicate function that returns true if the object is of that class */\nexport const is = (ctor: { new (...args): T }) => (obj: any): obj is T =>\n (obj != null && obj.constructor === ctor) || obj instanceof ctor;\n\n/** Given a value, returns a Predicate function that returns true if another value is === equal to the original value */\nexport const eq: (comp: any) => Predicate = (value: any) => (other: any) => value === other;\n\n/** Given a value, returns a function which returns the value */\nexport const val = (v: T) => () => v;\n\nexport function invoke(fnName: string): Function;\nexport function invoke(fnName: string, args: any[]): Function;\nexport function invoke(fnName: string, args?: any[]): Function {\n return (obj: any) => obj[fnName].apply(obj, args);\n}\n\n/**\n * Sorta like Pattern Matching (a functional programming conditional construct)\n *\n * See http://c2.com/cgi/wiki?PatternMatching\n *\n * This is a conditional construct which allows a series of predicates and output functions\n * to be checked and then applied. Each predicate receives the input. If the predicate\n * returns truthy, then its matching output function (mapping function) is provided with\n * the input and, then the result is returned.\n *\n * Each combination (2-tuple) of predicate + output function should be placed in an array\n * of size 2: [ predicate, mapFn ]\n *\n * These 2-tuples should be put in an outer array.\n *\n * @example\n * ```\n *\n * // Here's a 2-tuple where the first element is the isString predicate\n * // and the second element is a function that returns a description of the input\n * let firstTuple = [ angular.isString, (input) => `Heres your string ${input}` ];\n *\n * // Second tuple: predicate \"isNumber\", mapfn returns a description\n * let secondTuple = [ angular.isNumber, (input) => `(${input}) That's a number!` ];\n *\n * let third = [ (input) => input === null, (input) => `Oh, null...` ];\n *\n * let fourth = [ (input) => input === undefined, (input) => `notdefined` ];\n *\n * let descriptionOf = pattern([ firstTuple, secondTuple, third, fourth ]);\n *\n * console.log(descriptionOf(undefined)); // 'notdefined'\n * console.log(descriptionOf(55)); // '(55) That's a number!'\n * console.log(descriptionOf(\"foo\")); // 'Here's your string foo'\n * ```\n *\n * @param struct A 2D array. Each element of the array should be an array, a 2-tuple,\n * with a Predicate and a mapping/output function\n * @returns {function(any): *}\n */\nexport function pattern(struct: Function[][]): Function {\n return function (x: any) {\n for (let i = 0; i < struct.length; i++) {\n if (struct[i][0](x)) return struct[i][1](x);\n }\n };\n}\n", + "/**\n * Higher order functions\n *\n * These utility functions are exported, but are subject to change without notice.\n *\n * @packageDocumentation\n */\n\nimport { Predicate } from './common';\n/**\n * Returns a new function for [Partial Application](https://en.wikipedia.org/wiki/Partial_application) of the original function.\n *\n * Given a function with N parameters, returns a new function that supports partial application.\n * The new function accepts anywhere from 1 to N parameters. When that function is called with M parameters,\n * where M is less than N, it returns a new function that accepts the remaining parameters. It continues to\n * accept more parameters until all N parameters have been supplied.\n *\n *\n * This contrived example uses a partially applied function as an predicate, which returns true\n * if an object is found in both arrays.\n * @example\n * ```\n * // returns true if an object is in both of the two arrays\n * function inBoth(array1, array2, object) {\n * return array1.indexOf(object) !== -1 &&\n * array2.indexOf(object) !== 1;\n * }\n * let obj1, obj2, obj3, obj4, obj5, obj6, obj7\n * let foos = [obj1, obj3]\n * let bars = [obj3, obj4, obj5]\n *\n * // A curried \"copy\" of inBoth\n * let curriedInBoth = curry(inBoth);\n * // Partially apply both the array1 and array2\n * let inFoosAndBars = curriedInBoth(foos, bars);\n *\n * // Supply the final argument; since all arguments are\n * // supplied, the original inBoth function is then called.\n * let obj1InBoth = inFoosAndBars(obj1); // false\n *\n * // Use the inFoosAndBars as a predicate.\n * // Filter, on each iteration, supplies the final argument\n * let allObjs = [ obj1, obj2, obj3, obj4, obj5, obj6, obj7 ];\n * let foundInBoth = allObjs.filter(inFoosAndBars); // [ obj3 ]\n *\n * ```\n *\n * @param fn\n * @returns {*|function(): (*|any)}\n */\nexport function curry(fn: Function): Function {\n return function curried() {\n if (arguments.length >= fn.length) {\n return fn.apply(this, arguments);\n }\n const args = Array.prototype.slice.call(arguments);\n return curried.bind(this, ...args);\n };\n}\n\n/**\n * Given a varargs list of functions, returns a function that composes the argument functions, right-to-left\n * given: f(x), g(x), h(x)\n * let composed = compose(f,g,h)\n * then, composed is: f(g(h(x)))\n */\nexport function compose() {\n const args = arguments;\n const start = args.length - 1;\n return function () {\n let i = start,\n result = args[start].apply(this, arguments);\n while (i--) result = args[i].call(this, result);\n return result;\n };\n}\n\n/**\n * Given a varargs list of functions, returns a function that is composes the argument functions, left-to-right\n * given: f(x), g(x), h(x)\n * let piped = pipe(f,g,h);\n * then, piped is: h(g(f(x)))\n */\nexport function pipe(...funcs: Function[]): (obj: any) => any {\n return compose.apply(null, [].slice.call(arguments).reverse());\n}\n\n/**\n * Given a property name, returns a function that returns that property from an object\n * let obj = { foo: 1, name: \"blarg\" };\n * let getName = prop(\"name\");\n * getName(obj) === \"blarg\"\n */\nexport const prop = (name: string) => (obj: any) => obj && obj[name];\n\n/**\n * Given a property name and a value, returns a function that returns a boolean based on whether\n * the passed object has a property that matches the value\n * let obj = { foo: 1, name: \"blarg\" };\n * let getName = propEq(\"name\", \"blarg\");\n * getName(obj) === true\n */\nexport const propEq = curry((name: string, _val: any, obj: any) => obj && obj[name] === _val);\n\n/**\n * Given a dotted property name, returns a function that returns a nested property from an object, or undefined\n * let obj = { id: 1, nestedObj: { foo: 1, name: \"blarg\" }, };\n * let getName = prop(\"nestedObj.name\");\n * getName(obj) === \"blarg\"\n * let propNotFound = prop(\"this.property.doesnt.exist\");\n * propNotFound(obj) === undefined\n */\nexport const parse = (name: string) => pipe.apply(null, name.split('.').map(prop));\n\n/**\n * Given a function that returns a truthy or falsey value, returns a\n * function that returns the opposite (falsey or truthy) value given the same inputs\n */\nexport const not: (fn: Predicate) => Predicate =\n (fn: Predicate) =>\n (...args: any[]) =>\n !fn.apply(null, args);\n\n/**\n * Given two functions that return truthy or falsey values, returns a function that returns truthy\n * if both functions return truthy for the given arguments\n */\nexport function and(fn1: Predicate, fn2: Predicate): Predicate {\n return (...args: any[]) => fn1.apply(null, args) && fn2.apply(null, args);\n}\n\n/**\n * Given two functions that return truthy or falsey values, returns a function that returns truthy\n * if at least one of the functions returns truthy for the given arguments\n */\nexport function or(fn1: Predicate, fn2: Predicate): Predicate {\n return (...args: any[]) => fn1.apply(null, args) || fn2.apply(null, args);\n}\n\n/**\n * Check if all the elements of an array match a predicate function\n *\n * @param fn1 a predicate function `fn1`\n * @returns a function which takes an array and returns true if `fn1` is true for all elements of the array\n */\nexport const all = (fn1: Predicate) => (arr: any[]) => arr.reduce((b, x) => b && !!fn1(x), true) as boolean;\n\n// tslint:disable-next-line:variable-name\nexport const any = (fn1: Predicate) => (arr: any[]) => arr.reduce((b, x) => b || !!fn1(x), false) as boolean;\n\n/** Given a class, returns a Predicate function that returns true if the object is of that class */\nexport const is =\n (ctor: { new (...args: any[]): T }) =>\n (obj: any): obj is T =>\n (obj != null && obj.constructor === ctor) || obj instanceof ctor;\n\n/** Given a value, returns a Predicate function that returns true if another value is === equal to the original value */\nexport const eq: (comp: any) => Predicate = (value: any) => (other: any) => value === other;\n\n/** Given a value, returns a function which returns the value */\nexport const val =\n (v: T) =>\n () =>\n v;\n\nexport function invoke(fnName: string): Function;\nexport function invoke(fnName: string, args: any[]): Function;\nexport function invoke(fnName: string, args?: any[]): Function {\n return (obj: any) => obj[fnName].apply(obj, args);\n}\n\n/**\n * Sorta like Pattern Matching (a functional programming conditional construct)\n *\n * See http://c2.com/cgi/wiki?PatternMatching\n *\n * This is a conditional construct which allows a series of predicates and output functions\n * to be checked and then applied. Each predicate receives the input. If the predicate\n * returns truthy, then its matching output function (mapping function) is provided with\n * the input and, then the result is returned.\n *\n * Each combination (2-tuple) of predicate + output function should be placed in an array\n * of size 2: [ predicate, mapFn ]\n *\n * These 2-tuples should be put in an outer array.\n *\n * @example\n * ```\n *\n * // Here's a 2-tuple where the first element is the isString predicate\n * // and the second element is a function that returns a description of the input\n * let firstTuple = [ angular.isString, (input) => `Heres your string ${input}` ];\n *\n * // Second tuple: predicate \"isNumber\", mapfn returns a description\n * let secondTuple = [ angular.isNumber, (input) => `(${input}) That's a number!` ];\n *\n * let third = [ (input) => input === null, (input) => `Oh, null...` ];\n *\n * let fourth = [ (input) => input === undefined, (input) => `notdefined` ];\n *\n * let descriptionOf = pattern([ firstTuple, secondTuple, third, fourth ]);\n *\n * console.log(descriptionOf(undefined)); // 'notdefined'\n * console.log(descriptionOf(55)); // '(55) That's a number!'\n * console.log(descriptionOf(\"foo\")); // 'Here's your string foo'\n * ```\n *\n * @param struct A 2D array. Each element of the array should be an array, a 2-tuple,\n * with a Predicate and a mapping/output function\n * @returns {function(any): *}\n */\nexport function pattern(struct: Function[][]): Function {\n return function (x: any) {\n for (let i = 0; i < struct.length; i++) {\n if (struct[i][0](x)) return struct[i][1](x);\n }\n };\n}\n", "/**\n * Predicates\n *\n * These predicates return true/false based on the input.\n * Although these functions are exported, they are subject to change without notice.\n *\n * @packageDocumentation\n */\nimport { and, not, pipe, prop, or } from './hof';\nimport { Predicate } from './common'; // has or is using\nimport { StateObject } from '../state/stateObject';\n\nconst toStr = Object.prototype.toString;\nconst tis = (t: string) => (x: any) => typeof x === t;\nexport const isUndefined = tis('undefined');\nexport const isDefined = not(isUndefined);\nexport const isNull = (o: any) => o === null;\nexport const isNullOrUndefined = or(isNull, isUndefined);\nexport const isFunction: (x: any) => x is Function = tis('function');\nexport const isNumber: (x: any) => x is number = tis('number');\nexport const isString = <(x: any) => x is string>tis('string');\nexport const isObject = (x: any) => x !== null && typeof x === 'object';\nexport const isArray = Array.isArray;\nexport const isDate: (x: any) => x is Date = ((x: any) => toStr.call(x) === '[object Date]');\nexport const isRegExp: (x: any) => x is RegExp = ((x: any) => toStr.call(x) === '[object RegExp]');\n\n/**\n * Predicate which checks if a value is injectable\n *\n * A value is \"injectable\" if it is a function, or if it is an ng1 array-notation-style array\n * where all the elements in the array are Strings, except the last one, which is a Function\n */\nexport function isInjectable(val: any) {\n if (isArray(val) && val.length) {\n const head = val.slice(0, -1),\n tail = val.slice(-1);\n return !(head.filter(not(isString)).length || tail.filter(not(isFunction)).length);\n }\n return isFunction(val);\n}\n\n/**\n * Predicate which checks if a value looks like a Promise\n *\n * It is probably a Promise if it's an object, and it has a `then` property which is a Function\n */\nexport const isPromise = <(x: any) => x is Promise>and(isObject, pipe(prop('then'), isFunction));\n", - "/**\n * This module is a stub for core services such as Dependency Injection or Browser Location.\n * Core services may be implemented by a specific framework, such as ng1 or ng2, or be pure javascript.\n *\n * @packageDocumentation\n */\nimport { IInjectable, Obj } from './common';\nimport { Disposable } from '../interface';\nimport { UrlConfig, UrlService } from '../url';\n\nconst noImpl = (fnname: string) => () => {\n throw new Error(`No implementation for ${fnname}. The framework specific code did not implement this method.`);\n};\n\nexport const makeStub = (service: string, methods: (keyof T)[]): T =>\n methods.reduce((acc, key) => ((acc[key] = noImpl(`${service}.${key}()`) as any), acc), {} as T);\n\nconst services: CoreServices = {\n $q: undefined,\n $injector: undefined,\n};\n\nexport interface $QLikeDeferred {\n resolve: (val?: any) => void;\n reject: (reason?: any) => void;\n promise: Promise;\n}\n\nexport interface $QLike {\n when(value?: T | PromiseLike): Promise;\n reject(reason: any): Promise;\n defer(): $QLikeDeferred;\n all(promises: { [key: string]: Promise }): Promise;\n all(promises: Promise[]): Promise;\n}\n\nexport interface $InjectorLike {\n strictDi?: boolean;\n get(token: any): any;\n get(token: any): T;\n has(token: any): boolean;\n invoke(fn: IInjectable, context?: any, locals?: Obj): any;\n annotate(fn: IInjectable, strictDi?: boolean): any[];\n}\n\nexport interface CoreServices {\n $q: $QLike;\n $injector: $InjectorLike;\n}\n\n/**\n * Handles low level URL read/write\n *\n * This service handles low level reads and updates of the URL and listens for url changes.\n * Implementors should pass these through to the underlying URL mechanism.\n * The underlying URL mechanism might be browser APIs, framework APIs, or some 3rd party URL management library.\n *\n * UI-Router Core includes three basic implementations:\n *\n * - [[PushStateLocationService]]\n * - [[HashLocationService]]\n * - [[MemoryLocationService]]\n */\nexport interface LocationServices extends Disposable {\n /** See: [[UrlService.url]] */ url: UrlService['url'];\n /** See: [[UrlService.path]] */ path: UrlService['path'];\n /** See: [[UrlService.search]] */ search: UrlService['search'];\n /** See: [[UrlService.hash]] */ hash: UrlService['hash'];\n /** See: [[UrlService.onChange]] */ onChange: UrlService['onChange'];\n}\n\n/**\n * Returns low level URL configuration and metadata\n *\n * This service returns information about the location configuration.\n * This service is primarily used when building URLs (e.g., for `hrefs`)\n *\n * Implementors should pass these through to the underlying URL APIs.\n * The underlying URL mechanism might be browser APIs, framework APIs, or some 3rd party URL management library.\n *\n * UI-Router Core includes two basic implementations:\n *\n * - [[BrowserLocationConfig]]\n * - [[MemoryLocationConfig]]\n */\nexport interface LocationConfig extends Disposable {\n /** See: [[UrlConfig.port]] */ port: UrlConfig['port'];\n /** See: [[UrlConfig.protocol]] */ protocol: UrlConfig['protocol'];\n /** See: [[UrlConfig.host]] */ host: UrlConfig['host'];\n /** See: [[UrlConfig.baseHref]] */ baseHref: UrlConfig['baseHref'];\n /** See: [[UrlConfig.html5Mode]] */ html5Mode: UrlConfig['html5Mode'];\n /** See: [[UrlConfig.hashPrefix]] */ hashPrefix: UrlConfig['hashPrefix'];\n}\n\nexport { services };\n", + "/**\n * This module is a stub for core services such as Dependency Injection or Browser Location.\n * Core services may be implemented by a specific framework, such as ng1 or ng2, or be pure javascript.\n *\n * @packageDocumentation\n */\nimport { IInjectable, Obj } from './common';\nimport { Disposable } from '../interface';\nimport { UrlConfig, UrlService } from '../url';\n\nconst noImpl = (fnname: string) => () => {\n throw new Error(`No implementation for ${fnname}. The framework specific code did not implement this method.`);\n};\n\nexport const makeStub = (service: string, methods: (keyof T)[]): T =>\n methods.reduce((acc, key) => ((acc[key] = noImpl(`${service}.${String(key)}()`) as any), acc), {} as T);\n\nconst services: CoreServices = {\n $q: undefined,\n $injector: undefined,\n};\n\nexport interface $QLikeDeferred {\n resolve: (val?: any) => void;\n reject: (reason?: any) => void;\n promise: Promise;\n}\n\nexport interface $QLike {\n when(value?: T | PromiseLike): Promise;\n reject(reason: any): Promise;\n defer(): $QLikeDeferred;\n all(promises: { [key: string]: Promise }): Promise;\n all(promises: Promise[]): Promise;\n}\n\nexport interface $InjectorLike {\n strictDi?: boolean;\n get(token: any): any;\n get(token: any): T;\n has(token: any): boolean;\n invoke(fn: IInjectable, context?: any, locals?: Obj): any;\n annotate(fn: IInjectable, strictDi?: boolean): any[];\n}\n\nexport interface CoreServices {\n $q: $QLike;\n $injector: $InjectorLike;\n}\n\n/**\n * Handles low level URL read/write\n *\n * This service handles low level reads and updates of the URL and listens for url changes.\n * Implementors should pass these through to the underlying URL mechanism.\n * The underlying URL mechanism might be browser APIs, framework APIs, or some 3rd party URL management library.\n *\n * UI-Router Core includes three basic implementations:\n *\n * - [[PushStateLocationService]]\n * - [[HashLocationService]]\n * - [[MemoryLocationService]]\n */\nexport interface LocationServices extends Disposable {\n /** See: [[UrlService.url]] */ url: UrlService['url'];\n /** See: [[UrlService.path]] */ path: UrlService['path'];\n /** See: [[UrlService.search]] */ search: UrlService['search'];\n /** See: [[UrlService.hash]] */ hash: UrlService['hash'];\n /** See: [[UrlService.onChange]] */ onChange: UrlService['onChange'];\n}\n\n/**\n * Returns low level URL configuration and metadata\n *\n * This service returns information about the location configuration.\n * This service is primarily used when building URLs (e.g., for `hrefs`)\n *\n * Implementors should pass these through to the underlying URL APIs.\n * The underlying URL mechanism might be browser APIs, framework APIs, or some 3rd party URL management library.\n *\n * UI-Router Core includes two basic implementations:\n *\n * - [[BrowserLocationConfig]]\n * - [[MemoryLocationConfig]]\n */\nexport interface LocationConfig extends Disposable {\n /** See: [[UrlConfig.port]] */ port: UrlConfig['port'];\n /** See: [[UrlConfig.protocol]] */ protocol: UrlConfig['protocol'];\n /** See: [[UrlConfig.host]] */ host: UrlConfig['host'];\n /** See: [[UrlConfig.baseHref]] */ baseHref: UrlConfig['baseHref'];\n /** See: [[UrlConfig.html5Mode]] */ html5Mode: UrlConfig['html5Mode'];\n /** See: [[UrlConfig.hashPrefix]] */ hashPrefix: UrlConfig['hashPrefix'];\n}\n\nexport { services };\n", "/**\n * Random utility functions used in the UI-Router code\n *\n * These functions are exported, but are subject to change without notice.\n *\n * @packageDocumentation\n * @preferred\n */\nimport { isFunction, isString, isArray, isRegExp, isDate } from './predicates';\nimport { all, any, prop, curry, not } from './hof';\nimport { services } from './coreservices';\nimport { StateObject } from '../state/stateObject';\n\ndeclare const global;\nexport const root: any =\n (typeof self === 'object' && self.self === self && self) ||\n (typeof global === 'object' && global.global === global && global) ||\n this;\nconst angular = root.angular || {};\n\nexport const fromJson = angular.fromJson || JSON.parse.bind(JSON);\nexport const toJson = angular.toJson || JSON.stringify.bind(JSON);\nexport const forEach = angular.forEach || _forEach;\nexport const extend = Object.assign || _extend;\nexport const equals = angular.equals || _equals;\nexport function identity(x: any) {\n return x;\n}\nexport function noop(): any {}\n\nexport type Mapper = (x: X, key?: string | number) => T;\nexport interface TypedMap {\n [key: string]: T;\n}\nexport type Predicate = (x?: X) => boolean;\nexport type PredicateBinary = (x?: X, y?: Y) => boolean;\n/**\n * An ng1-style injectable\n *\n * This could be a (non-minified) function such as:\n * ```js\n * function injectableFunction(SomeDependency) {\n *\n * }\n * ```\n *\n * or an explicitly annotated function (minify safe)\n * ```js\n * injectableFunction.$inject = [ 'SomeDependency' ];\n * function injectableFunction(SomeDependency) {\n *\n * }\n * ```\n *\n * or an array style annotated function (minify safe)\n * ```js\n * ['SomeDependency', function injectableFunction(SomeDependency) {\n *\n * }];\n * ```\n */\nexport type IInjectable = Function | any[];\n\nexport interface Obj extends Object {\n [key: string]: any;\n}\n\n/**\n * Builds proxy functions on the `to` object which pass through to the `from` object.\n *\n * For each key in `fnNames`, creates a proxy function on the `to` object.\n * The proxy function calls the real function on the `from` object.\n *\n *\n * #### Example:\n * This example creates an new class instance whose functions are prebound to the new'd object.\n * ```js\n * class Foo {\n * constructor(data) {\n * // Binds all functions from Foo.prototype to 'this',\n * // then copies them to 'this'\n * bindFunctions(Foo.prototype, this, this);\n * this.data = data;\n * }\n *\n * log() {\n * console.log(this.data);\n * }\n * }\n *\n * let myFoo = new Foo([1,2,3]);\n * var logit = myFoo.log;\n * logit(); // logs [1, 2, 3] from the myFoo 'this' instance\n * ```\n *\n * #### Example:\n * This example creates a bound version of a service function, and copies it to another object\n * ```\n *\n * var SomeService = {\n * this.data = [3, 4, 5];\n * this.log = function() {\n * console.log(this.data);\n * }\n * }\n *\n * // Constructor fn\n * function OtherThing() {\n * // Binds all functions from SomeService to SomeService,\n * // then copies them to 'this'\n * bindFunctions(SomeService, this, SomeService);\n * }\n *\n * let myOtherThing = new OtherThing();\n * myOtherThing.log(); // logs [3, 4, 5] from SomeService's 'this'\n * ```\n *\n * @param source A function that returns the source object which contains the original functions to be bound\n * @param target A function that returns the target object which will receive the bound functions\n * @param bind A function that returns the object which the functions will be bound to\n * @param fnNames The function names which will be bound (Defaults to all the functions found on the 'from' object)\n * @param latebind If true, the binding of the function is delayed until the first time it's invoked\n */\nexport function createProxyFunctions(\n source: Function,\n target: Obj,\n bind: Function,\n fnNames?: string[],\n latebind = false\n): Obj {\n const bindFunction = (fnName) => source()[fnName].bind(bind());\n\n const makeLateRebindFn = (fnName) =>\n function lateRebindFunction() {\n target[fnName] = bindFunction(fnName);\n return target[fnName].apply(null, arguments);\n };\n\n fnNames = fnNames || Object.keys(source());\n\n return fnNames.reduce((acc, name) => {\n acc[name] = latebind ? makeLateRebindFn(name) : bindFunction(name);\n return acc;\n }, target);\n}\n\n/**\n * prototypal inheritance helper.\n * Creates a new object which has `parent` object as its prototype, and then copies the properties from `extra` onto it\n */\nexport const inherit = (parent: Obj, extra?: Obj) => extend(Object.create(parent), extra);\n\n/** Given an array, returns true if the object is found in the array, (using indexOf) */\nexport const inArray: typeof _inArray = curry(_inArray) as any;\nexport function _inArray(array: any[], obj: any): boolean;\nexport function _inArray(array: any[]): (obj: any) => boolean;\nexport function _inArray(array, obj?): any {\n return array.indexOf(obj) !== -1;\n}\n\n/**\n * Given an array, and an item, if the item is found in the array, it removes it (in-place).\n * The same array is returned\n */\nexport const removeFrom: typeof _removeFrom = curry(_removeFrom) as any;\nexport function _removeFrom(array: T[], obj: T): T[];\nexport function _removeFrom(array: T[]): (obj: T) => T[];\nexport function _removeFrom(array, obj?) {\n const idx = array.indexOf(obj);\n if (idx >= 0) array.splice(idx, 1);\n return array;\n}\n\n/** pushes a values to an array and returns the value */\nexport const pushTo: typeof _pushTo = curry(_pushTo) as any;\nexport function _pushTo(arr: T[], val: T): T;\nexport function _pushTo(arr: T[]): (val: T) => T;\nexport function _pushTo(arr, val?): any {\n return arr.push(val), val;\n}\n\n/** Given an array of (deregistration) functions, calls all functions and removes each one from the source array */\nexport const deregAll = (functions: Function[]) =>\n functions.slice().forEach((fn) => {\n typeof fn === 'function' && fn();\n removeFrom(functions, fn);\n });\n/**\n * Applies a set of defaults to an options object. The options object is filtered\n * to only those properties of the objects in the defaultsList.\n * Earlier objects in the defaultsList take precedence when applying defaults.\n */\nexport function defaults(opts, ...defaultsList: Obj[]) {\n const defaultVals = extend({}, ...defaultsList.reverse());\n return extend(defaultVals, pick(opts || {}, Object.keys(defaultVals)));\n}\n\n/** Reduce function that merges each element of the list into a single object, using extend */\nexport const mergeR = (memo: Obj, item: Obj) => extend(memo, item);\n\n/**\n * Finds the common ancestor path between two states.\n *\n * @param {Object} first The first state.\n * @param {Object} second The second state.\n * @return {Array} Returns an array of state names in descending order, not including the root.\n */\nexport function ancestors(first: StateObject, second: StateObject) {\n const path: StateObject[] = [];\n\n // tslint:disable-next-line:forin\n for (const n in first.path) {\n if (first.path[n] !== second.path[n]) break;\n path.push(first.path[n]);\n }\n return path;\n}\n\n/**\n * Return a copy of the object only containing the whitelisted properties.\n *\n * #### Example:\n * ```\n * var foo = { a: 1, b: 2, c: 3 };\n * var ab = pick(foo, ['a', 'b']); // { a: 1, b: 2 }\n * ```\n * @param obj the source object\n * @param propNames an Array of strings, which are the whitelisted property names\n */\nexport function pick(obj: Obj, propNames: string[]): Obj {\n const objCopy = {};\n for (const _prop in obj) {\n if (propNames.indexOf(_prop) !== -1) {\n objCopy[_prop] = obj[_prop];\n }\n }\n return objCopy;\n}\n\n/**\n * Return a copy of the object omitting the blacklisted properties.\n *\n * @example\n * ```\n *\n * var foo = { a: 1, b: 2, c: 3 };\n * var ab = omit(foo, ['a', 'b']); // { c: 3 }\n * ```\n * @param obj the source object\n * @param propNames an Array of strings, which are the blacklisted property names\n */\nexport function omit(obj: Obj, propNames: string[]): Obj {\n return Object.keys(obj)\n .filter(not(inArray(propNames)))\n .reduce((acc, key) => ((acc[key] = obj[key]), acc), {});\n}\n\n/** Given an array of objects, maps each element to a named property of the element. */\nexport function pluck(collection: Obj[], propName: string): T[];\n/** Given an object, maps each property of the object to a named property of the property. */\nexport function pluck(collection: { [key: string]: any }, propName: string): { [key: string]: any };\n/**\n * Maps an array, or object to a property (by name)\n */\nexport function pluck(collection: any, propName: string): any {\n return map(collection, >prop(propName));\n}\n\n/** Given an array of objects, returns a new array containing only the elements which passed the callback predicate */\nexport function filter(collection: T[], callback: (t: T, key?: number) => boolean): T[];\n/** Given an object, returns a new object with only those properties that passed the callback predicate */\nexport function filter(collection: TypedMap, callback: (t: T, key?: string) => boolean): TypedMap;\n/** Filters an Array or an Object's properties based on a predicate */\nexport function filter(collection: any, callback: Function): T {\n const arr = isArray(collection),\n result: any = arr ? [] : {};\n const accept = arr ? (x) => result.push(x) : (x, key) => (result[key] = x);\n forEach(collection, function (item, i) {\n if (callback(item, i)) accept(item, i);\n });\n return result;\n}\n\n/** Given an object, return the first property of that object which passed the callback predicate */\nexport function find(collection: TypedMap, callback: Predicate): T;\n/** Given an array of objects, returns the first object which passed the callback predicate */\nexport function find(collection: T[], callback: Predicate): T;\n/** Finds an object from an array, or a property of an object, that matches a predicate */\nexport function find(collection: any, callback: any) {\n let result;\n\n forEach(collection, function (item, i) {\n if (result) return;\n if (callback(item, i)) result = item;\n });\n\n return result;\n}\n\n/** Given an object, returns a new object, where each property is transformed by the callback function */\nexport let mapObj: (\n collection: { [key: string]: T },\n callback: Mapper,\n target?: typeof collection\n) => { [key: string]: U } = map;\n/** Given an array, returns a new array, where each element is transformed by the callback function */\nexport function map(collection: T[], callback: Mapper, target?: typeof collection): U[];\nexport function map(\n collection: { [key: string]: T },\n callback: Mapper,\n target?: typeof collection\n): { [key: string]: U };\n/** Maps an array or object properties using a callback function */\nexport function map(collection: any, callback: any, target: typeof collection): any {\n target = target || (isArray(collection) ? [] : {});\n forEach(collection, (item, i) => (target[i] = callback(item, i)));\n return target;\n}\n\n/**\n * Given an object, return its enumerable property values\n *\n * @example\n * ```\n *\n * let foo = { a: 1, b: 2, c: 3 }\n * let vals = values(foo); // [ 1, 2, 3 ]\n * ```\n */\nexport const values: (obj: TypedMap) => T[] = (obj: Obj) => Object.keys(obj).map((key) => obj[key]);\n\n/**\n * Reduce function that returns true if all of the values are truthy.\n *\n * @example\n * ```\n *\n * let vals = [ 1, true, {}, \"hello world\"];\n * vals.reduce(allTrueR, true); // true\n *\n * vals.push(0);\n * vals.reduce(allTrueR, true); // false\n * ```\n */\nexport const allTrueR = (memo: boolean, elem: any) => memo && elem;\n\n/**\n * Reduce function that returns true if any of the values are truthy.\n *\n * * @example\n * ```\n *\n * let vals = [ 0, null, undefined ];\n * vals.reduce(anyTrueR, true); // false\n *\n * vals.push(\"hello world\");\n * vals.reduce(anyTrueR, true); // true\n * ```\n */\nexport const anyTrueR = (memo: boolean, elem: any) => memo || elem;\n\n/**\n * Reduce function which un-nests a single level of arrays\n * @example\n * ```\n *\n * let input = [ [ \"a\", \"b\" ], [ \"c\", \"d\" ], [ [ \"double\", \"nested\" ] ] ];\n * input.reduce(unnestR, []) // [ \"a\", \"b\", \"c\", \"d\", [ \"double, \"nested\" ] ]\n * ```\n */\nexport const unnestR = (memo: any[], elem: any[]) => memo.concat(elem);\n\n/**\n * Reduce function which recursively un-nests all arrays\n *\n * @example\n * ```\n *\n * let input = [ [ \"a\", \"b\" ], [ \"c\", \"d\" ], [ [ \"double\", \"nested\" ] ] ];\n * input.reduce(unnestR, []) // [ \"a\", \"b\", \"c\", \"d\", \"double, \"nested\" ]\n * ```\n */\nexport const flattenR = (memo: any[], elem: any) =>\n isArray(elem) ? memo.concat(elem.reduce(flattenR, [])) : pushR(memo, elem);\n\n/**\n * Reduce function that pushes an object to an array, then returns the array.\n * Mostly just for [[flattenR]] and [[uniqR]]\n */\nexport function pushR(arr: any[], obj: any) {\n arr.push(obj);\n return arr;\n}\n\n/** Reduce function that filters out duplicates */\nexport const uniqR = (acc: T[], token: T): T[] => (inArray(acc, token) ? acc : pushR(acc, token));\n\n/**\n * Return a new array with a single level of arrays unnested.\n *\n * @example\n * ```\n *\n * let input = [ [ \"a\", \"b\" ], [ \"c\", \"d\" ], [ [ \"double\", \"nested\" ] ] ];\n * unnest(input) // [ \"a\", \"b\", \"c\", \"d\", [ \"double, \"nested\" ] ]\n * ```\n */\nexport const unnest = (arr: any[]) => arr.reduce(unnestR, []);\n/**\n * Return a completely flattened version of an array.\n *\n * @example\n * ```\n *\n * let input = [ [ \"a\", \"b\" ], [ \"c\", \"d\" ], [ [ \"double\", \"nested\" ] ] ];\n * flatten(input) // [ \"a\", \"b\", \"c\", \"d\", \"double, \"nested\" ]\n * ```\n */\nexport const flatten = (arr: any[]) => arr.reduce(flattenR, []);\n\n/**\n * Given a .filter Predicate, builds a .filter Predicate which throws an error if any elements do not pass.\n * @example\n * ```\n *\n * let isNumber = (obj) => typeof(obj) === 'number';\n * let allNumbers = [ 1, 2, 3, 4, 5 ];\n * allNumbers.filter(assertPredicate(isNumber)); //OK\n *\n * let oneString = [ 1, 2, 3, 4, \"5\" ];\n * oneString.filter(assertPredicate(isNumber, \"Not all numbers\")); // throws Error(\"\"Not all numbers\"\");\n * ```\n */\nexport const assertPredicate: (predicate: Predicate, errMsg: string | Function) => Predicate = assertFn;\n/**\n * Given a .map function, builds a .map function which throws an error if any mapped elements do not pass a truthyness test.\n * @example\n * ```\n *\n * var data = { foo: 1, bar: 2 };\n *\n * let keys = [ 'foo', 'bar' ]\n * let values = keys.map(assertMap(key => data[key], \"Key not found\"));\n * // values is [1, 2]\n *\n * let keys = [ 'foo', 'bar', 'baz' ]\n * let values = keys.map(assertMap(key => data[key], \"Key not found\"));\n * // throws Error(\"Key not found\")\n * ```\n */\nexport const assertMap: (mapFn: (t: T) => U, errMsg: string | Function) => (t: T) => U = assertFn;\nexport function assertFn(predicateOrMap: Function, errMsg: string | Function = 'assert failure'): any {\n return (obj) => {\n const result = predicateOrMap(obj);\n if (!result) {\n throw new Error(isFunction(errMsg) ? (errMsg)(obj) : errMsg);\n }\n return result;\n };\n}\n\n/**\n * Like _.pairs: Given an object, returns an array of key/value pairs\n *\n * @example\n * ```\n *\n * pairs({ foo: \"FOO\", bar: \"BAR }) // [ [ \"foo\", \"FOO\" ], [ \"bar\": \"BAR\" ] ]\n * ```\n */\nexport const pairs = (obj: Obj) => Object.keys(obj).map((key) => [key, obj[key]]);\n\n/**\n * Given two or more parallel arrays, returns an array of tuples where\n * each tuple is composed of [ a[i], b[i], ... z[i] ]\n *\n * @example\n * ```\n *\n * let foo = [ 0, 2, 4, 6 ];\n * let bar = [ 1, 3, 5, 7 ];\n * let baz = [ 10, 30, 50, 70 ];\n * arrayTuples(foo, bar); // [ [0, 1], [2, 3], [4, 5], [6, 7] ]\n * arrayTuples(foo, bar, baz); // [ [0, 1, 10], [2, 3, 30], [4, 5, 50], [6, 7, 70] ]\n * ```\n */\nexport function arrayTuples(...args: any[]): any[] {\n if (args.length === 0) return [];\n const maxArrayLen = args.reduce((min, arr) => Math.min(arr.length, min), 9007199254740991); // aka 2^53 − 1 aka Number.MAX_SAFE_INTEGER\n const result = [];\n\n for (let i = 0; i < maxArrayLen; i++) {\n // This is a hot function\n // Unroll when there are 1-4 arguments\n switch (args.length) {\n case 1:\n result.push([args[0][i]]);\n break;\n case 2:\n result.push([args[0][i], args[1][i]]);\n break;\n case 3:\n result.push([args[0][i], args[1][i], args[2][i]]);\n break;\n case 4:\n result.push([args[0][i], args[1][i], args[2][i], args[3][i]]);\n break;\n default:\n result.push(args.map((array) => array[i]));\n break;\n }\n }\n\n return result;\n}\n\n/**\n * Reduce function which builds an object from an array of [key, value] pairs.\n *\n * Each iteration sets the key/val pair on the memo object, then returns the memo for the next iteration.\n *\n * Each keyValueTuple should be an array with values [ key: string, value: any ]\n *\n * @example\n * ```\n *\n * var pairs = [ [\"fookey\", \"fooval\"], [\"barkey\", \"barval\"] ]\n *\n * var pairsToObj = pairs.reduce((memo, pair) => applyPairs(memo, pair), {})\n * // pairsToObj == { fookey: \"fooval\", barkey: \"barval\" }\n *\n * // Or, more simply:\n * var pairsToObj = pairs.reduce(applyPairs, {})\n * // pairsToObj == { fookey: \"fooval\", barkey: \"barval\" }\n * ```\n */\nexport function applyPairs(memo: TypedMap, keyValTuple: any[]) {\n let key: string, value: any;\n if (isArray(keyValTuple)) [key, value] = keyValTuple;\n if (!isString(key)) throw new Error('invalid parameters to applyPairs');\n memo[key] = value;\n return memo;\n}\n\n/** Get the last element of an array */\nexport function tail(arr: T[]): T {\n return (arr.length && arr[arr.length - 1]) || undefined;\n}\n\n/**\n * shallow copy from src to dest\n */\nexport function copy(src: Obj, dest?: Obj) {\n if (dest) Object.keys(dest).forEach((key) => delete dest[key]);\n if (!dest) dest = {};\n return extend(dest, src);\n}\n\n/** Naive forEach implementation works with Objects or Arrays */\nfunction _forEach(obj: any[] | any, cb: (el, idx?) => void, _this: Obj) {\n if (isArray(obj)) return obj.forEach(cb, _this);\n Object.keys(obj).forEach((key) => cb(obj[key], key));\n}\n\n/** Like Object.assign() */\nexport function _extend(toObj: Obj, ...fromObjs: Obj[]): any;\nexport function _extend(toObj: Obj): any {\n for (let i = 1; i < arguments.length; i++) {\n const obj = arguments[i];\n if (!obj) continue;\n const keys = Object.keys(obj);\n\n for (let j = 0; j < keys.length; j++) {\n toObj[keys[j]] = obj[keys[j]];\n }\n }\n\n return toObj;\n}\n\nfunction _equals(o1: any, o2: any): boolean {\n if (o1 === o2) return true;\n if (o1 === null || o2 === null) return false;\n if (o1 !== o1 && o2 !== o2) return true; // NaN === NaN\n const t1 = typeof o1,\n t2 = typeof o2;\n if (t1 !== t2 || t1 !== 'object') return false;\n\n const tup = [o1, o2];\n if (all(isArray)(tup)) return _arraysEq(o1, o2);\n if (all(isDate)(tup)) return o1.getTime() === o2.getTime();\n if (all(isRegExp)(tup)) return o1.toString() === o2.toString();\n if (all(isFunction)(tup)) return true; // meh\n\n const predicates = [isFunction, isArray, isDate, isRegExp];\n if (predicates.map(any).reduce((b, fn) => b || !!fn(tup), false)) return false;\n\n const keys: { [i: string]: boolean } = {};\n // tslint:disable-next-line:forin\n for (const key in o1) {\n if (!_equals(o1[key], o2[key])) return false;\n keys[key] = true;\n }\n for (const key in o2) {\n if (!keys[key]) return false;\n }\n\n return true;\n}\n\nfunction _arraysEq(a1: any[], a2: any[]) {\n if (a1.length !== a2.length) return false;\n return arrayTuples(a1, a2).reduce((b, t) => b && _equals(t[0], t[1]), true);\n}\n\n// issue #2676\nexport const silenceUncaughtInPromise = (promise: Promise) => promise.catch((e) => 0) && promise;\nexport const silentRejection = (error: any) => silenceUncaughtInPromise(services.$q.reject(error));\n", "/**\n * Matches state names using glob-like pattern strings.\n *\n * Globs can be used in specific APIs including:\n *\n * - [[StateService.is]]\n * - [[StateService.includes]]\n * - The first argument to Hook Registration functions like [[TransitionService.onStart]]\n * - [[HookMatchCriteria]] and [[HookMatchCriterion]]\n *\n * A `Glob` string is a pattern which matches state names.\n * Nested state names are split into segments (separated by a dot) when processing.\n * The state named `foo.bar.baz` is split into three segments ['foo', 'bar', 'baz']\n *\n * Globs work according to the following rules:\n *\n * ### Exact match:\n *\n * The glob `'A.B'` matches the state named exactly `'A.B'`.\n *\n * | Glob |Matches states named|Does not match state named|\n * |:------------|:--------------------|:---------------------|\n * | `'A'` | `'A'` | `'B'` , `'A.C'` |\n * | `'A.B'` | `'A.B'` | `'A'` , `'A.B.C'` |\n * | `'foo'` | `'foo'` | `'FOO'` , `'foo.bar'`|\n *\n * ### Single star (`*`)\n *\n * A single star (`*`) is a wildcard that matches exactly one segment.\n *\n * | Glob |Matches states named |Does not match state named |\n * |:------------|:---------------------|:--------------------------|\n * | `'*'` | `'A'` , `'Z'` | `'A.B'` , `'Z.Y.X'` |\n * | `'A.*'` | `'A.B'` , `'A.C'` | `'A'` , `'A.B.C'` |\n * | `'A.*.*'` | `'A.B.C'` , `'A.X.Y'`| `'A'`, `'A.B'` , `'Z.Y.X'`|\n *\n * ### Double star (`**`)\n *\n * A double star (`'**'`) is a wildcard that matches *zero or more segments*\n *\n * | Glob |Matches states named |Does not match state named |\n * |:------------|:----------------------------------------------|:----------------------------------|\n * | `'**'` | `'A'` , `'A.B'`, `'Z.Y.X'` | (matches all states) |\n * | `'A.**'` | `'A'` , `'A.B'` , `'A.C.X'` | `'Z.Y.X'` |\n * | `'**.X'` | `'X'` , `'A.X'` , `'Z.Y.X'` | `'A'` , `'A.login.Z'` |\n * | `'A.**.X'` | `'A.X'` , `'A.B.X'` , `'A.B.C.X'` | `'A'` , `'A.B.C'` |\n *\n * @packageDocumentation\n */\nexport class Glob {\n text: string;\n glob: Array;\n regexp: RegExp;\n\n /** Returns true if the string has glob-like characters in it */\n static is(text: string) {\n return !!/[!,*]+/.exec(text);\n }\n\n /** Returns a glob from the string, or null if the string isn't Glob-like */\n static fromString(text: string) {\n return Glob.is(text) ? new Glob(text) : null;\n }\n\n constructor(text: string) {\n this.text = text;\n this.glob = text.split('.');\n\n const regexpString = this.text\n .split('.')\n .map((seg) => {\n if (seg === '**') return '(?:|(?:\\\\.[^.]*)*)';\n if (seg === '*') return '\\\\.[^.]*';\n return '\\\\.' + seg;\n })\n .join('');\n\n this.regexp = new RegExp('^' + regexpString + '$');\n }\n\n matches(name: string) {\n return this.regexp.test('.' + name);\n }\n}\n", "import { pushTo } from './common';\n\nexport class Queue {\n private _evictListeners: ((item: T) => void)[] = [];\n public onEvict = pushTo(this._evictListeners);\n\n constructor(private _items: T[] = [], private _limit: number = null) {}\n\n enqueue(item: T) {\n const items = this._items;\n items.push(item);\n if (this._limit && items.length > this._limit) this.evict();\n return item;\n }\n\n evict(): T {\n const item: T = this._items.shift();\n this._evictListeners.forEach((fn) => fn(item));\n return item;\n }\n\n dequeue(): T {\n if (this.size()) return this._items.splice(0, 1)[0];\n }\n\n clear(): Array {\n const current = this._items;\n this._items = [];\n return current;\n }\n\n size(): number {\n return this._items.length;\n }\n\n remove(item: T) {\n const idx = this._items.indexOf(item);\n return idx > -1 && this._items.splice(idx, 1)[0];\n }\n\n peekTail(): T {\n return this._items[this._items.length - 1];\n }\n\n peekHead(): T {\n if (this.size()) return this._items[0];\n }\n}\n", @@ -95,7 +95,7 @@ "import { extend, filter, map } from '../common/common';\nimport { isArray, isDefined } from '../common/predicates';\nimport { ParamTypeDefinition } from './interface';\n\n/**\n * An internal class which implements [[ParamTypeDefinition]].\n *\n * A [[ParamTypeDefinition]] is a plain javascript object used to register custom parameter types.\n * When a param type definition is registered, an instance of this class is created internally.\n *\n * This class has naive implementations for all the [[ParamTypeDefinition]] methods.\n *\n * Used by [[UrlMatcher]] when matching or formatting URLs, or comparing and validating parameter values.\n *\n * #### Example:\n * ```js\n * var paramTypeDef = {\n * decode: function(val) { return parseInt(val, 10); },\n * encode: function(val) { return val && val.toString(); },\n * equals: function(a, b) { return this.is(a) && a === b; },\n * is: function(val) { return angular.isNumber(val) && isFinite(val) && val % 1 === 0; },\n * pattern: /\\d+/\n * }\n *\n * var paramType = new ParamType(paramTypeDef);\n * ```\n */\nexport class ParamType implements ParamTypeDefinition {\n /** @inheritdoc */\n pattern: RegExp = /.*/;\n /** The name/id of the parameter type */\n name: string;\n /** @inheritdoc */\n raw: boolean;\n /** @inheritdoc */\n dynamic: boolean;\n /** @inheritdoc */\n inherit = true;\n\n /**\n * @param def A configuration object which contains the custom type definition. The object's\n * properties will override the default methods and/or pattern in `ParamType`'s public interface.\n * @returns a new ParamType object\n */\n constructor(def: ParamTypeDefinition) {\n extend(this, def);\n }\n\n // consider these four methods to be \"abstract methods\" that should be overridden\n /** @inheritdoc */\n is(val: any, key?: string): boolean {\n return true;\n }\n /** @inheritdoc */\n encode(val: any, key?: string): string | string[] {\n return val;\n }\n /** @inheritdoc */\n decode(val: string, key?: string): any {\n return val;\n }\n /** @inheritdoc */\n equals(a: any, b: any): boolean {\n // tslint:disable-next-line:triple-equals\n return a == b;\n }\n\n $subPattern() {\n const sub = this.pattern.toString();\n return sub.substr(1, sub.length - 2);\n }\n\n toString() {\n return `{ParamType:${this.name}}`;\n }\n\n /** Given an encoded string, or a decoded object, returns a decoded object */\n $normalize(val: any) {\n return this.is(val) ? val : this.decode(val);\n }\n\n /**\n * Wraps an existing custom ParamType as an array of ParamType, depending on 'mode'.\n * e.g.:\n * - urlmatcher pattern \"/path?{queryParam[]:int}\"\n * - url: \"/path?queryParam=1&queryParam=2\n * - $stateParams.queryParam will be [1, 2]\n * if `mode` is \"auto\", then\n * - url: \"/path?queryParam=1 will create $stateParams.queryParam: 1\n * - url: \"/path?queryParam=1&queryParam=2 will create $stateParams.queryParam: [1, 2]\n */\n $asArray(mode: boolean | 'auto', isSearch: boolean) {\n if (!mode) return this;\n if (mode === 'auto' && !isSearch) throw new Error(\"'auto' array mode is for query parameters only\");\n return new (ArrayType)(this, mode);\n }\n}\n\n/** Wraps up a `ParamType` object to handle array values. */\nfunction ArrayType(type: ParamType, mode: boolean | 'auto') {\n // Wrap non-array value as array\n function arrayWrap(val: any): any[] {\n return isArray(val) ? val : isDefined(val) ? [val] : [];\n }\n\n // Unwrap array value for \"auto\" mode. Return undefined for empty array.\n function arrayUnwrap(val: any) {\n switch (val.length) {\n case 0:\n return undefined;\n case 1:\n return mode === 'auto' ? val[0] : val;\n default:\n return val;\n }\n }\n\n // Wraps type (.is/.encode/.decode) functions to operate on each value of an array\n function arrayHandler(callback: (x: any) => any, allTruthyMode?: boolean) {\n return function handleArray(val: any) {\n if (isArray(val) && val.length === 0) return val;\n const arr = arrayWrap(val);\n const result = map(arr, callback);\n return allTruthyMode === true ? filter(result, (x) => !x).length === 0 : arrayUnwrap(result);\n };\n }\n\n // Wraps type (.equals) functions to operate on each value of an array\n function arrayEqualsHandler(callback: (l: any, r: any) => boolean) {\n return function handleArray(val1: any, val2: any) {\n const left = arrayWrap(val1),\n right = arrayWrap(val2);\n if (left.length !== right.length) return false;\n for (let i = 0; i < left.length; i++) {\n if (!callback(left[i], right[i])) return false;\n }\n return true;\n };\n }\n\n ['encode', 'decode', 'equals', '$normalize'].forEach((name) => {\n const paramTypeFn = type[name].bind(type);\n const wrapperFn: Function = name === 'equals' ? arrayEqualsHandler : arrayHandler;\n this[name] = wrapperFn(paramTypeFn);\n });\n\n extend(this, {\n dynamic: type.dynamic,\n name: type.name,\n pattern: type.pattern,\n inherit: type.inherit,\n raw: type.raw,\n is: arrayHandler(type.is.bind(type), true),\n $arrayMode: mode,\n });\n}\n", "import { extend, filter, map, allTrueR, find } from '../common/common';\nimport { prop } from '../common/hof';\nimport { isInjectable, isDefined, isString, isArray, isUndefined } from '../common/predicates';\nimport { RawParams, ParamDeclaration } from '../params/interface';\nimport { services } from '../common/coreservices';\nimport { ParamType } from './paramType';\nimport { ParamTypes } from './paramTypes';\nimport { StateDeclaration } from '../state';\nimport { UrlConfig } from '../url';\n\nconst hasOwn = Object.prototype.hasOwnProperty;\n\nconst isShorthand = (cfg: ParamDeclaration) =>\n ['value', 'type', 'squash', 'array', 'dynamic'].filter(hasOwn.bind(cfg || {})).length === 0;\n\nenum DefType {\n PATH,\n SEARCH,\n CONFIG,\n}\nexport { DefType };\n\nfunction getParamDeclaration(paramName: string, location: DefType, state: StateDeclaration): ParamDeclaration {\n const noReloadOnSearch = (state.reloadOnSearch === false && location === DefType.SEARCH) || undefined;\n const dynamic = find([state.dynamic, noReloadOnSearch], isDefined);\n const defaultConfig = isDefined(dynamic) ? { dynamic } : {};\n const paramConfig = unwrapShorthand(state && state.params && state.params[paramName]);\n return extend(defaultConfig, paramConfig);\n}\n\nfunction unwrapShorthand(cfg: ParamDeclaration): ParamDeclaration {\n cfg = isShorthand(cfg) ? ({ value: cfg } as ParamDeclaration) : cfg;\n\n getStaticDefaultValue['__cacheable'] = true;\n function getStaticDefaultValue() {\n return cfg.value;\n }\n\n const $$fn = isInjectable(cfg.value) ? cfg.value : getStaticDefaultValue;\n return extend(cfg, { $$fn });\n}\n\nfunction getType(cfg: ParamDeclaration, urlType: ParamType, location: DefType, id: string, paramTypes: ParamTypes) {\n if (cfg.type && urlType && urlType.name !== 'string') throw new Error(`Param '${id}' has two type configurations.`);\n if (cfg.type && urlType && urlType.name === 'string' && paramTypes.type(cfg.type as string))\n return paramTypes.type(cfg.type as string);\n if (urlType) return urlType;\n if (!cfg.type) {\n const type =\n location === DefType.CONFIG\n ? 'any'\n : location === DefType.PATH\n ? 'path'\n : location === DefType.SEARCH\n ? 'query'\n : 'string';\n return paramTypes.type(type);\n }\n return cfg.type instanceof ParamType ? cfg.type : paramTypes.type(cfg.type as string);\n}\n\n/** returns false, true, or the squash value to indicate the \"default parameter url squash policy\". */\nfunction getSquashPolicy(config: ParamDeclaration, isOptional: boolean, defaultPolicy: boolean | string) {\n const squash = config.squash;\n if (!isOptional || squash === false) return false;\n if (!isDefined(squash) || squash == null) return defaultPolicy;\n if (squash === true || isString(squash)) return squash;\n throw new Error(`Invalid squash policy: '${squash}'. Valid policies: false, true, or arbitrary string`);\n}\n\nfunction getReplace(config: ParamDeclaration, arrayMode: boolean, isOptional: boolean, squash: string | boolean) {\n const defaultPolicy = [\n { from: '', to: isOptional || arrayMode ? undefined : '' },\n { from: null, to: isOptional || arrayMode ? undefined : '' },\n ];\n\n const replace = isArray(config.replace) ? config.replace : [];\n if (isString(squash)) replace.push({ from: squash, to: undefined });\n\n const configuredKeys = map(replace, prop('from'));\n return filter(defaultPolicy, (item) => configuredKeys.indexOf(item.from) === -1).concat(replace);\n}\n\nexport class Param {\n id: string;\n type: ParamType;\n location: DefType;\n isOptional: boolean;\n dynamic: boolean;\n raw: boolean;\n squash: boolean | string;\n replace: [{ to: any; from: any }];\n inherit: boolean;\n array: boolean;\n config: any;\n /** Cache the default value if it is a static value */\n _defaultValueCache: {\n defaultValue: any;\n };\n\n static values(params: Param[], values: RawParams = {}): RawParams {\n const paramValues = {} as RawParams;\n for (const param of params) {\n paramValues[param.id] = param.value(values[param.id]);\n }\n return paramValues;\n }\n\n /**\n * Finds [[Param]] objects which have different param values\n *\n * Filters a list of [[Param]] objects to only those whose parameter values differ in two param value objects\n *\n * @param params: The list of Param objects to filter\n * @param values1: The first set of parameter values\n * @param values2: the second set of parameter values\n *\n * @returns any Param objects whose values were different between values1 and values2\n */\n static changed(params: Param[], values1: RawParams = {}, values2: RawParams = {}): Param[] {\n return params.filter((param) => !param.type.equals(values1[param.id], values2[param.id]));\n }\n\n /**\n * Checks if two param value objects are equal (for a set of [[Param]] objects)\n *\n * @param params The list of [[Param]] objects to check\n * @param values1 The first set of param values\n * @param values2 The second set of param values\n *\n * @returns true if the param values in values1 and values2 are equal\n */\n static equals(params: Param[], values1 = {}, values2 = {}): boolean {\n return Param.changed(params, values1, values2).length === 0;\n }\n\n /** Returns true if a the parameter values are valid, according to the Param definitions */\n static validates(params: Param[], values: RawParams = {}): boolean {\n return params.map((param) => param.validates(values[param.id])).reduce(allTrueR, true);\n }\n\n constructor(id: string, type: ParamType, location: DefType, urlConfig: UrlConfig, state: StateDeclaration) {\n const config: ParamDeclaration = getParamDeclaration(id, location, state);\n type = getType(config, type, location, id, urlConfig.paramTypes);\n const arrayMode = getArrayMode();\n type = arrayMode ? type.$asArray(arrayMode, location === DefType.SEARCH) : type;\n const isOptional = config.value !== undefined || location === DefType.SEARCH;\n const dynamic = isDefined(config.dynamic) ? !!config.dynamic : !!type.dynamic;\n const raw = isDefined(config.raw) ? !!config.raw : !!type.raw;\n const squash = getSquashPolicy(config, isOptional, urlConfig.defaultSquashPolicy());\n const replace = getReplace(config, arrayMode, isOptional, squash);\n const inherit = isDefined(config.inherit) ? !!config.inherit : !!type.inherit;\n\n // array config: param name (param[]) overrides default settings. explicit config overrides param name.\n function getArrayMode() {\n const arrayDefaults = { array: location === DefType.SEARCH ? 'auto' : false };\n const arrayParamNomenclature = id.match(/\\[\\]$/) ? { array: true } : {};\n return extend(arrayDefaults, arrayParamNomenclature, config).array;\n }\n\n extend(this, { id, type, location, isOptional, dynamic, raw, squash, replace, inherit, array: arrayMode, config });\n }\n\n isDefaultValue(value: any): boolean {\n return this.isOptional && this.type.equals(this.value(), value);\n }\n\n /**\n * [Internal] Gets the decoded representation of a value if the value is defined, otherwise, returns the\n * default value, which may be the result of an injectable function.\n */\n value(value?: any): any {\n /**\n * [Internal] Get the default value of a parameter, which may be an injectable function.\n */\n const getDefaultValue = () => {\n if (this._defaultValueCache) return this._defaultValueCache.defaultValue;\n\n if (!services.$injector) throw new Error('Injectable functions cannot be called at configuration time');\n\n const defaultValue = services.$injector.invoke(this.config.$$fn);\n\n if (defaultValue !== null && defaultValue !== undefined && !this.type.is(defaultValue))\n throw new Error(\n `Default value (${defaultValue}) for parameter '${this.id}' is not an instance of ParamType (${this.type.name})`\n );\n\n if (this.config.$$fn['__cacheable']) {\n this._defaultValueCache = { defaultValue };\n }\n\n return defaultValue;\n };\n\n const replaceSpecialValues = (val: any) => {\n for (const tuple of this.replace) {\n if (tuple.from === val) return tuple.to;\n }\n return val;\n };\n\n value = replaceSpecialValues(value);\n\n return isUndefined(value) ? getDefaultValue() : this.type.$normalize(value);\n }\n\n isSearch(): boolean {\n return this.location === DefType.SEARCH;\n }\n\n validates(value: any): boolean {\n // There was no parameter value, but the param is optional\n if ((isUndefined(value) || value === null) && this.isOptional) return true;\n\n // The value was not of the correct ParamType, and could not be decoded to the correct ParamType\n const normalized = this.type.$normalize(value);\n if (!this.type.is(normalized)) return false;\n\n // The value was of the correct type, but when encoded, did not match the ParamType's regexp\n const encoded = this.type.encode(normalized);\n return !(isString(encoded) && !this.type.pattern.exec(encoded));\n }\n\n toString() {\n return `{Param:${this.id} ${this.type} squash: '${this.squash}' optional: ${this.isOptional}}`;\n }\n}\n", "import { fromJson, toJson, identity, equals, inherit, map, extend, pick } from '../common/common';\nimport { isDefined, isNullOrUndefined } from '../common/predicates';\nimport { is } from '../common/hof';\nimport { services } from '../common/coreservices';\nimport { ParamType } from './paramType';\nimport { ParamTypeDefinition } from './interface';\n\n/**\n * A registry for parameter types.\n *\n * This registry manages the built-in (and custom) parameter types.\n *\n * The built-in parameter types are:\n *\n * - [[string]]\n * - [[path]]\n * - [[query]]\n * - [[hash]]\n * - [[int]]\n * - [[bool]]\n * - [[date]]\n * - [[json]]\n * - [[any]]\n *\n * To register custom parameter types, use [[UrlConfig.type]], i.e.,\n *\n * ```js\n * router.urlService.config.type(customType)\n * ```\n */\nexport class ParamTypes {\n /**\n * Built-in parameter type: `string`\n *\n * This parameter type coerces values to strings.\n * It matches anything (`new RegExp(\".*\")`) in the URL\n */\n static string: ParamTypeDefinition;\n\n /**\n * Built-in parameter type: `path`\n *\n * This parameter type is the default type for path parameters.\n * A path parameter is any parameter declared in the path portion of a url\n *\n * - `/foo/:param1/:param2`: two path parameters\n *\n * This parameter type behaves exactly like the [[string]] type with one exception.\n * When matching parameter values in the URL, the `path` type does not match forward slashes `/`.\n *\n * #### Angular 1 note:\n * In ng1, this type is overridden with one that pre-encodes slashes as `~2F` instead of `%2F`.\n * For more details about this angular 1 behavior, see: https://github.com/angular-ui/ui-router/issues/2598\n */\n static path: ParamTypeDefinition;\n\n /**\n * Built-in parameter type: `query`\n *\n * This parameter type is the default type for query/search parameters.\n * It behaves the same as the [[string]] parameter type.\n *\n * A query parameter is any parameter declared in the query/search portion of a url\n *\n * - `/bar?param2`: a query parameter\n */\n static query: ParamTypeDefinition;\n\n /**\n * Built-in parameter type: `hash`\n *\n * This parameter type is used for the `#` parameter (the hash)\n * It behaves the same as the [[string]] parameter type.\n */\n static hash: ParamTypeDefinition;\n\n /**\n * Built-in parameter type: `int`\n *\n * This parameter type serializes javascript integers (`number`s which represent an integer) to the URL.\n *\n * #### Example:\n * ```js\n * .state({\n * name: 'user',\n * url: '/user/{id:int}'\n * });\n * ```\n * ```js\n * $state.go('user', { id: 1298547 });\n * ```\n *\n * The URL will serialize to: `/user/1298547`.\n *\n * When the parameter value is read, it will be the `number` `1298547`, not the string `\"1298547\"`.\n */\n static int: ParamTypeDefinition;\n\n /**\n * Built-in parameter type: `bool`\n *\n * This parameter type serializes `true`/`false` as `1`/`0`\n *\n * #### Example:\n * ```js\n * .state({\n * name: 'inbox',\n * url: '/inbox?{unread:bool}'\n * });\n * ```\n * ```js\n * $state.go('inbox', { unread: true });\n * ```\n *\n * The URL will serialize to: `/inbox?unread=1`.\n *\n * Conversely, if the url is `/inbox?unread=0`, the value of the `unread` parameter will be a `false`.\n */\n static bool: ParamTypeDefinition;\n\n /**\n * Built-in parameter type: `date`\n *\n * This parameter type can be used to serialize Javascript dates as parameter values.\n *\n * #### Example:\n * ```js\n * .state({\n * name: 'search',\n * url: '/search?{start:date}'\n * });\n * ```\n * ```js\n * $state.go('search', { start: new Date(2000, 0, 1) });\n * ```\n *\n * The URL will serialize to: `/search?start=2000-01-01`.\n *\n * Conversely, if the url is `/search?start=2016-12-25`, the value of the `start` parameter will be a `Date` object where:\n *\n * - `date.getFullYear() === 2016`\n * - `date.getMonth() === 11` (month is 0-based)\n * - `date.getDate() === 25`\n */\n static date: ParamTypeDefinition;\n\n /**\n * Built-in parameter type: `json`\n *\n * This parameter type can be used to serialize javascript objects into the URL using JSON serialization.\n *\n * #### Example:\n * This example serializes an plain javascript object to the URL\n * ```js\n * .state({\n * name: 'map',\n * url: '/map/{coords:json}'\n * });\n * ```\n * ```js\n * $state.go('map', { coords: { x: 10399.2, y: 49071 });\n * ```\n *\n * The URL will serialize to: `/map/%7B%22x%22%3A10399.2%2C%22y%22%3A49071%7D`\n */\n static json: ParamTypeDefinition;\n\n /**\n * Built-in parameter type: `any`\n *\n * This parameter type is used by default for url-less parameters (parameters that do not appear in the URL).\n * This type does not encode or decode.\n * It is compared using a deep `equals` comparison.\n *\n * #### Example:\n * This example defines a non-url parameter on a [[StateDeclaration]].\n * ```js\n * .state({\n * name: 'new',\n * url: '/new',\n * params: {\n * inrepyto: null\n * }\n * });\n * ```\n * ```js\n * $state.go('new', { inreplyto: currentMessage });\n * ```\n */\n static any: ParamTypeDefinition;\n\n types: any;\n enqueue = true;\n typeQueue: any[] = [];\n\n private defaultTypes: any = pick(ParamTypes.prototype, [\n 'hash',\n 'string',\n 'query',\n 'path',\n 'int',\n 'bool',\n 'date',\n 'json',\n 'any',\n ]);\n\n constructor() {\n // Register default types. Store them in the prototype of this.types.\n const makeType = (definition: ParamTypeDefinition, name: string) => new ParamType(extend({ name }, definition));\n this.types = inherit(map(this.defaultTypes, makeType), {});\n }\n\n dispose() {\n this.types = {};\n }\n\n /**\n * Registers a parameter type\n *\n * End users should call [[UrlMatcherFactory.type]], which delegates to this method.\n */\n type(name: string, definition?: ParamTypeDefinition, definitionFn?: () => ParamTypeDefinition) {\n if (!isDefined(definition)) return this.types[name];\n if (this.types.hasOwnProperty(name)) throw new Error(`A type named '${name}' has already been defined.`);\n\n this.types[name] = new ParamType(extend({ name }, definition));\n\n if (definitionFn) {\n this.typeQueue.push({ name, def: definitionFn });\n if (!this.enqueue) this._flushTypeQueue();\n }\n\n return this;\n }\n\n _flushTypeQueue() {\n while (this.typeQueue.length) {\n const type = this.typeQueue.shift();\n if (type.pattern) throw new Error(\"You cannot override a type's .pattern at runtime.\");\n extend(this.types[type.name], services.$injector.invoke(type.def));\n }\n }\n}\n\nfunction initDefaultTypes() {\n const makeDefaultType = (def) => {\n const valToString = (val: any) => (val != null ? val.toString() : val);\n\n const defaultTypeBase = {\n encode: valToString,\n decode: valToString,\n is: is(String),\n pattern: /.*/,\n // tslint:disable-next-line:triple-equals\n equals: (a: any, b: any) => a == b, // allow coersion for null/undefined/\"\"\n };\n\n return extend({}, defaultTypeBase, def) as ParamTypeDefinition;\n };\n\n // Default Parameter Type Definitions\n extend(ParamTypes.prototype, {\n string: makeDefaultType({}),\n\n path: makeDefaultType({\n pattern: /[^/]*/,\n }),\n\n query: makeDefaultType({}),\n\n hash: makeDefaultType({\n inherit: false,\n }),\n\n int: makeDefaultType({\n decode: (val: string) => parseInt(val, 10),\n is: function (val: any) {\n return !isNullOrUndefined(val) && this.decode(val.toString()) === val;\n },\n pattern: /-?\\d+/,\n }),\n\n bool: makeDefaultType({\n encode: (val: any) => (val && 1) || 0,\n decode: (val: string) => parseInt(val, 10) !== 0,\n is: is(Boolean),\n pattern: /0|1/,\n }),\n\n date: makeDefaultType({\n encode: function (val: any) {\n return !this.is(val)\n ? undefined\n : [val.getFullYear(), ('0' + (val.getMonth() + 1)).slice(-2), ('0' + val.getDate()).slice(-2)].join('-');\n },\n decode: function (val: string) {\n if (this.is(val)) return (val) as Date;\n const match = this.capture.exec(val);\n return match ? new Date(match[1], match[2] - 1, match[3]) : undefined;\n },\n is: (val: any) => val instanceof Date && !isNaN(val.valueOf()),\n equals(l: any, r: any) {\n return ['getFullYear', 'getMonth', 'getDate'].reduce((acc, fn) => acc && l[fn]() === r[fn](), true);\n },\n pattern: /[0-9]{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2][0-9]|3[0-1])/,\n capture: /([0-9]{4})-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])/,\n }),\n\n json: makeDefaultType({\n encode: toJson,\n decode: fromJson,\n is: is(Object),\n equals: equals,\n pattern: /[^/]*/,\n }),\n\n // does not encode/decode\n any: makeDefaultType({\n encode: identity,\n decode: identity,\n is: () => true,\n equals: equals,\n }),\n });\n}\n\ninitDefaultTypes();\n", - "import { extend, ancestors, Obj } from '../common/common';\nimport { StateObject } from '../state/stateObject';\n\nexport class StateParams {\n [key: string]: any;\n\n constructor(params: Obj = {}) {\n extend(this, params);\n }\n\n /**\n * Merges a set of parameters with all parameters inherited between the common parents of the\n * current state and a given destination state.\n *\n * @param {Object} newParams The set of parameters which will be composited with inherited params.\n * @param {Object} $current Internal definition of object representing the current state.\n * @param {Object} $to Internal definition of object representing state to transition to.\n */\n $inherit(newParams: Obj, $current: StateObject, $to: StateObject) {\n let parentParams: string[];\n const parents = ancestors($current, $to),\n inherited: Obj = {},\n inheritList: string[] = [];\n\n for (const i in parents) {\n if (!parents[i] || !parents[i].params) continue;\n parentParams = Object.keys(parents[i].params);\n if (!parentParams.length) continue;\n\n for (const j in parentParams) {\n if (inheritList.indexOf(parentParams[j]) >= 0) continue;\n inheritList.push(parentParams[j]);\n inherited[parentParams[j]] = this[parentParams[j]];\n }\n }\n return extend({}, inherited, newParams);\n }\n}\n", + "import { Param } from '.';\nimport { extend, ancestors, Obj } from '../common/common';\nimport { StateObject } from '../state/stateObject';\n\nexport class StateParams {\n [key: string]: any;\n\n constructor(params: Obj = {}) {\n extend(this, params);\n }\n\n /**\n * Merges a set of parameters with all parameters inherited between the common parents of the\n * current state and a given destination state.\n *\n * @param {Object} newParams The set of parameters which will be composited with inherited params.\n * @param {Object} $current Internal definition of object representing the current state.\n * @param {Object} $to Internal definition of object representing state to transition to.\n */\n $inherit(newParams: Obj, $current: StateObject, $to: StateObject) {\n const parents = ancestors($current, $to),\n inherited: Obj = {},\n inheritList: string[] = [];\n\n for (const i in parents) {\n if (!parents[i] || !parents[i].params) continue;\n const parentParams = parents[i].params;\n const parentParamsKeys = Object.keys(parentParams);\n if (!parentParamsKeys.length) continue;\n\n for (const j in parentParamsKeys) {\n if (\n !parentParamsKeys.hasOwnProperty(j) ||\n parentParams[parentParamsKeys[j]].inherit == false ||\n inheritList.indexOf(parentParamsKeys[j]) >= 0\n )\n continue;\n inheritList.push(parentParamsKeys[j]);\n inherited[parentParamsKeys[j]] = this[parentParamsKeys[j]];\n }\n }\n return extend({}, inherited, newParams);\n }\n}\n", "import { extend, applyPairs, find, allTrueR, pairs, arrayTuples } from '../common/common';\nimport { propEq } from '../common/hof';\nimport { StateObject } from '../state/stateObject';\nimport { RawParams } from '../params/interface';\nimport { Param } from '../params/param';\nimport { Resolvable } from '../resolve/resolvable';\nimport { ViewConfig } from '../view/interface';\n\n/**\n * A node in a [[TreeChanges]] path\n *\n * For a [[TreeChanges]] path, this class holds the stateful information for a single node in the path.\n * Each PathNode corresponds to a state being entered, exited, or retained.\n * The stateful information includes parameter values and resolve data.\n */\nexport class PathNode {\n /** The state being entered, exited, or retained */\n public state: StateObject;\n /** The parameters declared on the state */\n public paramSchema: Param[];\n /** The parameter values that belong to the state */\n public paramValues: { [key: string]: any };\n /** The individual (stateful) resolvable objects that belong to the state */\n public resolvables: Resolvable[];\n /** The state's declared view configuration objects */\n public views: ViewConfig[];\n\n /**\n * Returns a clone of the PathNode\n * @deprecated use instance method `node.clone()`\n */\n static clone = (node: PathNode) => node.clone();\n\n /** Creates a copy of a PathNode */\n constructor(node: PathNode);\n /** Creates a new (empty) PathNode for a State */\n constructor(state: StateObject);\n constructor(stateOrNode: any) {\n if (stateOrNode instanceof PathNode) {\n const node: PathNode = stateOrNode;\n this.state = node.state;\n this.paramSchema = node.paramSchema.slice();\n this.paramValues = extend({}, node.paramValues);\n this.resolvables = node.resolvables.slice();\n this.views = node.views && node.views.slice();\n } else {\n const state: StateObject = stateOrNode;\n this.state = state;\n this.paramSchema = state.parameters({ inherit: false });\n this.paramValues = {};\n this.resolvables = state.resolvables.map((res) => res.clone());\n }\n }\n\n clone() {\n return new PathNode(this);\n }\n\n /** Sets [[paramValues]] for the node, from the values of an object hash */\n applyRawParams(params: RawParams): PathNode {\n const getParamVal = (paramDef: Param) => [paramDef.id, paramDef.value(params[paramDef.id])];\n this.paramValues = this.paramSchema.reduce((memo, pDef) => applyPairs(memo, getParamVal(pDef)), {});\n return this;\n }\n\n /** Gets a specific [[Param]] metadata that belongs to the node */\n parameter(name: string): Param {\n return find(this.paramSchema, propEq('id', name));\n }\n\n /**\n * @returns true if the state and parameter values for another PathNode are\n * equal to the state and param values for this PathNode\n */\n equals(node: PathNode, paramsFn?: GetParamsFn): boolean {\n const diff = this.diff(node, paramsFn);\n return diff && diff.length === 0;\n }\n\n /**\n * Finds Params with different parameter values on another PathNode.\n *\n * Given another node (of the same state), finds the parameter values which differ.\n * Returns the [[Param]] (schema objects) whose parameter values differ.\n *\n * Given another node for a different state, returns `false`\n *\n * @param node The node to compare to\n * @param paramsFn A function that returns which parameters should be compared.\n * @returns The [[Param]]s which differ, or null if the two nodes are for different states\n */\n diff(node: PathNode, paramsFn?: GetParamsFn): Param[] | false {\n if (this.state !== node.state) return false;\n\n const params: Param[] = paramsFn ? paramsFn(this) : this.paramSchema;\n return Param.changed(params, this.paramValues, node.paramValues);\n }\n}\n\n/** @internal */\nexport type GetParamsFn = (pathNode: PathNode) => Param[];\n", "import { StateDeclaration, StateOrName, TargetStateDef } from './interface';\nimport { TransitionOptions } from '../transition/interface';\nimport { StateObject } from './stateObject';\nimport { isObject, isString } from '../common/predicates';\nimport { stringify } from '../common/strings';\nimport { extend } from '../common';\nimport { StateRegistry } from './stateRegistry';\nimport { RawParams } from '../params';\n\n/**\n * Encapsulate the target (destination) state/params/options of a [[Transition]].\n *\n * This class is frequently used to redirect a transition to a new destination.\n *\n * See:\n *\n * - [[HookResult]]\n * - [[TransitionHookFn]]\n * - [[TransitionService.onStart]]\n *\n * To create a `TargetState`, use [[StateService.target]].\n *\n * ---\n *\n * This class wraps:\n *\n * 1) an identifier for a state\n * 2) a set of parameters\n * 3) and transition options\n * 4) the registered state object (the [[StateDeclaration]])\n *\n * Many UI-Router APIs such as [[StateService.go]] take a [[StateOrName]] argument which can\n * either be a *state object* (a [[StateDeclaration]] or [[StateObject]]) or a *state name* (a string).\n * The `TargetState` class normalizes those options.\n *\n * A `TargetState` may be valid (the state being targeted exists in the registry)\n * or invalid (the state being targeted is not registered).\n */\nexport class TargetState {\n private _definition: StateObject;\n private _params: RawParams;\n private _options: TransitionOptions;\n\n /** Returns true if the object has a state property that might be a state or state name */\n static isDef = (obj): obj is TargetStateDef => {\n return obj && obj.state && (isString(obj.state) || (isObject(obj.state) && isString(obj.state.name)));\n };\n\n /**\n * The TargetState constructor\n *\n * Note: Do not construct a `TargetState` manually.\n * To create a `TargetState`, use the [[StateService.target]] factory method.\n *\n * @param _stateRegistry The StateRegistry to use to look up the _definition\n * @param _identifier An identifier for a state.\n * Either a fully-qualified state name, or the object used to define the state.\n * @param _params Parameters for the target state\n * @param _options Transition options.\n *\n * @internal\n */\n constructor(\n private _stateRegistry: StateRegistry,\n private _identifier: StateOrName,\n _params?: RawParams,\n _options?: TransitionOptions\n ) {\n this._identifier = _identifier;\n this._params = extend({}, _params || {});\n this._options = extend({}, _options || {});\n this._definition = _stateRegistry.matcher.find(_identifier, this._options.relative);\n }\n\n /** The name of the state this object targets */\n name(): string {\n return (this._definition && this._definition.name) || this._identifier;\n }\n\n /** The identifier used when creating this TargetState */\n identifier(): StateOrName {\n return this._identifier;\n }\n\n /** The target parameter values */\n params(): RawParams {\n return this._params;\n }\n\n /** The internal state object (if it was found) */\n $state(): StateObject {\n return this._definition;\n }\n\n /** The internal state declaration (if it was found) */\n state(): StateDeclaration {\n return this._definition && this._definition.self;\n }\n\n /** The target options */\n options() {\n return this._options;\n }\n\n /** True if the target state was found */\n exists(): boolean {\n return !!(this._definition && this._definition.self);\n }\n\n /** True if the object is valid */\n valid(): boolean {\n return !this.error();\n }\n\n /** If the object is invalid, returns the reason why */\n error(): string {\n const base = this.options().relative;\n if (!this._definition && !!base) {\n const stateName = base.name ? base.name : base;\n return `Could not resolve '${this.name()}' from state '${stateName}'`;\n }\n if (!this._definition) return `No such state '${this.name()}'`;\n if (!this._definition.self) return `State '${this.name()}' has an invalid definition`;\n }\n\n toString() {\n return `'${this.name()}'${stringify(this.params())}`;\n }\n\n /**\n * Returns a copy of this TargetState which targets a different state.\n * The new TargetState has the same parameter values and transition options.\n *\n * @param state The new state that should be targeted\n */\n withState(state: StateOrName): TargetState {\n return new TargetState(this._stateRegistry, state, this._params, this._options);\n }\n\n /**\n * Returns a copy of this TargetState, using the specified parameter values.\n *\n * @param params the new parameter values to use\n * @param replace When false (default) the new parameter values will be merged with the current values.\n * When true the parameter values will be used instead of the current values.\n */\n withParams(params: RawParams, replace = false): TargetState {\n const newParams: RawParams = replace ? params : extend({}, this._params, params);\n return new TargetState(this._stateRegistry, this._identifier, newParams, this._options);\n }\n\n /**\n * Returns a copy of this TargetState, using the specified Transition Options.\n *\n * @param options the new options to use\n * @param replace When false (default) the new options will be merged with the current options.\n * When true the options will be used instead of the current options.\n */\n withOptions(options: TransitionOptions, replace = false): TargetState {\n const newOpts = replace ? options : extend({}, this._options, options);\n return new TargetState(this._stateRegistry, this._identifier, this._params, newOpts);\n }\n}\n", "import {\n extend,\n find,\n pick,\n omit,\n tail,\n mergeR,\n values,\n unnestR,\n Predicate,\n inArray,\n arrayTuples,\n} from '../common/common';\nimport { prop, propEq, not } from '../common/hof';\n\nimport { RawParams } from '../params/interface';\nimport { TreeChanges } from '../transition/interface';\nimport { ViewConfig } from '../view/interface';\nimport { _ViewDeclaration } from '../state/interface';\n\nimport { StateObject } from '../state/stateObject';\nimport { TargetState } from '../state/targetState';\nimport { GetParamsFn, PathNode } from './pathNode';\nimport { ViewService } from '../view/view';\nimport { Param } from '../params/param';\nimport { StateRegistry } from '../state';\n\n/**\n * This class contains functions which convert TargetStates, Nodes and paths from one type to another.\n */\nexport class PathUtils {\n /** Given a PathNode[], create an TargetState */\n static makeTargetState(registry: StateRegistry, path: PathNode[]): TargetState {\n const state = tail(path).state;\n return new TargetState(registry, state, path.map(prop('paramValues')).reduce(mergeR, {}), {});\n }\n\n static buildPath(targetState: TargetState) {\n const toParams = targetState.params();\n return targetState.$state().path.map((state) => new PathNode(state).applyRawParams(toParams));\n }\n\n /** Given a fromPath: PathNode[] and a TargetState, builds a toPath: PathNode[] */\n static buildToPath(fromPath: PathNode[], targetState: TargetState): PathNode[] {\n const toPath: PathNode[] = PathUtils.buildPath(targetState);\n if (targetState.options().inherit) {\n return PathUtils.inheritParams(fromPath, toPath, Object.keys(targetState.params()));\n }\n return toPath;\n }\n\n /**\n * Creates ViewConfig objects and adds to nodes.\n *\n * On each [[PathNode]], creates ViewConfig objects from the views: property of the node's state\n */\n static applyViewConfigs($view: ViewService, path: PathNode[], states: StateObject[]) {\n // Only apply the viewConfigs to the nodes for the given states\n path\n .filter((node) => inArray(states, node.state))\n .forEach((node) => {\n const viewDecls: _ViewDeclaration[] = values(node.state.views || {});\n const subPath = PathUtils.subPath(path, (n) => n === node);\n const viewConfigs: ViewConfig[][] = viewDecls.map((view) => $view.createViewConfig(subPath, view));\n node.views = viewConfigs.reduce(unnestR, []);\n });\n }\n\n /**\n * Given a fromPath and a toPath, returns a new to path which inherits parameters from the fromPath\n *\n * For a parameter in a node to be inherited from the from path:\n * - The toPath's node must have a matching node in the fromPath (by state).\n * - The parameter name must not be found in the toKeys parameter array.\n *\n * Note: the keys provided in toKeys are intended to be those param keys explicitly specified by some\n * caller, for instance, $state.transitionTo(..., toParams). If a key was found in toParams,\n * it is not inherited from the fromPath.\n */\n static inheritParams(fromPath: PathNode[], toPath: PathNode[], toKeys: string[] = []): PathNode[] {\n function nodeParamVals(path: PathNode[], state: StateObject): RawParams {\n const node: PathNode = find(path, propEq('state', state));\n return extend({}, node && node.paramValues);\n }\n\n const noInherit = fromPath\n .map((node) => node.paramSchema)\n .reduce(unnestR, [])\n .filter((param) => !param.inherit)\n .map(prop('id'));\n\n /**\n * Given an [[PathNode]] \"toNode\", return a new [[PathNode]] with param values inherited from the\n * matching node in fromPath. Only inherit keys that aren't found in \"toKeys\" from the node in \"fromPath\"\"\n */\n function makeInheritedParamsNode(toNode: PathNode): PathNode {\n // All param values for the node (may include default key/vals, when key was not found in toParams)\n let toParamVals = extend({}, toNode && toNode.paramValues);\n // limited to only those keys found in toParams\n const incomingParamVals = pick(toParamVals, toKeys);\n toParamVals = omit(toParamVals, toKeys);\n const fromParamVals = omit(nodeParamVals(fromPath, toNode.state) || {}, noInherit);\n // extend toParamVals with any fromParamVals, then override any of those those with incomingParamVals\n const ownParamVals: RawParams = extend(toParamVals, fromParamVals, incomingParamVals);\n return new PathNode(toNode.state).applyRawParams(ownParamVals);\n }\n\n // The param keys specified by the incoming toParams\n return toPath.map(makeInheritedParamsNode);\n }\n\n static nonDynamicParams = (node: PathNode): Param[] =>\n node.state.parameters({ inherit: false }).filter((param) => !param.dynamic);\n\n /**\n * Computes the tree changes (entering, exiting) between a fromPath and toPath.\n */\n static treeChanges(fromPath: PathNode[], toPath: PathNode[], reloadState: StateObject): TreeChanges {\n const max = Math.min(fromPath.length, toPath.length);\n let keep = 0;\n\n const nodesMatch = (node1: PathNode, node2: PathNode) => node1.equals(node2, PathUtils.nonDynamicParams);\n\n while (keep < max && fromPath[keep].state !== reloadState && nodesMatch(fromPath[keep], toPath[keep])) {\n keep++;\n }\n\n /** Given a retained node, return a new node which uses the to node's param values */\n function applyToParams(retainedNode: PathNode, idx: number): PathNode {\n const cloned = retainedNode.clone();\n cloned.paramValues = toPath[idx].paramValues;\n return cloned;\n }\n\n let from: PathNode[], retained: PathNode[], exiting: PathNode[], entering: PathNode[], to: PathNode[];\n\n from = fromPath;\n retained = from.slice(0, keep);\n exiting = from.slice(keep);\n\n // Create a new retained path (with shallow copies of nodes) which have the params of the toPath mapped\n const retainedWithToParams = retained.map(applyToParams);\n entering = toPath.slice(keep);\n to = retainedWithToParams.concat(entering);\n\n return { from, to, retained, retainedWithToParams, exiting, entering };\n }\n\n /**\n * Returns a new path which is: the subpath of the first path which matches the second path.\n *\n * The new path starts from root and contains any nodes that match the nodes in the second path.\n * It stops before the first non-matching node.\n *\n * Nodes are compared using their state property and their parameter values.\n * If a `paramsFn` is provided, only the [[Param]] returned by the function will be considered when comparing nodes.\n *\n * @param pathA the first path\n * @param pathB the second path\n * @param paramsFn a function which returns the parameters to consider when comparing\n *\n * @returns an array of PathNodes from the first path which match the nodes in the second path\n */\n static matching(pathA: PathNode[], pathB: PathNode[], paramsFn?: GetParamsFn): PathNode[] {\n let done = false;\n const tuples: PathNode[][] = arrayTuples(pathA, pathB);\n return tuples.reduce((matching, [nodeA, nodeB]) => {\n done = done || !nodeA.equals(nodeB, paramsFn);\n return done ? matching : matching.concat(nodeA);\n }, []);\n }\n\n /**\n * Returns true if two paths are identical.\n *\n * @param pathA\n * @param pathB\n * @param paramsFn a function which returns the parameters to consider when comparing\n * @returns true if the the states and parameter values for both paths are identical\n */\n static equals(pathA: PathNode[], pathB: PathNode[], paramsFn?: GetParamsFn): boolean {\n return pathA.length === pathB.length && PathUtils.matching(pathA, pathB, paramsFn).length === pathA.length;\n }\n\n /**\n * Return a subpath of a path, which stops at the first matching node\n *\n * Given an array of nodes, returns a subset of the array starting from the first node,\n * stopping when the first node matches the predicate.\n *\n * @param path a path of [[PathNode]]s\n * @param predicate a [[Predicate]] fn that matches [[PathNode]]s\n * @returns a subpath up to the matching node, or undefined if no match is found\n */\n static subPath(path: PathNode[], predicate: Predicate): PathNode[] {\n const node = find(path, predicate);\n const elementIdx = path.indexOf(node);\n return elementIdx === -1 ? undefined : path.slice(0, elementIdx + 1);\n }\n\n /** Gets the raw parameter values from a path */\n static paramValues = (path: PathNode[]) => path.reduce((acc, node) => extend(acc, node.paramValues), {});\n}\n", @@ -112,7 +112,7 @@ "import { isString, isFunction, Glob, extend, removeFrom, tail, values, identity, mapObj } from '../common';\nimport { PathNode } from '../path/pathNode';\nimport {\n TransitionStateHookFn,\n TransitionHookFn,\n TransitionHookPhase, // has or is using\n TransitionHookScope,\n IHookRegistry,\n PathType,\n} from './interface';\n\nimport {\n HookRegOptions,\n HookMatchCriteria,\n TreeChanges,\n HookMatchCriterion,\n IMatchingNodes,\n HookFn,\n} from './interface';\nimport { Transition } from './transition';\nimport { StateObject } from '../state/stateObject';\nimport { TransitionEventType } from './transitionEventType';\nimport { TransitionService } from './transitionService';\n\n/**\n * Determines if the given state matches the matchCriteria\n *\n * @internal\n *\n * @param state a State Object to test against\n * @param criterion\n * - If a string, matchState uses the string as a glob-matcher against the state name\n * - If an array (of strings), matchState uses each string in the array as a glob-matchers against the state name\n * and returns a positive match if any of the globs match.\n * - If a function, matchState calls the function with the state and returns true if the function's result is truthy.\n * @returns {boolean}\n */\nexport function matchState(state: StateObject, criterion: HookMatchCriterion, transition: Transition) {\n const toMatch = isString(criterion) ? [criterion] : criterion;\n\n function matchGlobs(_state: StateObject) {\n const globStrings = toMatch;\n for (let i = 0; i < globStrings.length; i++) {\n const glob = new Glob(globStrings[i]);\n\n if ((glob && glob.matches(_state.name)) || (!glob && globStrings[i] === _state.name)) {\n return true;\n }\n }\n return false;\n }\n\n const matchFn = (isFunction(toMatch) ? toMatch : matchGlobs);\n return !!matchFn(state, transition);\n}\n\n/**\n * The registration data for a registered transition hook\n */\nexport class RegisteredHook {\n priority: number;\n bind: any;\n invokeCount = 0;\n invokeLimit: number;\n _deregistered = false;\n\n constructor(\n public tranSvc: TransitionService,\n public eventType: TransitionEventType,\n public callback: HookFn,\n public matchCriteria: HookMatchCriteria,\n public removeHookFromRegistry: (hook: RegisteredHook) => void,\n options: HookRegOptions = {} as any\n ) {\n this.priority = options.priority || 0;\n this.bind = options.bind || null;\n this.invokeLimit = options.invokeLimit;\n }\n\n /**\n * Gets the matching [[PathNode]]s\n *\n * Given an array of [[PathNode]]s, and a [[HookMatchCriterion]], returns an array containing\n * the [[PathNode]]s that the criteria matches, or `null` if there were no matching nodes.\n *\n * Returning `null` is significant to distinguish between the default\n * \"match-all criterion value\" of `true` compared to a `() => true` function,\n * when the nodes is an empty array.\n *\n * This is useful to allow a transition match criteria of `entering: true`\n * to still match a transition, even when `entering === []`. Contrast that\n * with `entering: (state) => true` which only matches when a state is actually\n * being entered.\n */\n private _matchingNodes(nodes: PathNode[], criterion: HookMatchCriterion, transition: Transition): PathNode[] {\n if (criterion === true) return nodes;\n const matching = nodes.filter((node) => matchState(node.state, criterion, transition));\n return matching.length ? matching : null;\n }\n\n /**\n * Gets the default match criteria (all `true`)\n *\n * Returns an object which has all the criteria match paths as keys and `true` as values, i.e.:\n *\n * ```js\n * {\n * to: true,\n * from: true,\n * entering: true,\n * exiting: true,\n * retained: true,\n * }\n */\n private _getDefaultMatchCriteria(): HookMatchCriteria {\n return mapObj(this.tranSvc._pluginapi._getPathTypes(), () => true);\n }\n\n /**\n * Gets matching nodes as [[IMatchingNodes]]\n *\n * Create a IMatchingNodes object from the TransitionHookTypes that is roughly equivalent to:\n *\n * ```js\n * let matches: IMatchingNodes = {\n * to: _matchingNodes([tail(treeChanges.to)], mc.to),\n * from: _matchingNodes([tail(treeChanges.from)], mc.from),\n * exiting: _matchingNodes(treeChanges.exiting, mc.exiting),\n * retained: _matchingNodes(treeChanges.retained, mc.retained),\n * entering: _matchingNodes(treeChanges.entering, mc.entering),\n * };\n * ```\n */\n private _getMatchingNodes(treeChanges: TreeChanges, transition: Transition): IMatchingNodes {\n const criteria = extend(this._getDefaultMatchCriteria(), this.matchCriteria);\n const paths: PathType[] = values(this.tranSvc._pluginapi._getPathTypes());\n\n return paths.reduce((mn: IMatchingNodes, pathtype: PathType) => {\n // STATE scope criteria matches against every node in the path.\n // TRANSITION scope criteria matches against only the last node in the path\n const isStateHook = pathtype.scope === TransitionHookScope.STATE;\n const path = treeChanges[pathtype.name] || [];\n const nodes: PathNode[] = isStateHook ? path : [tail(path)];\n\n mn[pathtype.name] = this._matchingNodes(nodes, criteria[pathtype.name], transition);\n return mn;\n }, {} as IMatchingNodes);\n }\n\n /**\n * Determines if this hook's [[matchCriteria]] match the given [[TreeChanges]]\n *\n * @returns an IMatchingNodes object, or null. If an IMatchingNodes object is returned, its values\n * are the matching [[PathNode]]s for each [[HookMatchCriterion]] (to, from, exiting, retained, entering)\n */\n matches(treeChanges: TreeChanges, transition: Transition): IMatchingNodes {\n const matches = this._getMatchingNodes(treeChanges, transition);\n\n // Check if all the criteria matched the TreeChanges object\n const allMatched = values(matches).every(identity);\n return allMatched ? matches : null;\n }\n\n deregister() {\n this.removeHookFromRegistry(this);\n this._deregistered = true;\n }\n}\n\n/** Return a registration function of the requested type. */\nexport function makeEvent(\n registry: IHookRegistry,\n transitionService: TransitionService,\n eventType: TransitionEventType\n) {\n // Create the object which holds the registered transition hooks.\n const _registeredHooks = (registry._registeredHooks = registry._registeredHooks || {});\n const hooks = (_registeredHooks[eventType.name] = []);\n const removeHookFn: (hook: RegisteredHook) => void = removeFrom(hooks);\n\n // Create hook registration function on the IHookRegistry for the event\n registry[eventType.name] = hookRegistrationFn;\n\n function hookRegistrationFn(matchObject, callback, options = {}) {\n const registeredHook = new RegisteredHook(\n transitionService,\n eventType,\n callback,\n matchObject,\n removeHookFn,\n options\n );\n hooks.push(registeredHook);\n return registeredHook.deregister.bind(registeredHook);\n }\n\n return hookRegistrationFn;\n}\n", "import { extend, tail, assertPredicate, unnestR, identity } from '../common/common';\nimport { isArray } from '../common/predicates';\n\nimport {\n TransitionOptions,\n TransitionHookOptions,\n IHookRegistry,\n TreeChanges,\n IMatchingNodes,\n TransitionHookPhase,\n TransitionHookScope,\n} from './interface';\n\nimport { Transition } from './transition';\nimport { TransitionHook } from './transitionHook';\nimport { StateObject } from '../state/stateObject';\nimport { PathNode } from '../path/pathNode';\nimport { TransitionService } from './transitionService';\nimport { TransitionEventType } from './transitionEventType';\nimport { RegisteredHook } from './hookRegistry';\n\n/**\n * This class returns applicable TransitionHooks for a specific Transition instance.\n *\n * Hooks ([[RegisteredHook]]) may be registered globally, e.g., $transitions.onEnter(...), or locally, e.g.\n * myTransition.onEnter(...). The HookBuilder finds matching RegisteredHooks (where the match criteria is\n * determined by the type of hook)\n *\n * The HookBuilder also converts RegisteredHooks objects to TransitionHook objects, which are used to run a Transition.\n *\n * The HookBuilder constructor is given the $transitions service and a Transition instance. Thus, a HookBuilder\n * instance may only be used for one specific Transition object. (side note: the _treeChanges accessor is private\n * in the Transition class, so we must also provide the Transition's _treeChanges)\n */\nexport class HookBuilder {\n constructor(private transition: Transition) {}\n\n buildHooksForPhase(phase: TransitionHookPhase): TransitionHook[] {\n const $transitions = this.transition.router.transitionService;\n return $transitions._pluginapi\n ._getEvents(phase)\n .map((type) => this.buildHooks(type))\n .reduce(unnestR, [])\n .filter(identity);\n }\n\n /**\n * Returns an array of newly built TransitionHook objects.\n *\n * - Finds all RegisteredHooks registered for the given `hookType` which matched the transition's [[TreeChanges]].\n * - Finds [[PathNode]] (or `PathNode[]`) to use as the TransitionHook context(s)\n * - For each of the [[PathNode]]s, creates a TransitionHook\n *\n * @param hookType the type of the hook registration function, e.g., 'onEnter', 'onFinish'.\n */\n buildHooks(hookType: TransitionEventType): TransitionHook[] {\n const transition = this.transition;\n const treeChanges = transition.treeChanges();\n\n // Find all the matching registered hooks for a given hook type\n const matchingHooks = this.getMatchingHooks(hookType, treeChanges, transition);\n if (!matchingHooks) return [];\n\n const baseHookOptions = {\n transition: transition,\n current: transition.options().current,\n };\n\n const makeTransitionHooks = (hook: RegisteredHook) => {\n // Fetch the Nodes that caused this hook to match.\n const matches: IMatchingNodes = hook.matches(treeChanges, transition);\n // Select the PathNode[] that will be used as TransitionHook context objects\n const matchingNodes: PathNode[] = matches[hookType.criteriaMatchPath.name];\n\n // Return an array of HookTuples\n return matchingNodes.map((node) => {\n const _options = extend(\n {\n bind: hook.bind,\n traceData: { hookType: hookType.name, context: node },\n },\n baseHookOptions\n );\n\n const state = hookType.criteriaMatchPath.scope === TransitionHookScope.STATE ? node.state.self : null;\n const transitionHook = new TransitionHook(transition, state, hook, _options);\n return { hook, node, transitionHook };\n });\n };\n\n return matchingHooks\n .map(makeTransitionHooks)\n .reduce(unnestR, [])\n .sort(tupleSort(hookType.reverseSort))\n .map((tuple) => tuple.transitionHook);\n }\n\n /**\n * Finds all RegisteredHooks from:\n * - The Transition object instance hook registry\n * - The TransitionService ($transitions) global hook registry\n *\n * which matched:\n * - the eventType\n * - the matchCriteria (to, from, exiting, retained, entering)\n *\n * @returns an array of matched [[RegisteredHook]]s\n */\n public getMatchingHooks(\n hookType: TransitionEventType,\n treeChanges: TreeChanges,\n transition: Transition\n ): RegisteredHook[] {\n const isCreate = hookType.hookPhase === TransitionHookPhase.CREATE;\n\n // Instance and Global hook registries\n const $transitions = this.transition.router.transitionService;\n const registries = isCreate ? [$transitions] : [this.transition, $transitions];\n\n return registries\n .map((reg: IHookRegistry) => reg.getHooks(hookType.name)) // Get named hooks from registries\n .filter(assertPredicate(isArray, `broken event named: ${hookType.name}`)) // Sanity check\n .reduce(unnestR, []) // Un-nest RegisteredHook[][] to RegisteredHook[] array\n .filter((hook) => hook.matches(treeChanges, transition)); // Only those satisfying matchCriteria\n }\n}\n\ninterface HookTuple {\n hook: RegisteredHook;\n node: PathNode;\n transitionHook: TransitionHook;\n}\n\n/**\n * A factory for a sort function for HookTuples.\n *\n * The sort function first compares the PathNode depth (how deep in the state tree a node is), then compares\n * the EventHook priority.\n *\n * @param reverseDepthSort a boolean, when true, reverses the sort order for the node depth\n * @returns a tuple sort function\n */\nfunction tupleSort(reverseDepthSort = false) {\n return function nodeDepthThenPriority(l: HookTuple, r: HookTuple): number {\n const factor = reverseDepthSort ? -1 : 1;\n const depthDelta = (l.node.state.path.length - r.node.state.path.length) * factor;\n return depthDelta !== 0 ? depthDelta : r.hook.priority - l.hook.priority;\n };\n}\n", "import { trace } from '../common/trace';\nimport { services } from '../common/coreservices';\nimport { stringify } from '../common/strings';\nimport { map, find, extend, mergeR, tail, omit, arrayTuples, unnestR, identity, anyTrueR } from '../common/common';\nimport { isObject, isUndefined } from '../common/predicates';\nimport { prop, propEq, val, not, is } from '../common/hof';\nimport { StateDeclaration, StateOrName } from '../state/interface';\nimport {\n TransitionOptions,\n TreeChanges,\n IHookRegistry,\n TransitionHookPhase,\n RegisteredHooks,\n HookRegOptions,\n HookMatchCriteria,\n TransitionStateHookFn,\n TransitionHookFn,\n} from './interface'; // has or is using\nimport { TransitionHook } from './transitionHook';\nimport { matchState, makeEvent, RegisteredHook } from './hookRegistry';\nimport { HookBuilder } from './hookBuilder';\nimport { PathNode } from '../path/pathNode';\nimport { PathUtils } from '../path/pathUtils';\nimport { StateObject } from '../state/stateObject';\nimport { TargetState } from '../state/targetState';\nimport { Param } from '../params/param';\nimport { Resolvable } from '../resolve/resolvable';\nimport { ViewConfig } from '../view/interface';\nimport { ResolveContext } from '../resolve/resolveContext';\nimport { UIRouter } from '../router';\nimport { UIInjector } from '../interface';\nimport { RawParams } from '../params/interface';\nimport { ResolvableLiteral } from '../resolve/interface';\nimport { Rejection } from './rejectFactory';\nimport { applyPairs, flattenR, uniqR } from '../common';\n\n/** @internal */\nconst stateSelf: (_state: StateObject) => StateDeclaration = prop('self');\n\n/**\n * Represents a transition between two states.\n *\n * When navigating to a state, we are transitioning **from** the current state **to** the new state.\n *\n * This object contains all contextual information about the to/from states, parameters, resolves.\n * It has information about all states being entered and exited as a result of the transition.\n */\nexport class Transition implements IHookRegistry {\n /** @internal */\n static diToken = Transition;\n\n /**\n * A unique identifier for the transition.\n *\n * This is an auto incrementing integer, starting from `0`.\n */\n $id: number;\n\n /**\n * A reference to the [[UIRouter]] instance\n *\n * This reference can be used to access the router services, such as the [[StateService]]\n */\n router: UIRouter;\n\n /** @internal */\n private _deferred = services.$q.defer();\n /**\n * This promise is resolved or rejected based on the outcome of the Transition.\n *\n * When the transition is successful, the promise is resolved\n * When the transition is unsuccessful, the promise is rejected with the [[Rejection]] or javascript error\n */\n promise: Promise = this._deferred.promise;\n /**\n * A boolean which indicates if the transition was successful\n *\n * After a successful transition, this value is set to true.\n * After an unsuccessful transition, this value is set to false.\n *\n * The value will be undefined if the transition is not complete\n */\n success: boolean;\n /** @internal */\n _aborted: boolean;\n /** @internal */\n private _error: Rejection;\n\n /** @internal Holds the hook registration functions such as those passed to Transition.onStart() */\n _registeredHooks: RegisteredHooks = {};\n\n /** @internal */\n private _options: TransitionOptions;\n /** @internal */\n private _treeChanges: TreeChanges;\n /** @internal */\n private _targetState: TargetState;\n /** @internal */\n private _hookBuilder = new HookBuilder(this);\n\n /** @internal */\n onBefore(criteria: HookMatchCriteria, callback: TransitionHookFn, options?: HookRegOptions): Function {\n return;\n }\n /** @inheritdoc */\n onStart(criteria: HookMatchCriteria, callback: TransitionHookFn, options?: HookRegOptions): Function {\n return;\n }\n /** @inheritdoc */\n onExit(criteria: HookMatchCriteria, callback: TransitionStateHookFn, options?: HookRegOptions): Function {\n return;\n }\n /** @inheritdoc */\n onRetain(criteria: HookMatchCriteria, callback: TransitionStateHookFn, options?: HookRegOptions): Function {\n return;\n }\n /** @inheritdoc */\n onEnter(criteria: HookMatchCriteria, callback: TransitionStateHookFn, options?: HookRegOptions): Function {\n return;\n }\n /** @inheritdoc */\n onFinish(criteria: HookMatchCriteria, callback: TransitionHookFn, options?: HookRegOptions): Function {\n return;\n }\n /** @inheritdoc */\n onSuccess(criteria: HookMatchCriteria, callback: TransitionHookFn, options?: HookRegOptions): Function {\n return;\n }\n /** @inheritdoc */\n onError(criteria: HookMatchCriteria, callback: TransitionHookFn, options?: HookRegOptions): Function {\n return;\n }\n\n /** @internal\n * Creates the transition-level hook registration functions\n * (which can then be used to register hooks)\n */\n private createTransitionHookRegFns() {\n this.router.transitionService._pluginapi\n ._getEvents()\n .filter((type) => type.hookPhase !== TransitionHookPhase.CREATE)\n .forEach((type) => makeEvent(this, this.router.transitionService, type));\n }\n\n /** @internal */\n getHooks(hookName: string): RegisteredHook[] {\n return this._registeredHooks[hookName];\n }\n\n /**\n * Creates a new Transition object.\n *\n * If the target state is not valid, an error is thrown.\n *\n * @internal\n *\n * @param fromPath The path of [[PathNode]]s from which the transition is leaving. The last node in the `fromPath`\n * encapsulates the \"from state\".\n * @param targetState The target state and parameters being transitioned to (also, the transition options)\n * @param router The [[UIRouter]] instance\n * @internal\n */\n constructor(fromPath: PathNode[], targetState: TargetState, router: UIRouter) {\n this.router = router;\n this._targetState = targetState;\n\n if (!targetState.valid()) {\n throw new Error(targetState.error());\n }\n\n // current() is assumed to come from targetState.options, but provide a naive implementation otherwise.\n this._options = extend({ current: val(this) }, targetState.options());\n this.$id = router.transitionService._transitionCount++;\n const toPath = PathUtils.buildToPath(fromPath, targetState);\n this._treeChanges = PathUtils.treeChanges(fromPath, toPath, this._options.reloadState);\n this.createTransitionHookRegFns();\n\n const onCreateHooks = this._hookBuilder.buildHooksForPhase(TransitionHookPhase.CREATE);\n TransitionHook.invokeHooks(onCreateHooks, () => null);\n\n this.applyViewConfigs(router);\n }\n\n private applyViewConfigs(router: UIRouter) {\n const enteringStates = this._treeChanges.entering.map((node) => node.state);\n PathUtils.applyViewConfigs(router.transitionService.$view, this._treeChanges.to, enteringStates);\n }\n\n /**\n * @internal\n * @returns the internal from [State] object\n */\n $from() {\n return tail(this._treeChanges.from).state;\n }\n\n /**\n * @internal\n * @returns the internal to [State] object\n */\n $to() {\n return tail(this._treeChanges.to).state;\n }\n\n /**\n * Returns the \"from state\"\n *\n * Returns the state that the transition is coming *from*.\n *\n * @returns The state declaration object for the Transition's (\"from state\").\n */\n from(): StateDeclaration {\n return this.$from().self;\n }\n\n /**\n * Returns the \"to state\"\n *\n * Returns the state that the transition is going *to*.\n *\n * @returns The state declaration object for the Transition's target state (\"to state\").\n */\n to(): StateDeclaration {\n return this.$to().self;\n }\n\n /**\n * Gets the Target State\n *\n * A transition's [[TargetState]] encapsulates the [[to]] state, the [[params]], and the [[options]] as a single object.\n *\n * @returns the [[TargetState]] of this Transition\n */\n targetState() {\n return this._targetState;\n }\n\n /**\n * Determines whether two transitions are equivalent.\n * @deprecated\n */\n is(compare: Transition | { to?: any; from?: any }): boolean {\n if (compare instanceof Transition) {\n // TODO: Also compare parameters\n return this.is({ to: compare.$to().name, from: compare.$from().name });\n }\n return !(\n (compare.to && !matchState(this.$to(), compare.to, this)) ||\n (compare.from && !matchState(this.$from(), compare.from, this))\n );\n }\n\n /**\n * Gets transition parameter values\n *\n * Returns the parameter values for a transition as key/value pairs.\n * This object is immutable.\n *\n * By default, returns the new parameter values (for the \"to state\").\n *\n * #### Example:\n * ```js\n * var toParams = transition.params();\n * ```\n *\n * To return the previous parameter values, supply `'from'` as the `pathname` argument.\n *\n * #### Example:\n * ```js\n * var fromParams = transition.params('from');\n * ```\n *\n * @param pathname the name of the treeChanges path to get parameter values for:\n * (`'to'`, `'from'`, `'entering'`, `'exiting'`, `'retained'`)\n *\n * @returns transition parameter values for the desired path.\n */\n params(pathname?: string): { [paramName: string]: any };\n params(pathname?: string): T;\n params(pathname = 'to') {\n return Object.freeze(this._treeChanges[pathname].map(prop('paramValues')).reduce(mergeR, {}));\n }\n\n /**\n * Gets the new values of any parameters that changed during this transition.\n *\n * Returns any parameter values that have changed during a transition, as key/value pairs.\n *\n * - Any parameter values that have changed will be present on the returned object reflecting the new value.\n * - Any parameters that *not* have changed will not be present on the returned object.\n * - Any new parameters that weren't present in the \"from\" state, but are now present in the \"to\" state will be present on the returned object.\n * - Any previous parameters that are no longer present (because the \"to\" state doesn't have them) will be included with a value of `undefined`.\n *\n * The returned object is immutable.\n *\n * #### Examples:\n *\n * Given:\n * ```js\n * var stateA = { name: 'stateA', url: '/stateA/:param1/param2' }\n * var stateB = { name: 'stateB', url: '/stateB/:param3' }\n * var stateC = { name: 'stateB.nest', url: '/nest/:param4' }\n * ```\n *\n * #### Example 1\n *\n * From `/stateA/abc/def` to `/stateA/abc/xyz`\n *\n * ```js\n * var changed = transition.paramsChanged()\n * // changed is { param2: 'xyz' }\n * ```\n *\n * The value of `param2` changed to `xyz`.\n * The value of `param1` stayed the same so its value is not present.\n *\n * #### Example 2\n *\n * From `/stateA/abc/def` to `/stateB/123`\n *\n * ```js\n * var changed = transition.paramsChanged()\n * // changed is { param1: undefined, param2: undefined, param3: '123' }\n * ```\n *\n * The value `param3` is present because it is a new param.\n * Both `param1` and `param2` are no longer present so their value is undefined.\n *\n * #### Example 3\n *\n * From `/stateB/123` to `/stateB/123/nest/456`\n *\n * ```js\n * var changed = transition.paramsChanged()\n * // changed is { param4: '456' }\n * ```\n *\n * The value `param4` is present because it is a new param.\n * The value of `param3` did not change, so its value is not present.\n *\n * @returns an immutable object with changed parameter keys/values.\n */\n paramsChanged(): { [paramName: string]: any };\n paramsChanged(): T;\n paramsChanged() {\n const fromParams = this.params('from');\n const toParams = this.params('to');\n\n // All the parameters declared on both the \"to\" and \"from\" paths\n const allParamDescriptors: Param[] = []\n .concat(this._treeChanges.to)\n .concat(this._treeChanges.from)\n .map((pathNode) => pathNode.paramSchema)\n .reduce(flattenR, [])\n .reduce(uniqR, []);\n\n const changedParamDescriptors = Param.changed(allParamDescriptors, fromParams, toParams);\n\n return changedParamDescriptors.reduce((changedValues, descriptor) => {\n changedValues[descriptor.id] = toParams[descriptor.id];\n return changedValues;\n }, {});\n }\n\n /**\n * Creates a [[UIInjector]] Dependency Injector\n *\n * Returns a Dependency Injector for the Transition's target state (to state).\n * The injector provides resolve values which the target state has access to.\n *\n * The `UIInjector` can also provide values from the native root/global injector (ng1/ng2).\n *\n * #### Example:\n * ```js\n * .onEnter({ entering: 'myState' }, trans => {\n * var myResolveValue = trans.injector().get('myResolve');\n * // Inject a global service from the global/native injector (if it exists)\n * var MyService = trans.injector().get('MyService');\n * })\n * ```\n *\n * In some cases (such as `onBefore`), you may need access to some resolve data but it has not yet been fetched.\n * You can use [[UIInjector.getAsync]] to get a promise for the data.\n * #### Example:\n * ```js\n * .onBefore({}, trans => {\n * return trans.injector().getAsync('myResolve').then(myResolveValue =>\n * return myResolveValue !== 'ABORT';\n * });\n * });\n * ```\n *\n * If a `state` is provided, the injector that is returned will be limited to resolve values that the provided state has access to.\n * This can be useful if both a parent state `foo` and a child state `foo.bar` have both defined a resolve such as `data`.\n * #### Example:\n * ```js\n * .onEnter({ to: 'foo.bar' }, trans => {\n * // returns result of `foo` state's `myResolve` resolve\n * // even though `foo.bar` also has a `myResolve` resolve\n * var fooData = trans.injector('foo').get('myResolve');\n * });\n * ```\n *\n * If you need resolve data from the exiting states, pass `'from'` as `pathName`.\n * The resolve data from the `from` path will be returned.\n * #### Example:\n * ```js\n * .onExit({ exiting: 'foo.bar' }, trans => {\n * // Gets the resolve value of `myResolve` from the state being exited\n * var fooData = trans.injector(null, 'from').get('myResolve');\n * });\n * ```\n *\n *\n * @param state Limits the resolves provided to only the resolves the provided state has access to.\n * @param pathName Default: `'to'`: Chooses the path for which to create the injector. Use this to access resolves for `exiting` states.\n *\n * @returns a [[UIInjector]]\n */\n injector(state?: StateOrName, pathName = 'to'): UIInjector {\n let path: PathNode[] = this._treeChanges[pathName];\n if (state) path = PathUtils.subPath(path, (node) => node.state === state || node.state.name === state);\n return new ResolveContext(path).injector();\n }\n\n /**\n * Gets all available resolve tokens (keys)\n *\n * This method can be used in conjunction with [[injector]] to inspect the resolve values\n * available to the Transition.\n *\n * This returns all the tokens defined on [[StateDeclaration.resolve]] blocks, for the states\n * in the Transition's [[TreeChanges.to]] path.\n *\n * #### Example:\n * This example logs all resolve values\n * ```js\n * let tokens = trans.getResolveTokens();\n * tokens.forEach(token => console.log(token + \" = \" + trans.injector().get(token)));\n * ```\n *\n * #### Example:\n * This example creates promises for each resolve value.\n * This triggers fetches of resolves (if any have not yet been fetched).\n * When all promises have all settled, it logs the resolve values.\n * ```js\n * let tokens = trans.getResolveTokens();\n * let promise = tokens.map(token => trans.injector().getAsync(token));\n * Promise.all(promises).then(values => console.log(\"Resolved values: \" + values));\n * ```\n *\n * Note: Angular 1 users whould use `$q.all()`\n *\n * @param pathname resolve context's path name (e.g., `to` or `from`)\n *\n * @returns an array of resolve tokens (keys)\n */\n getResolveTokens(pathname = 'to'): any[] {\n return new ResolveContext(this._treeChanges[pathname]).getTokens();\n }\n\n /**\n * Dynamically adds a new [[Resolvable]] (i.e., [[StateDeclaration.resolve]]) to this transition.\n *\n * Allows a transition hook to dynamically add a Resolvable to this Transition.\n *\n * Use the [[Transition.injector]] to retrieve the resolved data in subsequent hooks ([[UIInjector.get]]).\n *\n * If a `state` argument is provided, the Resolvable is processed when that state is being entered.\n * If no `state` is provided then the root state is used.\n * If the given `state` has already been entered, the Resolvable is processed when any child state is entered.\n * If no child states will be entered, the Resolvable is processed during the `onFinish` phase of the Transition.\n *\n * The `state` argument also scopes the resolved data.\n * The resolved data is available from the injector for that `state` and any children states.\n *\n * #### Example:\n * ```js\n * transitionService.onBefore({}, transition => {\n * transition.addResolvable({\n * token: 'myResolve',\n * deps: ['MyService'],\n * resolveFn: myService => myService.getData()\n * });\n * });\n * ```\n *\n * @param resolvable a [[ResolvableLiteral]] object (or a [[Resolvable]])\n * @param state the state in the \"to path\" which should receive the new resolve (otherwise, the root state)\n */\n addResolvable(resolvable: Resolvable | ResolvableLiteral, state: StateOrName = ''): void {\n resolvable = is(Resolvable)(resolvable) ? resolvable : new Resolvable(resolvable);\n\n const stateName: string = typeof state === 'string' ? state : state.name;\n const topath = this._treeChanges.to;\n const targetNode = find(topath, (node) => node.state.name === stateName);\n const resolveContext: ResolveContext = new ResolveContext(topath);\n resolveContext.addResolvables([resolvable as Resolvable], targetNode.state);\n }\n\n /**\n * Gets the transition from which this transition was redirected.\n *\n * If the current transition is a redirect, this method returns the transition that was redirected.\n *\n * #### Example:\n * ```js\n * let transitionA = $state.go('A').transition\n * transitionA.onStart({}, () => $state.target('B'));\n * $transitions.onSuccess({ to: 'B' }, (trans) => {\n * trans.to().name === 'B'; // true\n * trans.redirectedFrom() === transitionA; // true\n * });\n * ```\n *\n * @returns The previous Transition, or null if this Transition is not the result of a redirection\n */\n redirectedFrom(): Transition {\n return this._options.redirectedFrom || null;\n }\n\n /**\n * Gets the original transition in a redirect chain\n *\n * A transition might belong to a long chain of multiple redirects.\n * This method walks the [[redirectedFrom]] chain back to the original (first) transition in the chain.\n *\n * #### Example:\n * ```js\n * // states\n * registry.register({ name: 'A', redirectTo: 'B' });\n * registry.register({ name: 'B', redirectTo: 'C' });\n * registry.register({ name: 'C', redirectTo: 'D' });\n * registry.register({ name: 'D' });\n *\n * let transitionA = $state.go('A').transition\n *\n * $transitions.onSuccess({ to: 'D' }, (trans) => {\n * trans.to().name === 'D'; // true\n * trans.redirectedFrom().to().name === 'C'; // true\n * trans.originalTransition() === transitionA; // true\n * trans.originalTransition().to().name === 'A'; // true\n * });\n * ```\n *\n * @returns The original Transition that started a redirect chain\n */\n originalTransition(): Transition {\n const rf = this.redirectedFrom();\n return (rf && rf.originalTransition()) || this;\n }\n\n /**\n * Get the transition options\n *\n * @returns the options for this Transition.\n */\n options(): TransitionOptions {\n return this._options;\n }\n\n /**\n * Gets the states being entered.\n *\n * @returns an array of states that will be entered during this transition.\n */\n entering(): StateDeclaration[] {\n return map(this._treeChanges.entering, prop('state')).map(stateSelf);\n }\n\n /**\n * Gets the states being exited.\n *\n * @returns an array of states that will be exited during this transition.\n */\n exiting(): StateDeclaration[] {\n return map(this._treeChanges.exiting, prop('state')).map(stateSelf).reverse();\n }\n\n /**\n * Gets the states being retained.\n *\n * @returns an array of states that are already entered from a previous Transition, that will not be\n * exited during this Transition\n */\n retained(): StateDeclaration[] {\n return map(this._treeChanges.retained, prop('state')).map(stateSelf);\n }\n\n /**\n * Get the [[ViewConfig]]s associated with this Transition\n *\n * Each state can define one or more views (template/controller), which are encapsulated as `ViewConfig` objects.\n * This method fetches the `ViewConfigs` for a given path in the Transition (e.g., \"to\" or \"entering\").\n *\n * @param pathname the name of the path to fetch views for:\n * (`'to'`, `'from'`, `'entering'`, `'exiting'`, `'retained'`)\n * @param state If provided, only returns the `ViewConfig`s for a single state in the path\n *\n * @returns a list of ViewConfig objects for the given path.\n */\n views(pathname = 'entering', state?: StateObject): ViewConfig[] {\n let path = this._treeChanges[pathname];\n path = !state ? path : path.filter(propEq('state', state));\n return path.map(prop('views')).filter(identity).reduce(unnestR, []);\n }\n\n /**\n * Return the transition's tree changes\n *\n * A transition goes from one state/parameters to another state/parameters.\n * During a transition, states are entered and/or exited.\n *\n * This function returns various branches (paths) which represent the changes to the\n * active state tree that are caused by the transition.\n *\n * @param pathname The name of the tree changes path to get:\n * (`'to'`, `'from'`, `'entering'`, `'exiting'`, `'retained'`)\n */\n treeChanges(pathname: string): PathNode[];\n treeChanges(): TreeChanges;\n treeChanges(pathname?: string) {\n return pathname ? this._treeChanges[pathname] : this._treeChanges;\n }\n\n /**\n * Creates a new transition that is a redirection of the current one.\n *\n * This transition can be returned from a [[TransitionService]] hook to\n * redirect a transition to a new state and/or set of parameters.\n *\n * @internal\n *\n * @returns Returns a new [[Transition]] instance.\n */\n redirect(targetState: TargetState): Transition {\n let redirects = 1,\n trans: Transition = this;\n // tslint:disable-next-line:no-conditional-assignment\n while ((trans = trans.redirectedFrom()) != null) {\n if (++redirects > 20) throw new Error(`Too many consecutive Transition redirects (20+)`);\n }\n\n const redirectOpts: TransitionOptions = { redirectedFrom: this, source: 'redirect' };\n // If the original transition was caused by URL sync, then use { location: 'replace' }\n // on the new transition (unless the target state explicitly specifies location: false).\n // This causes the original url to be replaced with the url for the redirect target\n // so the original url disappears from the browser history.\n if (this.options().source === 'url' && targetState.options().location !== false) {\n redirectOpts.location = 'replace';\n }\n\n const newOptions = extend({}, this.options(), targetState.options(), redirectOpts);\n targetState = targetState.withOptions(newOptions, true);\n\n const newTransition = this.router.transitionService.create(this._treeChanges.from, targetState);\n const originalEnteringNodes = this._treeChanges.entering;\n const redirectEnteringNodes = newTransition._treeChanges.entering;\n\n // --- Re-use resolve data from original transition ---\n // When redirecting from a parent state to a child state where the parent parameter values haven't changed\n // (because of the redirect), the resolves fetched by the original transition are still valid in the\n // redirected transition.\n //\n // This allows you to define a redirect on a parent state which depends on an async resolve value.\n // You can wait for the resolve, then redirect to a child state based on the result.\n // The redirected transition does not have to re-fetch the resolve.\n // ---------------------------------------------------------\n\n const nodeIsReloading = (reloadState: StateObject) => (node: PathNode) => {\n return reloadState && node.state.includes[reloadState.name];\n };\n\n // Find any \"entering\" nodes in the redirect path that match the original path and aren't being reloaded\n const matchingEnteringNodes: PathNode[] = PathUtils.matching(\n redirectEnteringNodes,\n originalEnteringNodes,\n PathUtils.nonDynamicParams\n ).filter(not(nodeIsReloading(targetState.options().reloadState)));\n\n // Use the existing (possibly pre-resolved) resolvables for the matching entering nodes.\n matchingEnteringNodes.forEach((node, idx) => {\n node.resolvables = originalEnteringNodes[idx].resolvables;\n });\n\n return newTransition;\n }\n\n /** @internal If a transition doesn't exit/enter any states, returns any [[Param]] whose value changed */\n private _changedParams(): Param[] {\n const tc = this._treeChanges;\n\n /** Return undefined if it's not a \"dynamic\" transition, for the following reasons */\n // If user explicitly wants a reload\n if (this._options.reload) return undefined;\n // If any states are exiting or entering\n if (tc.exiting.length || tc.entering.length) return undefined;\n // If to/from path lengths differ\n if (tc.to.length !== tc.from.length) return undefined;\n // If the to/from paths are different\n const pathsDiffer: boolean = arrayTuples(tc.to, tc.from)\n .map((tuple) => tuple[0].state !== tuple[1].state)\n .reduce(anyTrueR, false);\n if (pathsDiffer) return undefined;\n\n // Find any parameter values that differ\n const nodeSchemas: Param[][] = tc.to.map((node: PathNode) => node.paramSchema);\n const [toValues, fromValues] = [tc.to, tc.from].map((path) => path.map((x) => x.paramValues));\n const tuples = arrayTuples(nodeSchemas, toValues, fromValues);\n\n return tuples.map(([schema, toVals, fromVals]) => Param.changed(schema, toVals, fromVals)).reduce(unnestR, []);\n }\n\n /**\n * Returns true if the transition is dynamic.\n *\n * A transition is dynamic if no states are entered nor exited, but at least one dynamic parameter has changed.\n *\n * @returns true if the Transition is dynamic\n */\n dynamic(): boolean {\n const changes = this._changedParams();\n return !changes ? false : changes.map((x) => x.dynamic).reduce(anyTrueR, false);\n }\n\n /**\n * Returns true if the transition is ignored.\n *\n * A transition is ignored if no states are entered nor exited, and no parameter values have changed.\n *\n * @returns true if the Transition is ignored.\n */\n ignored(): boolean {\n return !!this._ignoredReason();\n }\n\n /** @internal */\n _ignoredReason(): 'SameAsCurrent' | 'SameAsPending' | undefined {\n const pending = this.router.globals.transition;\n const reloadState = this._options.reloadState;\n\n const same = (pathA, pathB) => {\n if (pathA.length !== pathB.length) return false;\n const matching = PathUtils.matching(pathA, pathB);\n return pathA.length === matching.filter((node) => !reloadState || !node.state.includes[reloadState.name]).length;\n };\n\n const newTC = this.treeChanges();\n const pendTC = pending && pending.treeChanges();\n\n if (pendTC && same(pendTC.to, newTC.to) && same(pendTC.exiting, newTC.exiting)) return 'SameAsPending';\n if (newTC.exiting.length === 0 && newTC.entering.length === 0 && same(newTC.from, newTC.to)) return 'SameAsCurrent';\n }\n\n /**\n * Runs the transition\n *\n * This method is generally called from the [[StateService.transitionTo]]\n *\n * @internal\n *\n * @returns a promise for a successful transition.\n */\n run(): Promise {\n const runAllHooks = TransitionHook.runAllHooks;\n\n // Gets transition hooks array for the given phase\n const getHooksFor = (phase: TransitionHookPhase) => this._hookBuilder.buildHooksForPhase(phase);\n\n // When the chain is complete, then resolve or reject the deferred\n const transitionSuccess = () => {\n trace.traceSuccess(this.$to(), this);\n this.success = true;\n this._deferred.resolve(this.to());\n runAllHooks(getHooksFor(TransitionHookPhase.SUCCESS));\n };\n\n const transitionError = (reason: Rejection) => {\n trace.traceError(reason, this);\n this.success = false;\n this._deferred.reject(reason);\n this._error = reason;\n runAllHooks(getHooksFor(TransitionHookPhase.ERROR));\n };\n\n const runTransition = () => {\n // Wait to build the RUN hook chain until the BEFORE hooks are done\n // This allows a BEFORE hook to dynamically add additional RUN hooks via the Transition object.\n const allRunHooks = getHooksFor(TransitionHookPhase.RUN);\n const done = () => services.$q.when(undefined);\n return TransitionHook.invokeHooks(allRunHooks, done);\n };\n\n const startTransition = () => {\n const globals = this.router.globals;\n\n globals.lastStartedTransitionId = this.$id;\n globals.transition = this;\n globals.transitionHistory.enqueue(this);\n\n trace.traceTransitionStart(this);\n\n return services.$q.when(undefined);\n };\n\n const allBeforeHooks = getHooksFor(TransitionHookPhase.BEFORE);\n TransitionHook.invokeHooks(allBeforeHooks, startTransition)\n .then(runTransition)\n .then(transitionSuccess, transitionError);\n\n return this.promise;\n }\n\n /** Checks if this transition is currently active/running. */\n isActive = () => this.router.globals.transition === this;\n\n /**\n * Checks if the Transition is valid\n *\n * @returns true if the Transition is valid\n */\n valid() {\n return !this.error() || this.success !== undefined;\n }\n\n /**\n * Aborts this transition\n *\n * Imperative API to abort a Transition.\n * This only applies to Transitions that are not yet complete.\n */\n abort() {\n // Do not set flag if the transition is already complete\n if (isUndefined(this.success)) {\n this._aborted = true;\n }\n }\n\n /**\n * The Transition error reason.\n *\n * If the transition is invalid (and could not be run), returns the reason the transition is invalid.\n * If the transition was valid and ran, but was not successful, returns the reason the transition failed.\n *\n * @returns a transition rejection explaining why the transition is invalid, or the reason the transition failed.\n */\n error(): Rejection {\n const state: StateObject = this.$to();\n\n if (state.self.abstract) {\n return Rejection.invalid(`Cannot transition to abstract state '${state.name}'`);\n }\n\n const paramDefs = state.parameters();\n const values = this.params();\n const invalidParams = paramDefs.filter((param) => !param.validates(values[param.id]));\n\n if (invalidParams.length) {\n const invalidValues = invalidParams.map((param) => `[${param.id}:${stringify(values[param.id])}]`).join(', ');\n const detail = `The following parameter values are not valid for state '${state.name}': ${invalidValues}`;\n return Rejection.invalid(detail);\n }\n\n if (this.success === false) return this._error;\n }\n\n /**\n * A string representation of the Transition\n *\n * @returns A string representation of the Transition\n */\n toString() {\n const fromStateOrName = this.from();\n const toStateOrName = this.to();\n\n const avoidEmptyHash = (params: RawParams) =>\n params['#'] !== null && params['#'] !== undefined ? params : omit(params, ['#']);\n\n // (X) means the to state is invalid.\n const id = this.$id,\n from = isObject(fromStateOrName) ? fromStateOrName.name : fromStateOrName,\n fromParams = stringify(avoidEmptyHash(this._treeChanges.from.map(prop('paramValues')).reduce(mergeR, {}))),\n toValid = this.valid() ? '' : '(X) ',\n to = isObject(toStateOrName) ? toStateOrName.name : toStateOrName,\n toParams = stringify(avoidEmptyHash(this.params()));\n\n return `Transition#${id}( '${from}'${fromParams} -> ${toValid}'${to}'${toParams} )`;\n }\n}\n", - "import { map, inherit, identity, unnest, tail, find, Obj, allTrueR, unnestR, arrayTuples } from '../common/common';\nimport { prop, propEq } from '../common/hof';\nimport { isArray, isString, isDefined } from '../common/predicates';\nimport { Param, DefType } from '../params/param';\nimport { ParamTypes } from '../params/paramTypes';\nimport { RawParams } from '../params/interface';\nimport { UrlMatcherCompileConfig } from './interface';\nimport { joinNeighborsR, splitOnDelim } from '../common/strings';\nimport { ParamType } from '../params';\nimport { defaults } from '../common';\nimport { ParamFactory } from './urlMatcherFactory';\n\nfunction quoteRegExp(str: any, param?: any) {\n let surroundPattern = ['', ''],\n result = str.replace(/[\\\\\\[\\]\\^$*+?.()|{}]/g, '\\\\$&');\n if (!param) return result;\n\n switch (param.squash) {\n case false:\n surroundPattern = ['(', ')' + (param.isOptional ? '?' : '')];\n break;\n case true:\n result = result.replace(/\\/$/, '');\n surroundPattern = ['(?:/(', ')|/)?'];\n break;\n default:\n surroundPattern = [`(${param.squash}|`, ')?'];\n break;\n }\n return result + surroundPattern[0] + param.type.pattern.source + surroundPattern[1];\n}\n\nconst memoizeTo = (obj: Obj, _prop: string, fn: Function) => (obj[_prop] = obj[_prop] || fn());\n\nconst splitOnSlash = splitOnDelim('/');\n\ninterface UrlMatcherCache {\n segments?: any[];\n weights?: number[];\n path?: UrlMatcher[];\n parent?: UrlMatcher;\n pattern?: RegExp;\n}\n\ninterface MatchDetails {\n id: string;\n regexp: string;\n segment: string;\n type: ParamType;\n}\n\nconst defaultConfig: UrlMatcherCompileConfig = {\n state: { params: {} },\n strict: true,\n caseInsensitive: true,\n decodeParams: true,\n};\n\n/**\n * Matches URLs against patterns.\n *\n * Matches URLs against patterns and extracts named parameters from the path or the search\n * part of the URL.\n *\n * A URL pattern consists of a path pattern, optionally followed by '?' and a list of search (query)\n * parameters. Multiple search parameter names are separated by '&'. Search parameters\n * do not influence whether or not a URL is matched, but their values are passed through into\n * the matched parameters returned by [[UrlMatcher.exec]].\n *\n * - *Path parameters* are defined using curly brace placeholders (`/somepath/{param}`)\n * or colon placeholders (`/somePath/:param`).\n *\n * - *A parameter RegExp* may be defined for a param after a colon\n * (`/somePath/{param:[a-zA-Z0-9]+}`) in a curly brace placeholder.\n * The regexp must match for the url to be matched.\n * Should the regexp itself contain curly braces, they must be in matched pairs or escaped with a backslash.\n *\n * Note: a RegExp parameter will encode its value using either [[ParamTypes.path]] or [[ParamTypes.query]].\n *\n * - *Custom parameter types* may also be specified after a colon (`/somePath/{param:int}`) in curly brace parameters.\n * See [[UrlMatcherFactory.type]] for more information.\n *\n * - *Catch-all parameters* are defined using an asterisk placeholder (`/somepath/*catchallparam`).\n * A catch-all * parameter value will contain the remainder of the URL.\n *\n * ---\n *\n * Parameter names may contain only word characters (latin letters, digits, and underscore) and\n * must be unique within the pattern (across both path and search parameters).\n * A path parameter matches any number of characters other than '/'. For catch-all\n * placeholders the path parameter matches any number of characters.\n *\n * Examples:\n *\n * * `'/hello/'` - Matches only if the path is exactly '/hello/'. There is no special treatment for\n * trailing slashes, and patterns have to match the entire path, not just a prefix.\n * * `'/user/:id'` - Matches '/user/bob' or '/user/1234!!!' or even '/user/' but not '/user' or\n * '/user/bob/details'. The second path segment will be captured as the parameter 'id'.\n * * `'/user/{id}'` - Same as the previous example, but using curly brace syntax.\n * * `'/user/{id:[^/]*}'` - Same as the previous example.\n * * `'/user/{id:[0-9a-fA-F]{1,8}}'` - Similar to the previous example, but only matches if the id\n * parameter consists of 1 to 8 hex digits.\n * * `'/files/{path:.*}'` - Matches any URL starting with '/files/' and captures the rest of the\n * path into the parameter 'path'.\n * * `'/files/*path'` - ditto.\n * * `'/calendar/{start:date}'` - Matches \"/calendar/2014-11-12\" (because the pattern defined\n * in the built-in `date` ParamType matches `2014-11-12`) and provides a Date object in $stateParams.start\n *\n */\nexport class UrlMatcher {\n /** @internal */\n static nameValidator: RegExp = /^\\w+([-.]+\\w+)*(?:\\[\\])?$/;\n\n /** @internal */\n private _cache: UrlMatcherCache = { path: [this] };\n /** @internal */\n private _children: UrlMatcher[] = [];\n /** @internal */\n private _params: Param[] = [];\n /** @internal */\n private _segments: string[] = [];\n /** @internal */\n private _compiled: string[] = [];\n /** @internal */\n private readonly config: UrlMatcherCompileConfig;\n\n /** The pattern that was passed into the constructor */\n public pattern: string;\n\n /** @internal */\n static encodeDashes(str: string) {\n // Replace dashes with encoded \"\\-\"\n return encodeURIComponent(str).replace(/-/g, (c) => `%5C%${c.charCodeAt(0).toString(16).toUpperCase()}`);\n }\n\n /** @internal Given a matcher, return an array with the matcher's path segments and path params, in order */\n static pathSegmentsAndParams(matcher: UrlMatcher) {\n const staticSegments = matcher._segments;\n const pathParams = matcher._params.filter((p) => p.location === DefType.PATH);\n return arrayTuples(staticSegments, pathParams.concat(undefined))\n .reduce(unnestR, [])\n .filter((x) => x !== '' && isDefined(x));\n }\n\n /** @internal Given a matcher, return an array with the matcher's query params */\n static queryParams(matcher: UrlMatcher): Param[] {\n return matcher._params.filter((p) => p.location === DefType.SEARCH);\n }\n\n /**\n * Compare two UrlMatchers\n *\n * This comparison function converts a UrlMatcher into static and dynamic path segments.\n * Each static path segment is a static string between a path separator (slash character).\n * Each dynamic segment is a path parameter.\n *\n * The comparison function sorts static segments before dynamic ones.\n */\n static compare(a: UrlMatcher, b: UrlMatcher): number {\n /**\n * Turn a UrlMatcher and all its parent matchers into an array\n * of slash literals '/', string literals, and Param objects\n *\n * This example matcher matches strings like \"/foo/:param/tail\":\n * var matcher = $umf.compile(\"/foo\").append($umf.compile(\"/:param\")).append($umf.compile(\"/\")).append($umf.compile(\"tail\"));\n * var result = segments(matcher); // [ '/', 'foo', '/', Param, '/', 'tail' ]\n *\n * Caches the result as `matcher._cache.segments`\n */\n const segments = (matcher: UrlMatcher) =>\n (matcher._cache.segments =\n matcher._cache.segments ||\n matcher._cache.path\n .map(UrlMatcher.pathSegmentsAndParams)\n .reduce(unnestR, [])\n .reduce(joinNeighborsR, [])\n .map((x) => (isString(x) ? splitOnSlash(x) : x))\n .reduce(unnestR, []));\n\n /**\n * Gets the sort weight for each segment of a UrlMatcher\n *\n * Caches the result as `matcher._cache.weights`\n */\n const weights = (matcher: UrlMatcher) =>\n (matcher._cache.weights =\n matcher._cache.weights ||\n segments(matcher).map((segment) => {\n // Sort slashes first, then static strings, the Params\n if (segment === '/') return 1;\n if (isString(segment)) return 2;\n if (segment instanceof Param) return 3;\n }));\n\n /**\n * Pads shorter array in-place (mutates)\n */\n const padArrays = (l: any[], r: any[], padVal: any) => {\n const len = Math.max(l.length, r.length);\n while (l.length < len) l.push(padVal);\n while (r.length < len) r.push(padVal);\n };\n\n const weightsA = weights(a),\n weightsB = weights(b);\n padArrays(weightsA, weightsB, 0);\n\n const _pairs = arrayTuples(weightsA, weightsB);\n let cmp, i;\n\n for (i = 0; i < _pairs.length; i++) {\n cmp = _pairs[i][0] - _pairs[i][1];\n if (cmp !== 0) return cmp;\n }\n\n return 0;\n }\n\n /**\n * @param pattern The pattern to compile into a matcher.\n * @param paramTypes The [[ParamTypes]] registry\n * @param paramFactory A [[ParamFactory]] object\n * @param config A [[UrlMatcherCompileConfig]] configuration object\n */\n constructor(pattern: string, paramTypes: ParamTypes, paramFactory: ParamFactory, config?: UrlMatcherCompileConfig) {\n this.config = config = defaults(config, defaultConfig);\n this.pattern = pattern;\n\n // Find all placeholders and create a compiled pattern, using either classic or curly syntax:\n // '*' name\n // ':' name\n // '{' name '}'\n // '{' name ':' regexp '}'\n // The regular expression is somewhat complicated due to the need to allow curly braces\n // inside the regular expression. The placeholder regexp breaks down as follows:\n // ([:*])([\\w\\[\\]]+) - classic placeholder ($1 / $2) (search version has - for snake-case)\n // \\{([\\w\\[\\]]+)(?:\\:\\s*( ... ))?\\} - curly brace placeholder ($3) with optional regexp/type ... ($4) (search version has - for snake-case\n // (?: ... | ... | ... )+ - the regexp consists of any number of atoms, an atom being either\n // [^{}\\\\]+ - anything other than curly braces or backslash\n // \\\\. - a backslash escape\n // \\{(?:[^{}\\\\]+|\\\\.)*\\} - a matched set of curly braces containing other atoms\n const placeholder = /([:*])([\\w\\[\\]]+)|\\{([\\w\\[\\]]+)(?:\\:\\s*((?:[^{}\\\\]+|\\\\.|\\{(?:[^{}\\\\]+|\\\\.)*\\})+))?\\}/g;\n const searchPlaceholder = /([:]?)([\\w\\[\\].-]+)|\\{([\\w\\[\\].-]+)(?:\\:\\s*((?:[^{}\\\\]+|\\\\.|\\{(?:[^{}\\\\]+|\\\\.)*\\})+))?\\}/g;\n const patterns: any[][] = [];\n let last = 0;\n let matchArray: RegExpExecArray;\n\n const checkParamErrors = (id: string) => {\n if (!UrlMatcher.nameValidator.test(id)) throw new Error(`Invalid parameter name '${id}' in pattern '${pattern}'`);\n if (find(this._params, propEq('id', id)))\n throw new Error(`Duplicate parameter name '${id}' in pattern '${pattern}'`);\n };\n\n // Split into static segments separated by path parameter placeholders.\n // The number of segments is always 1 more than the number of parameters.\n const matchDetails = (m: RegExpExecArray, isSearch: boolean): MatchDetails => {\n // IE[78] returns '' for unmatched groups instead of null\n const id: string = m[2] || m[3];\n const regexp: string = isSearch ? m[4] : m[4] || (m[1] === '*' ? '[\\\\s\\\\S]*' : null);\n\n const makeRegexpType = (str) =>\n inherit(paramTypes.type(isSearch ? 'query' : 'path'), {\n pattern: new RegExp(str, this.config.caseInsensitive ? 'i' : undefined),\n });\n\n return {\n id,\n regexp,\n segment: pattern.substring(last, m.index),\n type: !regexp ? null : paramTypes.type(regexp) || makeRegexpType(regexp),\n };\n };\n\n let details: MatchDetails;\n let segment: string;\n\n // tslint:disable-next-line:no-conditional-assignment\n while ((matchArray = placeholder.exec(pattern))) {\n details = matchDetails(matchArray, false);\n if (details.segment.indexOf('?') >= 0) break; // we're into the search part\n\n checkParamErrors(details.id);\n this._params.push(paramFactory.fromPath(details.id, details.type, config.state));\n this._segments.push(details.segment);\n patterns.push([details.segment, tail(this._params)]);\n last = placeholder.lastIndex;\n }\n segment = pattern.substring(last);\n\n // Find any search parameter names and remove them from the last segment\n const i = segment.indexOf('?');\n\n if (i >= 0) {\n const search = segment.substring(i);\n segment = segment.substring(0, i);\n\n if (search.length > 0) {\n last = 0;\n\n // tslint:disable-next-line:no-conditional-assignment\n while ((matchArray = searchPlaceholder.exec(search))) {\n details = matchDetails(matchArray, true);\n checkParamErrors(details.id);\n this._params.push(paramFactory.fromSearch(details.id, details.type, config.state));\n last = placeholder.lastIndex;\n // check if ?&\n }\n }\n }\n\n this._segments.push(segment);\n this._compiled = patterns.map((_pattern) => quoteRegExp.apply(null, _pattern)).concat(quoteRegExp(segment));\n }\n\n /**\n * Creates a new concatenated UrlMatcher\n *\n * Builds a new UrlMatcher by appending another UrlMatcher to this one.\n *\n * @param url A `UrlMatcher` instance to append as a child of the current `UrlMatcher`.\n */\n append(url: UrlMatcher): UrlMatcher {\n this._children.push(url);\n url._cache = {\n path: this._cache.path.concat(url),\n parent: this,\n pattern: null,\n };\n return url;\n }\n\n /** @internal */\n isRoot(): boolean {\n return this._cache.path[0] === this;\n }\n\n /** Returns the input pattern string */\n toString(): string {\n return this.pattern;\n }\n\n private _getDecodedParamValue(value: any, param: Param): any {\n if (isDefined(value)) {\n if (this.config.decodeParams && !param.type.raw) {\n if (isArray(value)) {\n value = value.map((paramValue) => decodeURIComponent(paramValue));\n } else {\n value = decodeURIComponent(value);\n }\n }\n\n value = param.type.decode(value);\n }\n\n return param.value(value);\n }\n\n /**\n * Tests the specified url/path against this matcher.\n *\n * Tests if the given url matches this matcher's pattern, and returns an object containing the captured\n * parameter values. Returns null if the path does not match.\n *\n * The returned object contains the values\n * of any search parameters that are mentioned in the pattern, but their value may be null if\n * they are not present in `search`. This means that search parameters are always treated\n * as optional.\n *\n * #### Example:\n * ```js\n * new UrlMatcher('/user/{id}?q&r').exec('/user/bob', {\n * x: '1', q: 'hello'\n * });\n * // returns { id: 'bob', q: 'hello', r: null }\n * ```\n *\n * @param path The URL path to match, e.g. `$location.path()`.\n * @param search URL search parameters, e.g. `$location.search()`.\n * @param hash URL hash e.g. `$location.hash()`.\n * @param options\n *\n * @returns The captured parameter values.\n */\n exec(path: string, search: any = {}, hash?: string, options: any = {}): RawParams {\n const match = memoizeTo(this._cache, 'pattern', () => {\n return new RegExp(\n [\n '^',\n unnest(this._cache.path.map(prop('_compiled'))).join(''),\n this.config.strict === false ? '/?' : '',\n '$',\n ].join(''),\n this.config.caseInsensitive ? 'i' : undefined\n );\n }).exec(path);\n\n if (!match) return null;\n\n // options = defaults(options, { isolate: false });\n\n const allParams: Param[] = this.parameters(),\n pathParams: Param[] = allParams.filter((param) => !param.isSearch()),\n searchParams: Param[] = allParams.filter((param) => param.isSearch()),\n nPathSegments = this._cache.path.map((urlm) => urlm._segments.length - 1).reduce((a, x) => a + x),\n values: RawParams = {};\n\n if (nPathSegments !== match.length - 1) throw new Error(`Unbalanced capture group in route '${this.pattern}'`);\n\n function decodePathArray(paramVal: string) {\n const reverseString = (str: string) => str.split('').reverse().join('');\n const unquoteDashes = (str: string) => str.replace(/\\\\-/g, '-');\n\n const split = reverseString(paramVal).split(/-(?!\\\\)/);\n const allReversed = map(split, reverseString);\n return map(allReversed, unquoteDashes).reverse();\n }\n\n for (let i = 0; i < nPathSegments; i++) {\n const param: Param = pathParams[i];\n let value: any | any[] = match[i + 1];\n\n // if the param value matches a pre-replace pair, replace the value before decoding.\n for (let j = 0; j < param.replace.length; j++) {\n if (param.replace[j].from === value) value = param.replace[j].to;\n }\n\n if (value && param.array === true) value = decodePathArray(value);\n\n values[param.id] = this._getDecodedParamValue(value, param);\n }\n searchParams.forEach((param: Param) => {\n let value = search[param.id];\n\n for (let j = 0; j < param.replace.length; j++) {\n if (param.replace[j].from === value) value = param.replace[j].to;\n }\n\n values[param.id] = this._getDecodedParamValue(value, param);\n });\n\n if (hash) values['#'] = hash;\n\n return values;\n }\n\n /**\n * @internal\n * Returns all the [[Param]] objects of all path and search parameters of this pattern in order of appearance.\n *\n * @returns {Array.} An array of [[Param]] objects. Must be treated as read-only. If the\n * pattern has no parameters, an empty array is returned.\n */\n parameters(opts: any = {}): Param[] {\n if (opts.inherit === false) return this._params;\n return unnest(this._cache.path.map((matcher) => matcher._params));\n }\n\n /**\n * @internal\n * Returns a single parameter from this UrlMatcher by id\n *\n * @param id\n * @param opts\n * @returns {T|Param|any|boolean|UrlMatcher|null}\n */\n parameter(id: string, opts: any = {}): Param {\n const findParam = () => {\n for (const param of this._params) {\n if (param.id === id) return param;\n }\n };\n\n const parent = this._cache.parent;\n return findParam() || (opts.inherit !== false && parent && parent.parameter(id, opts)) || null;\n }\n\n /**\n * Validates the input parameter values against this UrlMatcher\n *\n * Checks an object hash of parameters to validate their correctness according to the parameter\n * types of this `UrlMatcher`.\n *\n * @param params The object hash of parameters to validate.\n * @returns Returns `true` if `params` validates, otherwise `false`.\n */\n validates(params: RawParams): boolean {\n const validParamVal = (param: Param, val: any) => !param || param.validates(val);\n\n params = params || {};\n\n // I'm not sure why this checks only the param keys passed in, and not all the params known to the matcher\n const paramSchema = this.parameters().filter((paramDef) => params.hasOwnProperty(paramDef.id));\n return paramSchema.map((paramDef) => validParamVal(paramDef, params[paramDef.id])).reduce(allTrueR, true);\n }\n\n /**\n * Given a set of parameter values, creates a URL from this UrlMatcher.\n *\n * Creates a URL that matches this pattern by substituting the specified values\n * for the path and search parameters.\n *\n * #### Example:\n * ```js\n * new UrlMatcher('/user/{id}?q').format({ id:'bob', q:'yes' });\n * // returns '/user/bob?q=yes'\n * ```\n *\n * @param values the values to substitute for the parameters in this pattern.\n * @returns the formatted URL (path and optionally search part).\n */\n format(values: RawParams = {}) {\n // Build the full path of UrlMatchers (including all parent UrlMatchers)\n const urlMatchers = this._cache.path;\n\n // Extract all the static segments and Params (processed as ParamDetails)\n // into an ordered array\n const pathSegmentsAndParams: Array = urlMatchers\n .map(UrlMatcher.pathSegmentsAndParams)\n .reduce(unnestR, [])\n .map((x) => (isString(x) ? x : getDetails(x)));\n\n // Extract the query params into a separate array\n const queryParams: Array = urlMatchers\n .map(UrlMatcher.queryParams)\n .reduce(unnestR, [])\n .map(getDetails);\n\n const isInvalid = (param: ParamDetails) => param.isValid === false;\n if (pathSegmentsAndParams.concat(queryParams).filter(isInvalid).length) {\n return null;\n }\n\n /**\n * Given a Param, applies the parameter value, then returns detailed information about it\n */\n function getDetails(param: Param): ParamDetails {\n // Normalize to typed value\n const value = param.value(values[param.id]);\n const isValid = param.validates(value);\n const isDefaultValue = param.isDefaultValue(value);\n // Check if we're in squash mode for the parameter\n const squash = isDefaultValue ? param.squash : false;\n // Allow the Parameter's Type to encode the value\n const encoded = param.type.encode(value);\n\n return { param, value, isValid, isDefaultValue, squash, encoded };\n }\n\n // Build up the path-portion from the list of static segments and parameters\n const pathString = pathSegmentsAndParams.reduce((acc: string, x: string | ParamDetails) => {\n // The element is a static segment (a raw string); just append it\n if (isString(x)) return acc + x;\n\n // Otherwise, it's a ParamDetails.\n const { squash, encoded, param } = x;\n\n // If squash is === true, try to remove a slash from the path\n if (squash === true) return acc.match(/\\/$/) ? acc.slice(0, -1) : acc;\n // If squash is a string, use the string for the param value\n if (isString(squash)) return acc + squash;\n if (squash !== false) return acc; // ?\n if (encoded == null) return acc;\n // If this parameter value is an array, encode the value using encodeDashes\n if (isArray(encoded)) return acc + map(encoded, UrlMatcher.encodeDashes).join('-');\n // If the parameter type is \"raw\", then do not encodeURIComponent\n if (param.raw) return acc + encoded;\n // Encode the value\n return acc + encodeURIComponent(encoded);\n }, '');\n\n // Build the query string by applying parameter values (array or regular)\n // then mapping to key=value, then flattening and joining using \"&\"\n const queryString = queryParams\n .map((paramDetails: ParamDetails) => {\n let { param, squash, encoded, isDefaultValue } = paramDetails;\n if (encoded == null || (isDefaultValue && squash !== false)) return;\n if (!isArray(encoded)) encoded = [encoded];\n if (encoded.length === 0) return;\n if (!param.raw) encoded = map(encoded, encodeURIComponent);\n\n return (encoded).map((val) => `${param.id}=${val}`);\n })\n .filter(identity)\n .reduce(unnestR, [])\n .join('&');\n\n // Concat the pathstring with the queryString (if exists) and the hashString (if exists)\n return pathString + (queryString ? `?${queryString}` : '') + (values['#'] ? '#' + values['#'] : '');\n }\n}\n\n/** @internal */\ninterface ParamDetails {\n param: Param;\n value: any;\n isValid: boolean;\n isDefaultValue: boolean;\n squash: boolean | string;\n encoded: string | string[];\n}\n", + "import { map, inherit, identity, unnest, tail, find, Obj, allTrueR, unnestR, arrayTuples } from '../common/common';\nimport { prop, propEq } from '../common/hof';\nimport { isArray, isString, isDefined } from '../common/predicates';\nimport { Param, DefType } from '../params/param';\nimport { ParamTypes } from '../params/paramTypes';\nimport { RawParams } from '../params/interface';\nimport { UrlMatcherCompileConfig } from './interface';\nimport { joinNeighborsR, splitOnDelim } from '../common/strings';\nimport { ParamType } from '../params';\nimport { defaults } from '../common';\nimport { ParamFactory } from './urlMatcherFactory';\n\nfunction quoteRegExp(str: any, param?: any) {\n let surroundPattern = ['', ''],\n result = str.replace(/[\\\\\\[\\]\\^$*+?.()|{}]/g, '\\\\$&');\n if (!param) return result;\n\n switch (param.squash) {\n case false:\n surroundPattern = ['(', ')' + (param.isOptional ? '?' : '')];\n break;\n case true:\n result = result.replace(/\\/$/, '');\n surroundPattern = ['(?:/(', ')|/)?'];\n break;\n default:\n surroundPattern = [`(${param.squash}|`, ')?'];\n break;\n }\n return result + surroundPattern[0] + param.type.pattern.source + surroundPattern[1];\n}\n\nconst memoizeTo = (obj: Obj, _prop: string, fn: Function) => (obj[_prop] = obj[_prop] || fn());\n\nconst splitOnSlash = splitOnDelim('/');\n\ninterface UrlMatcherCache {\n segments?: any[];\n weights?: number[];\n path?: UrlMatcher[];\n parent?: UrlMatcher;\n pattern?: RegExp;\n}\n\ninterface MatchDetails {\n id: string;\n regexp: string;\n segment: string;\n type: ParamType;\n}\n\nconst defaultConfig: UrlMatcherCompileConfig = {\n state: { params: {} },\n strict: true,\n caseInsensitive: true,\n decodeParams: true,\n};\n\n/**\n * Matches URLs against patterns.\n *\n * Matches URLs against patterns and extracts named parameters from the path or the search\n * part of the URL.\n *\n * A URL pattern consists of a path pattern, optionally followed by '?' and a list of search (query)\n * parameters. Multiple search parameter names are separated by '&'. Search parameters\n * do not influence whether or not a URL is matched, but their values are passed through into\n * the matched parameters returned by [[UrlMatcher.exec]].\n *\n * - *Path parameters* are defined using curly brace placeholders (`/somepath/{param}`)\n * or colon placeholders (`/somePath/:param`).\n *\n * - *A parameter RegExp* may be defined for a param after a colon\n * (`/somePath/{param:[a-zA-Z0-9]+}`) in a curly brace placeholder.\n * The regexp must match for the url to be matched.\n * Should the regexp itself contain curly braces, they must be in matched pairs or escaped with a backslash.\n *\n * Note: a RegExp parameter will encode its value using either [[ParamTypes.path]] or [[ParamTypes.query]].\n *\n * - *Custom parameter types* may also be specified after a colon (`/somePath/{param:int}`) in curly brace parameters.\n * See [[UrlMatcherFactory.type]] for more information.\n *\n * - *Catch-all parameters* are defined using an asterisk placeholder (`/somepath/*catchallparam`).\n * A catch-all * parameter value will contain the remainder of the URL.\n *\n * ---\n *\n * Parameter names may contain only word characters (latin letters, digits, and underscore) and\n * must be unique within the pattern (across both path and search parameters).\n * A path parameter matches any number of characters other than '/'. For catch-all\n * placeholders the path parameter matches any number of characters.\n *\n * Examples:\n *\n * * `'/hello/'` - Matches only if the path is exactly '/hello/'. There is no special treatment for\n * trailing slashes, and patterns have to match the entire path, not just a prefix.\n * * `'/user/:id'` - Matches '/user/bob' or '/user/1234!!!' or even '/user/' but not '/user' or\n * '/user/bob/details'. The second path segment will be captured as the parameter 'id'.\n * * `'/user/{id}'` - Same as the previous example, but using curly brace syntax.\n * * `'/user/{id:[^/]*}'` - Same as the previous example.\n * * `'/user/{id:[0-9a-fA-F]{1,8}}'` - Similar to the previous example, but only matches if the id\n * parameter consists of 1 to 8 hex digits.\n * * `'/files/{path:.*}'` - Matches any URL starting with '/files/' and captures the rest of the\n * path into the parameter 'path'.\n * * `'/files/*path'` - ditto.\n * * `'/calendar/{start:date}'` - Matches \"/calendar/2014-11-12\" (because the pattern defined\n * in the built-in `date` ParamType matches `2014-11-12`) and provides a Date object in $stateParams.start\n *\n */\nexport class UrlMatcher {\n /** @internal */\n static nameValidator: RegExp = /^\\w+([-.]+\\w+)*(?:\\[\\])?$/;\n\n /** @internal */\n private _cache: UrlMatcherCache = { path: [this] };\n /** @internal */\n private _children: UrlMatcher[] = [];\n /** @internal */\n private _params: Param[] = [];\n /** @internal */\n private _segments: string[] = [];\n /** @internal */\n private _compiled: string[] = [];\n /** @internal */\n private readonly config: UrlMatcherCompileConfig;\n\n /** The pattern that was passed into the constructor */\n public pattern: string;\n\n /** @internal */\n static encodeDashes(str: string) {\n // Replace dashes with encoded \"\\-\"\n return encodeURIComponent(str).replace(/-/g, (c) => `%5C%${c.charCodeAt(0).toString(16).toUpperCase()}`);\n }\n\n /** @internal Given a matcher, return an array with the matcher's path segments and path params, in order */\n static pathSegmentsAndParams(matcher: UrlMatcher) {\n const staticSegments = matcher._segments;\n const pathParams = matcher._params.filter((p) => p.location === DefType.PATH);\n return arrayTuples(staticSegments, pathParams.concat(undefined))\n .reduce(unnestR, [])\n .filter((x) => x !== '' && isDefined(x));\n }\n\n /** @internal Given a matcher, return an array with the matcher's query params */\n static queryParams(matcher: UrlMatcher): Param[] {\n return matcher._params.filter((p) => p.location === DefType.SEARCH);\n }\n\n /**\n * Compare two UrlMatchers\n *\n * This comparison function converts a UrlMatcher into static and dynamic path segments.\n * Each static path segment is a static string between a path separator (slash character).\n * Each dynamic segment is a path parameter.\n *\n * The comparison function sorts static segments before dynamic ones.\n */\n static compare(a: UrlMatcher, b: UrlMatcher): number {\n /**\n * Turn a UrlMatcher and all its parent matchers into an array\n * of slash literals '/', string literals, and Param objects\n *\n * This example matcher matches strings like \"/foo/:param/tail\":\n * var matcher = $umf.compile(\"/foo\").append($umf.compile(\"/:param\")).append($umf.compile(\"/\")).append($umf.compile(\"tail\"));\n * var result = segments(matcher); // [ '/', 'foo', '/', Param, '/', 'tail' ]\n *\n * Caches the result as `matcher._cache.segments`\n */\n const segments = (matcher: UrlMatcher) =>\n (matcher._cache.segments =\n matcher._cache.segments ||\n matcher._cache.path\n .map(UrlMatcher.pathSegmentsAndParams)\n .reduce(unnestR, [])\n .reduce(joinNeighborsR, [])\n .map((x) => (isString(x) ? splitOnSlash(x) : x))\n .reduce(unnestR, []));\n\n /**\n * Gets the sort weight for each segment of a UrlMatcher\n *\n * Caches the result as `matcher._cache.weights`\n */\n const weights = (matcher: UrlMatcher) =>\n (matcher._cache.weights =\n matcher._cache.weights ||\n segments(matcher).map((segment) => {\n // Sort slashes first, then static strings, the Params\n if (segment === '/') return 1;\n if (isString(segment)) return 2;\n if (segment instanceof Param) return 3;\n }));\n\n /**\n * Pads shorter array in-place (mutates)\n */\n const padArrays = (l: any[], r: any[], padVal: any) => {\n const len = Math.max(l.length, r.length);\n while (l.length < len) l.push(padVal);\n while (r.length < len) r.push(padVal);\n };\n\n const weightsA = weights(a),\n weightsB = weights(b);\n padArrays(weightsA, weightsB, 0);\n\n const _pairs = arrayTuples(weightsA, weightsB);\n let cmp, i;\n\n for (i = 0; i < _pairs.length; i++) {\n cmp = _pairs[i][0] - _pairs[i][1];\n if (cmp !== 0) return cmp;\n }\n\n return 0;\n }\n\n /**\n * @param pattern The pattern to compile into a matcher.\n * @param paramTypes The [[ParamTypes]] registry\n * @param paramFactory A [[ParamFactory]] object\n * @param config A [[UrlMatcherCompileConfig]] configuration object\n */\n constructor(pattern: string, paramTypes: ParamTypes, paramFactory: ParamFactory, config?: UrlMatcherCompileConfig) {\n this.config = config = defaults(config, defaultConfig);\n this.pattern = pattern;\n\n // Find all placeholders and create a compiled pattern, using either classic or curly syntax:\n // '*' name\n // ':' name\n // '{' name '}'\n // '{' name ':' regexp '}'\n // The regular expression is somewhat complicated due to the need to allow curly braces\n // inside the regular expression. The placeholder regexp breaks down as follows:\n // ([:*])([\\w\\[\\]]+) - classic placeholder ($1 / $2) (search version has - for snake-case)\n // \\{([\\w\\[\\]]+)(?:\\: ... ( ... ))?\\} - curly brace placeholder ($3) with optional regexp/type ... ($5) (search version has - for snake-case\n // (?: ... | ... | ... )+ - the regexp consists of any number of atoms, an atom being either\n // [^{}\\\\] - anything other than curly braces or backslash\n // \\\\. - a backslash escape\n // \\{(?:[^{}\\\\]|\\\\.)*\\} - a matched set of curly braces containing other atoms\n const placeholder = /([:*])([\\w\\[\\]]+)|\\{([\\w\\[\\]]+)(?:\\:(?=(\\s*))\\4((?:[^{}\\\\]|\\\\.|\\{(?:[^{}\\\\]|\\\\.)*\\})+))?\\}/g;\n const searchPlaceholder =\n /([:]?)([\\w\\[\\].-]+)|\\{([\\w\\[\\].-]+)(?:\\:(?=(\\s*))\\4((?:[^{}\\\\]|\\\\.|\\{(?:[^{}\\\\]|\\\\.)*\\})+))?\\}/g;\n const patterns: any[][] = [];\n let last = 0;\n let matchArray: RegExpExecArray;\n\n const checkParamErrors = (id: string) => {\n if (!UrlMatcher.nameValidator.test(id)) throw new Error(`Invalid parameter name '${id}' in pattern '${pattern}'`);\n if (find(this._params, propEq('id', id)))\n throw new Error(`Duplicate parameter name '${id}' in pattern '${pattern}'`);\n };\n\n // Split into static segments separated by path parameter placeholders.\n // The number of segments is always 1 more than the number of parameters.\n const matchDetails = (m: RegExpExecArray, isSearch: boolean): MatchDetails => {\n // IE[78] returns '' for unmatched groups instead of null\n const id: string = m[2] || m[3];\n const regexp: string = isSearch ? m[5] : m[5] || (m[1] === '*' ? '[\\\\s\\\\S]*' : null);\n\n const makeRegexpType = (str) =>\n inherit(paramTypes.type(isSearch ? 'query' : 'path'), {\n pattern: new RegExp(str, this.config.caseInsensitive ? 'i' : undefined),\n });\n\n return {\n id,\n regexp,\n segment: pattern.substring(last, m.index),\n type: !regexp ? null : paramTypes.type(regexp) || makeRegexpType(regexp),\n };\n };\n\n let details: MatchDetails;\n let segment: string;\n\n // tslint:disable-next-line:no-conditional-assignment\n while ((matchArray = placeholder.exec(pattern))) {\n details = matchDetails(matchArray, false);\n if (details.segment.indexOf('?') >= 0) break; // we're into the search part\n\n checkParamErrors(details.id);\n this._params.push(paramFactory.fromPath(details.id, details.type, config.state));\n this._segments.push(details.segment);\n patterns.push([details.segment, tail(this._params)]);\n last = placeholder.lastIndex;\n }\n segment = pattern.substring(last);\n\n // Find any search parameter names and remove them from the last segment\n const i = segment.indexOf('?');\n\n if (i >= 0) {\n const search = segment.substring(i);\n segment = segment.substring(0, i);\n\n if (search.length > 0) {\n last = 0;\n\n // tslint:disable-next-line:no-conditional-assignment\n while ((matchArray = searchPlaceholder.exec(search))) {\n details = matchDetails(matchArray, true);\n checkParamErrors(details.id);\n this._params.push(paramFactory.fromSearch(details.id, details.type, config.state));\n last = placeholder.lastIndex;\n // check if ?&\n }\n }\n }\n\n this._segments.push(segment);\n this._compiled = patterns.map((_pattern) => quoteRegExp.apply(null, _pattern)).concat(quoteRegExp(segment));\n }\n\n /**\n * Creates a new concatenated UrlMatcher\n *\n * Builds a new UrlMatcher by appending another UrlMatcher to this one.\n *\n * @param url A `UrlMatcher` instance to append as a child of the current `UrlMatcher`.\n */\n append(url: UrlMatcher): UrlMatcher {\n this._children.push(url);\n url._cache = {\n path: this._cache.path.concat(url),\n parent: this,\n pattern: null,\n };\n return url;\n }\n\n /** @internal */\n isRoot(): boolean {\n return this._cache.path[0] === this;\n }\n\n /** Returns the input pattern string */\n toString(): string {\n return this.pattern;\n }\n\n private _getDecodedParamValue(value: any, param: Param): any {\n if (isDefined(value)) {\n if (this.config.decodeParams && !param.type.raw) {\n if (isArray(value)) {\n value = value.map((paramValue) => decodeURIComponent(paramValue));\n } else {\n value = decodeURIComponent(value);\n }\n }\n\n value = param.type.decode(value);\n }\n\n return param.value(value);\n }\n\n /**\n * Tests the specified url/path against this matcher.\n *\n * Tests if the given url matches this matcher's pattern, and returns an object containing the captured\n * parameter values. Returns null if the path does not match.\n *\n * The returned object contains the values\n * of any search parameters that are mentioned in the pattern, but their value may be null if\n * they are not present in `search`. This means that search parameters are always treated\n * as optional.\n *\n * #### Example:\n * ```js\n * new UrlMatcher('/user/{id}?q&r').exec('/user/bob', {\n * x: '1', q: 'hello'\n * });\n * // returns { id: 'bob', q: 'hello', r: null }\n * ```\n *\n * @param path The URL path to match, e.g. `$location.path()`.\n * @param search URL search parameters, e.g. `$location.search()`.\n * @param hash URL hash e.g. `$location.hash()`.\n * @param options\n *\n * @returns The captured parameter values.\n */\n exec(path: string, search: any = {}, hash?: string, options: any = {}): RawParams {\n const match = memoizeTo(this._cache, 'pattern', () => {\n return new RegExp(\n [\n '^',\n unnest(this._cache.path.map(prop('_compiled'))).join(''),\n this.config.strict === false ? '/?' : '',\n '$',\n ].join(''),\n this.config.caseInsensitive ? 'i' : undefined\n );\n }).exec(path);\n\n if (!match) return null;\n\n // options = defaults(options, { isolate: false });\n\n const allParams: Param[] = this.parameters(),\n pathParams: Param[] = allParams.filter((param) => !param.isSearch()),\n searchParams: Param[] = allParams.filter((param) => param.isSearch()),\n nPathSegments = this._cache.path.map((urlm) => urlm._segments.length - 1).reduce((a, x) => a + x),\n values: RawParams = {};\n\n if (nPathSegments !== match.length - 1) throw new Error(`Unbalanced capture group in route '${this.pattern}'`);\n\n function decodePathArray(paramVal: string) {\n const reverseString = (str: string) => str.split('').reverse().join('');\n const unquoteDashes = (str: string) => str.replace(/\\\\-/g, '-');\n\n const split = reverseString(paramVal).split(/-(?!\\\\)/);\n const allReversed = map(split, reverseString);\n return map(allReversed, unquoteDashes).reverse();\n }\n\n for (let i = 0; i < nPathSegments; i++) {\n const param: Param = pathParams[i];\n let value: any | any[] = match[i + 1];\n\n // if the param value matches a pre-replace pair, replace the value before decoding.\n for (let j = 0; j < param.replace.length; j++) {\n if (param.replace[j].from === value) value = param.replace[j].to;\n }\n\n if (value && param.array === true) value = decodePathArray(value);\n\n values[param.id] = this._getDecodedParamValue(value, param);\n }\n searchParams.forEach((param: Param) => {\n let value = search[param.id];\n\n for (let j = 0; j < param.replace.length; j++) {\n if (param.replace[j].from === value) value = param.replace[j].to;\n }\n\n values[param.id] = this._getDecodedParamValue(value, param);\n });\n\n if (hash) values['#'] = hash;\n\n return values;\n }\n\n /**\n * @internal\n * Returns all the [[Param]] objects of all path and search parameters of this pattern in order of appearance.\n *\n * @returns {Array.} An array of [[Param]] objects. Must be treated as read-only. If the\n * pattern has no parameters, an empty array is returned.\n */\n parameters(opts: any = {}): Param[] {\n if (opts.inherit === false) return this._params;\n return unnest(this._cache.path.map((matcher) => matcher._params));\n }\n\n /**\n * @internal\n * Returns a single parameter from this UrlMatcher by id\n *\n * @param id\n * @param opts\n * @returns {T|Param|any|boolean|UrlMatcher|null}\n */\n parameter(id: string, opts: any = {}): Param {\n const findParam = () => {\n for (const param of this._params) {\n if (param.id === id) return param;\n }\n };\n\n const parent = this._cache.parent;\n return findParam() || (opts.inherit !== false && parent && parent.parameter(id, opts)) || null;\n }\n\n /**\n * Validates the input parameter values against this UrlMatcher\n *\n * Checks an object hash of parameters to validate their correctness according to the parameter\n * types of this `UrlMatcher`.\n *\n * @param params The object hash of parameters to validate.\n * @returns Returns `true` if `params` validates, otherwise `false`.\n */\n validates(params: RawParams): boolean {\n const validParamVal = (param: Param, val: any) => !param || param.validates(val);\n\n params = params || {};\n\n // I'm not sure why this checks only the param keys passed in, and not all the params known to the matcher\n const paramSchema = this.parameters().filter((paramDef) => params.hasOwnProperty(paramDef.id));\n return paramSchema.map((paramDef) => validParamVal(paramDef, params[paramDef.id])).reduce(allTrueR, true);\n }\n\n /**\n * Given a set of parameter values, creates a URL from this UrlMatcher.\n *\n * Creates a URL that matches this pattern by substituting the specified values\n * for the path and search parameters.\n *\n * #### Example:\n * ```js\n * new UrlMatcher('/user/{id}?q').format({ id:'bob', q:'yes' });\n * // returns '/user/bob?q=yes'\n * ```\n *\n * @param values the values to substitute for the parameters in this pattern.\n * @returns the formatted URL (path and optionally search part).\n */\n format(values: RawParams = {}) {\n // Build the full path of UrlMatchers (including all parent UrlMatchers)\n const urlMatchers = this._cache.path;\n\n // Extract all the static segments and Params (processed as ParamDetails)\n // into an ordered array\n const pathSegmentsAndParams: Array = urlMatchers\n .map(UrlMatcher.pathSegmentsAndParams)\n .reduce(unnestR, [])\n .map((x) => (isString(x) ? x : getDetails(x)));\n\n // Extract the query params into a separate array\n const queryParams: Array = urlMatchers\n .map(UrlMatcher.queryParams)\n .reduce(unnestR, [])\n .map(getDetails);\n\n const isInvalid = (param: ParamDetails) => param.isValid === false;\n if (pathSegmentsAndParams.concat(queryParams).filter(isInvalid).length) {\n return null;\n }\n\n /**\n * Given a Param, applies the parameter value, then returns detailed information about it\n */\n function getDetails(param: Param): ParamDetails {\n // Normalize to typed value\n const value = param.value(values[param.id]);\n const isValid = param.validates(value);\n const isDefaultValue = param.isDefaultValue(value);\n // Check if we're in squash mode for the parameter\n const squash = isDefaultValue ? param.squash : false;\n // Allow the Parameter's Type to encode the value\n const encoded = param.type.encode(value);\n\n return { param, value, isValid, isDefaultValue, squash, encoded };\n }\n\n // Build up the path-portion from the list of static segments and parameters\n const pathString = pathSegmentsAndParams.reduce((acc: string, x: string | ParamDetails) => {\n // The element is a static segment (a raw string); just append it\n if (isString(x)) return acc + x;\n\n // Otherwise, it's a ParamDetails.\n const { squash, encoded, param } = x;\n\n // If squash is === true, try to remove a slash from the path\n if (squash === true) return acc.match(/\\/$/) ? acc.slice(0, -1) : acc;\n // If squash is a string, use the string for the param value\n if (isString(squash)) return acc + squash;\n if (squash !== false) return acc; // ?\n if (encoded == null) return acc;\n // If this parameter value is an array, encode the value using encodeDashes\n if (isArray(encoded)) return acc + map(encoded, UrlMatcher.encodeDashes).join('-');\n // If the parameter type is \"raw\", then do not encodeURIComponent\n if (param.raw) return acc + encoded;\n // Encode the value\n return acc + encodeURIComponent(encoded);\n }, '');\n\n // Build the query string by applying parameter values (array or regular)\n // then mapping to key=value, then flattening and joining using \"&\"\n const queryString = queryParams\n .map((paramDetails: ParamDetails) => {\n let { param, squash, encoded, isDefaultValue } = paramDetails;\n if (encoded == null || (isDefaultValue && squash !== false)) return;\n if (!isArray(encoded)) encoded = [encoded];\n if (encoded.length === 0) return;\n if (!param.raw) encoded = map(encoded, encodeURIComponent);\n\n return (encoded).map((val) => `${param.id}=${val}`);\n })\n .filter(identity)\n .reduce(unnestR, [])\n .join('&');\n\n // Concat the pathstring with the queryString (if exists) and the hashString (if exists)\n return pathString + (queryString ? `?${queryString}` : '') + (values['#'] ? '#' + values['#'] : '');\n }\n}\n\n/** @internal */\ninterface ParamDetails {\n param: Param;\n value: any;\n isValid: boolean;\n isDefaultValue: boolean;\n squash: boolean | string;\n encoded: string | string[];\n}\n", "import { extend, forEach, isDefined, isFunction, isObject } from '../common';\nimport { UrlMatcher } from './urlMatcher';\nimport { DefType, Param, ParamType, ParamTypeDefinition } from '../params';\nimport { UrlMatcherCompileConfig } from './interface';\nimport { StateDeclaration } from '../state';\nimport { UIRouter } from '../router';\n\nexport class ParamFactory {\n fromConfig(id: string, type: ParamType, state: StateDeclaration) {\n return new Param(id, type, DefType.CONFIG, this.router.urlService.config, state);\n }\n\n fromPath(id: string, type: ParamType, state: StateDeclaration) {\n return new Param(id, type, DefType.PATH, this.router.urlService.config, state);\n }\n\n fromSearch(id: string, type: ParamType, state: StateDeclaration) {\n return new Param(id, type, DefType.SEARCH, this.router.urlService.config, state);\n }\n\n constructor(private router: UIRouter) {}\n}\n\n/**\n * Factory for [[UrlMatcher]] instances.\n *\n * The factory is available to ng1 services as\n * `$urlMatcherFactory` or ng1 providers as `$urlMatcherFactoryProvider`.\n */\nexport class UrlMatcherFactory {\n /** Creates a new [[Param]] for a given location (DefType) */\n paramFactory = new ParamFactory(this.router);\n // TODO: Check if removal of this will break anything, then remove these\n UrlMatcher: typeof UrlMatcher = UrlMatcher;\n Param: typeof Param = Param;\n\n // TODO: move implementations to UrlConfig (urlService.config)\n constructor(/** @internal */ private router: UIRouter) {}\n\n /**\n * Creates a [[UrlMatcher]] for the specified pattern.\n *\n * @param pattern The URL pattern.\n * @param config The config object hash.\n * @returns The UrlMatcher.\n */\n compile(pattern: string, config?: UrlMatcherCompileConfig) {\n const urlConfig = this.router.urlService.config;\n // backward-compatible support for config.params -> config.state.params\n const params = config && !config.state && (config as any).params;\n config = params ? { state: { params }, ...config } : config;\n const globalConfig: UrlMatcherCompileConfig = {\n strict: urlConfig._isStrictMode,\n caseInsensitive: urlConfig._isCaseInsensitive,\n decodeParams: urlConfig._decodeParams,\n };\n return new UrlMatcher(pattern, urlConfig.paramTypes, this.paramFactory, extend(globalConfig, config));\n }\n\n /**\n * Returns true if the specified object is a [[UrlMatcher]], or false otherwise.\n *\n * @param object The object to perform the type check against.\n * @returns `true` if the object matches the `UrlMatcher` interface, by\n * implementing all the same methods.\n */\n isMatcher(object: any): boolean {\n // TODO: typeof?\n if (!isObject(object)) return false;\n let result = true;\n\n forEach(UrlMatcher.prototype, (val, name) => {\n if (isFunction(val)) result = result && isDefined(object[name]) && isFunction(object[name]);\n });\n return result;\n }\n\n /** @internal */\n $get() {\n const urlConfig = this.router.urlService.config;\n urlConfig.paramTypes.enqueue = false;\n urlConfig.paramTypes._flushTypeQueue();\n return this;\n }\n\n /** @deprecated use [[UrlConfig.caseInsensitive]] */\n caseInsensitive = (value?: boolean) => this.router.urlService.config.caseInsensitive(value);\n\n /** @deprecated use [[UrlConfig.defaultSquashPolicy]] */\n defaultSquashPolicy = (value?: boolean | string) => this.router.urlService.config.defaultSquashPolicy(value);\n\n /** @deprecated use [[UrlConfig.strictMode]] */\n strictMode = (value?: boolean) => this.router.urlService.config.strictMode(value);\n\n /** @deprecated use [[UrlConfig.type]] */\n type = (name: string, definition?: ParamTypeDefinition, definitionFn?: () => ParamTypeDefinition) => {\n return this.router.urlService.config.type(name, definition, definitionFn) || this;\n };\n}\n", "import { StateDeclaration } from '../state';\nimport { UrlMatcher } from './urlMatcher';\nimport { isString, isDefined, isFunction } from '../common/predicates';\nimport { UIRouter } from '../router';\nimport { identity, extend } from '../common/common';\nimport { is, or, pattern } from '../common/hof';\nimport { StateObject } from '../state/stateObject';\nimport { RawParams } from '../params/interface';\nimport {\n UrlRule,\n UrlRuleMatchFn,\n UrlRuleHandlerFn,\n UrlRuleType,\n UrlParts,\n MatcherUrlRule,\n StateRule,\n RegExpRule,\n} from './interface';\n\n/**\n * Creates a [[UrlRule]]\n *\n * Creates a [[UrlRule]] from a:\n *\n * - `string`\n * - [[UrlMatcher]]\n * - `RegExp`\n * - [[StateObject]]\n */\nexport class UrlRuleFactory {\n static isUrlRule = (obj) => obj && ['type', 'match', 'handler'].every((key) => isDefined(obj[key]));\n\n constructor(public router: UIRouter) {}\n\n compile(str: string) {\n return this.router.urlMatcherFactory.compile(str);\n }\n\n create(\n what: string | UrlMatcher | StateObject | StateDeclaration | RegExp | UrlRuleMatchFn,\n handler?: string | UrlRuleHandlerFn\n ): UrlRule {\n const { isState, isStateDeclaration } = StateObject;\n const makeRule = pattern([\n [isString, (_what: string) => makeRule(this.compile(_what))],\n [is(UrlMatcher), (_what: UrlMatcher) => this.fromUrlMatcher(_what, handler)],\n [or(isState, isStateDeclaration), (_what: StateObject | StateDeclaration) => this.fromState(_what, this.router)],\n [is(RegExp), (_what: RegExp) => this.fromRegExp(_what, handler)],\n [isFunction, (_what: UrlRuleMatchFn) => new BaseUrlRule(_what, handler as UrlRuleHandlerFn)],\n ]);\n\n const rule = makeRule(what);\n if (!rule) throw new Error(\"invalid 'what' in when()\");\n return rule;\n }\n\n /**\n * A UrlRule which matches based on a UrlMatcher\n *\n * The `handler` may be either a `string`, a [[UrlRuleHandlerFn]] or another [[UrlMatcher]]\n *\n * ## Handler as a function\n *\n * If `handler` is a function, the function is invoked with:\n *\n * - matched parameter values ([[RawParams]] from [[UrlMatcher.exec]])\n * - url: the current Url ([[UrlParts]])\n * - router: the router object ([[UIRouter]])\n *\n * #### Example:\n * ```js\n * var urlMatcher = $umf.compile(\"/foo/:fooId/:barId\");\n * var rule = factory.fromUrlMatcher(urlMatcher, match => \"/home/\" + match.fooId + \"/\" + match.barId);\n * var match = rule.match('/foo/123/456'); // results in { fooId: '123', barId: '456' }\n * var result = rule.handler(match); // '/home/123/456'\n * ```\n *\n * ## Handler as UrlMatcher\n *\n * If `handler` is a UrlMatcher, the handler matcher is used to create the new url.\n * The `handler` UrlMatcher is formatted using the matched param from the first matcher.\n * The url is replaced with the result.\n *\n * #### Example:\n * ```js\n * var urlMatcher = $umf.compile(\"/foo/:fooId/:barId\");\n * var handler = $umf.compile(\"/home/:fooId/:barId\");\n * var rule = factory.fromUrlMatcher(urlMatcher, handler);\n * var match = rule.match('/foo/123/456'); // results in { fooId: '123', barId: '456' }\n * var result = rule.handler(match); // '/home/123/456'\n * ```\n */\n fromUrlMatcher(urlMatcher: UrlMatcher, handler: string | UrlMatcher | UrlRuleHandlerFn): MatcherUrlRule {\n let _handler: UrlRuleHandlerFn = handler as any;\n if (isString(handler)) handler = this.router.urlMatcherFactory.compile(handler);\n if (is(UrlMatcher)(handler)) _handler = (match: RawParams) => (handler as UrlMatcher).format(match);\n\n function matchUrlParamters(url: UrlParts): RawParams {\n const params = urlMatcher.exec(url.path, url.search, url.hash);\n return urlMatcher.validates(params) && params;\n }\n\n // Prioritize URLs, lowest to highest:\n // - Some optional URL parameters, but none matched\n // - No optional parameters in URL\n // - Some optional parameters, some matched\n // - Some optional parameters, all matched\n function matchPriority(params: RawParams): number {\n const optional = urlMatcher.parameters().filter((param) => param.isOptional);\n if (!optional.length) return 0.000001;\n const matched = optional.filter((param) => params[param.id]);\n return matched.length / optional.length;\n }\n\n const details = { urlMatcher, matchPriority, type: 'URLMATCHER' };\n return extend(new BaseUrlRule(matchUrlParamters, _handler), details) as MatcherUrlRule;\n }\n\n /**\n * A UrlRule which matches a state by its url\n *\n * #### Example:\n * ```js\n * var rule = factory.fromState($state.get('foo'), router);\n * var match = rule.match('/foo/123/456'); // results in { fooId: '123', barId: '456' }\n * var result = rule.handler(match);\n * // Starts a transition to 'foo' with params: { fooId: '123', barId: '456' }\n * ```\n */\n fromState(stateOrDecl: StateObject | StateDeclaration, router: UIRouter): StateRule {\n const state = StateObject.isStateDeclaration(stateOrDecl) ? stateOrDecl.$$state() : stateOrDecl;\n\n /**\n * Handles match by transitioning to matched state\n *\n * First checks if the router should start a new transition.\n * A new transition is not required if the current state's URL\n * and the new URL are already identical\n */\n const handler = (match: RawParams) => {\n const $state = router.stateService;\n const globals = router.globals;\n if ($state.href(state, match) !== $state.href(globals.current, globals.params)) {\n $state.transitionTo(state, match, { inherit: true, source: 'url' });\n }\n };\n\n const details = { state, type: 'STATE' };\n return extend(this.fromUrlMatcher(state.url, handler), details) as StateRule;\n }\n\n /**\n * A UrlRule which matches based on a regular expression\n *\n * The `handler` may be either a [[UrlRuleHandlerFn]] or a string.\n *\n * ## Handler as a function\n *\n * If `handler` is a function, the function is invoked with:\n *\n * - regexp match array (from `regexp`)\n * - url: the current Url ([[UrlParts]])\n * - router: the router object ([[UIRouter]])\n *\n * #### Example:\n * ```js\n * var rule = factory.fromRegExp(/^\\/foo\\/(bar|baz)$/, match => \"/home/\" + match[1])\n * var match = rule.match('/foo/bar'); // results in [ '/foo/bar', 'bar' ]\n * var result = rule.handler(match); // '/home/bar'\n * ```\n *\n * ## Handler as string\n *\n * If `handler` is a string, the url is *replaced by the string* when the Rule is invoked.\n * The string is first interpolated using `string.replace()` style pattern.\n *\n * #### Example:\n * ```js\n * var rule = factory.fromRegExp(/^\\/foo\\/(bar|baz)$/, \"/home/$1\")\n * var match = rule.match('/foo/bar'); // results in [ '/foo/bar', 'bar' ]\n * var result = rule.handler(match); // '/home/bar'\n * ```\n */\n fromRegExp(regexp: RegExp, handler: string | UrlRuleHandlerFn): RegExpRule {\n if (regexp.global || regexp.sticky) throw new Error('Rule RegExp must not be global or sticky');\n\n /**\n * If handler is a string, the url will be replaced by the string.\n * If the string has any String.replace() style variables in it (like `$2`),\n * they will be replaced by the captures from [[match]]\n */\n const redirectUrlTo = (match: RegExpExecArray) =>\n // Interpolates matched values into $1 $2, etc using a String.replace()-style pattern\n (handler as string).replace(/\\$(\\$|\\d{1,2})/, (m, what) => match[what === '$' ? 0 : Number(what)]);\n\n const _handler = isString(handler) ? redirectUrlTo : handler;\n\n const matchParamsFromRegexp = (url: UrlParts): RegExpExecArray => regexp.exec(url.path);\n\n const details = { regexp, type: 'REGEXP' };\n return extend(new BaseUrlRule(matchParamsFromRegexp, _handler), details) as RegExpRule;\n }\n}\n\n/**\n * A base rule which calls `match`\n *\n * The value from the `match` function is passed through to the `handler`.\n * @internal\n */\nexport class BaseUrlRule implements UrlRule {\n $id: number;\n priority: number;\n _group: number;\n type: UrlRuleType = 'RAW';\n handler: UrlRuleHandlerFn;\n matchPriority = (match) => 0 - this.$id;\n\n constructor(public match: UrlRuleMatchFn, handler?: UrlRuleHandlerFn) {\n this.handler = handler || identity;\n }\n}\n", "import { stripLastPathElement } from '../common';\nimport { UrlMatcher } from './urlMatcher';\nimport { RawParams } from '../params';\nimport { UIRouter } from '../router';\nimport { UrlRuleFactory } from './urlRule';\nimport { MatchResult, UrlParts, UrlRule, UrlRuleHandlerFn } from './interface';\nimport { TargetState, TargetStateDef } from '../state';\n\nfunction appendBasePath(url: string, isHtml5: boolean, absolute: boolean, baseHref: string): string {\n if (baseHref === '/') return url;\n if (isHtml5) return stripLastPathElement(baseHref) + url;\n if (absolute) return baseHref.slice(1) + url;\n return url;\n}\n\n/**\n * Updates URL and responds to URL changes\n *\n * ### Deprecation warning:\n * This class is now considered to be an internal API\n * Use the [[UrlService]] instead.\n * For configuring URL rules, use the [[UrlRules]] which can be found as [[UrlService.rules]].\n */\nexport class UrlRouter {\n /** used to create [[UrlRule]] objects for common cases */\n public urlRuleFactory: UrlRuleFactory;\n /** @internal */ private location: string;\n\n /** @internal */\n constructor(/** @internal */ private router: UIRouter) {\n this.urlRuleFactory = new UrlRuleFactory(router);\n }\n\n /** Internal API. */\n update(read?: boolean) {\n const $url = this.router.locationService;\n if (read) {\n this.location = $url.url();\n return;\n }\n if ($url.url() === this.location) return;\n\n $url.url(this.location, true);\n }\n\n /**\n * Internal API.\n *\n * Pushes a new location to the browser history.\n *\n * @internal\n * @param urlMatcher\n * @param params\n * @param options\n */\n push(urlMatcher: UrlMatcher, params?: RawParams, options?: { replace?: string | boolean }) {\n const replace = options && !!options.replace;\n this.router.urlService.url(urlMatcher.format(params || {}), replace);\n }\n\n /**\n * Builds and returns a URL with interpolated parameters\n *\n * #### Example:\n * ```js\n * matcher = $umf.compile(\"/about/:person\");\n * params = { person: \"bob\" };\n * $bob = $urlRouter.href(matcher, params);\n * // $bob == \"/about/bob\";\n * ```\n *\n * @param urlMatcher The [[UrlMatcher]] object which is used as the template of the URL to generate.\n * @param params An object of parameter values to fill the matcher's required parameters.\n * @param options Options object. The options are:\n *\n * - **`absolute`** - {boolean=false}, If true will generate an absolute url, e.g. \"http://www.example.com/fullurl\".\n *\n * @returns Returns the fully compiled URL, or `null` if `params` fail validation against `urlMatcher`\n */\n href(urlMatcher: UrlMatcher, params?: any, options?: { absolute: boolean }): string {\n let url = urlMatcher.format(params);\n if (url == null) return null;\n\n options = options || { absolute: false };\n\n const cfg = this.router.urlService.config;\n const isHtml5 = cfg.html5Mode();\n if (!isHtml5 && url !== null) {\n url = '#' + cfg.hashPrefix() + url;\n }\n url = appendBasePath(url, isHtml5, options.absolute, cfg.baseHref());\n\n if (!options.absolute || !url) {\n return url;\n }\n\n const slash = !isHtml5 && url ? '/' : '';\n const cfgPort = cfg.port();\n const port = (cfgPort === 80 || cfgPort === 443 ? '' : ':' + cfgPort);\n\n return [cfg.protocol(), '://', cfg.host(), port, slash, url].join('');\n }\n\n // Delegate these calls to [[UrlService]]\n /** @deprecated use [[UrlService.sync]]*/\n public sync = (evt?) => this.router.urlService.sync(evt);\n /** @deprecated use [[UrlService.listen]]*/\n public listen = (enabled?: boolean): Function => this.router.urlService.listen(enabled);\n /** @deprecated use [[UrlService.deferIntercept]]*/\n public deferIntercept = (defer?: boolean) => this.router.urlService.deferIntercept(defer);\n /** @deprecated use [[UrlService.interceptDeferred]]*/\n public get interceptDeferred() {\n return this.router.urlService.interceptDeferred;\n }\n /** @deprecated use [[UrlService.match]]*/\n public match = (urlParts: UrlParts): MatchResult => this.router.urlService.match(urlParts);\n\n // Delegate these calls to [[UrlRules]]\n /** @deprecated use [[UrlRules.initial]]*/\n public initial = (handler: string | UrlRuleHandlerFn | TargetState | TargetStateDef): void =>\n this.router.urlService.rules.initial(handler);\n /** @deprecated use [[UrlRules.otherwise]]*/\n public otherwise = (handler: string | UrlRuleHandlerFn | TargetState | TargetStateDef): void =>\n this.router.urlService.rules.otherwise(handler);\n /** @deprecated use [[UrlRules.removeRule]]*/\n public removeRule = (rule: UrlRule): void => this.router.urlService.rules.removeRule(rule);\n /** @deprecated use [[UrlRules.rule]]*/\n public rule = (rule: UrlRule): Function => this.router.urlService.rules.rule(rule);\n /** @deprecated use [[UrlRules.rules]]*/\n public rules = (): UrlRule[] => this.router.urlService.rules.rules();\n /** @deprecated use [[UrlRules.sort]]*/\n public sort = (compareFn?: (a: UrlRule, b: UrlRule) => number) => this.router.urlService.rules.sort(compareFn);\n /** @deprecated use [[UrlRules.when]]*/\n public when = (\n matcher: RegExp | UrlMatcher | string,\n handler: string | UrlRuleHandlerFn,\n options?: { priority: number }\n ): UrlRule => this.router.urlService.rules.when(matcher, handler, options);\n}\n", @@ -172,5 +172,5 @@ "__extends", "id" ], - "mappings": "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" + "mappings": "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" } \ No newline at end of file diff --git a/UI/WebServerResources/js/vendor/angular-ui-router.min.js b/UI/WebServerResources/js/vendor/angular-ui-router.min.js index b2d915454..abec91215 100644 --- a/UI/WebServerResources/js/vendor/angular-ui-router.min.js +++ b/UI/WebServerResources/js/vendor/angular-ui-router.min.js @@ -4,9 +4,9 @@ * This causes it to be incompatible with plugins that depend on @uirouter/core. * We recommend switching to the ui-router-core.js and ui-router-angularjs.js bundles instead. * For more information, see https://ui-router.github.io/blog/uirouter-for-angularjs-umd-bundles - * @version v1.0.30 + * @version v1.1.2 * @link https://ui-router.github.io * @license MIT License, http://www.opensource.org/licenses/MIT */ -!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("angular")):"function"==typeof define&&define.amd?define(["exports","angular"],e):e((t=t||self)["@uirouter/angularjs"]={},t.angular)}(this,(function(t,e){"use strict";var r=angular,n=e&&e.module?e:r,i=function(){for(var t=0,e=0,r=arguments.length;e=t.length)return t.apply(this,arguments);var r=Array.prototype.slice.call(arguments);return e.bind.apply(e,i([this],r))}}function a(){var t=arguments,e=t.length-1;return function(){for(var r=e,n=t[e].apply(this,arguments);r--;)n=t[r].call(this,n);return n}}function u(){for(var t=[],e=0;e=0&&t.splice(r,1),t}var tt=o(et);function et(t,e){return t.push(e),e}var rt=function(t){return t.slice().forEach((function(e){"function"==typeof e&&e(),Z(t,e)}))};function nt(t){for(var e=[],r=1;rthis._limit&&this.evict(),t},t.prototype.evict=function(){var t=this._items.shift();return this._evictListeners.forEach((function(e){return e(t)})),t},t.prototype.dequeue=function(){if(this.size())return this._items.splice(0,1)[0]},t.prototype.clear=function(){var t=this._items;return this._items=[],t},t.prototype.size=function(){return this._items.length},t.prototype.remove=function(t){var e=this._items.indexOf(t);return e>-1&&this._items.splice(e,1)[0]},t.prototype.peekTail=function(){return this._items[this._items.length-1]},t.prototype.peekHead=function(){if(this.size())return this._items[0]},t}();(jt=t.RejectType||(t.RejectType={}))[jt.SUPERSEDED=2]="SUPERSEDED",jt[jt.ABORTED=3]="ABORTED",jt[jt.INVALID=4]="INVALID",jt[jt.IGNORED=5]="IGNORED",jt[jt.ERROR=6]="ERROR";var Dt=0,qt=function(){function e(t,e,r){this.$id=Dt++,this.type=t,this.message=e,this.detail=r}return e.isRejectionPromise=function(t){return t&&"function"==typeof t.then&&m(e)(t._transitionRejection)},e.superseded=function(r,n){var i=new e(t.RejectType.SUPERSEDED,"The transition has been superseded by a different transition",r);return n&&n.redirected&&(i.redirected=!0),i},e.redirected=function(t){return e.superseded(t,{redirected:!0})},e.invalid=function(r){return new e(t.RejectType.INVALID,"This transition is invalid",r)},e.ignored=function(r){return new e(t.RejectType.IGNORED,"The transition was ignored",r)},e.aborted=function(r){return new e(t.RejectType.ABORTED,"The transition has been aborted",r)},e.errored=function(r){return new e(t.RejectType.ERROR,"The transition errored",r)},e.normalize=function(t){return m(e)(t)?t:e.errored(t)},e.prototype.toString=function(){var t,e=(t=this.detail)&&t.toString!==Object.prototype.toString?t.toString():Bt(t);return"Transition Rejection($id: "+this.$id+" type: "+this.type+", message: "+this.message+", detail: "+e+")"},e.prototype.toPromise=function(){return B(It(this),{_transitionRejection:this})},e}();function Ut(t,e){return e.length<=t?e:e.substr(0,t-3)+"..."}function Nt(t,e){for(;e.length "+Bt(e))},e.prototype.traceTransitionIgnored=function(e){this.enabled(t.Category.TRANSITION)&&ee.log(ue(e)+": Ignored <> "+Bt(e))},e.prototype.traceHookInvocation=function(e,r,n){if(this.enabled(t.Category.HOOK)){var i=f("traceData.hookType")(n)||"internal",o=f("traceData.context.state.name")(n)||f("traceData.context")(n)||"unknown",a=Lt(e.registeredHook.callback);ee.log(ue(r)+": Hook -> "+i+" context: "+o+", "+Ut(200,a))}},e.prototype.traceHookResult=function(e,r,n){this.enabled(t.Category.HOOK)&&ee.log(ue(r)+": <- Hook returned: "+Ut(200,Bt(e)))},e.prototype.traceResolvePath=function(e,r,n){this.enabled(t.Category.RESOLVE)&&ee.log(ue(n)+": Resolving "+e+" ("+r+")")},e.prototype.traceResolvableResolved=function(e,r){this.enabled(t.Category.RESOLVE)&&ee.log(ue(r)+": <- Resolved "+e+" to: "+Ut(200,Bt(e.data)))},e.prototype.traceError=function(e,r){this.enabled(t.Category.TRANSITION)&&ee.log(ue(r)+": <- Rejected "+Bt(r)+", reason: "+e)},e.prototype.traceSuccess=function(e,r){this.enabled(t.Category.TRANSITION)&&ee.log(ue(r)+": <- Success "+Bt(r)+", final state: "+e.name)},e.prototype.traceUIViewEvent=function(e,r,n){void 0===n&&(n=""),this.enabled(t.Category.UIVIEW)&&ee.log("ui-view: "+Nt(30,e)+" "+re(r)+n)},e.prototype.traceUIViewConfigUpdated=function(e,r){this.enabled(t.Category.UIVIEW)&&this.traceUIViewEvent("Updating",e," with ViewConfig from context='"+r+"'")},e.prototype.traceUIViewFill=function(e,r){this.enabled(t.Category.UIVIEW)&&this.traceUIViewEvent("Fill",e," with: "+Ut(200,r))},e.prototype.traceViewSync=function(e){if(this.enabled(t.Category.VIEWCONFIG)){var r="uiview component fqn",n=e.map((function(t){var e,n=t.uiView,i=t.viewConfig,o=n&&n.fqn,a=i&&i.viewDecl.$context.name+": ("+i.viewDecl.$name+")";return(e={})[r]=o,e["view config state (view name)"]=a,e})).sort((function(t,e){return(t[r]||"").localeCompare(e[r]||"")}));ee.table(n)}},e.prototype.traceViewServiceEvent=function(e,r){this.enabled(t.Category.VIEWCONFIG)&&ee.log("VIEWCONFIG: "+e+" "+function(t){var e=t.viewDecl,r=e.$context.name||"(root)";return"[View#"+t.$id+" from '"+r+"' state]: target ui-view: '"+e.$uiViewName+"@"+e.$uiViewContextAnchor+"'"}(r))},e.prototype.traceViewServiceUIViewEvent=function(e,r){this.enabled(t.Category.VIEWCONFIG)&&ee.log("VIEWCONFIG: "+e+" "+re(r))},e}(),ce=new se,fe=function(){function t(t){this.pattern=/.*/,this.inherit=!0,B(this,t)}return t.prototype.is=function(t,e){return!0},t.prototype.encode=function(t,e){return t},t.prototype.decode=function(t,e){return t},t.prototype.equals=function(t,e){return t==e},t.prototype.$subPattern=function(){var t=this.pattern.toString();return t.substr(1,t.length-2)},t.prototype.toString=function(){return"{ParamType:"+this.name+"}"},t.prototype.$normalize=function(t){return this.is(t)?t:this.decode(t)},t.prototype.$asArray=function(t,e){if(!t)return this;if("auto"===t&&!e)throw new Error("'auto' array mode is for query parameters only");return new le(this,t)},t}();function le(t,e){var r=this;function n(t){return x(t)?t:R(t)?[t]:[]}function i(t,r){return function(i){if(x(i)&&0===i.length)return i;var o=ht(n(i),t);return!0===r?0===ct(o,(function(t){return!t})).length:function(t){switch(t.length){case 0:return;case 1:return"auto"===e?t[0]:t;default:return t}}(o)}}function o(t){return function(e,r){var i=n(e),o=n(r);if(i.length!==o.length)return!1;for(var a=0;a=0||(a.push(n[s]),o[n[s]]=this[n[s]]);return B({},o,t)},t}(),we=function(){function t(e){if(e instanceof t){var r=e;this.state=r.state,this.paramSchema=r.paramSchema.slice(),this.paramValues=B({},r.paramValues),this.resolvables=r.resolvables.slice(),this.views=r.views&&r.views.slice()}else{var n=e;this.state=n,this.paramSchema=n.parameters({inherit:!1}),this.paramValues={},this.resolvables=n.resolvables.map((function(t){return t.clone()}))}}return t.prototype.clone=function(){return new t(this)},t.prototype.applyRawParams=function(t){return this.paramValues=this.paramSchema.reduce((function(e,r){return Pt(e,[(n=r).id,n.value(t[n.id])]);var n}),{}),this},t.prototype.parameter=function(t){return ft(this.paramSchema,c("id",t))},t.prototype.equals=function(t,e){var r=this.diff(t,e);return r&&0===r.length},t.prototype.diff=function(t,e){if(this.state!==t.state)return!1;var r=e?e(this):this.paramSchema;return me.changed(r,this.paramValues,t.paramValues)},t.clone=function(t){return t.clone()},t}(),_e=function(){function t(t,e,r,n){this._stateRegistry=t,this._identifier=e,this._identifier=e,this._params=B({},r||{}),this._options=B({},n||{}),this._definition=t.matcher.find(e,this._options.relative)}return t.prototype.name=function(){return this._definition&&this._definition.name||this._identifier},t.prototype.identifier=function(){return this._identifier},t.prototype.params=function(){return this._params},t.prototype.$state=function(){return this._definition},t.prototype.state=function(){return this._definition&&this._definition.self},t.prototype.options=function(){return this._options},t.prototype.exists=function(){return!(!this._definition||!this._definition.self)},t.prototype.valid=function(){return!this.error()},t.prototype.error=function(){var t=this.options().relative;if(!this._definition&&t){var e=t.name?t.name:t;return"Could not resolve '"+this.name()+"' from state '"+e+"'"}return this._definition?this._definition.self?void 0:"State '"+this.name()+"' has an invalid definition":"No such state '"+this.name()+"'"},t.prototype.toString=function(){return"'"+this.name()+"'"+Bt(this.params())},t.prototype.withState=function(e){return new t(this._stateRegistry,e,this._params,this._options)},t.prototype.withParams=function(e,r){void 0===r&&(r=!1);var n=r?e:B({},this._params,e);return new t(this._stateRegistry,this._identifier,n,this._options)},t.prototype.withOptions=function(e,r){void 0===r&&(r=!1);var n=r?e:B({},this._options,e);return new t(this._stateRegistry,this._identifier,this._params,n)},t.isDef=function(t){return t&&t.state&&(k(t.state)||O(t.state)&&k(t.state.name))},t}(),Se=function(){function t(){}return t.makeTargetState=function(t,e){var r=Tt(e).state;return new _e(t,r,e.map(s("paramValues")).reduce(it,{}),{})},t.buildPath=function(t){var e=t.params();return t.$state().path.map((function(t){return new we(t).applyRawParams(e)}))},t.buildToPath=function(e,r){var n=t.buildPath(r);return r.options().inherit?t.inheritParams(e,n,Object.keys(r.params())):n},t.applyViewConfigs=function(e,r,n){r.filter((function(t){return K(n,t.state)})).forEach((function(n){var i=pt(n.state.views||{}),o=t.subPath(r,(function(t){return t===n})),a=i.map((function(t){return e.createViewConfig(o,t)}));n.views=a.reduce(mt,[])}))},t.inheritParams=function(t,e,r){void 0===r&&(r=[]);var n=t.map((function(t){return t.paramSchema})).reduce(mt,[]).filter((function(t){return!t.inherit})).map(s("id"));return e.map((function(e){var i=B({},e&&e.paramValues),o=at(i,r);i=ut(i,r);var a,u,s,f=ut((a=t,u=e.state,s=ft(a,c("state",u)),B({},s&&s.paramValues)||{}),n),l=B(i,f,o);return new we(e.state).applyRawParams(l)}))},t.treeChanges=function(e,r,n){for(var i,o,a,u,s,c,f=Math.min(e.length,r.length),l=0;l1?n:n[0]:k(t)&&P(e)?(r[t]=n,r[t].push(e),function(){return r[t].splice(r[t].indexOf(e,1))&&null}):void 0},t.prototype.build=function(t){var e=this.matcher,r=this.builders,n=this.parentName(t);if(n&&!e.find(n,void 0,!1))return null;for(var i in r)if(r.hasOwnProperty(i)){var o=r[i].reduce((function(t,e){return function(r){return e(r,t)}}),W);t[i]=o(t)}return t},t.prototype.parentName=function(t){var e=t.name||"",r=e.split(".");if("**"===r.pop()&&r.pop(),r.length){if(t.parent)throw new Error("States that specify the 'parent:' property should not have a '.' in their name ("+e+")");return r.join(".")}return t.parent?k(t.parent)?t.parent:t.parent.name:""},t.prototype.name=function(t){var e=t.name;if(-1!==e.indexOf(".")||!t.parent)return e;var r=k(t.parent)?t.parent:t.parent.name;return r?r+"."+e:e},t}(),Fe=function(){function t(e){return t.create(e||{})}return t.create=function(e){e=t.isStateClass(e)?new e:e;var r=Q(Q(e,t.prototype));return e.$$state=function(){return r},r.self=e,r.__stateObjectCache={nameGlob:Ht.fromString(r.name)},r},t.prototype.is=function(t){return this===t||this.self===t||this.fqn()===t},t.prototype.fqn=function(){if(!(this.parent&&this.parent instanceof this.constructor))return this.name;var t=this.parent.fqn();return t?t+"."+this.name:this.name},t.prototype.root=function(){return this.parent&&this.parent.root()||this},t.prototype.parameters=function(t){return((t=nt(t,{inherit:!0,matchingKeys:null})).inherit&&this.parent&&this.parent.parameters()||[]).concat(pt(this.params)).filter((function(e){return!t.matchingKeys||t.matchingKeys.hasOwnProperty(e.id)}))},t.prototype.parameter=function(t,e){return void 0===e&&(e={}),this.url&&this.url.parameter(t,e)||ft(pt(this.params),c("id",t))||e.inherit&&this.parent&&this.parent.parameter(t)},t.prototype.toString=function(){return this.fqn()},t.isStateClass=function(t){return P(t)&&!0===t.__uiRouterState},t.isStateDeclaration=function(t){return P(t.$$state)},t.isState=function(t){return O(t.__stateObjectCache)},t}(),Le=function(){function t(t){this._states=t}return t.prototype.isRelative=function(t){return 0===(t=t||"").indexOf(".")||0===t.indexOf("^")},t.prototype.find=function(t,e,r){if(void 0===r&&(r=!0),t||""===t){var n=k(t),i=n?t:t.name;this.isRelative(i)&&(i=this.resolvePath(i,e));var o=this._states[i];if(o&&(n||!(n||o!==t&&o.self!==t)))return o;if(n&&r){var a=pt(this._states).filter((function(t){return t.__stateObjectCache.nameGlob&&t.__stateObjectCache.nameGlob.matches(i)}));return a.length>1&&ee.error("stateMatcher.find: Found multiple matches for "+i+" using glob: ",a.map((function(t){return t.name}))),a[0]}}},t.prototype.resolvePath=function(t,e){if(!e)throw new Error("No reference point given for path '"+t+"'");for(var r=this.find(e),n=t.split("."),i=n.length,o=0,a=r;o0;){var c=e.shift(),f=c.name,l=n.build(c),h=o.indexOf(c);if(l){var p=u(f);if(p&&p.name===f)throw new Error("State '"+f+"' is already defined");var v=u(f+".**");v&&this.router.stateRegistry.deregister(v),r[f]=c,this.attachRoute(c),h>=0&&o.splice(h,1),i.push(c)}else{var d=a[f];if(a[f]=e.length,h>=0&&d===e.length)return e.push(c),s(),r;h<0&&o.push(c),e.push(c)}}return s(),r},t.prototype.attachRoute=function(t){if(!t.abstract&&t.url){var e=this.router.urlService.rules;e.rule(e.urlRuleFactory.create(t))}},t}(),Be=function(){function t(t){this.router=t,this.states={},this.listeners=[],this.matcher=new Le(this.states),this.builder=new Ne(this.matcher,t.urlMatcherFactory),this.stateQueue=new Me(t,this.states,this.builder,this.listeners),this._registerRoot()}return t.prototype._registerRoot=function(){(this._root=this.stateQueue.register({name:"",url:"^",views:null,params:{"#":{value:null,type:"hash",dynamic:!0}},abstract:!0})).navigable=null},t.prototype.dispose=function(){var t=this;this.stateQueue.dispose(),this.listeners=[],this.get().forEach((function(e){return t.get(e)&&t.deregister(e)}))},t.prototype.onStatesChanged=function(t){return this.listeners.push(t),function(){Z(this.listeners)(t)}.bind(this)},t.prototype.root=function(){return this._root},t.prototype.register=function(t){return this.stateQueue.register(t)},t.prototype._deregisterTree=function(t){var e=this,r=this.get().map((function(t){return t.$$state()})),n=function(t){var e=r.filter((function(e){return-1!==t.indexOf(e.parent)}));return 0===e.length?e:e.concat(n(e))},i=n([t]),o=[t].concat(i).reverse();return o.forEach((function(t){var r=e.router.urlService.rules;r.rules().filter(c("state",t)).forEach((function(t){return r.removeRule(t)})),delete e.states[t.name]})),o},t.prototype.deregister=function(t){var e=this.get(t);if(!e)throw new Error("Can't deregister state; not found: "+t);var r=this._deregisterTree(e.$$state());return this.listeners.forEach((function(t){return t("deregistered",r.map((function(t){return t.self})))})),r},t.prototype.get=function(t,e){var r=this;if(0===arguments.length)return Object.keys(this.states).map((function(t){return r.states[t].self}));var n=this.matcher.find(t,e);return n&&n.self||null},t.prototype.decorator=function(t,e){return this.builder.builder(t,e)},t}();(qe=t.TransitionHookPhase||(t.TransitionHookPhase={}))[qe.CREATE=0]="CREATE",qe[qe.BEFORE=1]="BEFORE",qe[qe.RUN=2]="RUN",qe[qe.SUCCESS=3]="SUCCESS",qe[qe.ERROR=4]="ERROR",(Ue=t.TransitionHookScope||(t.TransitionHookScope={}))[Ue.TRANSITION=0]="TRANSITION",Ue[Ue.STATE=1]="STATE";var Ge={current:W,transition:null,traceData:{},bind:null},ze=function(){function e(e,r,n,i){var o=this;this.transition=e,this.stateContext=r,this.registeredHook=n,this.options=i,this.isSuperseded=function(){return o.type.hookPhase===t.TransitionHookPhase.RUN&&!o.options.transition.isActive()},this.options=nt(i,Ge),this.type=n.eventType}return e.chain=function(t,e){return t.reduce((function(t,e){return t.then((function(){return e.invokeHook()}))}),e||D.$q.when())},e.invokeHooks=function(t,r){for(var n=0;n=e.invokeLimit&&e.deregister()}}},e.prototype.handleHookResult=function(t){var e=this,r=this.getNotCurrentRejection();return r||(H(t)?t.then((function(t){return e.handleHookResult(t)})):(ce.traceHookResult(t,this.transition,this.options),!1===t?qt.aborted("Hook aborted transition").toPromise():m(_e)(t)?qt.redirected(t).toPromise():void 0))},e.prototype.getNotCurrentRejection=function(){var t=this.transition.router;return t._disposed?qt.aborted("UIRouter instance #"+t.$id+" has been stopped (disposed)").toPromise():this.transition._aborted?qt.aborted().toPromise():this.isSuperseded()?qt.superseded(this.options.current()).toPromise():void 0},e.prototype.toString=function(){var t=this.options,e=this.registeredHook;return(f("traceData.hookType")(t)||"internal")+" context: "+(f("traceData.context.state.name")(t)||f("traceData.context")(t)||"unknown")+", "+Ut(200,Mt(e.callback))},e.HANDLE_RESULT=function(t){return function(e){return t.handleHookResult(e)}},e.LOG_REJECTED_RESULT=function(t){return function(e){H(e)&&e.catch((function(e){return t.logError(qt.normalize(e))}))}},e.LOG_ERROR=function(t){return function(e){return t.logError(e)}},e.REJECT_ERROR=function(t){return function(t){return It(t)}},e.THROW_ERROR=function(t){return function(t){throw t}},e}();function We(t,e,r){var n=k(e)?[e]:e;return!!(P(n)?n:function(t){for(var e=n,r=0;r20)throw new Error("Too many consecutive Transition redirects (20+)");var n={redirectedFrom:this,source:"redirect"};"url"===this.options().source&&!1!==t.options().location&&(n.location="replace");var i=B({},this.options(),t.options(),n);t=t.withOptions(i,!0);var o,a=this.router.transitionService.create(this._treeChanges.from,t),u=this._treeChanges.entering,s=a._treeChanges.entering;return Se.matching(s,u,Se.nonDynamicParams).filter(l((o=t.options().reloadState,function(t){return o&&t.state.includes[o.name]}))).forEach((function(t,e){t.resolvables=u[e].resolvables})),a},e.prototype._changedParams=function(){var t=this._treeChanges;if(!this._options.reload&&(!t.exiting.length&&!t.entering.length&&t.to.length===t.from.length&&!Ct(t.to,t.from).map((function(t){return t[0].state!==t[1].state})).reduce(dt,!1))){var e=t.to.map((function(t){return t.paramSchema})),r=[t.to,t.from].map((function(t){return t.map((function(t){return t.paramValues}))}));return Ct(e,r[0],r[1]).map((function(t){var e=t[0],r=t[1],n=t[2];return me.changed(e,r,n)})).reduce(mt,[])}},e.prototype.dynamic=function(){var t=this._changedParams();return!!t&&t.map((function(t){return t.dynamic})).reduce(dt,!1)},e.prototype.ignored=function(){return!!this._ignoredReason()},e.prototype._ignoredReason=function(){var t=this.router.globals.transition,e=this._options.reloadState,r=function(t,r){if(t.length!==r.length)return!1;var n=Se.matching(t,r);return t.length===n.filter((function(t){return!e||!t.state.includes[e.name]})).length},n=this.treeChanges(),i=t&&t.treeChanges();return i&&r(i.to,n.to)&&r(i.exiting,n.exiting)?"SameAsPending":0===n.exiting.length&&0===n.entering.length&&r(n.from,n.to)?"SameAsCurrent":void 0},e.prototype.run=function(){var e=this,r=ze.runAllHooks,n=function(t){return e._hookBuilder.buildHooksForPhase(t)},i=n(t.TransitionHookPhase.BEFORE);return ze.invokeHooks(i,(function(){var t=e.router.globals;return t.lastStartedTransitionId=e.$id,t.transition=e,t.transitionHistory.enqueue(e),ce.traceTransitionStart(e),D.$q.when(void 0)})).then((function(){var e=n(t.TransitionHookPhase.RUN);return ze.invokeHooks(e,(function(){return D.$q.when(void 0)}))})).then((function(){ce.traceSuccess(e.$to(),e),e.success=!0,e._deferred.resolve(e.to()),r(n(t.TransitionHookPhase.SUCCESS))}),(function(i){ce.traceError(i,e),e.success=!1,e._deferred.reject(i),e._error=i,r(n(t.TransitionHookPhase.ERROR))})),this.promise},e.prototype.valid=function(){return!this.error()||void 0!==this.success},e.prototype.abort=function(){b(this.success)&&(this._aborted=!0)},e.prototype.error=function(){var t=this.$to();if(t.self.abstract)return qt.invalid("Cannot transition to abstract state '"+t.name+"'");var e=t.parameters(),r=this.params(),n=e.filter((function(t){return!t.validates(r[t.id])}));if(n.length){var i=n.map((function(t){return"["+t.id+":"+Bt(r[t.id])+"]"})).join(", "),o="The following parameter values are not valid for state '"+t.name+"': "+i;return qt.invalid(o)}return!1===this.success?this._error:void 0},e.prototype.toString=function(){var t=this.from(),e=this.to(),r=function(t){return null!==t["#"]&&void 0!==t["#"]?t:ut(t,["#"])};return"Transition#"+this.$id+"( '"+(O(t)?t.name:t)+"'"+Bt(r(this._treeChanges.from.map(s("paramValues")).reduce(it,{})))+" -> "+(this.valid()?"":"(X) ")+"'"+(O(e)?e.name:e)+"'"+Bt(r(this.params()))+" )"},e.diToken=e,e}();function Xe(t,e){var r=["",""],n=t.replace(/[\\\[\]\^$*+?.()|{}]/g,"\\$&");if(!e)return n;switch(e.squash){case!1:r=["(",")"+(e.isOptional?"?":"")];break;case!0:n=n.replace(/\/$/,""),r=["(?:/(",")|/)?"];break;default:r=["("+e.squash+"|",")?"]}return n+r[0]+e.type.pattern.source+r[1]}var tr=Zt("/"),er={state:{params:{}},strict:!0,caseInsensitive:!0,decodeParams:!0},rr=function(){function e(t,r,n,i){var o=this;this._cache={path:[this]},this._children=[],this._params=[],this._segments=[],this._compiled=[],this.config=i=nt(i,er),this.pattern=t;for(var a,u,s,f=/([:*])([\w\[\]]+)|\{([\w\[\]]+)(?:\:\s*((?:[^{}\\]+|\\.|\{(?:[^{}\\]+|\\.)*\})+))?\}/g,l=/([:]?)([\w\[\].-]+)|\{([\w\[\].-]+)(?:\:\s*((?:[^{}\\]+|\\.|\{(?:[^{}\\]+|\\.)*\})+))?\}/g,h=[],p=0,v=function(r){if(!e.nameValidator.test(r))throw new Error("Invalid parameter name '"+r+"' in pattern '"+t+"'");if(ft(o._params,c("id",r)))throw new Error("Duplicate parameter name '"+r+"' in pattern '"+t+"'")},d=function(e,n){var i,a=e[2]||e[3],u=n?e[4]:e[4]||("*"===e[1]?"[\\s\\S]*":null);return{id:a,regexp:u,segment:t.substring(p,e.index),type:u?r.type(u)||(i=u,Q(r.type(n?"query":"path"),{pattern:new RegExp(i,o.config.caseInsensitive?"i":void 0)})):null}};(a=f.exec(t))&&!((u=d(a,!1)).segment.indexOf("?")>=0);)v(u.id),this._params.push(n.fromPath(u.id,u.type,i.state)),this._segments.push(u.segment),h.push([u.segment,Tt(this._params)]),p=f.lastIndex;var m=(s=t.substring(p)).indexOf("?");if(m>=0){var g=s.substring(m);if(s=s.substring(0,m),g.length>0)for(p=0;a=l.exec(g);)v((u=d(a,!0)).id),this._params.push(n.fromSearch(u.id,u.type,i.state)),p=f.lastIndex}this._segments.push(s),this._compiled=h.map((function(t){return Xe.apply(null,t)})).concat(Xe(s))}return e.encodeDashes=function(t){return encodeURIComponent(t).replace(/-/g,(function(t){return"%5C%"+t.charCodeAt(0).toString(16).toUpperCase()}))},e.pathSegmentsAndParams=function(e){return Ct(e._segments,e._params.filter((function(e){return e.location===t.DefType.PATH})).concat(void 0)).reduce(mt,[]).filter((function(t){return""!==t&&R(t)}))},e.queryParams=function(e){return e._params.filter((function(e){return e.location===t.DefType.SEARCH}))},e.compare=function(t,r){var n=function(t){return t._cache.weights=t._cache.weights||function(t){return t._cache.segments=t._cache.segments||t._cache.path.map(e.pathSegmentsAndParams).reduce(mt,[]).reduce(Xt,[]).map((function(t){return k(t)?tr(t):t})).reduce(mt,[])}(t).map((function(t){return"/"===t?1:k(t)?2:t instanceof me?3:void 0}))},i=n(t),o=n(r);!function(t,e,r){for(var n=Math.max(t.length,e.length);t.length Registering",t),this._viewConfigs.push(t)},t.prototype.sync=function(){var e=this,r=this._uiViews.map((function(t){return[t.fqn,t]})).reduce(Pt,{});function n(t){for(var e=t.viewDecl.$context,r=0;++r&&e.parent;)e=e.parent;return r}var i=o((function(t,e,r,n){return e*(t(r)-t(n))})),a=this._uiViews.sort(i((function(t){var e=function(t){return t&&t.parent?e(t.parent)+1:1};return 1e4*t.fqn.split(".").length+e(t.creationContext)}),1)).map((function(o){var a=e._viewConfigs.filter(t.matches(r,o));return a.length>1&&a.sort(i(n,-1)),{uiView:o,viewConfig:a[0]}})),u=a.map((function(t){return t.viewConfig})),s=this._viewConfigs.filter((function(t){return!K(u,t)})).map((function(t){return{uiView:void 0,viewConfig:t}}));a.forEach((function(t){-1!==e._uiViews.indexOf(t.uiView)&&t.uiView.configUpdated(t.viewConfig)}));var c=a.concat(s);this._listeners.forEach((function(t){return t(c)})),ce.traceViewSync(c)},t.prototype.registerUIView=function(t){ce.traceViewServiceUIViewEvent("-> Registering",t);var e=this._uiViews;return e.filter((function(e){return e.fqn===t.fqn&&e.$type===t.$type})).length&&ce.traceViewServiceUIViewEvent("!!!! duplicate uiView named:",t),e.push(t),this.sync(),function(){-1!==e.indexOf(t)?(ce.traceViewServiceUIViewEvent("<- Deregistering",t),Z(e)(t)):ce.traceViewServiceUIViewEvent("Tried removing non-registered uiView",t)}},t.prototype.available=function(){return this._uiViews.map(s("fqn"))},t.prototype.active=function(){return this._uiViews.filter(s("$config")).map(s("name"))},t.matches=function(t,e){return function(r){if(e.$type!==r.viewDecl.$type)return!1;var n=r.viewDecl,i=n.$uiViewName.split("."),o=e.fqn.split(".");if(!G(i,o.slice(0-i.length)))return!1;var a=1-i.length||void 0,u=o.slice(0,a).join("."),s=t[u].creationContext;return n.$uiViewContextAnchor===(s&&s.name)}},t}(),lr=function(){function t(){this.params=new ye,this.lastStartedTransitionId=-1,this.transitionHistory=new At([],1),this.successfulTransitions=new At([],1)}return t.prototype.dispose=function(){this.transitionHistory.clear(),this.successfulTransitions.clear(),this.transition=null},t}();function hr(t){if(!(P(t)||k(t)||m(_e)(t)||_e.isDef(t)))throw new Error("'handler' must be a string, function, TargetState, or have a state: 'newtarget' property");return P(t)?t:y(t)}sr=function(t,e){var r=function(t,e){return(e.priority||0)-(t.priority||0)}(t,e);return 0!==r||0!==(r=function(t,e){var r={STATE:4,URLMATCHER:4,REGEXP:3,RAW:2,OTHER:1};return(r[t.type]||0)-(r[e.type]||0)}(t,e))||0!==(r=function(t,e){return t.urlMatcher&&e.urlMatcher?rr.compare(t.urlMatcher,e.urlMatcher):0}(t,e))?r:function(t,e){var r={STATE:!0,URLMATCHER:!0};return r[t.type]&&r[e.type]?0:(t.$id||0)-(e.$id||0)}(t,e)};var pr=function(){function t(t){this.router=t,this._sortFn=sr,this._rules=[],this._id=0,this.urlRuleFactory=new ar(t)}return t.prototype.dispose=function(t){this._rules=[],delete this._otherwiseFn},t.prototype.initial=function(t){var e=hr(t);this.rule(this.urlRuleFactory.create((function(t,e){return 0===e.globals.transitionHistory.size()&&!!/^\/?$/.exec(t.path)}),e))},t.prototype.otherwise=function(t){var e=hr(t);this._otherwiseFn=this.urlRuleFactory.create(y(!0),e),this._sorted=!1},t.prototype.removeRule=function(t){Z(this._rules,t)},t.prototype.rule=function(t){var e=this;if(!ar.isUrlRule(t))throw new Error("invalid rule");return t.$id=this._id++,t.priority=t.priority||0,this._rules.push(t),this._sorted=!1,function(){return e.removeRule(t)}},t.prototype.rules=function(){return this.ensureSorted(),this._rules.concat(this._otherwiseFn?[this._otherwiseFn]:[])},t.prototype.sort=function(t){for(var e=this.stableSort(this._rules,this._sortFn=t||this._sortFn),r=0,n=0;nr.weight?u:r}return r},t}(),mr=0,gr=A("LocationServices",["url","path","search","hash","onChange"]),yr=A("LocationConfig",["port","protocol","host","baseHref","html5Mode","hashPrefix"]),wr=function(){function t(t,e){void 0===t&&(t=gr),void 0===e&&(e=yr),this.locationService=t,this.locationConfig=e,this.$id=mr++,this._disposed=!1,this._disposables=[],this.trace=ce,this.viewService=new fr(this),this.globals=new lr,this.transitionService=new Fr(this),this.urlMatcherFactory=new or(this),this.urlRouter=new cr(this),this.urlService=new dr(this),this.stateRegistry=new Be(this),this.stateService=new Lr(this),this._plugins={},this.viewService._pluginapi._rootViewContext(this.stateRegistry.root()),this.globals.$current=this.stateRegistry.root(),this.globals.current=this.globals.$current.self,this.disposable(this.globals),this.disposable(this.stateService),this.disposable(this.stateRegistry),this.disposable(this.transitionService),this.disposable(this.urlService),this.disposable(t),this.disposable(e)}return t.prototype.disposable=function(t){this._disposables.push(t)},t.prototype.dispose=function(t){var e=this;t&&P(t.dispose)?t.dispose(this):(this._disposed=!0,this._disposables.slice().forEach((function(t){try{"function"==typeof t.dispose&&t.dispose(e),Z(e._disposables,t)}catch(t){}})))},t.prototype.plugin=function(t,e){void 0===e&&(e={});var r=new t(this,e);if(!r.name)throw new Error("Required property `name` missing on plugin: "+r);return this._disposables.push(r),this._plugins[r.name]=r},t.prototype.getPlugin=function(t){return t?this._plugins[t]:pt(this._plugins)},t}();function _r(t){t.addResolvable(Re.fromData(wr,t.router),""),t.addResolvable(Re.fromData(Ze,t),""),t.addResolvable(Re.fromData("$transition$",t),""),t.addResolvable(Re.fromData("$stateParams",t.params()),""),t.entering().forEach((function(e){t.addResolvable(Re.fromData("$state$",e),e)}))}var Sr=K(["$transition$",Ze]),$r=function(t){var e=pt(t.treeChanges()).reduce(mt,[]).reduce(wt,[]),r=function(t){return Sr(t.token)?Re.fromData(t.token,null):t};e.forEach((function(t){t.resolvables=t.resolvables.map(r)}))},br=function(t){var e=t.to().redirectTo;if(e){var r=t.router.stateService;return P(e)?D.$q.when(e(t)).then(n):n(e)}function n(e){if(e)return e instanceof _e?e:k(e)?r.target(e,t.params(),t.options()):e.state||e.params?r.target(e.state||t.to(),e.params||t.params(),t.options()):void 0}};function Rr(t){return function(e,r){return(0,r.$$state()[t])(e,r)}}var Er=Rr("onExit"),Cr=Rr("onRetain"),Pr=Rr("onEnter"),Tr=function(t){return new Te(t.treeChanges().to).resolvePath("EAGER",t).then(W)},kr=function(t,e){return new Te(t.treeChanges().to).subContext(e.$$state()).resolvePath("LAZY",t).then(W)},Or=function(t){return new Te(t.treeChanges().to).resolvePath("LAZY",t).then(W)},xr=function(t){var e=D.$q,r=t.views("entering");if(r.length)return e.all(r.map((function(t){return e.when(t.load())}))).then(W)},jr=function(t){var e=t.views("entering"),r=t.views("exiting");if(e.length||r.length){var n=t.router.viewService;r.forEach((function(t){return n.deactivateViewConfig(t)})),e.forEach((function(t){return n.activateViewConfig(t)})),n.sync()}},Vr=function(t){var e=t.router.globals,r=function(){e.transition===t&&(e.transition=null)};t.onSuccess({},(function(){e.successfulTransitions.enqueue(t),e.$current=t.$to(),e.current=e.$current.self,kt(t.params(),e.params)}),{priority:1e4}),t.promise.then(r,r)},Ir=function(t){var e=t.options(),r=t.router.stateService,n=t.router.urlRouter;if("url"!==e.source&&e.location&&r.$current.navigable){var i={replace:"replace"===e.location};n.push(r.$current.navigable.url,r.params,i)}n.update(!0)},Hr=function(t){var e=t.router;var r=t.entering().filter((function(t){return!!t.$$state().lazyLoad})).map((function(e){return Ar(t,e)}));return D.$q.all(r).then((function(){if("url"!==t.originalTransition().options().source){var r=t.targetState();return e.stateService.target(r.identifier(),r.params(),r.options())}var n=e.urlService,i=n.match(n.parts()),o=i&&i.rule;if(o&&"STATE"===o.type){var a=o.state,u=i.match;return e.stateService.target(a,u,t.options())}e.urlService.sync()}))};function Ar(t,e){var r=e.$$state().lazyLoad,n=r._promise;if(!n){n=r._promise=D.$q.when(r(t,e)).then((function(e){e&&Array.isArray(e.states)&&e.states.forEach((function(e){return t.router.stateRegistry.register(e)}));return e})).then((function(t){return delete e.lazyLoad,delete e.$$state().lazyLoad,delete r._promise,t}),(function(t){return delete r._promise,D.$q.reject(t)}))}return n}var Dr=function(t,e,r,n,i,o,a,u){void 0===i&&(i=!1),void 0===o&&(o=ze.HANDLE_RESULT),void 0===a&&(a=ze.REJECT_ERROR),void 0===u&&(u=!1),this.name=t,this.hookPhase=e,this.hookOrder=r,this.criteriaMatchPath=n,this.reverseSort=i,this.getResultHandler=o,this.getErrorHandler=a,this.synchronous=u};function qr(t){var e=t._ignoredReason();if(e){ce.traceTransitionIgnored(t);var r=t.router.globals.transition;return"SameAsCurrent"===e&&r&&r.abort(),qt.ignored().toPromise()}}function Ur(t){if(!t.valid())throw new Error(t.error().toString())}var Nr={location:!0,relative:null,inherit:!1,notify:!0,reload:!1,supercede:!0,custom:{},current:function(){return null},source:"unknown"},Fr=function(){function e(t){this._transitionCount=0,this._eventTypes=[],this._registeredHooks={},this._criteriaPaths={},this._router=t,this.$view=t.viewService,this._deregisterHookFns={},this._pluginapi=J(y(this),{},y(this),["_definePathType","_defineEvent","_getPathTypes","_getEvents","getHooks"]),this._defineCorePaths(),this._defineCoreEvents(),this._registerCoreTransitionHooks(),t.globals.successfulTransitions.onEvict($r)}return e.prototype.onCreate=function(t,e,r){},e.prototype.onBefore=function(t,e,r){},e.prototype.onStart=function(t,e,r){},e.prototype.onExit=function(t,e,r){},e.prototype.onRetain=function(t,e,r){},e.prototype.onEnter=function(t,e,r){},e.prototype.onFinish=function(t,e,r){},e.prototype.onSuccess=function(t,e,r){},e.prototype.onError=function(t,e,r){},e.prototype.dispose=function(t){pt(this._registeredHooks).forEach((function(t){return t.forEach((function(e){e._deregistered=!0,Z(t,e)}))}))},e.prototype.create=function(t,e){return new Ze(t,e,this._router)},e.prototype._defineCoreEvents=function(){var e=t.TransitionHookPhase,r=ze,n=this._criteriaPaths;this._defineEvent("onCreate",e.CREATE,0,n.to,!1,r.LOG_REJECTED_RESULT,r.THROW_ERROR,!0),this._defineEvent("onBefore",e.BEFORE,0,n.to),this._defineEvent("onStart",e.RUN,0,n.to),this._defineEvent("onExit",e.RUN,100,n.exiting,!0),this._defineEvent("onRetain",e.RUN,200,n.retained),this._defineEvent("onEnter",e.RUN,300,n.entering),this._defineEvent("onFinish",e.RUN,400,n.to),this._defineEvent("onSuccess",e.SUCCESS,0,n.to,!1,r.LOG_REJECTED_RESULT,r.LOG_ERROR,!0),this._defineEvent("onError",e.ERROR,0,n.to,!1,r.LOG_REJECTED_RESULT,r.LOG_ERROR,!0)},e.prototype._defineCorePaths=function(){var e=t.TransitionHookScope.STATE,r=t.TransitionHookScope.TRANSITION;this._definePathType("to",r),this._definePathType("from",r),this._definePathType("exiting",e),this._definePathType("retained",e),this._definePathType("entering",e)},e.prototype._defineEvent=function(t,e,r,n,i,o,a,u){void 0===i&&(i=!1),void 0===o&&(o=ze.HANDLE_RESULT),void 0===a&&(a=ze.REJECT_ERROR),void 0===u&&(u=!1);var s=new Dr(t,e,r,n,i,o,a,u);this._eventTypes.push(s),Qe(this,this,s)},e.prototype._getEvents=function(t){return(R(t)?this._eventTypes.filter((function(e){return e.hookPhase===t})):this._eventTypes.slice()).sort((function(t,e){var r=t.hookPhase-e.hookPhase;return 0===r?t.hookOrder-e.hookOrder:r}))},e.prototype._definePathType=function(t,e){this._criteriaPaths[t]={name:t,scope:e}},e.prototype._getPathTypes=function(){return this._criteriaPaths},e.prototype.getHooks=function(t){return this._registeredHooks[t]},e.prototype._registerCoreTransitionHooks=function(){var t=this._deregisterHookFns;t.addCoreResolves=this.onCreate({},_r),t.ignored=function(t){return t.onBefore({},qr,{priority:-9999})}(this),t.invalid=function(t){return t.onBefore({},Ur,{priority:-1e4})}(this),t.redirectTo=function(t){return t.onStart({to:function(t){return!!t.redirectTo}},br)}(this),t.onExit=function(t){return t.onExit({exiting:function(t){return!!t.onExit}},Er)}(this),t.onRetain=function(t){return t.onRetain({retained:function(t){return!!t.onRetain}},Cr)}(this),t.onEnter=function(t){return t.onEnter({entering:function(t){return!!t.onEnter}},Pr)}(this),t.eagerResolve=function(t){return t.onStart({},Tr,{priority:1e3})}(this),t.lazyResolve=function(t){return t.onEnter({entering:y(!0)},kr,{priority:1e3})}(this),t.resolveAll=function(t){return t.onFinish({},Or,{priority:1e3})}(this),t.loadViews=function(t){return t.onFinish({},xr)}(this),t.activateViews=function(t){return t.onSuccess({},jr)}(this),t.updateGlobals=function(t){return t.onCreate({},Vr)}(this),t.updateUrl=function(t){return t.onSuccess({},Ir,{priority:9999})}(this),t.lazyLoad=function(t){return t.onBefore({entering:function(t){return!!t.lazyLoad}},Hr)}(this)},e}(),Lr=function(){function e(t){this.router=t,this.invalidCallbacks=[],this._defaultErrorHandler=function(t){t instanceof Error&&t.stack?(console.error(t),console.error(t.stack)):t instanceof qt?(console.error(t.toString()),t.detail&&t.detail.stack&&console.error(t.detail.stack)):console.error(t)};var r=Object.keys(e.prototype).filter(l(K(["current","$current","params","transition"])));J(y(e.prototype),this,y(this),r)}return Object.defineProperty(e.prototype,"transition",{get:function(){return this.router.globals.transition},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"params",{get:function(){return this.router.globals.params},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"current",{get:function(){return this.router.globals.current},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"$current",{get:function(){return this.router.globals.$current},enumerable:!1,configurable:!0}),e.prototype.dispose=function(){this.defaultErrorHandler(W),this.invalidCallbacks=[]},e.prototype._handleInvalidTargetState=function(t,e){var r=this,n=Se.makeTargetState(this.router.stateRegistry,t),i=this.router.globals,o=function(){return i.transitionHistory.peekTail()},a=o(),u=new At(this.invalidCallbacks.slice()),s=new Te(t).injector(),c=function(t){if(t instanceof _e){var e=t;return(e=r.target(e.identifier(),e.params(),e.options())).valid()?o()!==a?qt.superseded().toPromise():r.transitionTo(e.identifier(),e.params(),e.options()):qt.invalid(e.error()).toPromise()}};return function t(){var r=u.dequeue();return void 0===r?qt.invalid(e.error()).toPromise():D.$q.when(r(e,n,s)).then(c).then((function(e){return e||t()}))}()},e.prototype.onInvalid=function(t){return this.invalidCallbacks.push(t),function(){Z(this.invalidCallbacks)(t)}.bind(this)},e.prototype.reload=function(t){return this.transitionTo(this.current,this.params,{reload:!R(t)||t,inherit:!1,notify:!1})},e.prototype.go=function(t,e,r){var n=nt(r,{relative:this.$current,inherit:!0},Nr);return this.transitionTo(t,e,n)},e.prototype.target=function(t,e,r){if(void 0===r&&(r={}),O(r.reload)&&!r.reload.name)throw new Error("Invalid reload state object");var n=this.router.stateRegistry;if(r.reloadState=!0===r.reload?n.root():n.matcher.find(r.reload,r.relative),r.reload&&!r.reloadState)throw new Error("No such reload state '"+(k(r.reload)?r.reload:r.reload.name)+"'");return new _e(this.router.stateRegistry,t,e,r)},e.prototype.getCurrentPath=function(){var t=this,e=this.router.globals.successfulTransitions.peekTail();return e?e.treeChanges().to:[new we(t.router.stateRegistry.root())]},e.prototype.transitionTo=function(e,r,n){var i=this;void 0===r&&(r={}),void 0===n&&(n={});var o=this.router,a=o.globals;n=nt(n,Nr);var u=function(){return a.transition};n=B(n,{current:u});var s=this.target(e,r,n),c=this.getCurrentPath();if(!s.exists())return this._handleInvalidTargetState(c,s);if(!s.valid())return It(s.error());if(!1===n.supercede&&u())return qt.ignored("Another transition is in progress and supercede has been set to false in TransitionOptions for the transition. So the transition was ignored in favour of the existing one in progress.").toPromise();var f=function(e){return function(r){if(r instanceof qt){var n=o.globals.lastStartedTransitionId<=e.$id;if(r.type===t.RejectType.IGNORED)return n&&o.urlRouter.update(),D.$q.when(a.current);var u=r.detail;if(r.type===t.RejectType.SUPERSEDED&&r.redirected&&u instanceof _e){var s=e.redirect(u);return s.run().catch(f(s))}if(r.type===t.RejectType.ABORTED)return n&&o.urlRouter.update(),D.$q.reject(r)}return i.defaultErrorHandler()(r),D.$q.reject(r)}},l=this.router.transitionService.create(c,s),h=l.run().catch(f(l));return Vt(h),B(h,{transition:l})},e.prototype.is=function(t,e,r){r=nt(r,{relative:this.$current});var n=this.router.stateRegistry.matcher.find(t,r.relative);if(R(n)){if(this.$current!==n)return!1;if(!e)return!0;var i=n.parameters({inherit:!0,matchingKeys:e});return me.equals(i,me.values(i,e),this.params)}},e.prototype.includes=function(t,e,r){r=nt(r,{relative:this.$current});var n=k(t)&&Ht.fromString(t);if(n){if(!n.matches(this.$current.name))return!1;t=this.$current.name}var i=this.router.stateRegistry.matcher.find(t,r.relative),o=this.$current.includes;if(R(i)){if(!R(o[i.name]))return!1;if(!e)return!0;var a=i.parameters({inherit:!0,matchingKeys:e});return me.equals(a,me.values(a,e),this.params)}},e.prototype.href=function(t,e,r){r=nt(r,{lossy:!0,inherit:!0,absolute:!1,relative:this.$current}),e=e||{};var n=this.router.stateRegistry.matcher.find(t,r.relative);if(!R(n))return null;r.inherit&&(e=this.params.$inherit(e,this.$current,n));var i=n&&r.lossy?n.navigable:n;return i&&void 0!==i.url&&null!==i.url?this.router.urlRouter.href(i.url,e,{absolute:r.absolute}):null},e.prototype.defaultErrorHandler=function(t){return this._defaultErrorHandler=t||this._defaultErrorHandler},e.prototype.get=function(t,e){var r=this.router.stateRegistry;return 0===arguments.length?r.get():r.get(t,e||this.$current)},e.prototype.lazyLoad=function(t,e){var r=this.get(t);if(!r||!r.lazyLoad)throw new Error("Can not lazy load "+t);var n=this.getCurrentPath(),i=Se.makeTargetState(this.router.stateRegistry,n);return Ar(e=e||this.router.transitionService.create(n,i),r)},e}(),Mr={when:function(t){return new Promise((function(e,r){return e(t)}))},reject:function(t){return new Promise((function(e,r){r(t)}))},defer:function(){var t={};return t.promise=new Promise((function(e,r){t.resolve=e,t.reject=r})),t},all:function(t){if(x(t))return Promise.all(t);if(O(t)){var e=Object.keys(t).map((function(e){return t[e].then((function(t){return{key:e,val:t}}))}));return Mr.all(e).then((function(t){return t.reduce((function(t,e){return t[e.key]=e.val,t}),{})}))}}},Br={},Gr=/((\/\/.*$)|(\/\*[\s\S]*?\*\/))/gm,zr=/([^\s,]+)/g,Wr={get:function(t){return Br[t]},has:function(t){return null!=Wr.get(t)},invoke:function(t,e,r){var n=B({},Br,r||{}),i=Wr.annotate(t),o=$t((function(t){return n.hasOwnProperty(t)}),(function(t){return"DI can't find injectable: '"+t+"'"})),a=i.filter(o).map((function(t){return n[t]}));return P(t)?t.apply(e,a):t.slice(-1)[0].apply(e,a)},annotate:function(t){if(!I(t))throw new Error("Not an injectable function: "+t);if(t&&t.$inject)return t.$inject;if(x(t))return t.slice(0,-1);var e=t.toString().replace(Gr,"");return e.slice(e.indexOf("(")+1,e.indexOf(")")).match(zr)||[]}},Jr=function(t,e){var r=e[0],n=e[1];return t.hasOwnProperty(r)?x(t[r])?t[r].push(n):t[r]=[t[r],n]:t[r]=n,t},Qr=function(t){return t.split("&").filter(z).map(Kt).reduce(Jr,{})};function Kr(t){var e=function(t){return t||""},r=Jt(t).map(e),n=r[0],i=r[1],o=Qt(n).map(e);return{path:o[0],search:o[1],hash:i,url:t}}var Yr=function(t){var e=t.path(),r=t.search(),n=t.hash(),i=Object.keys(r).map((function(t){var e=r[t];return(x(e)?e:[e]).map((function(e){return t+"="+e}))})).reduce(mt,[]).join("&");return e+(i?"?"+i:"")+(n?"#"+n:"")};function Zr(t,e,r,n){return function(i){var o=i.locationService=new r(i),a=i.locationConfig=new n(i,e);return{name:t,service:o,configuration:a,dispose:function(t){t.dispose(o),t.dispose(a)}}}}var Xr,tn=function(){function t(t,e){var r=this;this.fireAfterUpdate=e,this._listeners=[],this._listener=function(t){return r._listeners.forEach((function(e){return e(t)}))},this.hash=function(){return Kr(r._get()).hash},this.path=function(){return Kr(r._get()).path},this.search=function(){return Qr(Kr(r._get()).search)},this._location=U.location,this._history=U.history}return t.prototype.url=function(t,e){return void 0===e&&(e=!0),R(t)&&t!==this._get()&&(this._set(null,null,t,e),this.fireAfterUpdate&&this._listeners.forEach((function(e){return e({url:t})}))),Yr(this)},t.prototype.onChange=function(t){var e=this;return this._listeners.push(t),function(){return Z(e._listeners,t)}},t.prototype.dispose=function(t){rt(this._listeners)},t}(),en=(Xr=function(t,e){return(Xr=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r])})(t,e)},function(t,e){function r(){this.constructor=t}Xr(t,e),t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)}),rn=function(t){function e(e){var r=t.call(this,e,!1)||this;return U.addEventListener("hashchange",r._listener,!1),r}return en(e,t),e.prototype._get=function(){return Yt(this._location.hash)},e.prototype._set=function(t,e,r,n){this._location.hash=r},e.prototype.dispose=function(e){t.prototype.dispose.call(this,e),U.removeEventListener("hashchange",this._listener)},e}(tn),nn=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),on=function(t){function e(e){return t.call(this,e,!0)||this}return nn(e,t),e.prototype._get=function(){return this._url},e.prototype._set=function(t,e,r,n){this._url=r},e}(tn),an=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),un=function(t){function e(e){var r=t.call(this,e,!0)||this;return r._config=e.urlService.config,U.addEventListener("popstate",r._listener,!1),r}return an(e,t),e.prototype._getBasePrefix=function(){return Wt(this._config.baseHref())},e.prototype._get=function(){var t=this._location,e=t.pathname,r=t.hash,n=t.search;n=Qt(n)[1],r=Jt(r)[1];var i=this._getBasePrefix(),o=e===this._config.baseHref(),a=e.substr(0,i.length)===i;return(e=o?"/":a?e.substring(i.length):e)+(n?"?"+n:"")+(r?"#"+r:"")},e.prototype._set=function(t,e,r,n){var i=this._getBasePrefix(),o=r&&"/"!==r[0]?"/":"",a=""===r||"/"===r?this._config.baseHref():i+o+r;n?this._history.replaceState(t,e,a):this._history.pushState(t,e,a)},e.prototype.dispose=function(e){t.prototype.dispose.call(this,e),U.removeEventListener("popstate",this._listener)},e}(tn),sn=function(){var t=this;this.dispose=W,this._baseHref="",this._port=80,this._protocol="http",this._host="localhost",this._hashPrefix="",this.port=function(){return t._port},this.protocol=function(){return t._protocol},this.host=function(){return t._host},this.baseHref=function(){return t._baseHref},this.html5Mode=function(){return!1},this.hashPrefix=function(e){return R(e)?t._hashPrefix=e:t._hashPrefix}},cn=function(){function t(t,e){void 0===e&&(e=!1),this._isHtml5=e,this._baseHref=void 0,this._hashPrefix=""}return t.prototype.port=function(){return location.port?Number(location.port):"https"===this.protocol()?443:80},t.prototype.protocol=function(){return location.protocol.replace(/:/g,"")},t.prototype.host=function(){return location.hostname},t.prototype.html5Mode=function(){return this._isHtml5},t.prototype.hashPrefix=function(t){return R(t)?this._hashPrefix=t:this._hashPrefix},t.prototype.baseHref=function(t){return R(t)&&(this._baseHref=t),b(this._baseHref)&&(this._baseHref=this.getBaseHref()),this._baseHref},t.prototype.getBaseHref=function(){var t=document.getElementsByTagName("base")[0];return t&&t.href?t.href.replace(/^([^/:]*:)?\/\/[^/]*/,""):this._isHtml5?"/":location.pathname||"/"},t.prototype.dispose=function(){},t}();function fn(t){return D.$injector=Wr,D.$q=Mr,{name:"vanilla.services",$q:Mr,$injector:Wr,dispose:function(){return null}}}var ln=Zr("vanilla.hashBangLocation",!1,rn,cn),hn=Zr("vanilla.pushStateLocation",!0,un,cn),pn=Zr("vanilla.memoryLocation",!1,on,sn),vn=function(){function t(){}return t.prototype.dispose=function(t){},t}(),dn=Object.freeze({__proto__:null,root:U,fromJson:F,toJson:L,forEach:M,extend:B,equals:G,identity:z,noop:W,createProxyFunctions:J,inherit:Q,inArray:K,_inArray:Y,removeFrom:Z,_removeFrom:X,pushTo:tt,_pushTo:et,deregAll:rt,defaults:nt,mergeR:it,ancestors:ot,pick:at,omit:ut,pluck:st,filter:ct,find:ft,mapObj:lt,map:ht,values:pt,allTrueR:vt,anyTrueR:dt,unnestR:mt,flattenR:gt,pushR:yt,uniqR:wt,unnest:_t,flatten:St,assertPredicate:$t,assertMap:bt,assertFn:Rt,pairs:Et,arrayTuples:Ct,applyPairs:Pt,tail:Tt,copy:kt,_extend:Ot,silenceUncaughtInPromise:Vt,silentRejection:It,makeStub:A,services:D,Glob:Ht,curry:o,compose:a,pipe:u,prop:s,propEq:c,parse:f,not:l,and:h,or:p,all:v,any:d,is:m,eq:g,val:y,invoke:w,pattern:_,isUndefined:b,isDefined:R,isNull:E,isNullOrUndefined:C,isFunction:P,isNumber:T,isString:k,isObject:O,isArray:x,isDate:j,isRegExp:V,isInjectable:I,isPromise:H,Queue:At,maxLength:Ut,padString:Nt,kebobString:Ft,functionToString:Lt,fnToString:Mt,stringify:Bt,beforeAfterSubstr:Gt,hostRegex:zt,stripLastPathElement:Wt,splitHash:Jt,splitQuery:Qt,splitEqual:Kt,trimHashVal:Yt,splitOnDelim:Zt,joinNeighborsR:Xt,get Category(){return t.Category},Trace:se,trace:ce,get DefType(){return t.DefType},Param:me,ParamTypes:ge,StateParams:ye,ParamType:fe,PathNode:we,PathUtils:Se,resolvePolicies:$e,defaultResolvePolicy:be,Resolvable:Re,NATIVE_INJECTOR_TOKEN:"Native Injector",ResolveContext:Te,resolvablesBuilder:De,StateBuilder:Ne,StateObject:Fe,StateMatcher:Le,StateQueueManager:Me,StateRegistry:Be,StateService:Lr,TargetState:_e,get TransitionHookPhase(){return t.TransitionHookPhase},get TransitionHookScope(){return t.TransitionHookScope},HookBuilder:Ke,matchState:We,RegisteredHook:Je,makeEvent:Qe,get RejectType(){return t.RejectType},Rejection:qt,Transition:Ze,TransitionHook:ze,TransitionEventType:Dr,defaultTransOpts:Nr,TransitionService:Fr,UrlRules:pr,UrlConfig:vr,UrlMatcher:rr,ParamFactory:ir,UrlMatcherFactory:or,UrlRouter:cr,UrlRuleFactory:ar,BaseUrlRule:ur,UrlService:dr,ViewService:fr,UIRouterGlobals:lr,UIRouter:wr,$q:Mr,$injector:Wr,BaseLocationServices:tn,HashLocationService:rn,MemoryLocationService:on,PushStateLocationService:un,MemoryLocationConfig:sn,BrowserLocationConfig:cn,keyValsToObjectR:Jr,getParams:Qr,parseUrl:Kr,buildUrl:Yr,locationPluginFactory:Zr,servicesPlugin:fn,hashLocationPlugin:ln,pushStateLocationPlugin:hn,memoryLocationPlugin:pn,UIRouterPluginBase:vn});function mn(){var t=null;return function(e,r){return t=t||D.$injector.get("$templateFactory"),[new _n(e,r,t)]}}var gn=function(t,e){return t.reduce((function(t,r){return t||R(e[r])}),!1)};function yn(t){if(!t.parent)return{};var e=["component","bindings","componentProvider"],r=["templateProvider","templateUrl","template","notify","async"].concat(["controller","controllerProvider","controllerAs","resolveAs"]),n=e.concat(r);if(R(t.views)&&gn(n,t))throw new Error("State '"+t.name+"' has a 'views' object. It cannot also have \"view properties\" at the state level. Move the following properties into a view (in the 'views' object): "+n.filter((function(e){return R(t[e])})).join(", "));var i={},o=t.views||{$default:at(t,n)};return M(o,(function(n,o){if(o=o||"$default",k(n)&&(n={component:n}),n=B({},n),gn(e,n)&&gn(r,n))throw new Error("Cannot combine: "+e.join("|")+" with: "+r.join("|")+" in stateview: '"+o+"@"+t.name+"'");n.resolveAs=n.resolveAs||"$resolve",n.$type="ng1",n.$context=t,n.$name=o;var a=fr.normalizeUIViewTarget(n.$context,n.$name);n.$uiViewName=a.uiViewName,n.$uiViewContextAnchor=a.uiViewContextAnchor,i[o]=n})),i}var wn=0,_n=function(){function t(t,e,r){var n=this;this.path=t,this.viewDecl=e,this.factory=r,this.$id=wn++,this.loaded=!1,this.getTemplate=function(t,e){return n.component?n.factory.makeComponentTemplate(t,e,n.component,n.viewDecl.bindings):n.template}}return t.prototype.load=function(){var t=this,e=D.$q,r=new Te(this.path),n=this.path.reduce((function(t,e){return B(t,e.paramValues)}),{}),i={template:e.when(this.factory.fromConfig(this.viewDecl,n,r)),controller:e.when(this.getController(r))};return e.all(i).then((function(e){return ce.traceViewServiceEvent("Loaded",t),t.controller=e.controller,B(t,e.template),t}))},t.prototype.getController=function(t){var e=this.viewDecl.controllerProvider;if(!I(e))return this.viewDecl.controller;var r=D.$injector.annotate(e),n=x(e)?Tt(e):e;return new Re("",n,r).get(t)},t}(),Sn=function(){function t(){var t=this;this._useHttp=n.version.minor<3,this.$get=["$http","$templateCache","$injector",function(e,r,n){return t.$templateRequest=n.has&&n.has("$templateRequest")&&n.get("$templateRequest"),t.$http=e,t.$templateCache=r,t}]}return t.prototype.useHttpService=function(t){this._useHttp=t},t.prototype.fromConfig=function(t,e,r){var n=function(t){return D.$q.when(t).then((function(t){return{template:t}}))},i=function(t){return D.$q.when(t).then((function(t){return{component:t}}))};return R(t.template)?n(this.fromString(t.template,e)):R(t.templateUrl)?n(this.fromUrl(t.templateUrl,e)):R(t.templateProvider)?n(this.fromProvider(t.templateProvider,e,r)):R(t.component)?i(t.component):R(t.componentProvider)?i(this.fromComponentProvider(t.componentProvider,e,r)):n("")},t.prototype.fromString=function(t,e){return P(t)?t(e):t},t.prototype.fromUrl=function(t,e){return P(t)&&(t=t(e)),null==t?null:this._useHttp?this.$http.get(t,{cache:this.$templateCache,headers:{Accept:"text/html"}}).then((function(t){return t.data})):this.$templateRequest(t)},t.prototype.fromProvider=function(t,e,r){var n=D.$injector.annotate(t),i=x(t)?Tt(t):t;return new Re("",i,n).get(r)},t.prototype.fromComponentProvider=function(t,e,r){var n=D.$injector.annotate(t),i=x(t)?Tt(t):t;return new Re("",i,n).get(r)},t.prototype.makeComponentTemplate=function(t,e,r,i){i=i||{};var o=n.version.minor>=3?"::":"",a=function(t){var e=Ft(t);return/^(x|data)-/.exec(e)?"x-"+e:e},u=function(t){var e=D.$injector.get(t+"Directive");if(!e||!e.length)throw new Error("Unable to find component named '"+t+"'");return e.map($n).reduce(mt,[])}(r).map((function(r){var n=r.name,u=r.type,s=a(n);if(t.attr(s)&&!i[n])return s+"='"+t.attr(s)+"'";var c=i[n]||n;if("@"===u)return s+"='{{"+o+"$resolve."+c+"}}'";if("&"===u){var f=e.getResolvable(c),l=f&&f.data,h=l&&D.$injector.annotate(l)||[];return s+"='$resolve."+c+(x(l)?"["+(l.length-1)+"]":"")+"("+h.join(",")+")'"}return s+"='"+o+"$resolve."+c+"'"})).join(" "),s=a(r);return"<"+s+" "+u+">"},t}();var $n=function(t){return O(t.bindToController)?bn(t.bindToController):bn(t.scope)},bn=function(t){return Object.keys(t||{}).map((function(e){return[e,/^([=<@&])[?]?(.*)/.exec(t[e])]})).filter((function(t){return R(t)&&x(t[1])})).map((function(t){return{name:t[1][2]||t[0],type:t[1][1]}}))},Rn=function(){function t(e,r){this.stateRegistry=e,this.stateService=r,J(y(t.prototype),this,y(this))}return t.prototype.decorator=function(t,e){return this.stateRegistry.decorator(t,e)||this},t.prototype.state=function(t,e){return O(t)?e=t:e.name=t,this.stateRegistry.register(e),this},t.prototype.onInvalid=function(t){return this.stateService.onInvalid(t)},t}(),En=function(t){return function(e){var r=e[t],n="onExit"===t?"from":"to";return r?function(t,e){var i=new Te(t.treeChanges(n)).subContext(e.$$state()),o=B(Ln(i),{$state$:e,$transition$:t});return D.$injector.invoke(r,this,o)}:void 0}},Cn=function(){function t(t){this._urlListeners=[],this.$locationProvider=t;var e=y(t);J(e,this,e,["hashPrefix"])}return t.monkeyPatchPathParameterType=function(t){var e=t.urlMatcherFactory.type("path");e.encode=function(t){return null!=t?t.toString().replace(/(~|\/)/g,(function(t){return{"~":"~~","/":"~2F"}[t]})):t},e.decode=function(t){return null!=t?t.toString().replace(/(~~|~2F)/g,(function(t){return{"~~":"~","~2F":"/"}[t]})):t}},t.prototype.dispose=function(){},t.prototype.onChange=function(t){var e=this;return this._urlListeners.push(t),function(){return Z(e._urlListeners)(t)}},t.prototype.html5Mode=function(){var t=this.$locationProvider.html5Mode();return(t=O(t)?t.enabled:t)&&this.$sniffer.history},t.prototype.baseHref=function(){return this._baseHref||(this._baseHref=this.$browser.baseHref()||this.$window.location.pathname)},t.prototype.url=function(t,e,r){return void 0===e&&(e=!1),R(t)&&this.$location.url(t),e&&this.$location.replace(),r&&this.$location.state(r),this.$location.url()},t.prototype._runtimeServices=function(t,e,r,n,i){var o=this;this.$location=e,this.$sniffer=r,this.$browser=n,this.$window=i,t.$on("$locationChangeSuccess",(function(t){return o._urlListeners.forEach((function(e){return e(t)}))}));var a=y(e);J(a,this,a,["replace","path","search","hash"]),J(a,this,a,["port","protocol","host"])},t}(),Pn=function(){function t(t){this.router=t}return t.injectableHandler=function(t,e){return function(r){return D.$injector.invoke(e,null,{$match:r,$stateParams:t.globals.params})}},t.prototype.$get=function(){var t=this.router.urlService;return this.router.urlRouter.update(!0),t.interceptDeferred||t.listen(),this.router.urlRouter},t.prototype.rule=function(t){var e=this;if(!P(t))throw new Error("'rule' must be a function");var r=new ur((function(){return t(D.$injector,e.router.locationService)}),z);return this.router.urlService.rules.rule(r),this},t.prototype.otherwise=function(t){var e=this,r=this.router.urlService.rules;if(k(t))r.otherwise(t);else{if(!P(t))throw new Error("'rule' must be a string or function");r.otherwise((function(){return t(D.$injector,e.router.locationService)}))}return this},t.prototype.when=function(e,r){return(x(r)||P(r))&&(r=t.injectableHandler(this.router,r)),this.router.urlService.rules.when(e,r),this},t.prototype.deferIntercept=function(t){this.router.urlService.deferIntercept(t)},t}();n.module("ui.router.angular1",[]);var Tn=n.module("ui.router.init",["ng"]),kn=n.module("ui.router.util",["ui.router.init"]),On=n.module("ui.router.router",["ui.router.util"]),xn=n.module("ui.router.state",["ui.router.router","ui.router.util","ui.router.angular1"]),jn=n.module("ui.router",["ui.router.init","ui.router.state","ui.router.angular1"]),Vn=(n.module("ui.router.compat",["ui.router"]),null);function In(t){(Vn=this.router=new wr).stateProvider=new Rn(Vn.stateRegistry,Vn.stateService),Vn.stateRegistry.decorator("views",yn),Vn.stateRegistry.decorator("onExit",En("onExit")),Vn.stateRegistry.decorator("onRetain",En("onRetain")),Vn.stateRegistry.decorator("onEnter",En("onEnter")),Vn.viewService._pluginapi._viewConfigFactory("ng1",mn()),Vn.urlService.config._decodeParams=!1;var e=Vn.locationService=Vn.locationConfig=new Cn(t);function r(t,r,n,i,o,a,u){return e._runtimeServices(o,t,i,r,n),delete Vn.router,delete Vn.$get,Vn}return Cn.monkeyPatchPathParameterType(Vn),Vn.router=Vn,Vn.$get=r,r.$inject=["$location","$browser","$window","$sniffer","$rootScope","$http","$templateCache"],Vn}In.$inject=["$locationProvider"];var Hn=function(t){return["$uiRouterProvider",function(e){var r=e.router[t];return r.$get=function(){return r},r}]};function An(t,e,r){if(D.$injector=t,D.$q=e,!Object.prototype.hasOwnProperty.call(t,"strictDi"))try{t.invoke((function(t){}))}catch(e){t.strictDi=!!/strict mode/.exec(e&&e.toString())}r.stateRegistry.get().map((function(t){return t.$$state().resolvables})).reduce(mt,[]).filter((function(t){return"deferred"===t.deps})).forEach((function(e){return e.deps=t.annotate(e.resolveFn,t.strictDi)}))}An.$inject=["$injector","$q","$uiRouter"];function Dn(t){t.$watch((function(){ce.approximateDigests++}))}Dn.$inject=["$rootScope"],Tn.provider("$uiRouter",In),On.provider("$urlRouter",["$uiRouterProvider",function(t){return t.urlRouterProvider=new Pn(t)}]),kn.provider("$urlService",Hn("urlService")),kn.provider("$urlMatcherFactory",["$uiRouterProvider",function(){return Vn.urlMatcherFactory}]),kn.provider("$templateFactory",(function(){return new Sn})),xn.provider("$stateRegistry",Hn("stateRegistry")),xn.provider("$uiRouterGlobals",Hn("globals")),xn.provider("$transitions",Hn("transitionService")),xn.provider("$state",["$uiRouterProvider",function(){return B(Vn.stateProvider,{$get:function(){return Vn.stateService}})}]),xn.factory("$stateParams",["$uiRouter",function(t){return t.globals.params}]),jn.factory("$view",(function(){return Vn.viewService})),jn.service("$trace",(function(){return ce})),jn.run(Dn),kn.run(["$urlMatcherFactory",function(t){}]),xn.run(["$state",function(t){}]),On.run(["$urlRouter",function(t){}]),Tn.run(An);var qn,Un,Nn,Fn,Ln=function(t){return t.getTokens().filter(k).map((function(e){var r=t.getResolvable(e);return[e,"NOWAIT"===t.getPolicy(r).async?r.promise:r.data]})).reduce(Pt,{})};function Mn(t){var e=t.match(/^\s*({[^}]*})\s*$/);e&&(t="("+e[1]+")");var r=t.replace(/\n/g," ").match(/^\s*([^(]*?)\s*(\((.*)\))?\s*$/);if(!r||4!==r.length)throw new Error("Invalid state ref '"+t+"'");return{state:r[1]||null,paramExpr:r[3]||null}}function Bn(t){var e=t.parent().inheritedData("$uiView"),r=f("$cfg.path")(e);return r?Tt(r).state.name:void 0}function Gn(t,e,r){var n=r.uiState||t.current.name,i=B(function(t,e){return{relative:Bn(t)||e.$current,inherit:!0,source:"sref"}}(e,t),r.uiStateOpts||{}),o=t.href(n,r.uiStateParams,i);return{uiState:n,uiStateParams:r.uiStateParams,uiStateOpts:i,href:o}}function zn(t){var e="[object SVGAnimatedString]"===Object.prototype.toString.call(t.prop("href")),r="FORM"===t[0].nodeName;return{attr:r?"action":e?"xlink:href":"href",isAnchor:"A"===t.prop("tagName").toUpperCase(),clickable:!r}}function Wn(t,e,r,n,i){return function(o){var a=o.which||o.button,u=i();if(!(a>1||o.ctrlKey||o.metaKey||o.shiftKey||o.altKey||t.attr("target"))){var s=r((function(){t.attr("disabled")||e.go(u.uiState,u.uiStateParams,u.uiStateOpts)}));o.preventDefault();var c=n.isAnchor&&!u.href?1:0;o.preventDefault=function(){c--<=0&&r.cancel(s)}}}}function Jn(t,e,r,n){var i;n&&(i=n.events),x(i)||(i=["click"]);for(var o=t.on?"on":"bind",a=0,u=i;a0)){var r=d(t,e,u);return m(),r}},e.$on("$destroy",(s=n.stateRegistry.onStatesChanged(p),c=n.transitionService.onStart({},h),f=e.$on("$stateChangeSuccess",m),function(){s(),c(),f()})),n.globals.transition&&h(n.globals.transition),m()}]}}],n.module("ui.router.state").directive("uiSref",qn).directive("uiSrefActive",Nn).directive("uiSrefActiveEq",Nn).directive("uiState",Un),Qn.$inject=["$state"],Kn.$inject=["$state"],n.module("ui.router.state").filter("isState",Qn).filter("includedByState",Kn),Fn=["$view","$animate","$uiViewScroll","$interpolate","$q",function(t,e,r,i,o){var a={$cfg:{viewDecl:{$context:t._pluginapi._rootViewContext()}},$uiView:{}},u={count:0,restrict:"ECA",terminal:!0,priority:400,transclude:"element",compile:function(s,c,l){return function(s,c,h){var p,v,d,m,g=h.onload||"",y=h.autoscroll,w={enter:function(t,r,i){n.version.minor>2?e.enter(t,null,r).then(i):e.enter(t,null,r,i)},leave:function(t,r){n.version.minor>2?e.leave(t).then(r):e.leave(t,r)}},_=c.inheritedData("$uiView")||a,S=i(h.uiView||h.name||"")(s)||"$default",$={$type:"ng1",id:u.count++,name:S,fqn:_.$uiView.fqn?_.$uiView.fqn+"."+S:S,config:null,configUpdated:function(t){if(t&&!(t instanceof _n))return;if(e=m,r=t,e===r)return;var e,r;ce.traceUIViewConfigUpdated($,t&&t.viewDecl&&t.viewDecl.$context),m=t,E(t)},get creationContext(){var t=f("$cfg.viewDecl.$context")(_),e=f("$uiView.creationContext")(_);return t||e}};ce.traceUIViewEvent("Linking",$),c.data("$uiView",{$uiView:$}),E();var b=t.registerUIView($);function E(t){var e=s.$new(),n=o.defer(),i=o.defer(),a={$cfg:t,$uiView:$},u={$animEnter:n.promise,$animLeave:i.promise,$$animLeave:i};e.$emit("$viewContentLoading",S);var f=l(e,(function(t){t.data("$uiViewAnim",u),t.data("$uiView",a),w.enter(t,c,(function(){n.resolve(),d&&d.$emit("$viewContentAnimationEnded"),(R(y)&&!y||s.$eval(y))&&r(t)})),function(){if(p&&(ce.traceUIViewEvent("Removing (previous) el",p.data("$uiView")),p.remove(),p=null),d&&(ce.traceUIViewEvent("Destroying scope",$),d.$destroy(),d=null),v){var t=v.data("$uiViewAnim");ce.traceUIViewEvent("Animate out",t),w.leave(v,(function(){t.$$animLeave.resolve(),p=null})),p=v,v=null}}()}));v=f,(d=e).$emit("$viewContentLoaded",t||m),d.$eval(g)}s.$on("$destroy",(function(){ce.traceUIViewEvent("Destroying/Unregistering",$),b()}))}}};return u}],Yn.$inject=["$compile","$controller","$transitions","$view","$q"];var Zn="function"==typeof n.module("ui.router").component,Xn=0;function ti(t,e,r,n,i){!P(r.$onInit)||(i.viewDecl.component||i.viewDecl.componentProvider)&&Zn||r.$onInit();var o=Tt(i.path).state.self,a={bind:r};if(P(r.uiOnParamsChanged)){var u=new Te(i.path).getResolvable("$transition$").data;n.$on("$destroy",e.onSuccess({},(function(t){if(t!==u&&-1===t.exiting().indexOf(o)){var e=t.params("to"),n=t.params("from"),i=function(t){return t.paramSchema},a=t.treeChanges("to").map(i).reduce(mt,[]),s=t.treeChanges("from").map(i).reduce(mt,[]),c=a.filter((function(t){var r=s.indexOf(t);return-1===r||!s[r].type.equals(e[t.id],n[t.id])}));if(c.length){var f=c.map((function(t){return t.id})),l=ct(e,(function(t,e){return-1!==f.indexOf(e)}));r.uiOnParamsChanged(l,t)}}}),a))}if(P(r.uiCanExit)){var s=Xn++,c=function(t){return!!t&&(t._uiCanExitIds&&!0===t._uiCanExitIds[s]||c(t.redirectedFrom()))},f={exiting:o.name};n.$on("$destroy",e.onBefore(f,(function(e){var n,i=e._uiCanExitIds=e._uiCanExitIds||{};return c(e)||(n=t.when(r.uiCanExit(e))).then((function(t){return i[s]=!1!==t})),n}),a))}}n.module("ui.router.state").directive("uiView",Fn),n.module("ui.router.state").directive("uiView",Yn),n.module("ui.router.state").provider("$uiViewScroll",(function(){var t=!1;this.useAnchorScroll=function(){t=!0},this.$get=["$anchorScroll","$timeout",function(e,r){return t?e:function(t){return r((function(){t[0].scrollIntoView()}),0,!1)}}]}));t.$injector=Wr,t.$q=Mr,t.BaseLocationServices=tn,t.BaseUrlRule=ur,t.BrowserLocationConfig=cn,t.Glob=Ht,t.HashLocationService=rn,t.HookBuilder=Ke,t.MemoryLocationConfig=sn,t.MemoryLocationService=on,t.NATIVE_INJECTOR_TOKEN="Native Injector",t.Ng1ViewConfig=_n,t.Param=me,t.ParamFactory=ir,t.ParamType=fe,t.ParamTypes=ge,t.PathNode=we,t.PathUtils=Se,t.PushStateLocationService=un,t.Queue=At,t.RegisteredHook=Je,t.Rejection=qt,t.Resolvable=Re,t.ResolveContext=Te,t.StateBuilder=Ne,t.StateMatcher=Le,t.StateObject=Fe,t.StateParams=ye,t.StateProvider=Rn,t.StateQueueManager=Me,t.StateRegistry=Be,t.StateService=Lr,t.TargetState=_e,t.Trace=se,t.Transition=Ze,t.TransitionEventType=Dr,t.TransitionHook=ze,t.TransitionService=Fr,t.UIRouter=wr,t.UIRouterGlobals=lr,t.UIRouterPluginBase=vn,t.UrlConfig=vr,t.UrlMatcher=rr,t.UrlMatcherFactory=or,t.UrlRouter=cr,t.UrlRouterProvider=Pn,t.UrlRuleFactory=ar,t.UrlRules=pr,t.UrlService=dr,t.ViewService=fr,t._extend=Ot,t._inArray=Y,t._pushTo=et,t._removeFrom=X,t.all=v,t.allTrueR=vt,t.ancestors=ot,t.and=h,t.any=d,t.anyTrueR=dt,t.applyPairs=Pt,t.arrayTuples=Ct,t.assertFn=Rt,t.assertMap=bt,t.assertPredicate=$t,t.beforeAfterSubstr=Gt,t.buildUrl=Yr,t.compose=a,t.copy=kt,t.core=dn,t.createProxyFunctions=J,t.curry=o,t.default="ui.router",t.defaultResolvePolicy=be,t.defaultTransOpts=Nr,t.defaults=nt,t.deregAll=rt,t.eq=g,t.equals=G,t.extend=B,t.filter=ct,t.find=ft,t.flatten=St,t.flattenR=gt,t.fnToString=Mt,t.forEach=M,t.fromJson=F,t.functionToString=Lt,t.getLocals=Ln,t.getNg1ViewConfigFactory=mn,t.getParams=Qr,t.hashLocationPlugin=ln,t.hostRegex=zt,t.identity=z,t.inArray=K,t.inherit=Q,t.invoke=w,t.is=m,t.isArray=x,t.isDate=j,t.isDefined=R,t.isFunction=P,t.isInjectable=I,t.isNull=E,t.isNullOrUndefined=C,t.isNumber=T,t.isObject=O,t.isPromise=H,t.isRegExp=V,t.isString=k,t.isUndefined=b,t.joinNeighborsR=Xt,t.kebobString=Ft,t.keyValsToObjectR=Jr,t.locationPluginFactory=Zr,t.makeEvent=Qe,t.makeStub=A,t.map=ht,t.mapObj=lt,t.matchState=We,t.maxLength=Ut,t.memoryLocationPlugin=pn,t.mergeR=it,t.ng1ViewsBuilder=yn,t.noop=W,t.not=l,t.omit=ut,t.or=p,t.padString=Nt,t.pairs=Et,t.parse=f,t.parseUrl=Kr,t.pattern=_,t.pick=at,t.pipe=u,t.pluck=st,t.prop=s,t.propEq=c,t.pushR=yt,t.pushStateLocationPlugin=hn,t.pushTo=tt,t.removeFrom=Z,t.resolvablesBuilder=De,t.resolvePolicies=$e,t.root=U,t.services=D,t.servicesPlugin=fn,t.silenceUncaughtInPromise=Vt,t.silentRejection=It,t.splitEqual=Kt,t.splitHash=Jt,t.splitOnDelim=Zt,t.splitQuery=Qt,t.stringify=Bt,t.stripLastPathElement=Wt,t.tail=Tt,t.toJson=L,t.trace=ce,t.trimHashVal=Yt,t.uniqR=wt,t.unnest=_t,t.unnestR=mt,t.val=y,t.values=pt,t.watchDigests=Dn,Object.defineProperty(t,"__esModule",{value:!0})})); +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("angular")):"function"==typeof define&&define.amd?define(["exports","angular"],e):e((t=t||self)["@uirouter/angularjs"]={},t.angular)}(this,(function(t,e){"use strict";var r=angular,n=e&&e.module?e:r,i=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,o=e.length;i=t.length)return t.apply(this,arguments);var r=Array.prototype.slice.call(arguments);return e.bind.apply(e,i([this],r,!1))}}function a(){var t=arguments,e=t.length-1;return function(){for(var r=e,n=t[e].apply(this,arguments);r--;)n=t[r].call(this,n);return n}}function u(){for(var t=[],e=0;e=0&&t.splice(r,1),t}var tt=o(et);function et(t,e){return t.push(e),e}var rt=function(t){return t.slice().forEach((function(e){"function"==typeof e&&e(),Z(t,e)}))};function nt(t){for(var e=[],r=1;rthis._limit&&this.evict(),t},t.prototype.evict=function(){var t=this._items.shift();return this._evictListeners.forEach((function(e){return e(t)})),t},t.prototype.dequeue=function(){if(this.size())return this._items.splice(0,1)[0]},t.prototype.clear=function(){var t=this._items;return this._items=[],t},t.prototype.size=function(){return this._items.length},t.prototype.remove=function(t){var e=this._items.indexOf(t);return e>-1&&this._items.splice(e,1)[0]},t.prototype.peekTail=function(){return this._items[this._items.length-1]},t.prototype.peekHead=function(){if(this.size())return this._items[0]},t}();(jt=t.RejectType||(t.RejectType={}))[jt.SUPERSEDED=2]="SUPERSEDED",jt[jt.ABORTED=3]="ABORTED",jt[jt.INVALID=4]="INVALID",jt[jt.IGNORED=5]="IGNORED",jt[jt.ERROR=6]="ERROR";var Dt=0,qt=function(){function e(t,e,r){this.$id=Dt++,this.type=t,this.message=e,this.detail=r}return e.isRejectionPromise=function(t){return t&&"function"==typeof t.then&&m(e)(t._transitionRejection)},e.superseded=function(r,n){var i=new e(t.RejectType.SUPERSEDED,"The transition has been superseded by a different transition",r);return n&&n.redirected&&(i.redirected=!0),i},e.redirected=function(t){return e.superseded(t,{redirected:!0})},e.invalid=function(r){return new e(t.RejectType.INVALID,"This transition is invalid",r)},e.ignored=function(r){return new e(t.RejectType.IGNORED,"The transition was ignored",r)},e.aborted=function(r){return new e(t.RejectType.ABORTED,"The transition has been aborted",r)},e.errored=function(r){return new e(t.RejectType.ERROR,"The transition errored",r)},e.normalize=function(t){return m(e)(t)?t:e.errored(t)},e.prototype.toString=function(){var t,e=(t=this.detail)&&t.toString!==Object.prototype.toString?t.toString():Bt(t),r=this.$id,n=this.type,i=this.message;return"Transition Rejection($id: ".concat(r," type: ").concat(n,", message: ").concat(i,", detail: ").concat(e,")")},e.prototype.toPromise=function(){return B(It(this),{_transitionRejection:this})},e}();function Ut(t,e){return e.length<=t?e:e.substr(0,t-3)+"..."}function Nt(t,e){for(;e.length ").concat(Bt(e)))},e.prototype.traceTransitionIgnored=function(e){this.enabled(t.Category.TRANSITION)&&ee.log("".concat(ue(e),": Ignored <> ").concat(Bt(e)))},e.prototype.traceHookInvocation=function(e,r,n){if(this.enabled(t.Category.HOOK)){var i=f("traceData.hookType")(n)||"internal",o=f("traceData.context.state.name")(n)||f("traceData.context")(n)||"unknown",a=Lt(e.registeredHook.callback);ee.log("".concat(ue(r),": Hook -> ").concat(i," context: ").concat(o,", ").concat(Ut(200,a)))}},e.prototype.traceHookResult=function(e,r,n){this.enabled(t.Category.HOOK)&&ee.log("".concat(ue(r),": <- Hook returned: ").concat(Ut(200,Bt(e))))},e.prototype.traceResolvePath=function(e,r,n){this.enabled(t.Category.RESOLVE)&&ee.log("".concat(ue(n),": Resolving ").concat(e," (").concat(r,")"))},e.prototype.traceResolvableResolved=function(e,r){this.enabled(t.Category.RESOLVE)&&ee.log("".concat(ue(r),": <- Resolved ").concat(e," to: ").concat(Ut(200,Bt(e.data))))},e.prototype.traceError=function(e,r){this.enabled(t.Category.TRANSITION)&&ee.log("".concat(ue(r),": <- Rejected ").concat(Bt(r),", reason: ").concat(e))},e.prototype.traceSuccess=function(e,r){this.enabled(t.Category.TRANSITION)&&ee.log("".concat(ue(r),": <- Success ").concat(Bt(r),", final state: ").concat(e.name))},e.prototype.traceUIViewEvent=function(e,r,n){void 0===n&&(n=""),this.enabled(t.Category.UIVIEW)&&ee.log("ui-view: ".concat(Nt(30,e)," ").concat(re(r)).concat(n))},e.prototype.traceUIViewConfigUpdated=function(e,r){this.enabled(t.Category.UIVIEW)&&this.traceUIViewEvent("Updating",e," with ViewConfig from context='".concat(r,"'"))},e.prototype.traceUIViewFill=function(e,r){this.enabled(t.Category.UIVIEW)&&this.traceUIViewEvent("Fill",e," with: ".concat(Ut(200,r)))},e.prototype.traceViewSync=function(e){if(this.enabled(t.Category.VIEWCONFIG)){var r="uiview component fqn",n=e.map((function(t){var e,n=t.uiView,i=t.viewConfig,o=n&&n.fqn,a=i&&"".concat(i.viewDecl.$context.name,": (").concat(i.viewDecl.$name,")");return(e={})[r]=o,e["view config state (view name)"]=a,e})).sort((function(t,e){return(t[r]||"").localeCompare(e[r]||"")}));ee.table(n)}},e.prototype.traceViewServiceEvent=function(e,r){this.enabled(t.Category.VIEWCONFIG)&&ee.log("VIEWCONFIG: ".concat(e," ").concat(function(t){var e=t.viewDecl,r=e.$context.name||"(root)";return"[View#".concat(t.$id," from '").concat(r,"' state]: target ui-view: '").concat(e.$uiViewName,"@").concat(e.$uiViewContextAnchor,"'")}(r)))},e.prototype.traceViewServiceUIViewEvent=function(e,r){this.enabled(t.Category.VIEWCONFIG)&&ee.log("VIEWCONFIG: ".concat(e," ").concat(re(r)))},e}(),ce=new se,fe=function(){function t(t){this.pattern=/.*/,this.inherit=!0,B(this,t)}return t.prototype.is=function(t,e){return!0},t.prototype.encode=function(t,e){return t},t.prototype.decode=function(t,e){return t},t.prototype.equals=function(t,e){return t==e},t.prototype.$subPattern=function(){var t=this.pattern.toString();return t.substr(1,t.length-2)},t.prototype.toString=function(){return"{ParamType:".concat(this.name,"}")},t.prototype.$normalize=function(t){return this.is(t)?t:this.decode(t)},t.prototype.$asArray=function(t,e){if(!t)return this;if("auto"===t&&!e)throw new Error("'auto' array mode is for query parameters only");return new le(this,t)},t}();function le(t,e){var r=this;function n(t){return x(t)?t:R(t)?[t]:[]}function i(t,r){return function(i){if(x(i)&&0===i.length)return i;var o=ht(n(i),t);return!0===r?0===ct(o,(function(t){return!t})).length:function(t){switch(t.length){case 0:return;case 1:return"auto"===e?t[0]:t;default:return t}}(o)}}function o(t){return function(e,r){var i=n(e),o=n(r);if(i.length!==o.length)return!1;for(var a=0;a=0||(o.push(s[c]),i[s[c]]=this[s[c]])}return B({},i,t)},t}(),we=function(){function t(e){if(e instanceof t){var r=e;this.state=r.state,this.paramSchema=r.paramSchema.slice(),this.paramValues=B({},r.paramValues),this.resolvables=r.resolvables.slice(),this.views=r.views&&r.views.slice()}else{var n=e;this.state=n,this.paramSchema=n.parameters({inherit:!1}),this.paramValues={},this.resolvables=n.resolvables.map((function(t){return t.clone()}))}}return t.prototype.clone=function(){return new t(this)},t.prototype.applyRawParams=function(t){return this.paramValues=this.paramSchema.reduce((function(e,r){return Pt(e,[(n=r).id,n.value(t[n.id])]);var n}),{}),this},t.prototype.parameter=function(t){return ft(this.paramSchema,c("id",t))},t.prototype.equals=function(t,e){var r=this.diff(t,e);return r&&0===r.length},t.prototype.diff=function(t,e){if(this.state!==t.state)return!1;var r=e?e(this):this.paramSchema;return me.changed(r,this.paramValues,t.paramValues)},t.clone=function(t){return t.clone()},t}(),_e=function(){function t(t,e,r,n){this._stateRegistry=t,this._identifier=e,this._identifier=e,this._params=B({},r||{}),this._options=B({},n||{}),this._definition=t.matcher.find(e,this._options.relative)}return t.prototype.name=function(){return this._definition&&this._definition.name||this._identifier},t.prototype.identifier=function(){return this._identifier},t.prototype.params=function(){return this._params},t.prototype.$state=function(){return this._definition},t.prototype.state=function(){return this._definition&&this._definition.self},t.prototype.options=function(){return this._options},t.prototype.exists=function(){return!(!this._definition||!this._definition.self)},t.prototype.valid=function(){return!this.error()},t.prototype.error=function(){var t=this.options().relative;if(!this._definition&&t){var e=t.name?t.name:t;return"Could not resolve '".concat(this.name(),"' from state '").concat(e,"'")}return this._definition?this._definition.self?void 0:"State '".concat(this.name(),"' has an invalid definition"):"No such state '".concat(this.name(),"'")},t.prototype.toString=function(){return"'".concat(this.name(),"'").concat(Bt(this.params()))},t.prototype.withState=function(e){return new t(this._stateRegistry,e,this._params,this._options)},t.prototype.withParams=function(e,r){void 0===r&&(r=!1);var n=r?e:B({},this._params,e);return new t(this._stateRegistry,this._identifier,n,this._options)},t.prototype.withOptions=function(e,r){void 0===r&&(r=!1);var n=r?e:B({},this._options,e);return new t(this._stateRegistry,this._identifier,this._params,n)},t.isDef=function(t){return t&&t.state&&(k(t.state)||O(t.state)&&k(t.state.name))},t}(),Se=function(){function t(){}return t.makeTargetState=function(t,e){var r=Tt(e).state;return new _e(t,r,e.map(s("paramValues")).reduce(it,{}),{})},t.buildPath=function(t){var e=t.params();return t.$state().path.map((function(t){return new we(t).applyRawParams(e)}))},t.buildToPath=function(e,r){var n=t.buildPath(r);return r.options().inherit?t.inheritParams(e,n,Object.keys(r.params())):n},t.applyViewConfigs=function(e,r,n){r.filter((function(t){return K(n,t.state)})).forEach((function(n){var i=pt(n.state.views||{}),o=t.subPath(r,(function(t){return t===n})),a=i.map((function(t){return e.createViewConfig(o,t)}));n.views=a.reduce(mt,[])}))},t.inheritParams=function(t,e,r){void 0===r&&(r=[]);var n=t.map((function(t){return t.paramSchema})).reduce(mt,[]).filter((function(t){return!t.inherit})).map(s("id"));return e.map((function(e){var i=B({},e&&e.paramValues),o=at(i,r);i=ut(i,r);var a,u,s,f=ut((a=t,u=e.state,s=ft(a,c("state",u)),B({},s&&s.paramValues)||{}),n),l=B(i,f,o);return new we(e.state).applyRawParams(l)}))},t.treeChanges=function(e,r,n){for(var i,o,a,u,s,c,f=Math.min(e.length,r.length),l=0;l1?n:n[0]:k(t)&&P(e)?(r[t]=n,r[t].push(e),function(){return r[t].splice(r[t].indexOf(e,1))&&null}):void 0},t.prototype.build=function(t){var e=this.matcher,r=this.builders,n=this.parentName(t);if(n&&!e.find(n,void 0,!1))return null;for(var i in r)if(r.hasOwnProperty(i)){var o=r[i].reduce((function(t,e){return function(r){return e(r,t)}}),W);t[i]=o(t)}return t},t.prototype.parentName=function(t){var e=t.name||"",r=e.split(".");if("**"===r.pop()&&r.pop(),r.length){if(t.parent)throw new Error("States that specify the 'parent:' property should not have a '.' in their name (".concat(e,")"));return r.join(".")}return t.parent?k(t.parent)?t.parent:t.parent.name:""},t.prototype.name=function(t){var e=t.name;if(-1!==e.indexOf(".")||!t.parent)return e;var r=k(t.parent)?t.parent:t.parent.name;return r?r+"."+e:e},t}(),Fe=function(){function t(e){return t.create(e||{})}return t.create=function(e){e=t.isStateClass(e)?new e:e;var r=Q(Q(e,t.prototype));return e.$$state=function(){return r},r.self=e,r.__stateObjectCache={nameGlob:Ht.fromString(r.name)},r},t.prototype.is=function(t){return this===t||this.self===t||this.fqn()===t},t.prototype.fqn=function(){if(!(this.parent&&this.parent instanceof this.constructor))return this.name;var t=this.parent.fqn();return t?t+"."+this.name:this.name},t.prototype.root=function(){return this.parent&&this.parent.root()||this},t.prototype.parameters=function(t){return((t=nt(t,{inherit:!0,matchingKeys:null})).inherit&&this.parent&&this.parent.parameters()||[]).concat(pt(this.params)).filter((function(e){return!t.matchingKeys||t.matchingKeys.hasOwnProperty(e.id)}))},t.prototype.parameter=function(t,e){return void 0===e&&(e={}),this.url&&this.url.parameter(t,e)||ft(pt(this.params),c("id",t))||e.inherit&&this.parent&&this.parent.parameter(t)},t.prototype.toString=function(){return this.fqn()},t.isStateClass=function(t){return P(t)&&!0===t.__uiRouterState},t.isStateDeclaration=function(t){return P(t.$$state)},t.isState=function(t){return O(t.__stateObjectCache)},t}(),Le=function(){function t(t){this._states=t}return t.prototype.isRelative=function(t){return 0===(t=t||"").indexOf(".")||0===t.indexOf("^")},t.prototype.find=function(t,e,r){if(void 0===r&&(r=!0),t||""===t){var n=k(t),i=n?t:t.name;this.isRelative(i)&&(i=this.resolvePath(i,e));var o=this._states[i];if(o&&(n||!(n||o!==t&&o.self!==t)))return o;if(n&&r){var a=pt(this._states).filter((function(t){return t.__stateObjectCache.nameGlob&&t.__stateObjectCache.nameGlob.matches(i)}));return a.length>1&&ee.error("stateMatcher.find: Found multiple matches for ".concat(i," using glob: "),a.map((function(t){return t.name}))),a[0]}}},t.prototype.resolvePath=function(t,e){if(!e)throw new Error("No reference point given for path '".concat(t,"'"));for(var r=this.find(e),n=t.split("."),i=n.length,o=0,a=r;o0;){var c=e.shift(),f=c.name,l=n.build(c),h=o.indexOf(c);if(l){var p=u(f);if(p&&p.name===f)throw new Error("State '".concat(f,"' is already defined"));var v=u(f+".**");v&&this.router.stateRegistry.deregister(v),r[f]=c,this.attachRoute(c),h>=0&&o.splice(h,1),i.push(c)}else{var d=a[f];if(a[f]=e.length,h>=0&&d===e.length)return e.push(c),s(),r;h<0&&o.push(c),e.push(c)}}return s(),r},t.prototype.attachRoute=function(t){if(!t.abstract&&t.url){var e=this.router.urlService.rules;e.rule(e.urlRuleFactory.create(t))}},t}(),Be=function(){function t(t){this.router=t,this.states={},this.listeners=[],this.matcher=new Le(this.states),this.builder=new Ne(this.matcher,t.urlMatcherFactory),this.stateQueue=new Me(t,this.states,this.builder,this.listeners),this._registerRoot()}return t.prototype._registerRoot=function(){(this._root=this.stateQueue.register({name:"",url:"^",views:null,params:{"#":{value:null,type:"hash",dynamic:!0}},abstract:!0})).navigable=null},t.prototype.dispose=function(){var t=this;this.stateQueue.dispose(),this.listeners=[],this.get().forEach((function(e){return t.get(e)&&t.deregister(e)}))},t.prototype.onStatesChanged=function(t){return this.listeners.push(t),function(){Z(this.listeners)(t)}.bind(this)},t.prototype.root=function(){return this._root},t.prototype.register=function(t){return this.stateQueue.register(t)},t.prototype._deregisterTree=function(t){var e=this,r=this.get().map((function(t){return t.$$state()})),n=function(t){var e=r.filter((function(e){return-1!==t.indexOf(e.parent)}));return 0===e.length?e:e.concat(n(e))},i=n([t]),o=[t].concat(i).reverse();return o.forEach((function(t){var r=e.router.urlService.rules;r.rules().filter(c("state",t)).forEach((function(t){return r.removeRule(t)})),delete e.states[t.name]})),o},t.prototype.deregister=function(t){var e=this.get(t);if(!e)throw new Error("Can't deregister state; not found: "+t);var r=this._deregisterTree(e.$$state());return this.listeners.forEach((function(t){return t("deregistered",r.map((function(t){return t.self})))})),r},t.prototype.get=function(t,e){var r=this;if(0===arguments.length)return Object.keys(this.states).map((function(t){return r.states[t].self}));var n=this.matcher.find(t,e);return n&&n.self||null},t.prototype.decorator=function(t,e){return this.builder.builder(t,e)},t}();(qe=t.TransitionHookPhase||(t.TransitionHookPhase={}))[qe.CREATE=0]="CREATE",qe[qe.BEFORE=1]="BEFORE",qe[qe.RUN=2]="RUN",qe[qe.SUCCESS=3]="SUCCESS",qe[qe.ERROR=4]="ERROR",(Ue=t.TransitionHookScope||(t.TransitionHookScope={}))[Ue.TRANSITION=0]="TRANSITION",Ue[Ue.STATE=1]="STATE";var Ge={current:W,transition:null,traceData:{},bind:null},ze=function(){function e(e,r,n,i){var o=this;this.transition=e,this.stateContext=r,this.registeredHook=n,this.options=i,this.isSuperseded=function(){return o.type.hookPhase===t.TransitionHookPhase.RUN&&!o.options.transition.isActive()},this.options=nt(i,Ge),this.type=n.eventType}return e.chain=function(t,e){return t.reduce((function(t,e){return t.then((function(){return e.invokeHook()}))}),e||D.$q.when())},e.invokeHooks=function(t,r){for(var n=0;n=e.invokeLimit&&e.deregister()}}},e.prototype.handleHookResult=function(t){var e=this,r=this.getNotCurrentRejection();return r||(H(t)?t.then((function(t){return e.handleHookResult(t)})):(ce.traceHookResult(t,this.transition,this.options),!1===t?qt.aborted("Hook aborted transition").toPromise():m(_e)(t)?qt.redirected(t).toPromise():void 0))},e.prototype.getNotCurrentRejection=function(){var t=this.transition.router;return t._disposed?qt.aborted("UIRouter instance #".concat(t.$id," has been stopped (disposed)")).toPromise():this.transition._aborted?qt.aborted().toPromise():this.isSuperseded()?qt.superseded(this.options.current()).toPromise():void 0},e.prototype.toString=function(){var t=this.options,e=this.registeredHook,r=f("traceData.hookType")(t)||"internal",n=f("traceData.context.state.name")(t)||f("traceData.context")(t)||"unknown",i=Mt(e.callback);return"".concat(r," context: ").concat(n,", ").concat(Ut(200,i))},e.HANDLE_RESULT=function(t){return function(e){return t.handleHookResult(e)}},e.LOG_REJECTED_RESULT=function(t){return function(e){H(e)&&e.catch((function(e){return t.logError(qt.normalize(e))}))}},e.LOG_ERROR=function(t){return function(e){return t.logError(e)}},e.REJECT_ERROR=function(t){return function(t){return It(t)}},e.THROW_ERROR=function(t){return function(t){throw t}},e}();function We(t,e,r){var n=k(e)?[e]:e;return!!(P(n)?n:function(t){for(var e=n,r=0;r20)throw new Error("Too many consecutive Transition redirects (20+)");var n={redirectedFrom:this,source:"redirect"};"url"===this.options().source&&!1!==t.options().location&&(n.location="replace");var i=B({},this.options(),t.options(),n);t=t.withOptions(i,!0);var o,a=this.router.transitionService.create(this._treeChanges.from,t),u=this._treeChanges.entering,s=a._treeChanges.entering;return Se.matching(s,u,Se.nonDynamicParams).filter(l((o=t.options().reloadState,function(t){return o&&t.state.includes[o.name]}))).forEach((function(t,e){t.resolvables=u[e].resolvables})),a},e.prototype._changedParams=function(){var t=this._treeChanges;if(!this._options.reload&&(!t.exiting.length&&!t.entering.length&&t.to.length===t.from.length&&!Ct(t.to,t.from).map((function(t){return t[0].state!==t[1].state})).reduce(dt,!1))){var e=t.to.map((function(t){return t.paramSchema})),r=[t.to,t.from].map((function(t){return t.map((function(t){return t.paramValues}))}));return Ct(e,r[0],r[1]).map((function(t){var e=t[0],r=t[1],n=t[2];return me.changed(e,r,n)})).reduce(mt,[])}},e.prototype.dynamic=function(){var t=this._changedParams();return!!t&&t.map((function(t){return t.dynamic})).reduce(dt,!1)},e.prototype.ignored=function(){return!!this._ignoredReason()},e.prototype._ignoredReason=function(){var t=this.router.globals.transition,e=this._options.reloadState,r=function(t,r){if(t.length!==r.length)return!1;var n=Se.matching(t,r);return t.length===n.filter((function(t){return!e||!t.state.includes[e.name]})).length},n=this.treeChanges(),i=t&&t.treeChanges();return i&&r(i.to,n.to)&&r(i.exiting,n.exiting)?"SameAsPending":0===n.exiting.length&&0===n.entering.length&&r(n.from,n.to)?"SameAsCurrent":void 0},e.prototype.run=function(){var e=this,r=ze.runAllHooks,n=function(t){return e._hookBuilder.buildHooksForPhase(t)},i=n(t.TransitionHookPhase.BEFORE);return ze.invokeHooks(i,(function(){var t=e.router.globals;return t.lastStartedTransitionId=e.$id,t.transition=e,t.transitionHistory.enqueue(e),ce.traceTransitionStart(e),D.$q.when(void 0)})).then((function(){var e=n(t.TransitionHookPhase.RUN);return ze.invokeHooks(e,(function(){return D.$q.when(void 0)}))})).then((function(){ce.traceSuccess(e.$to(),e),e.success=!0,e._deferred.resolve(e.to()),r(n(t.TransitionHookPhase.SUCCESS))}),(function(i){ce.traceError(i,e),e.success=!1,e._deferred.reject(i),e._error=i,r(n(t.TransitionHookPhase.ERROR))})),this.promise},e.prototype.valid=function(){return!this.error()||void 0!==this.success},e.prototype.abort=function(){$(this.success)&&(this._aborted=!0)},e.prototype.error=function(){var t=this.$to();if(t.self.abstract)return qt.invalid("Cannot transition to abstract state '".concat(t.name,"'"));var e=t.parameters(),r=this.params(),n=e.filter((function(t){return!t.validates(r[t.id])}));if(n.length){var i=n.map((function(t){return"[".concat(t.id,":").concat(Bt(r[t.id]),"]")})).join(", "),o="The following parameter values are not valid for state '".concat(t.name,"': ").concat(i);return qt.invalid(o)}return!1===this.success?this._error:void 0},e.prototype.toString=function(){var t=this.from(),e=this.to(),r=function(t){return null!==t["#"]&&void 0!==t["#"]?t:ut(t,["#"])},n=this.$id,i=O(t)?t.name:t,o=Bt(r(this._treeChanges.from.map(s("paramValues")).reduce(it,{}))),a=this.valid()?"":"(X) ",u=O(e)?e.name:e,c=Bt(r(this.params()));return"Transition#".concat(n,"( '").concat(i,"'").concat(o," -> ").concat(a,"'").concat(u,"'").concat(c," )")},e.diToken=e,e}();function Xe(t,e){var r=["",""],n=t.replace(/[\\\[\]\^$*+?.()|{}]/g,"\\$&");if(!e)return n;switch(e.squash){case!1:r=["(",")"+(e.isOptional?"?":"")];break;case!0:n=n.replace(/\/$/,""),r=["(?:/(",")|/)?"];break;default:r=["(".concat(e.squash,"|"),")?"]}return n+r[0]+e.type.pattern.source+r[1]}var tr=Zt("/"),er={state:{params:{}},strict:!0,caseInsensitive:!0,decodeParams:!0},rr=function(){function e(t,r,n,i){var o=this;this._cache={path:[this]},this._children=[],this._params=[],this._segments=[],this._compiled=[],this.config=i=nt(i,er),this.pattern=t;for(var a,u,s,f=/([:*])([\w\[\]]+)|\{([\w\[\]]+)(?:\:(?=(\s*))\4((?:[^{}\\]|\\.|\{(?:[^{}\\]|\\.)*\})+))?\}/g,l=/([:]?)([\w\[\].-]+)|\{([\w\[\].-]+)(?:\:(?=(\s*))\4((?:[^{}\\]|\\.|\{(?:[^{}\\]|\\.)*\})+))?\}/g,h=[],p=0,v=function(r){if(!e.nameValidator.test(r))throw new Error("Invalid parameter name '".concat(r,"' in pattern '").concat(t,"'"));if(ft(o._params,c("id",r)))throw new Error("Duplicate parameter name '".concat(r,"' in pattern '").concat(t,"'"))},d=function(e,n){var i,a=e[2]||e[3],u=n?e[5]:e[5]||("*"===e[1]?"[\\s\\S]*":null);return{id:a,regexp:u,segment:t.substring(p,e.index),type:u?r.type(u)||(i=u,Q(r.type(n?"query":"path"),{pattern:new RegExp(i,o.config.caseInsensitive?"i":void 0)})):null}};(a=f.exec(t))&&!((u=d(a,!1)).segment.indexOf("?")>=0);)v(u.id),this._params.push(n.fromPath(u.id,u.type,i.state)),this._segments.push(u.segment),h.push([u.segment,Tt(this._params)]),p=f.lastIndex;var m=(s=t.substring(p)).indexOf("?");if(m>=0){var y=s.substring(m);if(s=s.substring(0,m),y.length>0)for(p=0;a=l.exec(y);)v((u=d(a,!0)).id),this._params.push(n.fromSearch(u.id,u.type,i.state)),p=f.lastIndex}this._segments.push(s),this._compiled=h.map((function(t){return Xe.apply(null,t)})).concat(Xe(s))}return e.encodeDashes=function(t){return encodeURIComponent(t).replace(/-/g,(function(t){return"%5C%".concat(t.charCodeAt(0).toString(16).toUpperCase())}))},e.pathSegmentsAndParams=function(e){return Ct(e._segments,e._params.filter((function(e){return e.location===t.DefType.PATH})).concat(void 0)).reduce(mt,[]).filter((function(t){return""!==t&&R(t)}))},e.queryParams=function(e){return e._params.filter((function(e){return e.location===t.DefType.SEARCH}))},e.compare=function(t,r){var n=function(t){return t._cache.weights=t._cache.weights||function(t){return t._cache.segments=t._cache.segments||t._cache.path.map(e.pathSegmentsAndParams).reduce(mt,[]).reduce(Xt,[]).map((function(t){return k(t)?tr(t):t})).reduce(mt,[])}(t).map((function(t){return"/"===t?1:k(t)?2:t instanceof me?3:void 0}))},i=n(t),o=n(r);!function(t,e,r){for(var n=Math.max(t.length,e.length);t.length Registering",t),this._viewConfigs.push(t)},t.prototype.sync=function(){var e=this,r=this._uiViews.map((function(t){return[t.fqn,t]})).reduce(Pt,{});function n(t){for(var e=t.viewDecl.$context,r=0;++r&&e.parent;)e=e.parent;return r}var i=o((function(t,e,r,n){return e*(t(r)-t(n))})),a=this._uiViews.sort(i((function(t){var e=function(t){return t&&t.parent?e(t.parent)+1:1};return 1e4*t.fqn.split(".").length+e(t.creationContext)}),1)).map((function(o){var a=e._viewConfigs.filter(t.matches(r,o));return a.length>1&&a.sort(i(n,-1)),{uiView:o,viewConfig:a[0]}})),u=a.map((function(t){return t.viewConfig})),s=this._viewConfigs.filter((function(t){return!K(u,t)})).map((function(t){return{uiView:void 0,viewConfig:t}}));a.forEach((function(t){-1!==e._uiViews.indexOf(t.uiView)&&t.uiView.configUpdated(t.viewConfig)}));var c=a.concat(s);this._listeners.forEach((function(t){return t(c)})),ce.traceViewSync(c)},t.prototype.registerUIView=function(t){ce.traceViewServiceUIViewEvent("-> Registering",t);var e=this._uiViews;return e.filter((function(e){return e.fqn===t.fqn&&e.$type===t.$type})).length&&ce.traceViewServiceUIViewEvent("!!!! duplicate uiView named:",t),e.push(t),this.sync(),function(){-1!==e.indexOf(t)?(ce.traceViewServiceUIViewEvent("<- Deregistering",t),Z(e)(t)):ce.traceViewServiceUIViewEvent("Tried removing non-registered uiView",t)}},t.prototype.available=function(){return this._uiViews.map(s("fqn"))},t.prototype.active=function(){return this._uiViews.filter(s("$config")).map(s("name"))},t.matches=function(t,e){return function(r){if(e.$type!==r.viewDecl.$type)return!1;var n=r.viewDecl,i=n.$uiViewName.split("."),o=e.fqn.split(".");if(!G(i,o.slice(0-i.length)))return!1;var a=1-i.length||void 0,u=o.slice(0,a).join("."),s=t[u].creationContext;return n.$uiViewContextAnchor===(s&&s.name)}},t}(),lr=function(){function t(){this.params=new ge,this.lastStartedTransitionId=-1,this.transitionHistory=new At([],1),this.successfulTransitions=new At([],1)}return t.prototype.dispose=function(){this.transitionHistory.clear(),this.successfulTransitions.clear(),this.transition=null},t}();function hr(t){if(!(P(t)||k(t)||m(_e)(t)||_e.isDef(t)))throw new Error("'handler' must be a string, function, TargetState, or have a state: 'newtarget' property");return P(t)?t:g(t)}sr=function(t,e){var r=function(t,e){return(e.priority||0)-(t.priority||0)}(t,e);return 0!==r||0!==(r=function(t,e){var r={STATE:4,URLMATCHER:4,REGEXP:3,RAW:2,OTHER:1};return(r[t.type]||0)-(r[e.type]||0)}(t,e))||0!==(r=function(t,e){return t.urlMatcher&&e.urlMatcher?rr.compare(t.urlMatcher,e.urlMatcher):0}(t,e))?r:function(t,e){var r={STATE:!0,URLMATCHER:!0};return r[t.type]&&r[e.type]?0:(t.$id||0)-(e.$id||0)}(t,e)};var pr=function(){function t(t){this.router=t,this._sortFn=sr,this._rules=[],this._id=0,this.urlRuleFactory=new ar(t)}return t.prototype.dispose=function(t){this._rules=[],delete this._otherwiseFn},t.prototype.initial=function(t){var e=hr(t);this.rule(this.urlRuleFactory.create((function(t,e){return 0===e.globals.transitionHistory.size()&&!!/^\/?$/.exec(t.path)}),e))},t.prototype.otherwise=function(t){var e=hr(t);this._otherwiseFn=this.urlRuleFactory.create(g(!0),e),this._sorted=!1},t.prototype.removeRule=function(t){Z(this._rules,t)},t.prototype.rule=function(t){var e=this;if(!ar.isUrlRule(t))throw new Error("invalid rule");return t.$id=this._id++,t.priority=t.priority||0,this._rules.push(t),this._sorted=!1,function(){return e.removeRule(t)}},t.prototype.rules=function(){return this.ensureSorted(),this._rules.concat(this._otherwiseFn?[this._otherwiseFn]:[])},t.prototype.sort=function(t){for(var e=this.stableSort(this._rules,this._sortFn=t||this._sortFn),r=0,n=0;nr.weight?u:r}return r},t}(),mr=0,yr=A("LocationServices",["url","path","search","hash","onChange"]),gr=A("LocationConfig",["port","protocol","host","baseHref","html5Mode","hashPrefix"]),wr=function(){function t(t,e){void 0===t&&(t=yr),void 0===e&&(e=gr),this.locationService=t,this.locationConfig=e,this.$id=mr++,this._disposed=!1,this._disposables=[],this.trace=ce,this.viewService=new fr(this),this.globals=new lr,this.transitionService=new Fr(this),this.urlMatcherFactory=new or(this),this.urlRouter=new cr(this),this.urlService=new dr(this),this.stateRegistry=new Be(this),this.stateService=new Lr(this),this._plugins={},this.viewService._pluginapi._rootViewContext(this.stateRegistry.root()),this.globals.$current=this.stateRegistry.root(),this.globals.current=this.globals.$current.self,this.disposable(this.globals),this.disposable(this.stateService),this.disposable(this.stateRegistry),this.disposable(this.transitionService),this.disposable(this.urlService),this.disposable(t),this.disposable(e)}return t.prototype.disposable=function(t){this._disposables.push(t)},t.prototype.dispose=function(t){var e=this;t&&P(t.dispose)?t.dispose(this):(this._disposed=!0,this._disposables.slice().forEach((function(t){try{"function"==typeof t.dispose&&t.dispose(e),Z(e._disposables,t)}catch(t){}})))},t.prototype.plugin=function(t,e){void 0===e&&(e={});var r=new t(this,e);if(!r.name)throw new Error("Required property `name` missing on plugin: "+r);return this._disposables.push(r),this._plugins[r.name]=r},t.prototype.getPlugin=function(t){return t?this._plugins[t]:pt(this._plugins)},t}();function _r(t){t.addResolvable(Re.fromData(wr,t.router),""),t.addResolvable(Re.fromData(Ze,t),""),t.addResolvable(Re.fromData("$transition$",t),""),t.addResolvable(Re.fromData("$stateParams",t.params()),""),t.entering().forEach((function(e){t.addResolvable(Re.fromData("$state$",e),e)}))}var Sr=K(["$transition$",Ze]),br=function(t){var e=pt(t.treeChanges()).reduce(mt,[]).reduce(wt,[]),r=function(t){return Sr(t.token)?Re.fromData(t.token,null):t};e.forEach((function(t){t.resolvables=t.resolvables.map(r)}))},$r=function(t){var e=t.to().redirectTo;if(e){var r=t.router.stateService;return P(e)?D.$q.when(e(t)).then(n):n(e)}function n(e){if(e)return e instanceof _e?e:k(e)?r.target(e,t.params(),t.options()):e.state||e.params?r.target(e.state||t.to(),e.params||t.params(),t.options()):void 0}};function Rr(t){return function(e,r){return(0,r.$$state()[t])(e,r)}}var Er=Rr("onExit"),Cr=Rr("onRetain"),Pr=Rr("onEnter"),Tr=function(t){return new Te(t.treeChanges().to).resolvePath("EAGER",t).then(W)},kr=function(t,e){return new Te(t.treeChanges().to).subContext(e.$$state()).resolvePath("LAZY",t).then(W)},Or=function(t){return new Te(t.treeChanges().to).resolvePath("LAZY",t).then(W)},xr=function(t){var e=D.$q,r=t.views("entering");if(r.length)return e.all(r.map((function(t){return e.when(t.load())}))).then(W)},jr=function(t){var e=t.views("entering"),r=t.views("exiting");if(e.length||r.length){var n=t.router.viewService;r.forEach((function(t){return n.deactivateViewConfig(t)})),e.forEach((function(t){return n.activateViewConfig(t)})),n.sync()}},Vr=function(t){var e=t.router.globals,r=function(){e.transition===t&&(e.transition=null)};t.onSuccess({},(function(){e.successfulTransitions.enqueue(t),e.$current=t.$to(),e.current=e.$current.self,kt(t.params(),e.params)}),{priority:1e4}),t.promise.then(r,r)},Ir=function(t){var e=t.options(),r=t.router.stateService,n=t.router.urlRouter;if("url"!==e.source&&e.location&&r.$current.navigable){var i={replace:"replace"===e.location};n.push(r.$current.navigable.url,r.params,i)}n.update(!0)},Hr=function(t){var e=t.router;var r=t.entering().filter((function(t){return!!t.$$state().lazyLoad})).map((function(e){return Ar(t,e)}));return D.$q.all(r).then((function(){if("url"!==t.originalTransition().options().source){var r=t.targetState();return e.stateService.target(r.identifier(),r.params(),r.options())}var n=e.urlService,i=n.match(n.parts()),o=i&&i.rule;if(o&&"STATE"===o.type){var a=o.state,u=i.match;return e.stateService.target(a,u,t.options())}e.urlService.sync()}))};function Ar(t,e){var r=e.$$state().lazyLoad,n=r._promise;if(!n){n=r._promise=D.$q.when(r(t,e)).then((function(e){e&&Array.isArray(e.states)&&e.states.forEach((function(e){return t.router.stateRegistry.register(e)}));return e})).then((function(t){return delete e.lazyLoad,delete e.$$state().lazyLoad,delete r._promise,t}),(function(t){return delete r._promise,D.$q.reject(t)}))}return n}var Dr=function(t,e,r,n,i,o,a,u){void 0===i&&(i=!1),void 0===o&&(o=ze.HANDLE_RESULT),void 0===a&&(a=ze.REJECT_ERROR),void 0===u&&(u=!1),this.name=t,this.hookPhase=e,this.hookOrder=r,this.criteriaMatchPath=n,this.reverseSort=i,this.getResultHandler=o,this.getErrorHandler=a,this.synchronous=u};function qr(t){var e=t._ignoredReason();if(e){ce.traceTransitionIgnored(t);var r=t.router.globals.transition;return"SameAsCurrent"===e&&r&&r.abort(),qt.ignored().toPromise()}}function Ur(t){if(!t.valid())throw new Error(t.error().toString())}var Nr={location:!0,relative:null,inherit:!1,notify:!0,reload:!1,supercede:!0,custom:{},current:function(){return null},source:"unknown"},Fr=function(){function e(t){this._transitionCount=0,this._eventTypes=[],this._registeredHooks={},this._criteriaPaths={},this._router=t,this.$view=t.viewService,this._deregisterHookFns={},this._pluginapi=J(g(this),{},g(this),["_definePathType","_defineEvent","_getPathTypes","_getEvents","getHooks"]),this._defineCorePaths(),this._defineCoreEvents(),this._registerCoreTransitionHooks(),t.globals.successfulTransitions.onEvict(br)}return e.prototype.onCreate=function(t,e,r){},e.prototype.onBefore=function(t,e,r){},e.prototype.onStart=function(t,e,r){},e.prototype.onExit=function(t,e,r){},e.prototype.onRetain=function(t,e,r){},e.prototype.onEnter=function(t,e,r){},e.prototype.onFinish=function(t,e,r){},e.prototype.onSuccess=function(t,e,r){},e.prototype.onError=function(t,e,r){},e.prototype.dispose=function(t){pt(this._registeredHooks).forEach((function(t){return t.forEach((function(e){e._deregistered=!0,Z(t,e)}))}))},e.prototype.create=function(t,e){return new Ze(t,e,this._router)},e.prototype._defineCoreEvents=function(){var e=t.TransitionHookPhase,r=ze,n=this._criteriaPaths;this._defineEvent("onCreate",e.CREATE,0,n.to,!1,r.LOG_REJECTED_RESULT,r.THROW_ERROR,!0),this._defineEvent("onBefore",e.BEFORE,0,n.to),this._defineEvent("onStart",e.RUN,0,n.to),this._defineEvent("onExit",e.RUN,100,n.exiting,!0),this._defineEvent("onRetain",e.RUN,200,n.retained),this._defineEvent("onEnter",e.RUN,300,n.entering),this._defineEvent("onFinish",e.RUN,400,n.to),this._defineEvent("onSuccess",e.SUCCESS,0,n.to,!1,r.LOG_REJECTED_RESULT,r.LOG_ERROR,!0),this._defineEvent("onError",e.ERROR,0,n.to,!1,r.LOG_REJECTED_RESULT,r.LOG_ERROR,!0)},e.prototype._defineCorePaths=function(){var e=t.TransitionHookScope.STATE,r=t.TransitionHookScope.TRANSITION;this._definePathType("to",r),this._definePathType("from",r),this._definePathType("exiting",e),this._definePathType("retained",e),this._definePathType("entering",e)},e.prototype._defineEvent=function(t,e,r,n,i,o,a,u){void 0===i&&(i=!1),void 0===o&&(o=ze.HANDLE_RESULT),void 0===a&&(a=ze.REJECT_ERROR),void 0===u&&(u=!1);var s=new Dr(t,e,r,n,i,o,a,u);this._eventTypes.push(s),Qe(this,this,s)},e.prototype._getEvents=function(t){return(R(t)?this._eventTypes.filter((function(e){return e.hookPhase===t})):this._eventTypes.slice()).sort((function(t,e){var r=t.hookPhase-e.hookPhase;return 0===r?t.hookOrder-e.hookOrder:r}))},e.prototype._definePathType=function(t,e){this._criteriaPaths[t]={name:t,scope:e}},e.prototype._getPathTypes=function(){return this._criteriaPaths},e.prototype.getHooks=function(t){return this._registeredHooks[t]},e.prototype._registerCoreTransitionHooks=function(){var t=this._deregisterHookFns;t.addCoreResolves=this.onCreate({},_r),t.ignored=function(t){return t.onBefore({},qr,{priority:-9999})}(this),t.invalid=function(t){return t.onBefore({},Ur,{priority:-1e4})}(this),t.redirectTo=function(t){return t.onStart({to:function(t){return!!t.redirectTo}},$r)}(this),t.onExit=function(t){return t.onExit({exiting:function(t){return!!t.onExit}},Er)}(this),t.onRetain=function(t){return t.onRetain({retained:function(t){return!!t.onRetain}},Cr)}(this),t.onEnter=function(t){return t.onEnter({entering:function(t){return!!t.onEnter}},Pr)}(this),t.eagerResolve=function(t){return t.onStart({},Tr,{priority:1e3})}(this),t.lazyResolve=function(t){return t.onEnter({entering:g(!0)},kr,{priority:1e3})}(this),t.resolveAll=function(t){return t.onFinish({},Or,{priority:1e3})}(this),t.loadViews=function(t){return t.onFinish({},xr)}(this),t.activateViews=function(t){return t.onSuccess({},jr)}(this),t.updateGlobals=function(t){return t.onCreate({},Vr)}(this),t.updateUrl=function(t){return t.onSuccess({},Ir,{priority:9999})}(this),t.lazyLoad=function(t){return t.onBefore({entering:function(t){return!!t.lazyLoad}},Hr)}(this)},e}(),Lr=function(){function e(t){this.router=t,this.invalidCallbacks=[],this._defaultErrorHandler=function(t){t instanceof Error&&t.stack?(console.error(t),console.error(t.stack)):t instanceof qt?(console.error(t.toString()),t.detail&&t.detail.stack&&console.error(t.detail.stack)):console.error(t)};var r=Object.keys(e.prototype).filter(l(K(["current","$current","params","transition"])));J(g(e.prototype),this,g(this),r)}return Object.defineProperty(e.prototype,"transition",{get:function(){return this.router.globals.transition},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"params",{get:function(){return this.router.globals.params},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"current",{get:function(){return this.router.globals.current},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"$current",{get:function(){return this.router.globals.$current},enumerable:!1,configurable:!0}),e.prototype.dispose=function(){this.defaultErrorHandler(W),this.invalidCallbacks=[]},e.prototype._handleInvalidTargetState=function(t,e){var r=this,n=Se.makeTargetState(this.router.stateRegistry,t),i=this.router.globals,o=function(){return i.transitionHistory.peekTail()},a=o(),u=new At(this.invalidCallbacks.slice()),s=new Te(t).injector(),c=function(t){if(t instanceof _e){var e=t;return(e=r.target(e.identifier(),e.params(),e.options())).valid()?o()!==a?qt.superseded().toPromise():r.transitionTo(e.identifier(),e.params(),e.options()):qt.invalid(e.error()).toPromise()}};return function t(){var r=u.dequeue();return void 0===r?qt.invalid(e.error()).toPromise():D.$q.when(r(e,n,s)).then(c).then((function(e){return e||t()}))}()},e.prototype.onInvalid=function(t){return this.invalidCallbacks.push(t),function(){Z(this.invalidCallbacks)(t)}.bind(this)},e.prototype.reload=function(t){return this.transitionTo(this.current,this.params,{reload:!R(t)||t,inherit:!1,notify:!1})},e.prototype.go=function(t,e,r){var n=nt(r,{relative:this.$current,inherit:!0},Nr);return this.transitionTo(t,e,n)},e.prototype.target=function(t,e,r){if(void 0===r&&(r={}),O(r.reload)&&!r.reload.name)throw new Error("Invalid reload state object");var n=this.router.stateRegistry;if(r.reloadState=!0===r.reload?n.root():n.matcher.find(r.reload,r.relative),r.reload&&!r.reloadState)throw new Error("No such reload state '".concat(k(r.reload)?r.reload:r.reload.name,"'"));return new _e(this.router.stateRegistry,t,e,r)},e.prototype.getCurrentPath=function(){var t=this,e=this.router.globals.successfulTransitions.peekTail();return e?e.treeChanges().to:[new we(t.router.stateRegistry.root())]},e.prototype.transitionTo=function(e,r,n){var i=this;void 0===r&&(r={}),void 0===n&&(n={});var o=this.router,a=o.globals;n=nt(n,Nr);var u=function(){return a.transition};n=B(n,{current:u});var s=this.target(e,r,n),c=this.getCurrentPath();if(!s.exists())return this._handleInvalidTargetState(c,s);if(!s.valid())return It(s.error());if(!1===n.supercede&&u())return qt.ignored("Another transition is in progress and supercede has been set to false in TransitionOptions for the transition. So the transition was ignored in favour of the existing one in progress.").toPromise();var f=function(e){return function(r){if(r instanceof qt){var n=o.globals.lastStartedTransitionId<=e.$id;if(r.type===t.RejectType.IGNORED)return n&&o.urlRouter.update(),D.$q.when(a.current);var u=r.detail;if(r.type===t.RejectType.SUPERSEDED&&r.redirected&&u instanceof _e){var s=e.redirect(u);return s.run().catch(f(s))}if(r.type===t.RejectType.ABORTED)return n&&o.urlRouter.update(),D.$q.reject(r)}return i.defaultErrorHandler()(r),D.$q.reject(r)}},l=this.router.transitionService.create(c,s),h=l.run().catch(f(l));return Vt(h),B(h,{transition:l})},e.prototype.is=function(t,e,r){r=nt(r,{relative:this.$current});var n=this.router.stateRegistry.matcher.find(t,r.relative);if(R(n)){if(this.$current!==n)return!1;if(!e)return!0;var i=n.parameters({inherit:!0,matchingKeys:e});return me.equals(i,me.values(i,e),this.params)}},e.prototype.includes=function(t,e,r){r=nt(r,{relative:this.$current});var n=k(t)&&Ht.fromString(t);if(n){if(!n.matches(this.$current.name))return!1;t=this.$current.name}var i=this.router.stateRegistry.matcher.find(t,r.relative),o=this.$current.includes;if(R(i)){if(!R(o[i.name]))return!1;if(!e)return!0;var a=i.parameters({inherit:!0,matchingKeys:e});return me.equals(a,me.values(a,e),this.params)}},e.prototype.href=function(t,e,r){r=nt(r,{lossy:!0,inherit:!0,absolute:!1,relative:this.$current}),e=e||{};var n=this.router.stateRegistry.matcher.find(t,r.relative);if(!R(n))return null;r.inherit&&(e=this.params.$inherit(e,this.$current,n));var i=n&&r.lossy?n.navigable:n;return i&&void 0!==i.url&&null!==i.url?this.router.urlRouter.href(i.url,e,{absolute:r.absolute}):null},e.prototype.defaultErrorHandler=function(t){return this._defaultErrorHandler=t||this._defaultErrorHandler},e.prototype.get=function(t,e){var r=this.router.stateRegistry;return 0===arguments.length?r.get():r.get(t,e||this.$current)},e.prototype.lazyLoad=function(t,e){var r=this.get(t);if(!r||!r.lazyLoad)throw new Error("Can not lazy load "+t);var n=this.getCurrentPath(),i=Se.makeTargetState(this.router.stateRegistry,n);return Ar(e=e||this.router.transitionService.create(n,i),r)},e}(),Mr={when:function(t){return new Promise((function(e,r){return e(t)}))},reject:function(t){return new Promise((function(e,r){r(t)}))},defer:function(){var t={};return t.promise=new Promise((function(e,r){t.resolve=e,t.reject=r})),t},all:function(t){if(x(t))return Promise.all(t);if(O(t)){var e=Object.keys(t).map((function(e){return t[e].then((function(t){return{key:e,val:t}}))}));return Mr.all(e).then((function(t){return t.reduce((function(t,e){return t[e.key]=e.val,t}),{})}))}}},Br={},Gr=/((\/\/.*$)|(\/\*[\s\S]*?\*\/))/gm,zr=/([^\s,]+)/g,Wr={get:function(t){return Br[t]},has:function(t){return null!=Wr.get(t)},invoke:function(t,e,r){var n=B({},Br,r||{}),i=Wr.annotate(t),o=bt((function(t){return n.hasOwnProperty(t)}),(function(t){return"DI can't find injectable: '".concat(t,"'")})),a=i.filter(o).map((function(t){return n[t]}));return P(t)?t.apply(e,a):t.slice(-1)[0].apply(e,a)},annotate:function(t){if(!I(t))throw new Error("Not an injectable function: ".concat(t));if(t&&t.$inject)return t.$inject;if(x(t))return t.slice(0,-1);var e=t.toString().replace(Gr,"");return e.slice(e.indexOf("(")+1,e.indexOf(")")).match(zr)||[]}},Jr=function(t,e){var r=e[0],n=e[1];return t.hasOwnProperty(r)?x(t[r])?t[r].push(n):t[r]=[t[r],n]:t[r]=n,t},Qr=function(t){return t.split("&").filter(z).map(Kt).reduce(Jr,{})};function Kr(t){var e=function(t){return t||""},r=Jt(t).map(e),n=r[0],i=r[1],o=Qt(n).map(e);return{path:o[0],search:o[1],hash:i,url:t}}var Yr=function(t){var e=t.path(),r=t.search(),n=t.hash(),i=Object.keys(r).map((function(t){var e=r[t];return(x(e)?e:[e]).map((function(e){return t+"="+e}))})).reduce(mt,[]).join("&");return e+(i?"?"+i:"")+(n?"#"+n:"")};function Zr(t,e,r,n){return function(i){var o=i.locationService=new r(i),a=i.locationConfig=new n(i,e);return{name:t,service:o,configuration:a,dispose:function(t){t.dispose(o),t.dispose(a)}}}}var Xr,tn=function(){function t(t,e){var r=this;this.fireAfterUpdate=e,this._listeners=[],this._listener=function(t){return r._listeners.forEach((function(e){return e(t)}))},this.hash=function(){return Kr(r._get()).hash},this.path=function(){return Kr(r._get()).path},this.search=function(){return Qr(Kr(r._get()).search)},this._location=U.location,this._history=U.history}return t.prototype.url=function(t,e){return void 0===e&&(e=!0),R(t)&&t!==this._get()&&(this._set(null,null,t,e),this.fireAfterUpdate&&this._listeners.forEach((function(e){return e({url:t})}))),Yr(this)},t.prototype.onChange=function(t){var e=this;return this._listeners.push(t),function(){return Z(e._listeners,t)}},t.prototype.dispose=function(t){rt(this._listeners)},t}(),en=(Xr=function(t,e){return(Xr=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(t,e)},function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function r(){this.constructor=t}Xr(t,e),t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)}),rn=function(t){function e(e){var r=t.call(this,e,!1)||this;return U.addEventListener("hashchange",r._listener,!1),r}return en(e,t),e.prototype._get=function(){return Yt(this._location.hash)},e.prototype._set=function(t,e,r,n){this._location.hash=r},e.prototype.dispose=function(e){t.prototype.dispose.call(this,e),U.removeEventListener("hashchange",this._listener)},e}(tn),nn=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){if("function"!=typeof r&&null!==r)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),on=function(t){function e(e){return t.call(this,e,!0)||this}return nn(e,t),e.prototype._get=function(){return this._url},e.prototype._set=function(t,e,r,n){this._url=r},e}(tn),an=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){if("function"!=typeof r&&null!==r)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),un=function(t){function e(e){var r=t.call(this,e,!0)||this;return r._config=e.urlService.config,U.addEventListener("popstate",r._listener,!1),r}return an(e,t),e.prototype._getBasePrefix=function(){return Wt(this._config.baseHref())},e.prototype._get=function(){var t=this._location,e=t.pathname,r=t.hash,n=t.search;n=Qt(n)[1],r=Jt(r)[1];var i=this._getBasePrefix(),o=e===this._config.baseHref(),a=e.substr(0,i.length)===i;return(e=o?"/":a?e.substring(i.length):e)+(n?"?"+n:"")+(r?"#"+r:"")},e.prototype._set=function(t,e,r,n){var i=this._getBasePrefix(),o=r&&"/"!==r[0]?"/":"",a=""===r||"/"===r?this._config.baseHref():i+o+r;n?this._history.replaceState(t,e,a):this._history.pushState(t,e,a)},e.prototype.dispose=function(e){t.prototype.dispose.call(this,e),U.removeEventListener("popstate",this._listener)},e}(tn),sn=function(){var t=this;this.dispose=W,this._baseHref="",this._port=80,this._protocol="http",this._host="localhost",this._hashPrefix="",this.port=function(){return t._port},this.protocol=function(){return t._protocol},this.host=function(){return t._host},this.baseHref=function(){return t._baseHref},this.html5Mode=function(){return!1},this.hashPrefix=function(e){return R(e)?t._hashPrefix=e:t._hashPrefix}},cn=function(){function t(t,e){void 0===e&&(e=!1),this._isHtml5=e,this._baseHref=void 0,this._hashPrefix=""}return t.prototype.port=function(){return location.port?Number(location.port):"https"===this.protocol()?443:80},t.prototype.protocol=function(){return location.protocol.replace(/:/g,"")},t.prototype.host=function(){return location.hostname},t.prototype.html5Mode=function(){return this._isHtml5},t.prototype.hashPrefix=function(t){return R(t)?this._hashPrefix=t:this._hashPrefix},t.prototype.baseHref=function(t){return R(t)&&(this._baseHref=t),$(this._baseHref)&&(this._baseHref=this.getBaseHref()),this._baseHref},t.prototype.getBaseHref=function(){var t=document.getElementsByTagName("base")[0];return t&&t.href?t.href.replace(/^([^/:]*:)?\/\/[^/]*/,""):this._isHtml5?"/":location.pathname||"/"},t.prototype.dispose=function(){},t}();function fn(t){return D.$injector=Wr,D.$q=Mr,{name:"vanilla.services",$q:Mr,$injector:Wr,dispose:function(){return null}}}var ln=Zr("vanilla.hashBangLocation",!1,rn,cn),hn=Zr("vanilla.pushStateLocation",!0,un,cn),pn=Zr("vanilla.memoryLocation",!1,on,sn),vn=function(){function t(){}return t.prototype.dispose=function(t){},t}(),dn=Object.freeze({__proto__:null,root:U,fromJson:F,toJson:L,forEach:M,extend:B,equals:G,identity:z,noop:W,createProxyFunctions:J,inherit:Q,inArray:K,_inArray:Y,removeFrom:Z,_removeFrom:X,pushTo:tt,_pushTo:et,deregAll:rt,defaults:nt,mergeR:it,ancestors:ot,pick:at,omit:ut,pluck:st,filter:ct,find:ft,mapObj:lt,map:ht,values:pt,allTrueR:vt,anyTrueR:dt,unnestR:mt,flattenR:yt,pushR:gt,uniqR:wt,unnest:_t,flatten:St,assertPredicate:bt,assertMap:$t,assertFn:Rt,pairs:Et,arrayTuples:Ct,applyPairs:Pt,tail:Tt,copy:kt,_extend:Ot,silenceUncaughtInPromise:Vt,silentRejection:It,makeStub:A,services:D,Glob:Ht,curry:o,compose:a,pipe:u,prop:s,propEq:c,parse:f,not:l,and:h,or:p,all:v,any:d,is:m,eq:y,val:g,invoke:w,pattern:_,isUndefined:$,isDefined:R,isNull:E,isNullOrUndefined:C,isFunction:P,isNumber:T,isString:k,isObject:O,isArray:x,isDate:j,isRegExp:V,isInjectable:I,isPromise:H,Queue:At,maxLength:Ut,padString:Nt,kebobString:Ft,functionToString:Lt,fnToString:Mt,stringify:Bt,beforeAfterSubstr:Gt,hostRegex:zt,stripLastPathElement:Wt,splitHash:Jt,splitQuery:Qt,splitEqual:Kt,trimHashVal:Yt,splitOnDelim:Zt,joinNeighborsR:Xt,get Category(){return t.Category},Trace:se,trace:ce,get DefType(){return t.DefType},Param:me,ParamTypes:ye,StateParams:ge,ParamType:fe,PathNode:we,PathUtils:Se,resolvePolicies:be,defaultResolvePolicy:$e,Resolvable:Re,NATIVE_INJECTOR_TOKEN:"Native Injector",ResolveContext:Te,resolvablesBuilder:De,StateBuilder:Ne,StateObject:Fe,StateMatcher:Le,StateQueueManager:Me,StateRegistry:Be,StateService:Lr,TargetState:_e,get TransitionHookPhase(){return t.TransitionHookPhase},get TransitionHookScope(){return t.TransitionHookScope},HookBuilder:Ke,matchState:We,RegisteredHook:Je,makeEvent:Qe,get RejectType(){return t.RejectType},Rejection:qt,Transition:Ze,TransitionHook:ze,TransitionEventType:Dr,defaultTransOpts:Nr,TransitionService:Fr,UrlRules:pr,UrlConfig:vr,UrlMatcher:rr,ParamFactory:ir,UrlMatcherFactory:or,UrlRouter:cr,UrlRuleFactory:ar,BaseUrlRule:ur,UrlService:dr,ViewService:fr,UIRouterGlobals:lr,UIRouter:wr,$q:Mr,$injector:Wr,BaseLocationServices:tn,HashLocationService:rn,MemoryLocationService:on,PushStateLocationService:un,MemoryLocationConfig:sn,BrowserLocationConfig:cn,keyValsToObjectR:Jr,getParams:Qr,parseUrl:Kr,buildUrl:Yr,locationPluginFactory:Zr,servicesPlugin:fn,hashLocationPlugin:ln,pushStateLocationPlugin:hn,memoryLocationPlugin:pn,UIRouterPluginBase:vn});function mn(){var t=null;return function(e,r){return t=t||D.$injector.get("$templateFactory"),[new _n(e,r,t)]}}var yn=function(t,e){return t.reduce((function(t,r){return t||R(e[r])}),!1)};function gn(t){if(!t.parent)return{};var e=["component","bindings","componentProvider"],r=["templateProvider","templateUrl","template","notify","async"].concat(["controller","controllerProvider","controllerAs","resolveAs"]),n=e.concat(r);if(R(t.views)&&yn(n,t))throw new Error("State '"+t.name+"' has a 'views' object. It cannot also have \"view properties\" at the state level. Move the following properties into a view (in the 'views' object): "+n.filter((function(e){return R(t[e])})).join(", "));var i={},o=t.views||{$default:at(t,n)};return M(o,(function(n,o){if(o=o||"$default",k(n)&&(n={component:n}),n=B({},n),yn(e,n)&&yn(r,n))throw new Error("Cannot combine: "+e.join("|")+" with: "+r.join("|")+" in stateview: '"+o+"@"+t.name+"'");n.resolveAs=n.resolveAs||"$resolve",n.$type="ng1",n.$context=t,n.$name=o;var a=fr.normalizeUIViewTarget(n.$context,n.$name);n.$uiViewName=a.uiViewName,n.$uiViewContextAnchor=a.uiViewContextAnchor,i[o]=n})),i}var wn=0,_n=function(){function t(t,e,r){var n=this;this.path=t,this.viewDecl=e,this.factory=r,this.$id=wn++,this.loaded=!1,this.getTemplate=function(t,e){return n.component?n.factory.makeComponentTemplate(t,e,n.component,n.viewDecl.bindings):n.template}}return t.prototype.load=function(){var t=this,e=D.$q,r=new Te(this.path),n=this.path.reduce((function(t,e){return B(t,e.paramValues)}),{}),i={template:e.when(this.factory.fromConfig(this.viewDecl,n,r)),controller:e.when(this.getController(r))};return e.all(i).then((function(e){return ce.traceViewServiceEvent("Loaded",t),t.controller=e.controller,B(t,e.template),t}))},t.prototype.getController=function(t){var e=this.viewDecl.controllerProvider;if(!I(e))return this.viewDecl.controller;var r=D.$injector.annotate(e),n=x(e)?Tt(e):e;return new Re("",n,r).get(t)},t}(),Sn=function(){function t(){var t=this;this._useHttp=n.version.minor<3,this.$get=["$http","$templateCache","$injector",function(e,r,n){return t.$templateRequest=n.has&&n.has("$templateRequest")&&n.get("$templateRequest"),t.$http=e,t.$templateCache=r,t}]}return t.prototype.useHttpService=function(t){this._useHttp=t},t.prototype.fromConfig=function(t,e,r){var n=function(t){return D.$q.when(t).then((function(t){return{template:t}}))},i=function(t){return D.$q.when(t).then((function(t){return{component:t}}))};return R(t.template)?n(this.fromString(t.template,e)):R(t.templateUrl)?n(this.fromUrl(t.templateUrl,e)):R(t.templateProvider)?n(this.fromProvider(t.templateProvider,e,r)):R(t.component)?i(t.component):R(t.componentProvider)?i(this.fromComponentProvider(t.componentProvider,e,r)):n("")},t.prototype.fromString=function(t,e){return P(t)?t(e):t},t.prototype.fromUrl=function(t,e){return P(t)&&(t=t(e)),null==t?null:this._useHttp?this.$http.get(t,{cache:this.$templateCache,headers:{Accept:"text/html"}}).then((function(t){return t.data})):this.$templateRequest(t)},t.prototype.fromProvider=function(t,e,r){var n=D.$injector.annotate(t),i=x(t)?Tt(t):t;return new Re("",i,n).get(r)},t.prototype.fromComponentProvider=function(t,e,r){var n=D.$injector.annotate(t),i=x(t)?Tt(t):t;return new Re("",i,n).get(r)},t.prototype.makeComponentTemplate=function(t,e,r,i){i=i||{};var o=n.version.minor>=3?"::":"",a=function(t){var e=Ft(t);return/^(x|data)-/.exec(e)?"x-"+e:e},u=function(t){var e=D.$injector.get(t+"Directive");if(!e||!e.length)throw new Error("Unable to find component named '"+t+"'");return e.map(bn).reduce(mt,[])}(r).map((function(r){var n=r.name,u=r.type,s=a(n);if(t.attr(s)&&!i[n])return s+"='"+t.attr(s)+"'";var c=i[n]||n;if("@"===u)return s+"='{{"+o+"$resolve."+c+"}}'";if("&"===u){var f=e.getResolvable(c),l=f&&f.data,h=l&&D.$injector.annotate(l)||[];return s+"='$resolve."+c+(x(l)?"["+(l.length-1)+"]":"")+"("+h.join(",")+")'"}return s+"='"+o+"$resolve."+c+"'"})).join(" "),s=a(r);return"<"+s+" "+u+">"},t}();var bn=function(t){return O(t.bindToController)?$n(t.bindToController):$n(t.scope)},$n=function(t){return Object.keys(t||{}).map((function(e){return[e,/^([=<@&])[?]?(.*)/.exec(t[e])]})).filter((function(t){return R(t)&&x(t[1])})).map((function(t){return{name:t[1][2]||t[0],type:t[1][1]}}))},Rn=function(){function t(e,r){this.stateRegistry=e,this.stateService=r,J(g(t.prototype),this,g(this))}return t.prototype.decorator=function(t,e){return this.stateRegistry.decorator(t,e)||this},t.prototype.state=function(t,e){return O(t)?e=t:e.name=t,this.stateRegistry.register(e),this},t.prototype.onInvalid=function(t){return this.stateService.onInvalid(t)},t}(),En=function(t){return function(e){var r=e[t],n="onExit"===t?"from":"to";return r?function(t,e){var i=new Te(t.treeChanges(n)).subContext(e.$$state()),o=B(Ln(i),{$state$:e,$transition$:t});return D.$injector.invoke(r,this,o)}:void 0}},Cn=function(){function t(t){this._urlListeners=[],this.$locationProvider=t;var e=g(t);J(e,this,e,["hashPrefix"])}return t.monkeyPatchPathParameterType=function(t){var e=t.urlMatcherFactory.type("path");e.encode=function(t){return null!=t?t.toString().replace(/(~|\/)/g,(function(t){return{"~":"~~","/":"~2F"}[t]})):t},e.decode=function(t){return null!=t?t.toString().replace(/(~~|~2F)/g,(function(t){return{"~~":"~","~2F":"/"}[t]})):t}},t.prototype.dispose=function(){},t.prototype.onChange=function(t){var e=this;return this._urlListeners.push(t),function(){return Z(e._urlListeners)(t)}},t.prototype.html5Mode=function(){var t=this.$locationProvider.html5Mode();return(t=O(t)?t.enabled:t)&&this.$sniffer.history},t.prototype.baseHref=function(){return this._baseHref||(this._baseHref=this.$browser.baseHref()||this.$window.location.pathname)},t.prototype.url=function(t,e,r){return void 0===e&&(e=!1),R(t)&&this.$location.url(t),e&&this.$location.replace(),r&&this.$location.state(r),this.$location.url()},t.prototype._runtimeServices=function(t,e,r,n,i){var o=this;this.$location=e,this.$sniffer=r,this.$browser=n,this.$window=i,t.$on("$locationChangeSuccess",(function(t){return o._urlListeners.forEach((function(e){return e(t)}))}));var a=g(e);J(a,this,a,["replace","path","search","hash"]),J(a,this,a,["port","protocol","host"])},t}(),Pn=function(){function t(t){this.router=t}return t.injectableHandler=function(t,e){return function(r){return D.$injector.invoke(e,null,{$match:r,$stateParams:t.globals.params})}},t.prototype.$get=function(){var t=this.router.urlService;return this.router.urlRouter.update(!0),t.interceptDeferred||t.listen(),this.router.urlRouter},t.prototype.rule=function(t){var e=this;if(!P(t))throw new Error("'rule' must be a function");var r=new ur((function(){return t(D.$injector,e.router.locationService)}),z);return this.router.urlService.rules.rule(r),this},t.prototype.otherwise=function(t){var e=this,r=this.router.urlService.rules;if(k(t))r.otherwise(t);else{if(!P(t))throw new Error("'rule' must be a string or function");r.otherwise((function(){return t(D.$injector,e.router.locationService)}))}return this},t.prototype.when=function(e,r){return(x(r)||P(r))&&(r=t.injectableHandler(this.router,r)),this.router.urlService.rules.when(e,r),this},t.prototype.deferIntercept=function(t){this.router.urlService.deferIntercept(t)},t}();n.module("ui.router.angular1",[]);var Tn=n.module("ui.router.init",["ng"]),kn=n.module("ui.router.util",["ui.router.init"]),On=n.module("ui.router.router",["ui.router.util"]),xn=n.module("ui.router.state",["ui.router.router","ui.router.util","ui.router.angular1"]),jn=n.module("ui.router",["ui.router.init","ui.router.state","ui.router.angular1"]),Vn=(n.module("ui.router.compat",["ui.router"]),null);function In(t){(Vn=this.router=new wr).stateProvider=new Rn(Vn.stateRegistry,Vn.stateService),Vn.stateRegistry.decorator("views",gn),Vn.stateRegistry.decorator("onExit",En("onExit")),Vn.stateRegistry.decorator("onRetain",En("onRetain")),Vn.stateRegistry.decorator("onEnter",En("onEnter")),Vn.viewService._pluginapi._viewConfigFactory("ng1",mn()),Vn.urlService.config._decodeParams=!1;var e=Vn.locationService=Vn.locationConfig=new Cn(t);function r(t,r,n,i,o,a,u){return e._runtimeServices(o,t,i,r,n),delete Vn.router,delete Vn.$get,Vn}return Cn.monkeyPatchPathParameterType(Vn),Vn.router=Vn,Vn.$get=r,r.$inject=["$location","$browser","$window","$sniffer","$rootScope","$http","$templateCache"],Vn}In.$inject=["$locationProvider"];var Hn=function(t){return["$uiRouterProvider",function(e){var r=e.router[t];return r.$get=function(){return r},r}]};function An(t,e,r){if(D.$injector=t,D.$q=e,!Object.prototype.hasOwnProperty.call(t,"strictDi"))try{t.invoke((function(t){}))}catch(e){t.strictDi=!!/strict mode/.exec(e&&e.toString())}r.stateRegistry.get().map((function(t){return t.$$state().resolvables})).reduce(mt,[]).filter((function(t){return"deferred"===t.deps})).forEach((function(e){return e.deps=t.annotate(e.resolveFn,t.strictDi)}))}An.$inject=["$injector","$q","$uiRouter"];function Dn(t){t.$watch((function(){ce.approximateDigests++}))}Dn.$inject=["$rootScope"],Tn.provider("$uiRouter",In),On.provider("$urlRouter",["$uiRouterProvider",function(t){return t.urlRouterProvider=new Pn(t)}]),kn.provider("$urlService",Hn("urlService")),kn.provider("$urlMatcherFactory",["$uiRouterProvider",function(){return Vn.urlMatcherFactory}]),kn.provider("$templateFactory",(function(){return new Sn})),xn.provider("$stateRegistry",Hn("stateRegistry")),xn.provider("$uiRouterGlobals",Hn("globals")),xn.provider("$transitions",Hn("transitionService")),xn.provider("$state",["$uiRouterProvider",function(){return B(Vn.stateProvider,{$get:function(){return Vn.stateService}})}]),xn.factory("$stateParams",["$uiRouter",function(t){return t.globals.params}]),jn.factory("$view",(function(){return Vn.viewService})),jn.service("$trace",(function(){return ce})),jn.run(Dn),kn.run(["$urlMatcherFactory",function(t){}]),xn.run(["$state",function(t){}]),On.run(["$urlRouter",function(t){}]),Tn.run(An);var qn,Un,Nn,Fn,Ln=function(t){return t.getTokens().filter(k).map((function(e){var r=t.getResolvable(e);return[e,"NOWAIT"===t.getPolicy(r).async?r.promise:r.data]})).reduce(Pt,{})};function Mn(t){var e=t.match(/^\s*({[^}]*})\s*$/);e&&(t="("+e[1]+")");var r=t.replace(/\n/g," ").match(/^\s*([^(]*?)\s*(\((.*)\))?\s*$/);if(!r||4!==r.length)throw new Error("Invalid state ref '"+t+"'");return{state:r[1]||null,paramExpr:r[3]||null}}function Bn(t){var e=t.parent().inheritedData("$uiView"),r=f("$cfg.path")(e);return r?Tt(r).state.name:void 0}function Gn(t,e,r){var n=r.uiState||t.current.name,i=B(function(t,e){return{relative:Bn(t)||e.$current,inherit:!0,source:"sref"}}(e,t),r.uiStateOpts||{}),o=t.href(n,r.uiStateParams,i);return{uiState:n,uiStateParams:r.uiStateParams,uiStateOpts:i,href:o}}function zn(t){var e="[object SVGAnimatedString]"===Object.prototype.toString.call(t.prop("href")),r="FORM"===t[0].nodeName;return{attr:r?"action":e?"xlink:href":"href",isAnchor:"A"===t.prop("tagName").toUpperCase(),clickable:!r}}function Wn(t,e,r,n,i){return function(o){var a=o.which||o.button,u=i();if(!(a>1||o.ctrlKey||o.metaKey||o.shiftKey||o.altKey||t.attr("target"))){var s=r((function(){t.attr("disabled")||e.go(u.uiState,u.uiStateParams,u.uiStateOpts)}));o.preventDefault();var c=n.isAnchor&&!u.href?1:0;o.preventDefault=function(){c--<=0&&r.cancel(s)}}}}function Jn(t,e,r,n){var i;n&&(i=n.events),x(i)||(i=["click"]);for(var o=t.on?"on":"bind",a=0,u=i;a0)){var r=d(t,e,u);return m(),r}},e.$on("$destroy",(s=n.stateRegistry.onStatesChanged(p),c=n.transitionService.onStart({},h),f=e.$on("$stateChangeSuccess",m),function(){s(),c(),f()})),n.globals.transition&&h(n.globals.transition),m()}]}}],n.module("ui.router.state").directive("uiSref",qn).directive("uiSrefActive",Nn).directive("uiSrefActiveEq",Nn).directive("uiState",Un),Qn.$inject=["$state"],Kn.$inject=["$state"],n.module("ui.router.state").filter("isState",Qn).filter("includedByState",Kn),Fn=["$view","$animate","$uiViewScroll","$interpolate","$q",function(t,e,r,i,o){var a={$cfg:{viewDecl:{$context:t._pluginapi._rootViewContext()}},$uiView:{}},u={count:0,restrict:"ECA",terminal:!0,priority:400,transclude:"element",compile:function(s,c,l){return function(s,c,h){var p,v,d,m,y=h.onload||"",g=h.autoscroll,w={enter:function(t,r,i){n.version.minor>2?e.enter(t,null,r).then(i):e.enter(t,null,r,i)},leave:function(t,r){n.version.minor>2?e.leave(t).then(r):e.leave(t,r)}},_=c.inheritedData("$uiView")||a,S=i(h.uiView||h.name||"")(s)||"$default",b={$type:"ng1",id:u.count++,name:S,fqn:_.$uiView.fqn?_.$uiView.fqn+"."+S:S,config:null,configUpdated:function(t){if(t&&!(t instanceof _n))return;if(e=m,r=t,e===r)return;var e,r;ce.traceUIViewConfigUpdated(b,t&&t.viewDecl&&t.viewDecl.$context),m=t,E(t)},get creationContext(){var t=f("$cfg.viewDecl.$context")(_),e=f("$uiView.creationContext")(_);return t||e}};ce.traceUIViewEvent("Linking",b),c.data("$uiView",{$uiView:b}),E();var $=t.registerUIView(b);function E(t){var e=s.$new(),n=o.defer(),i=o.defer(),a={$cfg:t,$uiView:b},u={$animEnter:n.promise,$animLeave:i.promise,$$animLeave:i};e.$emit("$viewContentLoading",S);var f=l(e,(function(t){t.data("$uiViewAnim",u),t.data("$uiView",a),w.enter(t,c,(function(){n.resolve(),d&&d.$emit("$viewContentAnimationEnded"),(R(g)&&!g||s.$eval(g))&&r(t)})),function(){if(p&&(ce.traceUIViewEvent("Removing (previous) el",p.data("$uiView")),p.remove(),p=null),d&&(ce.traceUIViewEvent("Destroying scope",b),d.$destroy(),d=null),v){var t=v.data("$uiViewAnim");ce.traceUIViewEvent("Animate out",t),w.leave(v,(function(){t.$$animLeave.resolve(),p=null})),p=v,v=null}}()}));v=f,(d=e).$emit("$viewContentLoaded",t||m),d.$eval(y)}s.$on("$destroy",(function(){ce.traceUIViewEvent("Destroying/Unregistering",b),$()}))}}};return u}],Yn.$inject=["$compile","$controller","$transitions","$view","$q"];var Zn="function"==typeof n.module("ui.router").component,Xn=0;function ti(t,e,r,n,i){!P(r.$onInit)||(i.viewDecl.component||i.viewDecl.componentProvider)&&Zn||r.$onInit();var o=Tt(i.path).state.self,a={bind:r};if(P(r.uiOnParamsChanged)){var u=new Te(i.path).getResolvable("$transition$").data;n.$on("$destroy",e.onSuccess({},(function(t){if(t!==u&&-1===t.exiting().indexOf(o)){var e=t.params("to"),n=t.params("from"),i=function(t){return t.paramSchema},a=t.treeChanges("to").map(i).reduce(mt,[]),s=t.treeChanges("from").map(i).reduce(mt,[]),c=a.filter((function(t){var r=s.indexOf(t);return-1===r||!s[r].type.equals(e[t.id],n[t.id])}));if(c.length){var f=c.map((function(t){return t.id})),l=ct(e,(function(t,e){return-1!==f.indexOf(e)}));r.uiOnParamsChanged(l,t)}}}),a))}if(P(r.uiCanExit)){var s=Xn++,c=function(t){return!!t&&(t._uiCanExitIds&&!0===t._uiCanExitIds[s]||c(t.redirectedFrom()))},f={exiting:o.name};n.$on("$destroy",e.onBefore(f,(function(e){var n,i=e._uiCanExitIds=e._uiCanExitIds||{};return c(e)||(n=t.when(r.uiCanExit(e))).then((function(t){return i[s]=!1!==t})),n}),a))}}n.module("ui.router.state").directive("uiView",Fn),n.module("ui.router.state").directive("uiView",Yn),n.module("ui.router.state").provider("$uiViewScroll",(function(){var t=!1;this.useAnchorScroll=function(){t=!0},this.$get=["$anchorScroll","$timeout",function(e,r){return t?e:function(t){return r((function(){t[0].scrollIntoView()}),0,!1)}}]}));t.$injector=Wr,t.$q=Mr,t.BaseLocationServices=tn,t.BaseUrlRule=ur,t.BrowserLocationConfig=cn,t.Glob=Ht,t.HashLocationService=rn,t.HookBuilder=Ke,t.MemoryLocationConfig=sn,t.MemoryLocationService=on,t.NATIVE_INJECTOR_TOKEN="Native Injector",t.Ng1ViewConfig=_n,t.Param=me,t.ParamFactory=ir,t.ParamType=fe,t.ParamTypes=ye,t.PathNode=we,t.PathUtils=Se,t.PushStateLocationService=un,t.Queue=At,t.RegisteredHook=Je,t.Rejection=qt,t.Resolvable=Re,t.ResolveContext=Te,t.StateBuilder=Ne,t.StateMatcher=Le,t.StateObject=Fe,t.StateParams=ge,t.StateProvider=Rn,t.StateQueueManager=Me,t.StateRegistry=Be,t.StateService=Lr,t.TargetState=_e,t.Trace=se,t.Transition=Ze,t.TransitionEventType=Dr,t.TransitionHook=ze,t.TransitionService=Fr,t.UIRouter=wr,t.UIRouterGlobals=lr,t.UIRouterPluginBase=vn,t.UrlConfig=vr,t.UrlMatcher=rr,t.UrlMatcherFactory=or,t.UrlRouter=cr,t.UrlRouterProvider=Pn,t.UrlRuleFactory=ar,t.UrlRules=pr,t.UrlService=dr,t.ViewService=fr,t._extend=Ot,t._inArray=Y,t._pushTo=et,t._removeFrom=X,t.all=v,t.allTrueR=vt,t.ancestors=ot,t.and=h,t.any=d,t.anyTrueR=dt,t.applyPairs=Pt,t.arrayTuples=Ct,t.assertFn=Rt,t.assertMap=$t,t.assertPredicate=bt,t.beforeAfterSubstr=Gt,t.buildUrl=Yr,t.compose=a,t.copy=kt,t.core=dn,t.createProxyFunctions=J,t.curry=o,t.default="ui.router",t.defaultResolvePolicy=$e,t.defaultTransOpts=Nr,t.defaults=nt,t.deregAll=rt,t.eq=y,t.equals=G,t.extend=B,t.filter=ct,t.find=ft,t.flatten=St,t.flattenR=yt,t.fnToString=Mt,t.forEach=M,t.fromJson=F,t.functionToString=Lt,t.getLocals=Ln,t.getNg1ViewConfigFactory=mn,t.getParams=Qr,t.hashLocationPlugin=ln,t.hostRegex=zt,t.identity=z,t.inArray=K,t.inherit=Q,t.invoke=w,t.is=m,t.isArray=x,t.isDate=j,t.isDefined=R,t.isFunction=P,t.isInjectable=I,t.isNull=E,t.isNullOrUndefined=C,t.isNumber=T,t.isObject=O,t.isPromise=H,t.isRegExp=V,t.isString=k,t.isUndefined=$,t.joinNeighborsR=Xt,t.kebobString=Ft,t.keyValsToObjectR=Jr,t.locationPluginFactory=Zr,t.makeEvent=Qe,t.makeStub=A,t.map=ht,t.mapObj=lt,t.matchState=We,t.maxLength=Ut,t.memoryLocationPlugin=pn,t.mergeR=it,t.ng1ViewsBuilder=gn,t.noop=W,t.not=l,t.omit=ut,t.or=p,t.padString=Nt,t.pairs=Et,t.parse=f,t.parseUrl=Kr,t.pattern=_,t.pick=at,t.pipe=u,t.pluck=st,t.prop=s,t.propEq=c,t.pushR=gt,t.pushStateLocationPlugin=hn,t.pushTo=tt,t.removeFrom=Z,t.resolvablesBuilder=De,t.resolvePolicies=be,t.root=U,t.services=D,t.servicesPlugin=fn,t.silenceUncaughtInPromise=Vt,t.silentRejection=It,t.splitEqual=Kt,t.splitHash=Jt,t.splitOnDelim=Zt,t.splitQuery=Qt,t.stringify=Bt,t.stripLastPathElement=Wt,t.tail=Tt,t.toJson=L,t.trace=ce,t.trimHashVal=Yt,t.uniqR=wt,t.unnest=_t,t.unnestR=mt,t.val=g,t.values=pt,t.watchDigests=Dn,Object.defineProperty(t,"__esModule",{value:!0})})); //# sourceMappingURL=angular-ui-router.min.js.map diff --git a/UI/WebServerResources/js/vendor/angular-ui-router.min.js.map b/UI/WebServerResources/js/vendor/angular-ui-router.min.js.map index 94d63e4ae..06c5f4c23 100644 --- a/UI/WebServerResources/js/vendor/angular-ui-router.min.js.map +++ b/UI/WebServerResources/js/vendor/angular-ui-router.min.js.map @@ -82,9 +82,9 @@ ], "sourcesContent": [ "/** @publicapi @module ng1 */ /** */\nimport * as ng_from_import from 'angular';\n/** @hidden */ declare let angular;\n/** @hidden */ const ng_from_global = angular;\n/** @hidden */ export const ng = ng_from_import && ng_from_import.module ? ng_from_import : ng_from_global;\n", - "/**\n * Higher order functions\n *\n * These utility functions are exported, but are subject to change without notice.\n *\n * @packageDocumentation\n */\n\nimport { Predicate } from './common';\n/**\n * Returns a new function for [Partial Application](https://en.wikipedia.org/wiki/Partial_application) of the original function.\n *\n * Given a function with N parameters, returns a new function that supports partial application.\n * The new function accepts anywhere from 1 to N parameters. When that function is called with M parameters,\n * where M is less than N, it returns a new function that accepts the remaining parameters. It continues to\n * accept more parameters until all N parameters have been supplied.\n *\n *\n * This contrived example uses a partially applied function as an predicate, which returns true\n * if an object is found in both arrays.\n * @example\n * ```\n * // returns true if an object is in both of the two arrays\n * function inBoth(array1, array2, object) {\n * return array1.indexOf(object) !== -1 &&\n * array2.indexOf(object) !== 1;\n * }\n * let obj1, obj2, obj3, obj4, obj5, obj6, obj7\n * let foos = [obj1, obj3]\n * let bars = [obj3, obj4, obj5]\n *\n * // A curried \"copy\" of inBoth\n * let curriedInBoth = curry(inBoth);\n * // Partially apply both the array1 and array2\n * let inFoosAndBars = curriedInBoth(foos, bars);\n *\n * // Supply the final argument; since all arguments are\n * // supplied, the original inBoth function is then called.\n * let obj1InBoth = inFoosAndBars(obj1); // false\n *\n * // Use the inFoosAndBars as a predicate.\n * // Filter, on each iteration, supplies the final argument\n * let allObjs = [ obj1, obj2, obj3, obj4, obj5, obj6, obj7 ];\n * let foundInBoth = allObjs.filter(inFoosAndBars); // [ obj3 ]\n *\n * ```\n *\n * @param fn\n * @returns {*|function(): (*|any)}\n */\nexport function curry(fn: Function): Function {\n return function curried() {\n if (arguments.length >= fn.length) {\n return fn.apply(this, arguments);\n }\n const args = Array.prototype.slice.call(arguments);\n return curried.bind(this, ...args);\n };\n}\n\n/**\n * Given a varargs list of functions, returns a function that composes the argument functions, right-to-left\n * given: f(x), g(x), h(x)\n * let composed = compose(f,g,h)\n * then, composed is: f(g(h(x)))\n */\nexport function compose() {\n const args = arguments;\n const start = args.length - 1;\n return function () {\n let i = start,\n result = args[start].apply(this, arguments);\n while (i--) result = args[i].call(this, result);\n return result;\n };\n}\n\n/**\n * Given a varargs list of functions, returns a function that is composes the argument functions, left-to-right\n * given: f(x), g(x), h(x)\n * let piped = pipe(f,g,h);\n * then, piped is: h(g(f(x)))\n */\nexport function pipe(...funcs: Function[]): (obj: any) => any {\n return compose.apply(null, [].slice.call(arguments).reverse());\n}\n\n/**\n * Given a property name, returns a function that returns that property from an object\n * let obj = { foo: 1, name: \"blarg\" };\n * let getName = prop(\"name\");\n * getName(obj) === \"blarg\"\n */\nexport const prop = (name: string) => (obj: any) => obj && obj[name];\n\n/**\n * Given a property name and a value, returns a function that returns a boolean based on whether\n * the passed object has a property that matches the value\n * let obj = { foo: 1, name: \"blarg\" };\n * let getName = propEq(\"name\", \"blarg\");\n * getName(obj) === true\n */\nexport const propEq = curry((name: string, _val: any, obj: any) => obj && obj[name] === _val);\n\n/**\n * Given a dotted property name, returns a function that returns a nested property from an object, or undefined\n * let obj = { id: 1, nestedObj: { foo: 1, name: \"blarg\" }, };\n * let getName = prop(\"nestedObj.name\");\n * getName(obj) === \"blarg\"\n * let propNotFound = prop(\"this.property.doesnt.exist\");\n * propNotFound(obj) === undefined\n */\nexport const parse = (name: string) => pipe.apply(null, name.split('.').map(prop));\n\n/**\n * Given a function that returns a truthy or falsey value, returns a\n * function that returns the opposite (falsey or truthy) value given the same inputs\n */\nexport const not: (fn: Predicate) => Predicate = (fn: Predicate) => (...args: any[]) =>\n !fn.apply(null, args);\n\n/**\n * Given two functions that return truthy or falsey values, returns a function that returns truthy\n * if both functions return truthy for the given arguments\n */\nexport function and(fn1: Predicate, fn2: Predicate): Predicate {\n return (...args: any[]) => fn1.apply(null, args) && fn2.apply(null, args);\n}\n\n/**\n * Given two functions that return truthy or falsey values, returns a function that returns truthy\n * if at least one of the functions returns truthy for the given arguments\n */\nexport function or(fn1: Predicate, fn2: Predicate): Predicate {\n return (...args: any[]) => fn1.apply(null, args) || fn2.apply(null, args);\n}\n\n/**\n * Check if all the elements of an array match a predicate function\n *\n * @param fn1 a predicate function `fn1`\n * @returns a function which takes an array and returns true if `fn1` is true for all elements of the array\n */\nexport const all = (fn1: Predicate) => (arr: any[]) => arr.reduce((b, x) => b && !!fn1(x), true) as boolean;\n\n// tslint:disable-next-line:variable-name\nexport const any = (fn1: Predicate) => (arr: any[]) => arr.reduce((b, x) => b || !!fn1(x), false) as boolean;\n\n/** Given a class, returns a Predicate function that returns true if the object is of that class */\nexport const is = (ctor: { new (...args): T }) => (obj: any): obj is T =>\n (obj != null && obj.constructor === ctor) || obj instanceof ctor;\n\n/** Given a value, returns a Predicate function that returns true if another value is === equal to the original value */\nexport const eq: (comp: any) => Predicate = (value: any) => (other: any) => value === other;\n\n/** Given a value, returns a function which returns the value */\nexport const val = (v: T) => () => v;\n\nexport function invoke(fnName: string): Function;\nexport function invoke(fnName: string, args: any[]): Function;\nexport function invoke(fnName: string, args?: any[]): Function {\n return (obj: any) => obj[fnName].apply(obj, args);\n}\n\n/**\n * Sorta like Pattern Matching (a functional programming conditional construct)\n *\n * See http://c2.com/cgi/wiki?PatternMatching\n *\n * This is a conditional construct which allows a series of predicates and output functions\n * to be checked and then applied. Each predicate receives the input. If the predicate\n * returns truthy, then its matching output function (mapping function) is provided with\n * the input and, then the result is returned.\n *\n * Each combination (2-tuple) of predicate + output function should be placed in an array\n * of size 2: [ predicate, mapFn ]\n *\n * These 2-tuples should be put in an outer array.\n *\n * @example\n * ```\n *\n * // Here's a 2-tuple where the first element is the isString predicate\n * // and the second element is a function that returns a description of the input\n * let firstTuple = [ angular.isString, (input) => `Heres your string ${input}` ];\n *\n * // Second tuple: predicate \"isNumber\", mapfn returns a description\n * let secondTuple = [ angular.isNumber, (input) => `(${input}) That's a number!` ];\n *\n * let third = [ (input) => input === null, (input) => `Oh, null...` ];\n *\n * let fourth = [ (input) => input === undefined, (input) => `notdefined` ];\n *\n * let descriptionOf = pattern([ firstTuple, secondTuple, third, fourth ]);\n *\n * console.log(descriptionOf(undefined)); // 'notdefined'\n * console.log(descriptionOf(55)); // '(55) That's a number!'\n * console.log(descriptionOf(\"foo\")); // 'Here's your string foo'\n * ```\n *\n * @param struct A 2D array. Each element of the array should be an array, a 2-tuple,\n * with a Predicate and a mapping/output function\n * @returns {function(any): *}\n */\nexport function pattern(struct: Function[][]): Function {\n return function (x: any) {\n for (let i = 0; i < struct.length; i++) {\n if (struct[i][0](x)) return struct[i][1](x);\n }\n };\n}\n", + "/**\n * Higher order functions\n *\n * These utility functions are exported, but are subject to change without notice.\n *\n * @packageDocumentation\n */\n\nimport { Predicate } from './common';\n/**\n * Returns a new function for [Partial Application](https://en.wikipedia.org/wiki/Partial_application) of the original function.\n *\n * Given a function with N parameters, returns a new function that supports partial application.\n * The new function accepts anywhere from 1 to N parameters. When that function is called with M parameters,\n * where M is less than N, it returns a new function that accepts the remaining parameters. It continues to\n * accept more parameters until all N parameters have been supplied.\n *\n *\n * This contrived example uses a partially applied function as an predicate, which returns true\n * if an object is found in both arrays.\n * @example\n * ```\n * // returns true if an object is in both of the two arrays\n * function inBoth(array1, array2, object) {\n * return array1.indexOf(object) !== -1 &&\n * array2.indexOf(object) !== 1;\n * }\n * let obj1, obj2, obj3, obj4, obj5, obj6, obj7\n * let foos = [obj1, obj3]\n * let bars = [obj3, obj4, obj5]\n *\n * // A curried \"copy\" of inBoth\n * let curriedInBoth = curry(inBoth);\n * // Partially apply both the array1 and array2\n * let inFoosAndBars = curriedInBoth(foos, bars);\n *\n * // Supply the final argument; since all arguments are\n * // supplied, the original inBoth function is then called.\n * let obj1InBoth = inFoosAndBars(obj1); // false\n *\n * // Use the inFoosAndBars as a predicate.\n * // Filter, on each iteration, supplies the final argument\n * let allObjs = [ obj1, obj2, obj3, obj4, obj5, obj6, obj7 ];\n * let foundInBoth = allObjs.filter(inFoosAndBars); // [ obj3 ]\n *\n * ```\n *\n * @param fn\n * @returns {*|function(): (*|any)}\n */\nexport function curry(fn: Function): Function {\n return function curried() {\n if (arguments.length >= fn.length) {\n return fn.apply(this, arguments);\n }\n const args = Array.prototype.slice.call(arguments);\n return curried.bind(this, ...args);\n };\n}\n\n/**\n * Given a varargs list of functions, returns a function that composes the argument functions, right-to-left\n * given: f(x), g(x), h(x)\n * let composed = compose(f,g,h)\n * then, composed is: f(g(h(x)))\n */\nexport function compose() {\n const args = arguments;\n const start = args.length - 1;\n return function () {\n let i = start,\n result = args[start].apply(this, arguments);\n while (i--) result = args[i].call(this, result);\n return result;\n };\n}\n\n/**\n * Given a varargs list of functions, returns a function that is composes the argument functions, left-to-right\n * given: f(x), g(x), h(x)\n * let piped = pipe(f,g,h);\n * then, piped is: h(g(f(x)))\n */\nexport function pipe(...funcs: Function[]): (obj: any) => any {\n return compose.apply(null, [].slice.call(arguments).reverse());\n}\n\n/**\n * Given a property name, returns a function that returns that property from an object\n * let obj = { foo: 1, name: \"blarg\" };\n * let getName = prop(\"name\");\n * getName(obj) === \"blarg\"\n */\nexport const prop = (name: string) => (obj: any) => obj && obj[name];\n\n/**\n * Given a property name and a value, returns a function that returns a boolean based on whether\n * the passed object has a property that matches the value\n * let obj = { foo: 1, name: \"blarg\" };\n * let getName = propEq(\"name\", \"blarg\");\n * getName(obj) === true\n */\nexport const propEq = curry((name: string, _val: any, obj: any) => obj && obj[name] === _val);\n\n/**\n * Given a dotted property name, returns a function that returns a nested property from an object, or undefined\n * let obj = { id: 1, nestedObj: { foo: 1, name: \"blarg\" }, };\n * let getName = prop(\"nestedObj.name\");\n * getName(obj) === \"blarg\"\n * let propNotFound = prop(\"this.property.doesnt.exist\");\n * propNotFound(obj) === undefined\n */\nexport const parse = (name: string) => pipe.apply(null, name.split('.').map(prop));\n\n/**\n * Given a function that returns a truthy or falsey value, returns a\n * function that returns the opposite (falsey or truthy) value given the same inputs\n */\nexport const not: (fn: Predicate) => Predicate =\n (fn: Predicate) =>\n (...args: any[]) =>\n !fn.apply(null, args);\n\n/**\n * Given two functions that return truthy or falsey values, returns a function that returns truthy\n * if both functions return truthy for the given arguments\n */\nexport function and(fn1: Predicate, fn2: Predicate): Predicate {\n return (...args: any[]) => fn1.apply(null, args) && fn2.apply(null, args);\n}\n\n/**\n * Given two functions that return truthy or falsey values, returns a function that returns truthy\n * if at least one of the functions returns truthy for the given arguments\n */\nexport function or(fn1: Predicate, fn2: Predicate): Predicate {\n return (...args: any[]) => fn1.apply(null, args) || fn2.apply(null, args);\n}\n\n/**\n * Check if all the elements of an array match a predicate function\n *\n * @param fn1 a predicate function `fn1`\n * @returns a function which takes an array and returns true if `fn1` is true for all elements of the array\n */\nexport const all = (fn1: Predicate) => (arr: any[]) => arr.reduce((b, x) => b && !!fn1(x), true) as boolean;\n\n// tslint:disable-next-line:variable-name\nexport const any = (fn1: Predicate) => (arr: any[]) => arr.reduce((b, x) => b || !!fn1(x), false) as boolean;\n\n/** Given a class, returns a Predicate function that returns true if the object is of that class */\nexport const is =\n (ctor: { new (...args: any[]): T }) =>\n (obj: any): obj is T =>\n (obj != null && obj.constructor === ctor) || obj instanceof ctor;\n\n/** Given a value, returns a Predicate function that returns true if another value is === equal to the original value */\nexport const eq: (comp: any) => Predicate = (value: any) => (other: any) => value === other;\n\n/** Given a value, returns a function which returns the value */\nexport const val =\n (v: T) =>\n () =>\n v;\n\nexport function invoke(fnName: string): Function;\nexport function invoke(fnName: string, args: any[]): Function;\nexport function invoke(fnName: string, args?: any[]): Function {\n return (obj: any) => obj[fnName].apply(obj, args);\n}\n\n/**\n * Sorta like Pattern Matching (a functional programming conditional construct)\n *\n * See http://c2.com/cgi/wiki?PatternMatching\n *\n * This is a conditional construct which allows a series of predicates and output functions\n * to be checked and then applied. Each predicate receives the input. If the predicate\n * returns truthy, then its matching output function (mapping function) is provided with\n * the input and, then the result is returned.\n *\n * Each combination (2-tuple) of predicate + output function should be placed in an array\n * of size 2: [ predicate, mapFn ]\n *\n * These 2-tuples should be put in an outer array.\n *\n * @example\n * ```\n *\n * // Here's a 2-tuple where the first element is the isString predicate\n * // and the second element is a function that returns a description of the input\n * let firstTuple = [ angular.isString, (input) => `Heres your string ${input}` ];\n *\n * // Second tuple: predicate \"isNumber\", mapfn returns a description\n * let secondTuple = [ angular.isNumber, (input) => `(${input}) That's a number!` ];\n *\n * let third = [ (input) => input === null, (input) => `Oh, null...` ];\n *\n * let fourth = [ (input) => input === undefined, (input) => `notdefined` ];\n *\n * let descriptionOf = pattern([ firstTuple, secondTuple, third, fourth ]);\n *\n * console.log(descriptionOf(undefined)); // 'notdefined'\n * console.log(descriptionOf(55)); // '(55) That's a number!'\n * console.log(descriptionOf(\"foo\")); // 'Here's your string foo'\n * ```\n *\n * @param struct A 2D array. Each element of the array should be an array, a 2-tuple,\n * with a Predicate and a mapping/output function\n * @returns {function(any): *}\n */\nexport function pattern(struct: Function[][]): Function {\n return function (x: any) {\n for (let i = 0; i < struct.length; i++) {\n if (struct[i][0](x)) return struct[i][1](x);\n }\n };\n}\n", "/**\n * Predicates\n *\n * These predicates return true/false based on the input.\n * Although these functions are exported, they are subject to change without notice.\n *\n * @packageDocumentation\n */\nimport { and, not, pipe, prop, or } from './hof';\nimport { Predicate } from './common'; // has or is using\nimport { StateObject } from '../state/stateObject';\n\nconst toStr = Object.prototype.toString;\nconst tis = (t: string) => (x: any) => typeof x === t;\nexport const isUndefined = tis('undefined');\nexport const isDefined = not(isUndefined);\nexport const isNull = (o: any) => o === null;\nexport const isNullOrUndefined = or(isNull, isUndefined);\nexport const isFunction: (x: any) => x is Function = tis('function');\nexport const isNumber: (x: any) => x is number = tis('number');\nexport const isString = <(x: any) => x is string>tis('string');\nexport const isObject = (x: any) => x !== null && typeof x === 'object';\nexport const isArray = Array.isArray;\nexport const isDate: (x: any) => x is Date = ((x: any) => toStr.call(x) === '[object Date]');\nexport const isRegExp: (x: any) => x is RegExp = ((x: any) => toStr.call(x) === '[object RegExp]');\n\n/**\n * Predicate which checks if a value is injectable\n *\n * A value is \"injectable\" if it is a function, or if it is an ng1 array-notation-style array\n * where all the elements in the array are Strings, except the last one, which is a Function\n */\nexport function isInjectable(val: any) {\n if (isArray(val) && val.length) {\n const head = val.slice(0, -1),\n tail = val.slice(-1);\n return !(head.filter(not(isString)).length || tail.filter(not(isFunction)).length);\n }\n return isFunction(val);\n}\n\n/**\n * Predicate which checks if a value looks like a Promise\n *\n * It is probably a Promise if it's an object, and it has a `then` property which is a Function\n */\nexport const isPromise = <(x: any) => x is Promise>and(isObject, pipe(prop('then'), isFunction));\n", - "/**\n * This module is a stub for core services such as Dependency Injection or Browser Location.\n * Core services may be implemented by a specific framework, such as ng1 or ng2, or be pure javascript.\n *\n * @packageDocumentation\n */\nimport { IInjectable, Obj } from './common';\nimport { Disposable } from '../interface';\nimport { UrlConfig, UrlService } from '../url';\n\nconst noImpl = (fnname: string) => () => {\n throw new Error(`No implementation for ${fnname}. The framework specific code did not implement this method.`);\n};\n\nexport const makeStub = (service: string, methods: (keyof T)[]): T =>\n methods.reduce((acc, key) => ((acc[key] = noImpl(`${service}.${key}()`) as any), acc), {} as T);\n\nconst services: CoreServices = {\n $q: undefined,\n $injector: undefined,\n};\n\nexport interface $QLikeDeferred {\n resolve: (val?: any) => void;\n reject: (reason?: any) => void;\n promise: Promise;\n}\n\nexport interface $QLike {\n when(value?: T | PromiseLike): Promise;\n reject(reason: any): Promise;\n defer(): $QLikeDeferred;\n all(promises: { [key: string]: Promise }): Promise;\n all(promises: Promise[]): Promise;\n}\n\nexport interface $InjectorLike {\n strictDi?: boolean;\n get(token: any): any;\n get(token: any): T;\n has(token: any): boolean;\n invoke(fn: IInjectable, context?: any, locals?: Obj): any;\n annotate(fn: IInjectable, strictDi?: boolean): any[];\n}\n\nexport interface CoreServices {\n $q: $QLike;\n $injector: $InjectorLike;\n}\n\n/**\n * Handles low level URL read/write\n *\n * This service handles low level reads and updates of the URL and listens for url changes.\n * Implementors should pass these through to the underlying URL mechanism.\n * The underlying URL mechanism might be browser APIs, framework APIs, or some 3rd party URL management library.\n *\n * UI-Router Core includes three basic implementations:\n *\n * - [[PushStateLocationService]]\n * - [[HashLocationService]]\n * - [[MemoryLocationService]]\n */\nexport interface LocationServices extends Disposable {\n /** See: [[UrlService.url]] */ url: UrlService['url'];\n /** See: [[UrlService.path]] */ path: UrlService['path'];\n /** See: [[UrlService.search]] */ search: UrlService['search'];\n /** See: [[UrlService.hash]] */ hash: UrlService['hash'];\n /** See: [[UrlService.onChange]] */ onChange: UrlService['onChange'];\n}\n\n/**\n * Returns low level URL configuration and metadata\n *\n * This service returns information about the location configuration.\n * This service is primarily used when building URLs (e.g., for `hrefs`)\n *\n * Implementors should pass these through to the underlying URL APIs.\n * The underlying URL mechanism might be browser APIs, framework APIs, or some 3rd party URL management library.\n *\n * UI-Router Core includes two basic implementations:\n *\n * - [[BrowserLocationConfig]]\n * - [[MemoryLocationConfig]]\n */\nexport interface LocationConfig extends Disposable {\n /** See: [[UrlConfig.port]] */ port: UrlConfig['port'];\n /** See: [[UrlConfig.protocol]] */ protocol: UrlConfig['protocol'];\n /** See: [[UrlConfig.host]] */ host: UrlConfig['host'];\n /** See: [[UrlConfig.baseHref]] */ baseHref: UrlConfig['baseHref'];\n /** See: [[UrlConfig.html5Mode]] */ html5Mode: UrlConfig['html5Mode'];\n /** See: [[UrlConfig.hashPrefix]] */ hashPrefix: UrlConfig['hashPrefix'];\n}\n\nexport { services };\n", + "/**\n * This module is a stub for core services such as Dependency Injection or Browser Location.\n * Core services may be implemented by a specific framework, such as ng1 or ng2, or be pure javascript.\n *\n * @packageDocumentation\n */\nimport { IInjectable, Obj } from './common';\nimport { Disposable } from '../interface';\nimport { UrlConfig, UrlService } from '../url';\n\nconst noImpl = (fnname: string) => () => {\n throw new Error(`No implementation for ${fnname}. The framework specific code did not implement this method.`);\n};\n\nexport const makeStub = (service: string, methods: (keyof T)[]): T =>\n methods.reduce((acc, key) => ((acc[key] = noImpl(`${service}.${String(key)}()`) as any), acc), {} as T);\n\nconst services: CoreServices = {\n $q: undefined,\n $injector: undefined,\n};\n\nexport interface $QLikeDeferred {\n resolve: (val?: any) => void;\n reject: (reason?: any) => void;\n promise: Promise;\n}\n\nexport interface $QLike {\n when(value?: T | PromiseLike): Promise;\n reject(reason: any): Promise;\n defer(): $QLikeDeferred;\n all(promises: { [key: string]: Promise }): Promise;\n all(promises: Promise[]): Promise;\n}\n\nexport interface $InjectorLike {\n strictDi?: boolean;\n get(token: any): any;\n get(token: any): T;\n has(token: any): boolean;\n invoke(fn: IInjectable, context?: any, locals?: Obj): any;\n annotate(fn: IInjectable, strictDi?: boolean): any[];\n}\n\nexport interface CoreServices {\n $q: $QLike;\n $injector: $InjectorLike;\n}\n\n/**\n * Handles low level URL read/write\n *\n * This service handles low level reads and updates of the URL and listens for url changes.\n * Implementors should pass these through to the underlying URL mechanism.\n * The underlying URL mechanism might be browser APIs, framework APIs, or some 3rd party URL management library.\n *\n * UI-Router Core includes three basic implementations:\n *\n * - [[PushStateLocationService]]\n * - [[HashLocationService]]\n * - [[MemoryLocationService]]\n */\nexport interface LocationServices extends Disposable {\n /** See: [[UrlService.url]] */ url: UrlService['url'];\n /** See: [[UrlService.path]] */ path: UrlService['path'];\n /** See: [[UrlService.search]] */ search: UrlService['search'];\n /** See: [[UrlService.hash]] */ hash: UrlService['hash'];\n /** See: [[UrlService.onChange]] */ onChange: UrlService['onChange'];\n}\n\n/**\n * Returns low level URL configuration and metadata\n *\n * This service returns information about the location configuration.\n * This service is primarily used when building URLs (e.g., for `hrefs`)\n *\n * Implementors should pass these through to the underlying URL APIs.\n * The underlying URL mechanism might be browser APIs, framework APIs, or some 3rd party URL management library.\n *\n * UI-Router Core includes two basic implementations:\n *\n * - [[BrowserLocationConfig]]\n * - [[MemoryLocationConfig]]\n */\nexport interface LocationConfig extends Disposable {\n /** See: [[UrlConfig.port]] */ port: UrlConfig['port'];\n /** See: [[UrlConfig.protocol]] */ protocol: UrlConfig['protocol'];\n /** See: [[UrlConfig.host]] */ host: UrlConfig['host'];\n /** See: [[UrlConfig.baseHref]] */ baseHref: UrlConfig['baseHref'];\n /** See: [[UrlConfig.html5Mode]] */ html5Mode: UrlConfig['html5Mode'];\n /** See: [[UrlConfig.hashPrefix]] */ hashPrefix: UrlConfig['hashPrefix'];\n}\n\nexport { services };\n", "/**\n * Random utility functions used in the UI-Router code\n *\n * These functions are exported, but are subject to change without notice.\n *\n * @packageDocumentation\n * @preferred\n */\nimport { isFunction, isString, isArray, isRegExp, isDate } from './predicates';\nimport { all, any, prop, curry, not } from './hof';\nimport { services } from './coreservices';\nimport { StateObject } from '../state/stateObject';\n\ndeclare const global;\nexport const root: any =\n (typeof self === 'object' && self.self === self && self) ||\n (typeof global === 'object' && global.global === global && global) ||\n this;\nconst angular = root.angular || {};\n\nexport const fromJson = angular.fromJson || JSON.parse.bind(JSON);\nexport const toJson = angular.toJson || JSON.stringify.bind(JSON);\nexport const forEach = angular.forEach || _forEach;\nexport const extend = Object.assign || _extend;\nexport const equals = angular.equals || _equals;\nexport function identity(x: any) {\n return x;\n}\nexport function noop(): any {}\n\nexport type Mapper = (x: X, key?: string | number) => T;\nexport interface TypedMap {\n [key: string]: T;\n}\nexport type Predicate = (x?: X) => boolean;\nexport type PredicateBinary = (x?: X, y?: Y) => boolean;\n/**\n * An ng1-style injectable\n *\n * This could be a (non-minified) function such as:\n * ```js\n * function injectableFunction(SomeDependency) {\n *\n * }\n * ```\n *\n * or an explicitly annotated function (minify safe)\n * ```js\n * injectableFunction.$inject = [ 'SomeDependency' ];\n * function injectableFunction(SomeDependency) {\n *\n * }\n * ```\n *\n * or an array style annotated function (minify safe)\n * ```js\n * ['SomeDependency', function injectableFunction(SomeDependency) {\n *\n * }];\n * ```\n */\nexport type IInjectable = Function | any[];\n\nexport interface Obj extends Object {\n [key: string]: any;\n}\n\n/**\n * Builds proxy functions on the `to` object which pass through to the `from` object.\n *\n * For each key in `fnNames`, creates a proxy function on the `to` object.\n * The proxy function calls the real function on the `from` object.\n *\n *\n * #### Example:\n * This example creates an new class instance whose functions are prebound to the new'd object.\n * ```js\n * class Foo {\n * constructor(data) {\n * // Binds all functions from Foo.prototype to 'this',\n * // then copies them to 'this'\n * bindFunctions(Foo.prototype, this, this);\n * this.data = data;\n * }\n *\n * log() {\n * console.log(this.data);\n * }\n * }\n *\n * let myFoo = new Foo([1,2,3]);\n * var logit = myFoo.log;\n * logit(); // logs [1, 2, 3] from the myFoo 'this' instance\n * ```\n *\n * #### Example:\n * This example creates a bound version of a service function, and copies it to another object\n * ```\n *\n * var SomeService = {\n * this.data = [3, 4, 5];\n * this.log = function() {\n * console.log(this.data);\n * }\n * }\n *\n * // Constructor fn\n * function OtherThing() {\n * // Binds all functions from SomeService to SomeService,\n * // then copies them to 'this'\n * bindFunctions(SomeService, this, SomeService);\n * }\n *\n * let myOtherThing = new OtherThing();\n * myOtherThing.log(); // logs [3, 4, 5] from SomeService's 'this'\n * ```\n *\n * @param source A function that returns the source object which contains the original functions to be bound\n * @param target A function that returns the target object which will receive the bound functions\n * @param bind A function that returns the object which the functions will be bound to\n * @param fnNames The function names which will be bound (Defaults to all the functions found on the 'from' object)\n * @param latebind If true, the binding of the function is delayed until the first time it's invoked\n */\nexport function createProxyFunctions(\n source: Function,\n target: Obj,\n bind: Function,\n fnNames?: string[],\n latebind = false\n): Obj {\n const bindFunction = (fnName) => source()[fnName].bind(bind());\n\n const makeLateRebindFn = (fnName) =>\n function lateRebindFunction() {\n target[fnName] = bindFunction(fnName);\n return target[fnName].apply(null, arguments);\n };\n\n fnNames = fnNames || Object.keys(source());\n\n return fnNames.reduce((acc, name) => {\n acc[name] = latebind ? makeLateRebindFn(name) : bindFunction(name);\n return acc;\n }, target);\n}\n\n/**\n * prototypal inheritance helper.\n * Creates a new object which has `parent` object as its prototype, and then copies the properties from `extra` onto it\n */\nexport const inherit = (parent: Obj, extra?: Obj) => extend(Object.create(parent), extra);\n\n/** Given an array, returns true if the object is found in the array, (using indexOf) */\nexport const inArray: typeof _inArray = curry(_inArray) as any;\nexport function _inArray(array: any[], obj: any): boolean;\nexport function _inArray(array: any[]): (obj: any) => boolean;\nexport function _inArray(array, obj?): any {\n return array.indexOf(obj) !== -1;\n}\n\n/**\n * Given an array, and an item, if the item is found in the array, it removes it (in-place).\n * The same array is returned\n */\nexport const removeFrom: typeof _removeFrom = curry(_removeFrom) as any;\nexport function _removeFrom(array: T[], obj: T): T[];\nexport function _removeFrom(array: T[]): (obj: T) => T[];\nexport function _removeFrom(array, obj?) {\n const idx = array.indexOf(obj);\n if (idx >= 0) array.splice(idx, 1);\n return array;\n}\n\n/** pushes a values to an array and returns the value */\nexport const pushTo: typeof _pushTo = curry(_pushTo) as any;\nexport function _pushTo(arr: T[], val: T): T;\nexport function _pushTo(arr: T[]): (val: T) => T;\nexport function _pushTo(arr, val?): any {\n return arr.push(val), val;\n}\n\n/** Given an array of (deregistration) functions, calls all functions and removes each one from the source array */\nexport const deregAll = (functions: Function[]) =>\n functions.slice().forEach((fn) => {\n typeof fn === 'function' && fn();\n removeFrom(functions, fn);\n });\n/**\n * Applies a set of defaults to an options object. The options object is filtered\n * to only those properties of the objects in the defaultsList.\n * Earlier objects in the defaultsList take precedence when applying defaults.\n */\nexport function defaults(opts, ...defaultsList: Obj[]) {\n const defaultVals = extend({}, ...defaultsList.reverse());\n return extend(defaultVals, pick(opts || {}, Object.keys(defaultVals)));\n}\n\n/** Reduce function that merges each element of the list into a single object, using extend */\nexport const mergeR = (memo: Obj, item: Obj) => extend(memo, item);\n\n/**\n * Finds the common ancestor path between two states.\n *\n * @param {Object} first The first state.\n * @param {Object} second The second state.\n * @return {Array} Returns an array of state names in descending order, not including the root.\n */\nexport function ancestors(first: StateObject, second: StateObject) {\n const path: StateObject[] = [];\n\n // tslint:disable-next-line:forin\n for (const n in first.path) {\n if (first.path[n] !== second.path[n]) break;\n path.push(first.path[n]);\n }\n return path;\n}\n\n/**\n * Return a copy of the object only containing the whitelisted properties.\n *\n * #### Example:\n * ```\n * var foo = { a: 1, b: 2, c: 3 };\n * var ab = pick(foo, ['a', 'b']); // { a: 1, b: 2 }\n * ```\n * @param obj the source object\n * @param propNames an Array of strings, which are the whitelisted property names\n */\nexport function pick(obj: Obj, propNames: string[]): Obj {\n const objCopy = {};\n for (const _prop in obj) {\n if (propNames.indexOf(_prop) !== -1) {\n objCopy[_prop] = obj[_prop];\n }\n }\n return objCopy;\n}\n\n/**\n * Return a copy of the object omitting the blacklisted properties.\n *\n * @example\n * ```\n *\n * var foo = { a: 1, b: 2, c: 3 };\n * var ab = omit(foo, ['a', 'b']); // { c: 3 }\n * ```\n * @param obj the source object\n * @param propNames an Array of strings, which are the blacklisted property names\n */\nexport function omit(obj: Obj, propNames: string[]): Obj {\n return Object.keys(obj)\n .filter(not(inArray(propNames)))\n .reduce((acc, key) => ((acc[key] = obj[key]), acc), {});\n}\n\n/** Given an array of objects, maps each element to a named property of the element. */\nexport function pluck(collection: Obj[], propName: string): T[];\n/** Given an object, maps each property of the object to a named property of the property. */\nexport function pluck(collection: { [key: string]: any }, propName: string): { [key: string]: any };\n/**\n * Maps an array, or object to a property (by name)\n */\nexport function pluck(collection: any, propName: string): any {\n return map(collection, >prop(propName));\n}\n\n/** Given an array of objects, returns a new array containing only the elements which passed the callback predicate */\nexport function filter(collection: T[], callback: (t: T, key?: number) => boolean): T[];\n/** Given an object, returns a new object with only those properties that passed the callback predicate */\nexport function filter(collection: TypedMap, callback: (t: T, key?: string) => boolean): TypedMap;\n/** Filters an Array or an Object's properties based on a predicate */\nexport function filter(collection: any, callback: Function): T {\n const arr = isArray(collection),\n result: any = arr ? [] : {};\n const accept = arr ? (x) => result.push(x) : (x, key) => (result[key] = x);\n forEach(collection, function (item, i) {\n if (callback(item, i)) accept(item, i);\n });\n return result;\n}\n\n/** Given an object, return the first property of that object which passed the callback predicate */\nexport function find(collection: TypedMap, callback: Predicate): T;\n/** Given an array of objects, returns the first object which passed the callback predicate */\nexport function find(collection: T[], callback: Predicate): T;\n/** Finds an object from an array, or a property of an object, that matches a predicate */\nexport function find(collection: any, callback: any) {\n let result;\n\n forEach(collection, function (item, i) {\n if (result) return;\n if (callback(item, i)) result = item;\n });\n\n return result;\n}\n\n/** Given an object, returns a new object, where each property is transformed by the callback function */\nexport let mapObj: (\n collection: { [key: string]: T },\n callback: Mapper,\n target?: typeof collection\n) => { [key: string]: U } = map;\n/** Given an array, returns a new array, where each element is transformed by the callback function */\nexport function map(collection: T[], callback: Mapper, target?: typeof collection): U[];\nexport function map(\n collection: { [key: string]: T },\n callback: Mapper,\n target?: typeof collection\n): { [key: string]: U };\n/** Maps an array or object properties using a callback function */\nexport function map(collection: any, callback: any, target: typeof collection): any {\n target = target || (isArray(collection) ? [] : {});\n forEach(collection, (item, i) => (target[i] = callback(item, i)));\n return target;\n}\n\n/**\n * Given an object, return its enumerable property values\n *\n * @example\n * ```\n *\n * let foo = { a: 1, b: 2, c: 3 }\n * let vals = values(foo); // [ 1, 2, 3 ]\n * ```\n */\nexport const values: (obj: TypedMap) => T[] = (obj: Obj) => Object.keys(obj).map((key) => obj[key]);\n\n/**\n * Reduce function that returns true if all of the values are truthy.\n *\n * @example\n * ```\n *\n * let vals = [ 1, true, {}, \"hello world\"];\n * vals.reduce(allTrueR, true); // true\n *\n * vals.push(0);\n * vals.reduce(allTrueR, true); // false\n * ```\n */\nexport const allTrueR = (memo: boolean, elem: any) => memo && elem;\n\n/**\n * Reduce function that returns true if any of the values are truthy.\n *\n * * @example\n * ```\n *\n * let vals = [ 0, null, undefined ];\n * vals.reduce(anyTrueR, true); // false\n *\n * vals.push(\"hello world\");\n * vals.reduce(anyTrueR, true); // true\n * ```\n */\nexport const anyTrueR = (memo: boolean, elem: any) => memo || elem;\n\n/**\n * Reduce function which un-nests a single level of arrays\n * @example\n * ```\n *\n * let input = [ [ \"a\", \"b\" ], [ \"c\", \"d\" ], [ [ \"double\", \"nested\" ] ] ];\n * input.reduce(unnestR, []) // [ \"a\", \"b\", \"c\", \"d\", [ \"double, \"nested\" ] ]\n * ```\n */\nexport const unnestR = (memo: any[], elem: any[]) => memo.concat(elem);\n\n/**\n * Reduce function which recursively un-nests all arrays\n *\n * @example\n * ```\n *\n * let input = [ [ \"a\", \"b\" ], [ \"c\", \"d\" ], [ [ \"double\", \"nested\" ] ] ];\n * input.reduce(unnestR, []) // [ \"a\", \"b\", \"c\", \"d\", \"double, \"nested\" ]\n * ```\n */\nexport const flattenR = (memo: any[], elem: any) =>\n isArray(elem) ? memo.concat(elem.reduce(flattenR, [])) : pushR(memo, elem);\n\n/**\n * Reduce function that pushes an object to an array, then returns the array.\n * Mostly just for [[flattenR]] and [[uniqR]]\n */\nexport function pushR(arr: any[], obj: any) {\n arr.push(obj);\n return arr;\n}\n\n/** Reduce function that filters out duplicates */\nexport const uniqR = (acc: T[], token: T): T[] => (inArray(acc, token) ? acc : pushR(acc, token));\n\n/**\n * Return a new array with a single level of arrays unnested.\n *\n * @example\n * ```\n *\n * let input = [ [ \"a\", \"b\" ], [ \"c\", \"d\" ], [ [ \"double\", \"nested\" ] ] ];\n * unnest(input) // [ \"a\", \"b\", \"c\", \"d\", [ \"double, \"nested\" ] ]\n * ```\n */\nexport const unnest = (arr: any[]) => arr.reduce(unnestR, []);\n/**\n * Return a completely flattened version of an array.\n *\n * @example\n * ```\n *\n * let input = [ [ \"a\", \"b\" ], [ \"c\", \"d\" ], [ [ \"double\", \"nested\" ] ] ];\n * flatten(input) // [ \"a\", \"b\", \"c\", \"d\", \"double, \"nested\" ]\n * ```\n */\nexport const flatten = (arr: any[]) => arr.reduce(flattenR, []);\n\n/**\n * Given a .filter Predicate, builds a .filter Predicate which throws an error if any elements do not pass.\n * @example\n * ```\n *\n * let isNumber = (obj) => typeof(obj) === 'number';\n * let allNumbers = [ 1, 2, 3, 4, 5 ];\n * allNumbers.filter(assertPredicate(isNumber)); //OK\n *\n * let oneString = [ 1, 2, 3, 4, \"5\" ];\n * oneString.filter(assertPredicate(isNumber, \"Not all numbers\")); // throws Error(\"\"Not all numbers\"\");\n * ```\n */\nexport const assertPredicate: (predicate: Predicate, errMsg: string | Function) => Predicate = assertFn;\n/**\n * Given a .map function, builds a .map function which throws an error if any mapped elements do not pass a truthyness test.\n * @example\n * ```\n *\n * var data = { foo: 1, bar: 2 };\n *\n * let keys = [ 'foo', 'bar' ]\n * let values = keys.map(assertMap(key => data[key], \"Key not found\"));\n * // values is [1, 2]\n *\n * let keys = [ 'foo', 'bar', 'baz' ]\n * let values = keys.map(assertMap(key => data[key], \"Key not found\"));\n * // throws Error(\"Key not found\")\n * ```\n */\nexport const assertMap: (mapFn: (t: T) => U, errMsg: string | Function) => (t: T) => U = assertFn;\nexport function assertFn(predicateOrMap: Function, errMsg: string | Function = 'assert failure'): any {\n return (obj) => {\n const result = predicateOrMap(obj);\n if (!result) {\n throw new Error(isFunction(errMsg) ? (errMsg)(obj) : errMsg);\n }\n return result;\n };\n}\n\n/**\n * Like _.pairs: Given an object, returns an array of key/value pairs\n *\n * @example\n * ```\n *\n * pairs({ foo: \"FOO\", bar: \"BAR }) // [ [ \"foo\", \"FOO\" ], [ \"bar\": \"BAR\" ] ]\n * ```\n */\nexport const pairs = (obj: Obj) => Object.keys(obj).map((key) => [key, obj[key]]);\n\n/**\n * Given two or more parallel arrays, returns an array of tuples where\n * each tuple is composed of [ a[i], b[i], ... z[i] ]\n *\n * @example\n * ```\n *\n * let foo = [ 0, 2, 4, 6 ];\n * let bar = [ 1, 3, 5, 7 ];\n * let baz = [ 10, 30, 50, 70 ];\n * arrayTuples(foo, bar); // [ [0, 1], [2, 3], [4, 5], [6, 7] ]\n * arrayTuples(foo, bar, baz); // [ [0, 1, 10], [2, 3, 30], [4, 5, 50], [6, 7, 70] ]\n * ```\n */\nexport function arrayTuples(...args: any[]): any[] {\n if (args.length === 0) return [];\n const maxArrayLen = args.reduce((min, arr) => Math.min(arr.length, min), 9007199254740991); // aka 2^53 − 1 aka Number.MAX_SAFE_INTEGER\n const result = [];\n\n for (let i = 0; i < maxArrayLen; i++) {\n // This is a hot function\n // Unroll when there are 1-4 arguments\n switch (args.length) {\n case 1:\n result.push([args[0][i]]);\n break;\n case 2:\n result.push([args[0][i], args[1][i]]);\n break;\n case 3:\n result.push([args[0][i], args[1][i], args[2][i]]);\n break;\n case 4:\n result.push([args[0][i], args[1][i], args[2][i], args[3][i]]);\n break;\n default:\n result.push(args.map((array) => array[i]));\n break;\n }\n }\n\n return result;\n}\n\n/**\n * Reduce function which builds an object from an array of [key, value] pairs.\n *\n * Each iteration sets the key/val pair on the memo object, then returns the memo for the next iteration.\n *\n * Each keyValueTuple should be an array with values [ key: string, value: any ]\n *\n * @example\n * ```\n *\n * var pairs = [ [\"fookey\", \"fooval\"], [\"barkey\", \"barval\"] ]\n *\n * var pairsToObj = pairs.reduce((memo, pair) => applyPairs(memo, pair), {})\n * // pairsToObj == { fookey: \"fooval\", barkey: \"barval\" }\n *\n * // Or, more simply:\n * var pairsToObj = pairs.reduce(applyPairs, {})\n * // pairsToObj == { fookey: \"fooval\", barkey: \"barval\" }\n * ```\n */\nexport function applyPairs(memo: TypedMap, keyValTuple: any[]) {\n let key: string, value: any;\n if (isArray(keyValTuple)) [key, value] = keyValTuple;\n if (!isString(key)) throw new Error('invalid parameters to applyPairs');\n memo[key] = value;\n return memo;\n}\n\n/** Get the last element of an array */\nexport function tail(arr: T[]): T {\n return (arr.length && arr[arr.length - 1]) || undefined;\n}\n\n/**\n * shallow copy from src to dest\n */\nexport function copy(src: Obj, dest?: Obj) {\n if (dest) Object.keys(dest).forEach((key) => delete dest[key]);\n if (!dest) dest = {};\n return extend(dest, src);\n}\n\n/** Naive forEach implementation works with Objects or Arrays */\nfunction _forEach(obj: any[] | any, cb: (el, idx?) => void, _this: Obj) {\n if (isArray(obj)) return obj.forEach(cb, _this);\n Object.keys(obj).forEach((key) => cb(obj[key], key));\n}\n\n/** Like Object.assign() */\nexport function _extend(toObj: Obj, ...fromObjs: Obj[]): any;\nexport function _extend(toObj: Obj): any {\n for (let i = 1; i < arguments.length; i++) {\n const obj = arguments[i];\n if (!obj) continue;\n const keys = Object.keys(obj);\n\n for (let j = 0; j < keys.length; j++) {\n toObj[keys[j]] = obj[keys[j]];\n }\n }\n\n return toObj;\n}\n\nfunction _equals(o1: any, o2: any): boolean {\n if (o1 === o2) return true;\n if (o1 === null || o2 === null) return false;\n if (o1 !== o1 && o2 !== o2) return true; // NaN === NaN\n const t1 = typeof o1,\n t2 = typeof o2;\n if (t1 !== t2 || t1 !== 'object') return false;\n\n const tup = [o1, o2];\n if (all(isArray)(tup)) return _arraysEq(o1, o2);\n if (all(isDate)(tup)) return o1.getTime() === o2.getTime();\n if (all(isRegExp)(tup)) return o1.toString() === o2.toString();\n if (all(isFunction)(tup)) return true; // meh\n\n const predicates = [isFunction, isArray, isDate, isRegExp];\n if (predicates.map(any).reduce((b, fn) => b || !!fn(tup), false)) return false;\n\n const keys: { [i: string]: boolean } = {};\n // tslint:disable-next-line:forin\n for (const key in o1) {\n if (!_equals(o1[key], o2[key])) return false;\n keys[key] = true;\n }\n for (const key in o2) {\n if (!keys[key]) return false;\n }\n\n return true;\n}\n\nfunction _arraysEq(a1: any[], a2: any[]) {\n if (a1.length !== a2.length) return false;\n return arrayTuples(a1, a2).reduce((b, t) => b && _equals(t[0], t[1]), true);\n}\n\n// issue #2676\nexport const silenceUncaughtInPromise = (promise: Promise) => promise.catch((e) => 0) && promise;\nexport const silentRejection = (error: any) => silenceUncaughtInPromise(services.$q.reject(error));\n", "'use strict';\nimport { extend, silentRejection } from '../common/common';\nimport { stringify } from '../common/strings';\nimport { is } from '../common/hof';\n\n/** An enum for Transition Rejection reasons */\nenum RejectType {\n /**\n * A new transition superseded this one.\n *\n * While this transition was running, a new transition started.\n * This transition is cancelled because it was superseded by new transition.\n */\n SUPERSEDED = 2,\n\n /**\n * The transition was aborted\n *\n * The transition was aborted by a hook which returned `false`\n */\n ABORTED = 3,\n\n /**\n * The transition was invalid\n *\n * The transition was never started because it was invalid\n */\n INVALID = 4,\n\n /**\n * The transition was ignored\n *\n * The transition was ignored because it would have no effect.\n *\n * Either:\n *\n * - The transition is targeting the current state and parameter values\n * - The transition is targeting the same state and parameter values as the currently running transition.\n */\n IGNORED = 5,\n\n /**\n * The transition errored.\n *\n * This generally means a hook threw an error or returned a rejected promise\n */\n ERROR = 6,\n}\n\nexport { RejectType };\n\n/** @internal */\nlet id = 0;\n\nexport class Rejection {\n /** @internal */\n $id = id++;\n /**\n * The type of the rejection.\n *\n * This value is an number representing the type of transition rejection.\n * If using Typescript, this is a Typescript enum.\n *\n * - [[RejectType.SUPERSEDED]] (`2`)\n * - [[RejectType.ABORTED]] (`3`)\n * - [[RejectType.INVALID]] (`4`)\n * - [[RejectType.IGNORED]] (`5`)\n * - [[RejectType.ERROR]] (`6`)\n *\n */\n type: RejectType;\n\n /**\n * A message describing the rejection\n */\n message: string;\n\n /**\n * A detail object\n *\n * This value varies based on the mechanism for rejecting the transition.\n * For example, if an error was thrown from a hook, the `detail` will be the `Error` object.\n * If a hook returned a rejected promise, the `detail` will be the rejected value.\n */\n detail: any;\n\n /**\n * Indicates if the transition was redirected.\n *\n * When a transition is redirected, the rejection [[type]] will be [[RejectType.SUPERSEDED]] and this flag will be true.\n */\n redirected: boolean;\n\n /** Returns true if the obj is a rejected promise created from the `asPromise` factory */\n static isRejectionPromise(obj: any): boolean {\n return obj && typeof obj.then === 'function' && is(Rejection)(obj._transitionRejection);\n }\n\n /** Returns a Rejection due to transition superseded */\n static superseded(detail?: any, options?: any): Rejection {\n const message = 'The transition has been superseded by a different transition';\n const rejection = new Rejection(RejectType.SUPERSEDED, message, detail);\n if (options && options.redirected) {\n rejection.redirected = true;\n }\n return rejection;\n }\n\n /** Returns a Rejection due to redirected transition */\n static redirected(detail?: any): Rejection {\n return Rejection.superseded(detail, { redirected: true });\n }\n\n /** Returns a Rejection due to invalid transition */\n static invalid(detail?: any): Rejection {\n const message = 'This transition is invalid';\n return new Rejection(RejectType.INVALID, message, detail);\n }\n\n /** Returns a Rejection due to ignored transition */\n static ignored(detail?: any): Rejection {\n const message = 'The transition was ignored';\n return new Rejection(RejectType.IGNORED, message, detail);\n }\n\n /** Returns a Rejection due to aborted transition */\n static aborted(detail?: any): Rejection {\n const message = 'The transition has been aborted';\n return new Rejection(RejectType.ABORTED, message, detail);\n }\n\n /** Returns a Rejection due to aborted transition */\n static errored(detail?: any): Rejection {\n const message = 'The transition errored';\n return new Rejection(RejectType.ERROR, message, detail);\n }\n\n /**\n * Returns a Rejection\n *\n * Normalizes a value as a Rejection.\n * If the value is already a Rejection, returns it.\n * Otherwise, wraps and returns the value as a Rejection (Rejection type: ERROR).\n *\n * @returns `detail` if it is already a `Rejection`, else returns an ERROR Rejection.\n */\n static normalize(detail?: Rejection | Error | any): Rejection {\n return is(Rejection)(detail) ? detail : Rejection.errored(detail);\n }\n\n constructor(type: number, message?: string, detail?: any) {\n this.type = type;\n this.message = message;\n this.detail = detail;\n }\n\n toString() {\n const detailString = (d: any) => (d && d.toString !== Object.prototype.toString ? d.toString() : stringify(d));\n const detail = detailString(this.detail);\n const { $id, type, message } = this;\n return `Transition Rejection($id: ${$id} type: ${type}, message: ${message}, detail: ${detail})`;\n }\n\n toPromise(): Promise {\n return extend(silentRejection(this), { _transitionRejection: this });\n }\n}\n", "/**\n * Matches state names using glob-like pattern strings.\n *\n * Globs can be used in specific APIs including:\n *\n * - [[StateService.is]]\n * - [[StateService.includes]]\n * - The first argument to Hook Registration functions like [[TransitionService.onStart]]\n * - [[HookMatchCriteria]] and [[HookMatchCriterion]]\n *\n * A `Glob` string is a pattern which matches state names.\n * Nested state names are split into segments (separated by a dot) when processing.\n * The state named `foo.bar.baz` is split into three segments ['foo', 'bar', 'baz']\n *\n * Globs work according to the following rules:\n *\n * ### Exact match:\n *\n * The glob `'A.B'` matches the state named exactly `'A.B'`.\n *\n * | Glob |Matches states named|Does not match state named|\n * |:------------|:--------------------|:---------------------|\n * | `'A'` | `'A'` | `'B'` , `'A.C'` |\n * | `'A.B'` | `'A.B'` | `'A'` , `'A.B.C'` |\n * | `'foo'` | `'foo'` | `'FOO'` , `'foo.bar'`|\n *\n * ### Single star (`*`)\n *\n * A single star (`*`) is a wildcard that matches exactly one segment.\n *\n * | Glob |Matches states named |Does not match state named |\n * |:------------|:---------------------|:--------------------------|\n * | `'*'` | `'A'` , `'Z'` | `'A.B'` , `'Z.Y.X'` |\n * | `'A.*'` | `'A.B'` , `'A.C'` | `'A'` , `'A.B.C'` |\n * | `'A.*.*'` | `'A.B.C'` , `'A.X.Y'`| `'A'`, `'A.B'` , `'Z.Y.X'`|\n *\n * ### Double star (`**`)\n *\n * A double star (`'**'`) is a wildcard that matches *zero or more segments*\n *\n * | Glob |Matches states named |Does not match state named |\n * |:------------|:----------------------------------------------|:----------------------------------|\n * | `'**'` | `'A'` , `'A.B'`, `'Z.Y.X'` | (matches all states) |\n * | `'A.**'` | `'A'` , `'A.B'` , `'A.C.X'` | `'Z.Y.X'` |\n * | `'**.X'` | `'X'` , `'A.X'` , `'Z.Y.X'` | `'A'` , `'A.login.Z'` |\n * | `'A.**.X'` | `'A.X'` , `'A.B.X'` , `'A.B.C.X'` | `'A'` , `'A.B.C'` |\n *\n * @packageDocumentation\n */\nexport class Glob {\n text: string;\n glob: Array;\n regexp: RegExp;\n\n /** Returns true if the string has glob-like characters in it */\n static is(text: string) {\n return !!/[!,*]+/.exec(text);\n }\n\n /** Returns a glob from the string, or null if the string isn't Glob-like */\n static fromString(text: string) {\n return Glob.is(text) ? new Glob(text) : null;\n }\n\n constructor(text: string) {\n this.text = text;\n this.glob = text.split('.');\n\n const regexpString = this.text\n .split('.')\n .map((seg) => {\n if (seg === '**') return '(?:|(?:\\\\.[^.]*)*)';\n if (seg === '*') return '\\\\.[^.]*';\n return '\\\\.' + seg;\n })\n .join('');\n\n this.regexp = new RegExp('^' + regexpString + '$');\n }\n\n matches(name: string) {\n return this.regexp.test('.' + name);\n }\n}\n", @@ -95,7 +95,7 @@ "import { extend, filter, map } from '../common/common';\nimport { isArray, isDefined } from '../common/predicates';\nimport { ParamTypeDefinition } from './interface';\n\n/**\n * An internal class which implements [[ParamTypeDefinition]].\n *\n * A [[ParamTypeDefinition]] is a plain javascript object used to register custom parameter types.\n * When a param type definition is registered, an instance of this class is created internally.\n *\n * This class has naive implementations for all the [[ParamTypeDefinition]] methods.\n *\n * Used by [[UrlMatcher]] when matching or formatting URLs, or comparing and validating parameter values.\n *\n * #### Example:\n * ```js\n * var paramTypeDef = {\n * decode: function(val) { return parseInt(val, 10); },\n * encode: function(val) { return val && val.toString(); },\n * equals: function(a, b) { return this.is(a) && a === b; },\n * is: function(val) { return angular.isNumber(val) && isFinite(val) && val % 1 === 0; },\n * pattern: /\\d+/\n * }\n *\n * var paramType = new ParamType(paramTypeDef);\n * ```\n */\nexport class ParamType implements ParamTypeDefinition {\n /** @inheritdoc */\n pattern: RegExp = /.*/;\n /** The name/id of the parameter type */\n name: string;\n /** @inheritdoc */\n raw: boolean;\n /** @inheritdoc */\n dynamic: boolean;\n /** @inheritdoc */\n inherit = true;\n\n /**\n * @param def A configuration object which contains the custom type definition. The object's\n * properties will override the default methods and/or pattern in `ParamType`'s public interface.\n * @returns a new ParamType object\n */\n constructor(def: ParamTypeDefinition) {\n extend(this, def);\n }\n\n // consider these four methods to be \"abstract methods\" that should be overridden\n /** @inheritdoc */\n is(val: any, key?: string): boolean {\n return true;\n }\n /** @inheritdoc */\n encode(val: any, key?: string): string | string[] {\n return val;\n }\n /** @inheritdoc */\n decode(val: string, key?: string): any {\n return val;\n }\n /** @inheritdoc */\n equals(a: any, b: any): boolean {\n // tslint:disable-next-line:triple-equals\n return a == b;\n }\n\n $subPattern() {\n const sub = this.pattern.toString();\n return sub.substr(1, sub.length - 2);\n }\n\n toString() {\n return `{ParamType:${this.name}}`;\n }\n\n /** Given an encoded string, or a decoded object, returns a decoded object */\n $normalize(val: any) {\n return this.is(val) ? val : this.decode(val);\n }\n\n /**\n * Wraps an existing custom ParamType as an array of ParamType, depending on 'mode'.\n * e.g.:\n * - urlmatcher pattern \"/path?{queryParam[]:int}\"\n * - url: \"/path?queryParam=1&queryParam=2\n * - $stateParams.queryParam will be [1, 2]\n * if `mode` is \"auto\", then\n * - url: \"/path?queryParam=1 will create $stateParams.queryParam: 1\n * - url: \"/path?queryParam=1&queryParam=2 will create $stateParams.queryParam: [1, 2]\n */\n $asArray(mode: boolean | 'auto', isSearch: boolean) {\n if (!mode) return this;\n if (mode === 'auto' && !isSearch) throw new Error(\"'auto' array mode is for query parameters only\");\n return new (ArrayType)(this, mode);\n }\n}\n\n/** Wraps up a `ParamType` object to handle array values. */\nfunction ArrayType(type: ParamType, mode: boolean | 'auto') {\n // Wrap non-array value as array\n function arrayWrap(val: any): any[] {\n return isArray(val) ? val : isDefined(val) ? [val] : [];\n }\n\n // Unwrap array value for \"auto\" mode. Return undefined for empty array.\n function arrayUnwrap(val: any) {\n switch (val.length) {\n case 0:\n return undefined;\n case 1:\n return mode === 'auto' ? val[0] : val;\n default:\n return val;\n }\n }\n\n // Wraps type (.is/.encode/.decode) functions to operate on each value of an array\n function arrayHandler(callback: (x: any) => any, allTruthyMode?: boolean) {\n return function handleArray(val: any) {\n if (isArray(val) && val.length === 0) return val;\n const arr = arrayWrap(val);\n const result = map(arr, callback);\n return allTruthyMode === true ? filter(result, (x) => !x).length === 0 : arrayUnwrap(result);\n };\n }\n\n // Wraps type (.equals) functions to operate on each value of an array\n function arrayEqualsHandler(callback: (l: any, r: any) => boolean) {\n return function handleArray(val1: any, val2: any) {\n const left = arrayWrap(val1),\n right = arrayWrap(val2);\n if (left.length !== right.length) return false;\n for (let i = 0; i < left.length; i++) {\n if (!callback(left[i], right[i])) return false;\n }\n return true;\n };\n }\n\n ['encode', 'decode', 'equals', '$normalize'].forEach((name) => {\n const paramTypeFn = type[name].bind(type);\n const wrapperFn: Function = name === 'equals' ? arrayEqualsHandler : arrayHandler;\n this[name] = wrapperFn(paramTypeFn);\n });\n\n extend(this, {\n dynamic: type.dynamic,\n name: type.name,\n pattern: type.pattern,\n inherit: type.inherit,\n raw: type.raw,\n is: arrayHandler(type.is.bind(type), true),\n $arrayMode: mode,\n });\n}\n", "import { extend, filter, map, allTrueR, find } from '../common/common';\nimport { prop } from '../common/hof';\nimport { isInjectable, isDefined, isString, isArray, isUndefined } from '../common/predicates';\nimport { RawParams, ParamDeclaration } from '../params/interface';\nimport { services } from '../common/coreservices';\nimport { ParamType } from './paramType';\nimport { ParamTypes } from './paramTypes';\nimport { StateDeclaration } from '../state';\nimport { UrlConfig } from '../url';\n\nconst hasOwn = Object.prototype.hasOwnProperty;\n\nconst isShorthand = (cfg: ParamDeclaration) =>\n ['value', 'type', 'squash', 'array', 'dynamic'].filter(hasOwn.bind(cfg || {})).length === 0;\n\nenum DefType {\n PATH,\n SEARCH,\n CONFIG,\n}\nexport { DefType };\n\nfunction getParamDeclaration(paramName: string, location: DefType, state: StateDeclaration): ParamDeclaration {\n const noReloadOnSearch = (state.reloadOnSearch === false && location === DefType.SEARCH) || undefined;\n const dynamic = find([state.dynamic, noReloadOnSearch], isDefined);\n const defaultConfig = isDefined(dynamic) ? { dynamic } : {};\n const paramConfig = unwrapShorthand(state && state.params && state.params[paramName]);\n return extend(defaultConfig, paramConfig);\n}\n\nfunction unwrapShorthand(cfg: ParamDeclaration): ParamDeclaration {\n cfg = isShorthand(cfg) ? ({ value: cfg } as ParamDeclaration) : cfg;\n\n getStaticDefaultValue['__cacheable'] = true;\n function getStaticDefaultValue() {\n return cfg.value;\n }\n\n const $$fn = isInjectable(cfg.value) ? cfg.value : getStaticDefaultValue;\n return extend(cfg, { $$fn });\n}\n\nfunction getType(cfg: ParamDeclaration, urlType: ParamType, location: DefType, id: string, paramTypes: ParamTypes) {\n if (cfg.type && urlType && urlType.name !== 'string') throw new Error(`Param '${id}' has two type configurations.`);\n if (cfg.type && urlType && urlType.name === 'string' && paramTypes.type(cfg.type as string))\n return paramTypes.type(cfg.type as string);\n if (urlType) return urlType;\n if (!cfg.type) {\n const type =\n location === DefType.CONFIG\n ? 'any'\n : location === DefType.PATH\n ? 'path'\n : location === DefType.SEARCH\n ? 'query'\n : 'string';\n return paramTypes.type(type);\n }\n return cfg.type instanceof ParamType ? cfg.type : paramTypes.type(cfg.type as string);\n}\n\n/** returns false, true, or the squash value to indicate the \"default parameter url squash policy\". */\nfunction getSquashPolicy(config: ParamDeclaration, isOptional: boolean, defaultPolicy: boolean | string) {\n const squash = config.squash;\n if (!isOptional || squash === false) return false;\n if (!isDefined(squash) || squash == null) return defaultPolicy;\n if (squash === true || isString(squash)) return squash;\n throw new Error(`Invalid squash policy: '${squash}'. Valid policies: false, true, or arbitrary string`);\n}\n\nfunction getReplace(config: ParamDeclaration, arrayMode: boolean, isOptional: boolean, squash: string | boolean) {\n const defaultPolicy = [\n { from: '', to: isOptional || arrayMode ? undefined : '' },\n { from: null, to: isOptional || arrayMode ? undefined : '' },\n ];\n\n const replace = isArray(config.replace) ? config.replace : [];\n if (isString(squash)) replace.push({ from: squash, to: undefined });\n\n const configuredKeys = map(replace, prop('from'));\n return filter(defaultPolicy, (item) => configuredKeys.indexOf(item.from) === -1).concat(replace);\n}\n\nexport class Param {\n id: string;\n type: ParamType;\n location: DefType;\n isOptional: boolean;\n dynamic: boolean;\n raw: boolean;\n squash: boolean | string;\n replace: [{ to: any; from: any }];\n inherit: boolean;\n array: boolean;\n config: any;\n /** Cache the default value if it is a static value */\n _defaultValueCache: {\n defaultValue: any;\n };\n\n static values(params: Param[], values: RawParams = {}): RawParams {\n const paramValues = {} as RawParams;\n for (const param of params) {\n paramValues[param.id] = param.value(values[param.id]);\n }\n return paramValues;\n }\n\n /**\n * Finds [[Param]] objects which have different param values\n *\n * Filters a list of [[Param]] objects to only those whose parameter values differ in two param value objects\n *\n * @param params: The list of Param objects to filter\n * @param values1: The first set of parameter values\n * @param values2: the second set of parameter values\n *\n * @returns any Param objects whose values were different between values1 and values2\n */\n static changed(params: Param[], values1: RawParams = {}, values2: RawParams = {}): Param[] {\n return params.filter((param) => !param.type.equals(values1[param.id], values2[param.id]));\n }\n\n /**\n * Checks if two param value objects are equal (for a set of [[Param]] objects)\n *\n * @param params The list of [[Param]] objects to check\n * @param values1 The first set of param values\n * @param values2 The second set of param values\n *\n * @returns true if the param values in values1 and values2 are equal\n */\n static equals(params: Param[], values1 = {}, values2 = {}): boolean {\n return Param.changed(params, values1, values2).length === 0;\n }\n\n /** Returns true if a the parameter values are valid, according to the Param definitions */\n static validates(params: Param[], values: RawParams = {}): boolean {\n return params.map((param) => param.validates(values[param.id])).reduce(allTrueR, true);\n }\n\n constructor(id: string, type: ParamType, location: DefType, urlConfig: UrlConfig, state: StateDeclaration) {\n const config: ParamDeclaration = getParamDeclaration(id, location, state);\n type = getType(config, type, location, id, urlConfig.paramTypes);\n const arrayMode = getArrayMode();\n type = arrayMode ? type.$asArray(arrayMode, location === DefType.SEARCH) : type;\n const isOptional = config.value !== undefined || location === DefType.SEARCH;\n const dynamic = isDefined(config.dynamic) ? !!config.dynamic : !!type.dynamic;\n const raw = isDefined(config.raw) ? !!config.raw : !!type.raw;\n const squash = getSquashPolicy(config, isOptional, urlConfig.defaultSquashPolicy());\n const replace = getReplace(config, arrayMode, isOptional, squash);\n const inherit = isDefined(config.inherit) ? !!config.inherit : !!type.inherit;\n\n // array config: param name (param[]) overrides default settings. explicit config overrides param name.\n function getArrayMode() {\n const arrayDefaults = { array: location === DefType.SEARCH ? 'auto' : false };\n const arrayParamNomenclature = id.match(/\\[\\]$/) ? { array: true } : {};\n return extend(arrayDefaults, arrayParamNomenclature, config).array;\n }\n\n extend(this, { id, type, location, isOptional, dynamic, raw, squash, replace, inherit, array: arrayMode, config });\n }\n\n isDefaultValue(value: any): boolean {\n return this.isOptional && this.type.equals(this.value(), value);\n }\n\n /**\n * [Internal] Gets the decoded representation of a value if the value is defined, otherwise, returns the\n * default value, which may be the result of an injectable function.\n */\n value(value?: any): any {\n /**\n * [Internal] Get the default value of a parameter, which may be an injectable function.\n */\n const getDefaultValue = () => {\n if (this._defaultValueCache) return this._defaultValueCache.defaultValue;\n\n if (!services.$injector) throw new Error('Injectable functions cannot be called at configuration time');\n\n const defaultValue = services.$injector.invoke(this.config.$$fn);\n\n if (defaultValue !== null && defaultValue !== undefined && !this.type.is(defaultValue))\n throw new Error(\n `Default value (${defaultValue}) for parameter '${this.id}' is not an instance of ParamType (${this.type.name})`\n );\n\n if (this.config.$$fn['__cacheable']) {\n this._defaultValueCache = { defaultValue };\n }\n\n return defaultValue;\n };\n\n const replaceSpecialValues = (val: any) => {\n for (const tuple of this.replace) {\n if (tuple.from === val) return tuple.to;\n }\n return val;\n };\n\n value = replaceSpecialValues(value);\n\n return isUndefined(value) ? getDefaultValue() : this.type.$normalize(value);\n }\n\n isSearch(): boolean {\n return this.location === DefType.SEARCH;\n }\n\n validates(value: any): boolean {\n // There was no parameter value, but the param is optional\n if ((isUndefined(value) || value === null) && this.isOptional) return true;\n\n // The value was not of the correct ParamType, and could not be decoded to the correct ParamType\n const normalized = this.type.$normalize(value);\n if (!this.type.is(normalized)) return false;\n\n // The value was of the correct type, but when encoded, did not match the ParamType's regexp\n const encoded = this.type.encode(normalized);\n return !(isString(encoded) && !this.type.pattern.exec(encoded));\n }\n\n toString() {\n return `{Param:${this.id} ${this.type} squash: '${this.squash}' optional: ${this.isOptional}}`;\n }\n}\n", "import { fromJson, toJson, identity, equals, inherit, map, extend, pick } from '../common/common';\nimport { isDefined, isNullOrUndefined } from '../common/predicates';\nimport { is } from '../common/hof';\nimport { services } from '../common/coreservices';\nimport { ParamType } from './paramType';\nimport { ParamTypeDefinition } from './interface';\n\n/**\n * A registry for parameter types.\n *\n * This registry manages the built-in (and custom) parameter types.\n *\n * The built-in parameter types are:\n *\n * - [[string]]\n * - [[path]]\n * - [[query]]\n * - [[hash]]\n * - [[int]]\n * - [[bool]]\n * - [[date]]\n * - [[json]]\n * - [[any]]\n *\n * To register custom parameter types, use [[UrlConfig.type]], i.e.,\n *\n * ```js\n * router.urlService.config.type(customType)\n * ```\n */\nexport class ParamTypes {\n /**\n * Built-in parameter type: `string`\n *\n * This parameter type coerces values to strings.\n * It matches anything (`new RegExp(\".*\")`) in the URL\n */\n static string: ParamTypeDefinition;\n\n /**\n * Built-in parameter type: `path`\n *\n * This parameter type is the default type for path parameters.\n * A path parameter is any parameter declared in the path portion of a url\n *\n * - `/foo/:param1/:param2`: two path parameters\n *\n * This parameter type behaves exactly like the [[string]] type with one exception.\n * When matching parameter values in the URL, the `path` type does not match forward slashes `/`.\n *\n * #### Angular 1 note:\n * In ng1, this type is overridden with one that pre-encodes slashes as `~2F` instead of `%2F`.\n * For more details about this angular 1 behavior, see: https://github.com/angular-ui/ui-router/issues/2598\n */\n static path: ParamTypeDefinition;\n\n /**\n * Built-in parameter type: `query`\n *\n * This parameter type is the default type for query/search parameters.\n * It behaves the same as the [[string]] parameter type.\n *\n * A query parameter is any parameter declared in the query/search portion of a url\n *\n * - `/bar?param2`: a query parameter\n */\n static query: ParamTypeDefinition;\n\n /**\n * Built-in parameter type: `hash`\n *\n * This parameter type is used for the `#` parameter (the hash)\n * It behaves the same as the [[string]] parameter type.\n */\n static hash: ParamTypeDefinition;\n\n /**\n * Built-in parameter type: `int`\n *\n * This parameter type serializes javascript integers (`number`s which represent an integer) to the URL.\n *\n * #### Example:\n * ```js\n * .state({\n * name: 'user',\n * url: '/user/{id:int}'\n * });\n * ```\n * ```js\n * $state.go('user', { id: 1298547 });\n * ```\n *\n * The URL will serialize to: `/user/1298547`.\n *\n * When the parameter value is read, it will be the `number` `1298547`, not the string `\"1298547\"`.\n */\n static int: ParamTypeDefinition;\n\n /**\n * Built-in parameter type: `bool`\n *\n * This parameter type serializes `true`/`false` as `1`/`0`\n *\n * #### Example:\n * ```js\n * .state({\n * name: 'inbox',\n * url: '/inbox?{unread:bool}'\n * });\n * ```\n * ```js\n * $state.go('inbox', { unread: true });\n * ```\n *\n * The URL will serialize to: `/inbox?unread=1`.\n *\n * Conversely, if the url is `/inbox?unread=0`, the value of the `unread` parameter will be a `false`.\n */\n static bool: ParamTypeDefinition;\n\n /**\n * Built-in parameter type: `date`\n *\n * This parameter type can be used to serialize Javascript dates as parameter values.\n *\n * #### Example:\n * ```js\n * .state({\n * name: 'search',\n * url: '/search?{start:date}'\n * });\n * ```\n * ```js\n * $state.go('search', { start: new Date(2000, 0, 1) });\n * ```\n *\n * The URL will serialize to: `/search?start=2000-01-01`.\n *\n * Conversely, if the url is `/search?start=2016-12-25`, the value of the `start` parameter will be a `Date` object where:\n *\n * - `date.getFullYear() === 2016`\n * - `date.getMonth() === 11` (month is 0-based)\n * - `date.getDate() === 25`\n */\n static date: ParamTypeDefinition;\n\n /**\n * Built-in parameter type: `json`\n *\n * This parameter type can be used to serialize javascript objects into the URL using JSON serialization.\n *\n * #### Example:\n * This example serializes an plain javascript object to the URL\n * ```js\n * .state({\n * name: 'map',\n * url: '/map/{coords:json}'\n * });\n * ```\n * ```js\n * $state.go('map', { coords: { x: 10399.2, y: 49071 });\n * ```\n *\n * The URL will serialize to: `/map/%7B%22x%22%3A10399.2%2C%22y%22%3A49071%7D`\n */\n static json: ParamTypeDefinition;\n\n /**\n * Built-in parameter type: `any`\n *\n * This parameter type is used by default for url-less parameters (parameters that do not appear in the URL).\n * This type does not encode or decode.\n * It is compared using a deep `equals` comparison.\n *\n * #### Example:\n * This example defines a non-url parameter on a [[StateDeclaration]].\n * ```js\n * .state({\n * name: 'new',\n * url: '/new',\n * params: {\n * inrepyto: null\n * }\n * });\n * ```\n * ```js\n * $state.go('new', { inreplyto: currentMessage });\n * ```\n */\n static any: ParamTypeDefinition;\n\n types: any;\n enqueue = true;\n typeQueue: any[] = [];\n\n private defaultTypes: any = pick(ParamTypes.prototype, [\n 'hash',\n 'string',\n 'query',\n 'path',\n 'int',\n 'bool',\n 'date',\n 'json',\n 'any',\n ]);\n\n constructor() {\n // Register default types. Store them in the prototype of this.types.\n const makeType = (definition: ParamTypeDefinition, name: string) => new ParamType(extend({ name }, definition));\n this.types = inherit(map(this.defaultTypes, makeType), {});\n }\n\n dispose() {\n this.types = {};\n }\n\n /**\n * Registers a parameter type\n *\n * End users should call [[UrlMatcherFactory.type]], which delegates to this method.\n */\n type(name: string, definition?: ParamTypeDefinition, definitionFn?: () => ParamTypeDefinition) {\n if (!isDefined(definition)) return this.types[name];\n if (this.types.hasOwnProperty(name)) throw new Error(`A type named '${name}' has already been defined.`);\n\n this.types[name] = new ParamType(extend({ name }, definition));\n\n if (definitionFn) {\n this.typeQueue.push({ name, def: definitionFn });\n if (!this.enqueue) this._flushTypeQueue();\n }\n\n return this;\n }\n\n _flushTypeQueue() {\n while (this.typeQueue.length) {\n const type = this.typeQueue.shift();\n if (type.pattern) throw new Error(\"You cannot override a type's .pattern at runtime.\");\n extend(this.types[type.name], services.$injector.invoke(type.def));\n }\n }\n}\n\nfunction initDefaultTypes() {\n const makeDefaultType = (def) => {\n const valToString = (val: any) => (val != null ? val.toString() : val);\n\n const defaultTypeBase = {\n encode: valToString,\n decode: valToString,\n is: is(String),\n pattern: /.*/,\n // tslint:disable-next-line:triple-equals\n equals: (a: any, b: any) => a == b, // allow coersion for null/undefined/\"\"\n };\n\n return extend({}, defaultTypeBase, def) as ParamTypeDefinition;\n };\n\n // Default Parameter Type Definitions\n extend(ParamTypes.prototype, {\n string: makeDefaultType({}),\n\n path: makeDefaultType({\n pattern: /[^/]*/,\n }),\n\n query: makeDefaultType({}),\n\n hash: makeDefaultType({\n inherit: false,\n }),\n\n int: makeDefaultType({\n decode: (val: string) => parseInt(val, 10),\n is: function (val: any) {\n return !isNullOrUndefined(val) && this.decode(val.toString()) === val;\n },\n pattern: /-?\\d+/,\n }),\n\n bool: makeDefaultType({\n encode: (val: any) => (val && 1) || 0,\n decode: (val: string) => parseInt(val, 10) !== 0,\n is: is(Boolean),\n pattern: /0|1/,\n }),\n\n date: makeDefaultType({\n encode: function (val: any) {\n return !this.is(val)\n ? undefined\n : [val.getFullYear(), ('0' + (val.getMonth() + 1)).slice(-2), ('0' + val.getDate()).slice(-2)].join('-');\n },\n decode: function (val: string) {\n if (this.is(val)) return (val) as Date;\n const match = this.capture.exec(val);\n return match ? new Date(match[1], match[2] - 1, match[3]) : undefined;\n },\n is: (val: any) => val instanceof Date && !isNaN(val.valueOf()),\n equals(l: any, r: any) {\n return ['getFullYear', 'getMonth', 'getDate'].reduce((acc, fn) => acc && l[fn]() === r[fn](), true);\n },\n pattern: /[0-9]{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2][0-9]|3[0-1])/,\n capture: /([0-9]{4})-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])/,\n }),\n\n json: makeDefaultType({\n encode: toJson,\n decode: fromJson,\n is: is(Object),\n equals: equals,\n pattern: /[^/]*/,\n }),\n\n // does not encode/decode\n any: makeDefaultType({\n encode: identity,\n decode: identity,\n is: () => true,\n equals: equals,\n }),\n });\n}\n\ninitDefaultTypes();\n", - "import { extend, ancestors, Obj } from '../common/common';\nimport { StateObject } from '../state/stateObject';\n\nexport class StateParams {\n [key: string]: any;\n\n constructor(params: Obj = {}) {\n extend(this, params);\n }\n\n /**\n * Merges a set of parameters with all parameters inherited between the common parents of the\n * current state and a given destination state.\n *\n * @param {Object} newParams The set of parameters which will be composited with inherited params.\n * @param {Object} $current Internal definition of object representing the current state.\n * @param {Object} $to Internal definition of object representing state to transition to.\n */\n $inherit(newParams: Obj, $current: StateObject, $to: StateObject) {\n let parentParams: string[];\n const parents = ancestors($current, $to),\n inherited: Obj = {},\n inheritList: string[] = [];\n\n for (const i in parents) {\n if (!parents[i] || !parents[i].params) continue;\n parentParams = Object.keys(parents[i].params);\n if (!parentParams.length) continue;\n\n for (const j in parentParams) {\n if (inheritList.indexOf(parentParams[j]) >= 0) continue;\n inheritList.push(parentParams[j]);\n inherited[parentParams[j]] = this[parentParams[j]];\n }\n }\n return extend({}, inherited, newParams);\n }\n}\n", + "import { Param } from '.';\nimport { extend, ancestors, Obj } from '../common/common';\nimport { StateObject } from '../state/stateObject';\n\nexport class StateParams {\n [key: string]: any;\n\n constructor(params: Obj = {}) {\n extend(this, params);\n }\n\n /**\n * Merges a set of parameters with all parameters inherited between the common parents of the\n * current state and a given destination state.\n *\n * @param {Object} newParams The set of parameters which will be composited with inherited params.\n * @param {Object} $current Internal definition of object representing the current state.\n * @param {Object} $to Internal definition of object representing state to transition to.\n */\n $inherit(newParams: Obj, $current: StateObject, $to: StateObject) {\n const parents = ancestors($current, $to),\n inherited: Obj = {},\n inheritList: string[] = [];\n\n for (const i in parents) {\n if (!parents[i] || !parents[i].params) continue;\n const parentParams = parents[i].params;\n const parentParamsKeys = Object.keys(parentParams);\n if (!parentParamsKeys.length) continue;\n\n for (const j in parentParamsKeys) {\n if (\n !parentParamsKeys.hasOwnProperty(j) ||\n parentParams[parentParamsKeys[j]].inherit == false ||\n inheritList.indexOf(parentParamsKeys[j]) >= 0\n )\n continue;\n inheritList.push(parentParamsKeys[j]);\n inherited[parentParamsKeys[j]] = this[parentParamsKeys[j]];\n }\n }\n return extend({}, inherited, newParams);\n }\n}\n", "import { extend, applyPairs, find, allTrueR, pairs, arrayTuples } from '../common/common';\nimport { propEq } from '../common/hof';\nimport { StateObject } from '../state/stateObject';\nimport { RawParams } from '../params/interface';\nimport { Param } from '../params/param';\nimport { Resolvable } from '../resolve/resolvable';\nimport { ViewConfig } from '../view/interface';\n\n/**\n * A node in a [[TreeChanges]] path\n *\n * For a [[TreeChanges]] path, this class holds the stateful information for a single node in the path.\n * Each PathNode corresponds to a state being entered, exited, or retained.\n * The stateful information includes parameter values and resolve data.\n */\nexport class PathNode {\n /** The state being entered, exited, or retained */\n public state: StateObject;\n /** The parameters declared on the state */\n public paramSchema: Param[];\n /** The parameter values that belong to the state */\n public paramValues: { [key: string]: any };\n /** The individual (stateful) resolvable objects that belong to the state */\n public resolvables: Resolvable[];\n /** The state's declared view configuration objects */\n public views: ViewConfig[];\n\n /**\n * Returns a clone of the PathNode\n * @deprecated use instance method `node.clone()`\n */\n static clone = (node: PathNode) => node.clone();\n\n /** Creates a copy of a PathNode */\n constructor(node: PathNode);\n /** Creates a new (empty) PathNode for a State */\n constructor(state: StateObject);\n constructor(stateOrNode: any) {\n if (stateOrNode instanceof PathNode) {\n const node: PathNode = stateOrNode;\n this.state = node.state;\n this.paramSchema = node.paramSchema.slice();\n this.paramValues = extend({}, node.paramValues);\n this.resolvables = node.resolvables.slice();\n this.views = node.views && node.views.slice();\n } else {\n const state: StateObject = stateOrNode;\n this.state = state;\n this.paramSchema = state.parameters({ inherit: false });\n this.paramValues = {};\n this.resolvables = state.resolvables.map((res) => res.clone());\n }\n }\n\n clone() {\n return new PathNode(this);\n }\n\n /** Sets [[paramValues]] for the node, from the values of an object hash */\n applyRawParams(params: RawParams): PathNode {\n const getParamVal = (paramDef: Param) => [paramDef.id, paramDef.value(params[paramDef.id])];\n this.paramValues = this.paramSchema.reduce((memo, pDef) => applyPairs(memo, getParamVal(pDef)), {});\n return this;\n }\n\n /** Gets a specific [[Param]] metadata that belongs to the node */\n parameter(name: string): Param {\n return find(this.paramSchema, propEq('id', name));\n }\n\n /**\n * @returns true if the state and parameter values for another PathNode are\n * equal to the state and param values for this PathNode\n */\n equals(node: PathNode, paramsFn?: GetParamsFn): boolean {\n const diff = this.diff(node, paramsFn);\n return diff && diff.length === 0;\n }\n\n /**\n * Finds Params with different parameter values on another PathNode.\n *\n * Given another node (of the same state), finds the parameter values which differ.\n * Returns the [[Param]] (schema objects) whose parameter values differ.\n *\n * Given another node for a different state, returns `false`\n *\n * @param node The node to compare to\n * @param paramsFn A function that returns which parameters should be compared.\n * @returns The [[Param]]s which differ, or null if the two nodes are for different states\n */\n diff(node: PathNode, paramsFn?: GetParamsFn): Param[] | false {\n if (this.state !== node.state) return false;\n\n const params: Param[] = paramsFn ? paramsFn(this) : this.paramSchema;\n return Param.changed(params, this.paramValues, node.paramValues);\n }\n}\n\n/** @internal */\nexport type GetParamsFn = (pathNode: PathNode) => Param[];\n", "import { StateDeclaration, StateOrName, TargetStateDef } from './interface';\nimport { TransitionOptions } from '../transition/interface';\nimport { StateObject } from './stateObject';\nimport { isObject, isString } from '../common/predicates';\nimport { stringify } from '../common/strings';\nimport { extend } from '../common';\nimport { StateRegistry } from './stateRegistry';\nimport { RawParams } from '../params';\n\n/**\n * Encapsulate the target (destination) state/params/options of a [[Transition]].\n *\n * This class is frequently used to redirect a transition to a new destination.\n *\n * See:\n *\n * - [[HookResult]]\n * - [[TransitionHookFn]]\n * - [[TransitionService.onStart]]\n *\n * To create a `TargetState`, use [[StateService.target]].\n *\n * ---\n *\n * This class wraps:\n *\n * 1) an identifier for a state\n * 2) a set of parameters\n * 3) and transition options\n * 4) the registered state object (the [[StateDeclaration]])\n *\n * Many UI-Router APIs such as [[StateService.go]] take a [[StateOrName]] argument which can\n * either be a *state object* (a [[StateDeclaration]] or [[StateObject]]) or a *state name* (a string).\n * The `TargetState` class normalizes those options.\n *\n * A `TargetState` may be valid (the state being targeted exists in the registry)\n * or invalid (the state being targeted is not registered).\n */\nexport class TargetState {\n private _definition: StateObject;\n private _params: RawParams;\n private _options: TransitionOptions;\n\n /** Returns true if the object has a state property that might be a state or state name */\n static isDef = (obj): obj is TargetStateDef => {\n return obj && obj.state && (isString(obj.state) || (isObject(obj.state) && isString(obj.state.name)));\n };\n\n /**\n * The TargetState constructor\n *\n * Note: Do not construct a `TargetState` manually.\n * To create a `TargetState`, use the [[StateService.target]] factory method.\n *\n * @param _stateRegistry The StateRegistry to use to look up the _definition\n * @param _identifier An identifier for a state.\n * Either a fully-qualified state name, or the object used to define the state.\n * @param _params Parameters for the target state\n * @param _options Transition options.\n *\n * @internal\n */\n constructor(\n private _stateRegistry: StateRegistry,\n private _identifier: StateOrName,\n _params?: RawParams,\n _options?: TransitionOptions\n ) {\n this._identifier = _identifier;\n this._params = extend({}, _params || {});\n this._options = extend({}, _options || {});\n this._definition = _stateRegistry.matcher.find(_identifier, this._options.relative);\n }\n\n /** The name of the state this object targets */\n name(): string {\n return (this._definition && this._definition.name) || this._identifier;\n }\n\n /** The identifier used when creating this TargetState */\n identifier(): StateOrName {\n return this._identifier;\n }\n\n /** The target parameter values */\n params(): RawParams {\n return this._params;\n }\n\n /** The internal state object (if it was found) */\n $state(): StateObject {\n return this._definition;\n }\n\n /** The internal state declaration (if it was found) */\n state(): StateDeclaration {\n return this._definition && this._definition.self;\n }\n\n /** The target options */\n options() {\n return this._options;\n }\n\n /** True if the target state was found */\n exists(): boolean {\n return !!(this._definition && this._definition.self);\n }\n\n /** True if the object is valid */\n valid(): boolean {\n return !this.error();\n }\n\n /** If the object is invalid, returns the reason why */\n error(): string {\n const base = this.options().relative;\n if (!this._definition && !!base) {\n const stateName = base.name ? base.name : base;\n return `Could not resolve '${this.name()}' from state '${stateName}'`;\n }\n if (!this._definition) return `No such state '${this.name()}'`;\n if (!this._definition.self) return `State '${this.name()}' has an invalid definition`;\n }\n\n toString() {\n return `'${this.name()}'${stringify(this.params())}`;\n }\n\n /**\n * Returns a copy of this TargetState which targets a different state.\n * The new TargetState has the same parameter values and transition options.\n *\n * @param state The new state that should be targeted\n */\n withState(state: StateOrName): TargetState {\n return new TargetState(this._stateRegistry, state, this._params, this._options);\n }\n\n /**\n * Returns a copy of this TargetState, using the specified parameter values.\n *\n * @param params the new parameter values to use\n * @param replace When false (default) the new parameter values will be merged with the current values.\n * When true the parameter values will be used instead of the current values.\n */\n withParams(params: RawParams, replace = false): TargetState {\n const newParams: RawParams = replace ? params : extend({}, this._params, params);\n return new TargetState(this._stateRegistry, this._identifier, newParams, this._options);\n }\n\n /**\n * Returns a copy of this TargetState, using the specified Transition Options.\n *\n * @param options the new options to use\n * @param replace When false (default) the new options will be merged with the current options.\n * When true the options will be used instead of the current options.\n */\n withOptions(options: TransitionOptions, replace = false): TargetState {\n const newOpts = replace ? options : extend({}, this._options, options);\n return new TargetState(this._stateRegistry, this._identifier, this._params, newOpts);\n }\n}\n", "import {\n extend,\n find,\n pick,\n omit,\n tail,\n mergeR,\n values,\n unnestR,\n Predicate,\n inArray,\n arrayTuples,\n} from '../common/common';\nimport { prop, propEq, not } from '../common/hof';\n\nimport { RawParams } from '../params/interface';\nimport { TreeChanges } from '../transition/interface';\nimport { ViewConfig } from '../view/interface';\nimport { _ViewDeclaration } from '../state/interface';\n\nimport { StateObject } from '../state/stateObject';\nimport { TargetState } from '../state/targetState';\nimport { GetParamsFn, PathNode } from './pathNode';\nimport { ViewService } from '../view/view';\nimport { Param } from '../params/param';\nimport { StateRegistry } from '../state';\n\n/**\n * This class contains functions which convert TargetStates, Nodes and paths from one type to another.\n */\nexport class PathUtils {\n /** Given a PathNode[], create an TargetState */\n static makeTargetState(registry: StateRegistry, path: PathNode[]): TargetState {\n const state = tail(path).state;\n return new TargetState(registry, state, path.map(prop('paramValues')).reduce(mergeR, {}), {});\n }\n\n static buildPath(targetState: TargetState) {\n const toParams = targetState.params();\n return targetState.$state().path.map((state) => new PathNode(state).applyRawParams(toParams));\n }\n\n /** Given a fromPath: PathNode[] and a TargetState, builds a toPath: PathNode[] */\n static buildToPath(fromPath: PathNode[], targetState: TargetState): PathNode[] {\n const toPath: PathNode[] = PathUtils.buildPath(targetState);\n if (targetState.options().inherit) {\n return PathUtils.inheritParams(fromPath, toPath, Object.keys(targetState.params()));\n }\n return toPath;\n }\n\n /**\n * Creates ViewConfig objects and adds to nodes.\n *\n * On each [[PathNode]], creates ViewConfig objects from the views: property of the node's state\n */\n static applyViewConfigs($view: ViewService, path: PathNode[], states: StateObject[]) {\n // Only apply the viewConfigs to the nodes for the given states\n path\n .filter((node) => inArray(states, node.state))\n .forEach((node) => {\n const viewDecls: _ViewDeclaration[] = values(node.state.views || {});\n const subPath = PathUtils.subPath(path, (n) => n === node);\n const viewConfigs: ViewConfig[][] = viewDecls.map((view) => $view.createViewConfig(subPath, view));\n node.views = viewConfigs.reduce(unnestR, []);\n });\n }\n\n /**\n * Given a fromPath and a toPath, returns a new to path which inherits parameters from the fromPath\n *\n * For a parameter in a node to be inherited from the from path:\n * - The toPath's node must have a matching node in the fromPath (by state).\n * - The parameter name must not be found in the toKeys parameter array.\n *\n * Note: the keys provided in toKeys are intended to be those param keys explicitly specified by some\n * caller, for instance, $state.transitionTo(..., toParams). If a key was found in toParams,\n * it is not inherited from the fromPath.\n */\n static inheritParams(fromPath: PathNode[], toPath: PathNode[], toKeys: string[] = []): PathNode[] {\n function nodeParamVals(path: PathNode[], state: StateObject): RawParams {\n const node: PathNode = find(path, propEq('state', state));\n return extend({}, node && node.paramValues);\n }\n\n const noInherit = fromPath\n .map((node) => node.paramSchema)\n .reduce(unnestR, [])\n .filter((param) => !param.inherit)\n .map(prop('id'));\n\n /**\n * Given an [[PathNode]] \"toNode\", return a new [[PathNode]] with param values inherited from the\n * matching node in fromPath. Only inherit keys that aren't found in \"toKeys\" from the node in \"fromPath\"\"\n */\n function makeInheritedParamsNode(toNode: PathNode): PathNode {\n // All param values for the node (may include default key/vals, when key was not found in toParams)\n let toParamVals = extend({}, toNode && toNode.paramValues);\n // limited to only those keys found in toParams\n const incomingParamVals = pick(toParamVals, toKeys);\n toParamVals = omit(toParamVals, toKeys);\n const fromParamVals = omit(nodeParamVals(fromPath, toNode.state) || {}, noInherit);\n // extend toParamVals with any fromParamVals, then override any of those those with incomingParamVals\n const ownParamVals: RawParams = extend(toParamVals, fromParamVals, incomingParamVals);\n return new PathNode(toNode.state).applyRawParams(ownParamVals);\n }\n\n // The param keys specified by the incoming toParams\n return toPath.map(makeInheritedParamsNode);\n }\n\n static nonDynamicParams = (node: PathNode): Param[] =>\n node.state.parameters({ inherit: false }).filter((param) => !param.dynamic);\n\n /**\n * Computes the tree changes (entering, exiting) between a fromPath and toPath.\n */\n static treeChanges(fromPath: PathNode[], toPath: PathNode[], reloadState: StateObject): TreeChanges {\n const max = Math.min(fromPath.length, toPath.length);\n let keep = 0;\n\n const nodesMatch = (node1: PathNode, node2: PathNode) => node1.equals(node2, PathUtils.nonDynamicParams);\n\n while (keep < max && fromPath[keep].state !== reloadState && nodesMatch(fromPath[keep], toPath[keep])) {\n keep++;\n }\n\n /** Given a retained node, return a new node which uses the to node's param values */\n function applyToParams(retainedNode: PathNode, idx: number): PathNode {\n const cloned = retainedNode.clone();\n cloned.paramValues = toPath[idx].paramValues;\n return cloned;\n }\n\n let from: PathNode[], retained: PathNode[], exiting: PathNode[], entering: PathNode[], to: PathNode[];\n\n from = fromPath;\n retained = from.slice(0, keep);\n exiting = from.slice(keep);\n\n // Create a new retained path (with shallow copies of nodes) which have the params of the toPath mapped\n const retainedWithToParams = retained.map(applyToParams);\n entering = toPath.slice(keep);\n to = retainedWithToParams.concat(entering);\n\n return { from, to, retained, retainedWithToParams, exiting, entering };\n }\n\n /**\n * Returns a new path which is: the subpath of the first path which matches the second path.\n *\n * The new path starts from root and contains any nodes that match the nodes in the second path.\n * It stops before the first non-matching node.\n *\n * Nodes are compared using their state property and their parameter values.\n * If a `paramsFn` is provided, only the [[Param]] returned by the function will be considered when comparing nodes.\n *\n * @param pathA the first path\n * @param pathB the second path\n * @param paramsFn a function which returns the parameters to consider when comparing\n *\n * @returns an array of PathNodes from the first path which match the nodes in the second path\n */\n static matching(pathA: PathNode[], pathB: PathNode[], paramsFn?: GetParamsFn): PathNode[] {\n let done = false;\n const tuples: PathNode[][] = arrayTuples(pathA, pathB);\n return tuples.reduce((matching, [nodeA, nodeB]) => {\n done = done || !nodeA.equals(nodeB, paramsFn);\n return done ? matching : matching.concat(nodeA);\n }, []);\n }\n\n /**\n * Returns true if two paths are identical.\n *\n * @param pathA\n * @param pathB\n * @param paramsFn a function which returns the parameters to consider when comparing\n * @returns true if the the states and parameter values for both paths are identical\n */\n static equals(pathA: PathNode[], pathB: PathNode[], paramsFn?: GetParamsFn): boolean {\n return pathA.length === pathB.length && PathUtils.matching(pathA, pathB, paramsFn).length === pathA.length;\n }\n\n /**\n * Return a subpath of a path, which stops at the first matching node\n *\n * Given an array of nodes, returns a subset of the array starting from the first node,\n * stopping when the first node matches the predicate.\n *\n * @param path a path of [[PathNode]]s\n * @param predicate a [[Predicate]] fn that matches [[PathNode]]s\n * @returns a subpath up to the matching node, or undefined if no match is found\n */\n static subPath(path: PathNode[], predicate: Predicate): PathNode[] {\n const node = find(path, predicate);\n const elementIdx = path.indexOf(node);\n return elementIdx === -1 ? undefined : path.slice(0, elementIdx + 1);\n }\n\n /** Gets the raw parameter values from a path */\n static paramValues = (path: PathNode[]) => path.reduce((acc, node) => extend(acc, node.paramValues), {});\n}\n", @@ -112,7 +112,7 @@ "import { isString, isFunction, Glob, extend, removeFrom, tail, values, identity, mapObj } from '../common';\nimport { PathNode } from '../path/pathNode';\nimport {\n TransitionStateHookFn,\n TransitionHookFn,\n TransitionHookPhase, // has or is using\n TransitionHookScope,\n IHookRegistry,\n PathType,\n} from './interface';\n\nimport {\n HookRegOptions,\n HookMatchCriteria,\n TreeChanges,\n HookMatchCriterion,\n IMatchingNodes,\n HookFn,\n} from './interface';\nimport { Transition } from './transition';\nimport { StateObject } from '../state/stateObject';\nimport { TransitionEventType } from './transitionEventType';\nimport { TransitionService } from './transitionService';\n\n/**\n * Determines if the given state matches the matchCriteria\n *\n * @internal\n *\n * @param state a State Object to test against\n * @param criterion\n * - If a string, matchState uses the string as a glob-matcher against the state name\n * - If an array (of strings), matchState uses each string in the array as a glob-matchers against the state name\n * and returns a positive match if any of the globs match.\n * - If a function, matchState calls the function with the state and returns true if the function's result is truthy.\n * @returns {boolean}\n */\nexport function matchState(state: StateObject, criterion: HookMatchCriterion, transition: Transition) {\n const toMatch = isString(criterion) ? [criterion] : criterion;\n\n function matchGlobs(_state: StateObject) {\n const globStrings = toMatch;\n for (let i = 0; i < globStrings.length; i++) {\n const glob = new Glob(globStrings[i]);\n\n if ((glob && glob.matches(_state.name)) || (!glob && globStrings[i] === _state.name)) {\n return true;\n }\n }\n return false;\n }\n\n const matchFn = (isFunction(toMatch) ? toMatch : matchGlobs);\n return !!matchFn(state, transition);\n}\n\n/**\n * The registration data for a registered transition hook\n */\nexport class RegisteredHook {\n priority: number;\n bind: any;\n invokeCount = 0;\n invokeLimit: number;\n _deregistered = false;\n\n constructor(\n public tranSvc: TransitionService,\n public eventType: TransitionEventType,\n public callback: HookFn,\n public matchCriteria: HookMatchCriteria,\n public removeHookFromRegistry: (hook: RegisteredHook) => void,\n options: HookRegOptions = {} as any\n ) {\n this.priority = options.priority || 0;\n this.bind = options.bind || null;\n this.invokeLimit = options.invokeLimit;\n }\n\n /**\n * Gets the matching [[PathNode]]s\n *\n * Given an array of [[PathNode]]s, and a [[HookMatchCriterion]], returns an array containing\n * the [[PathNode]]s that the criteria matches, or `null` if there were no matching nodes.\n *\n * Returning `null` is significant to distinguish between the default\n * \"match-all criterion value\" of `true` compared to a `() => true` function,\n * when the nodes is an empty array.\n *\n * This is useful to allow a transition match criteria of `entering: true`\n * to still match a transition, even when `entering === []`. Contrast that\n * with `entering: (state) => true` which only matches when a state is actually\n * being entered.\n */\n private _matchingNodes(nodes: PathNode[], criterion: HookMatchCriterion, transition: Transition): PathNode[] {\n if (criterion === true) return nodes;\n const matching = nodes.filter((node) => matchState(node.state, criterion, transition));\n return matching.length ? matching : null;\n }\n\n /**\n * Gets the default match criteria (all `true`)\n *\n * Returns an object which has all the criteria match paths as keys and `true` as values, i.e.:\n *\n * ```js\n * {\n * to: true,\n * from: true,\n * entering: true,\n * exiting: true,\n * retained: true,\n * }\n */\n private _getDefaultMatchCriteria(): HookMatchCriteria {\n return mapObj(this.tranSvc._pluginapi._getPathTypes(), () => true);\n }\n\n /**\n * Gets matching nodes as [[IMatchingNodes]]\n *\n * Create a IMatchingNodes object from the TransitionHookTypes that is roughly equivalent to:\n *\n * ```js\n * let matches: IMatchingNodes = {\n * to: _matchingNodes([tail(treeChanges.to)], mc.to),\n * from: _matchingNodes([tail(treeChanges.from)], mc.from),\n * exiting: _matchingNodes(treeChanges.exiting, mc.exiting),\n * retained: _matchingNodes(treeChanges.retained, mc.retained),\n * entering: _matchingNodes(treeChanges.entering, mc.entering),\n * };\n * ```\n */\n private _getMatchingNodes(treeChanges: TreeChanges, transition: Transition): IMatchingNodes {\n const criteria = extend(this._getDefaultMatchCriteria(), this.matchCriteria);\n const paths: PathType[] = values(this.tranSvc._pluginapi._getPathTypes());\n\n return paths.reduce((mn: IMatchingNodes, pathtype: PathType) => {\n // STATE scope criteria matches against every node in the path.\n // TRANSITION scope criteria matches against only the last node in the path\n const isStateHook = pathtype.scope === TransitionHookScope.STATE;\n const path = treeChanges[pathtype.name] || [];\n const nodes: PathNode[] = isStateHook ? path : [tail(path)];\n\n mn[pathtype.name] = this._matchingNodes(nodes, criteria[pathtype.name], transition);\n return mn;\n }, {} as IMatchingNodes);\n }\n\n /**\n * Determines if this hook's [[matchCriteria]] match the given [[TreeChanges]]\n *\n * @returns an IMatchingNodes object, or null. If an IMatchingNodes object is returned, its values\n * are the matching [[PathNode]]s for each [[HookMatchCriterion]] (to, from, exiting, retained, entering)\n */\n matches(treeChanges: TreeChanges, transition: Transition): IMatchingNodes {\n const matches = this._getMatchingNodes(treeChanges, transition);\n\n // Check if all the criteria matched the TreeChanges object\n const allMatched = values(matches).every(identity);\n return allMatched ? matches : null;\n }\n\n deregister() {\n this.removeHookFromRegistry(this);\n this._deregistered = true;\n }\n}\n\n/** Return a registration function of the requested type. */\nexport function makeEvent(\n registry: IHookRegistry,\n transitionService: TransitionService,\n eventType: TransitionEventType\n) {\n // Create the object which holds the registered transition hooks.\n const _registeredHooks = (registry._registeredHooks = registry._registeredHooks || {});\n const hooks = (_registeredHooks[eventType.name] = []);\n const removeHookFn: (hook: RegisteredHook) => void = removeFrom(hooks);\n\n // Create hook registration function on the IHookRegistry for the event\n registry[eventType.name] = hookRegistrationFn;\n\n function hookRegistrationFn(matchObject, callback, options = {}) {\n const registeredHook = new RegisteredHook(\n transitionService,\n eventType,\n callback,\n matchObject,\n removeHookFn,\n options\n );\n hooks.push(registeredHook);\n return registeredHook.deregister.bind(registeredHook);\n }\n\n return hookRegistrationFn;\n}\n", "import { extend, tail, assertPredicate, unnestR, identity } from '../common/common';\nimport { isArray } from '../common/predicates';\n\nimport {\n TransitionOptions,\n TransitionHookOptions,\n IHookRegistry,\n TreeChanges,\n IMatchingNodes,\n TransitionHookPhase,\n TransitionHookScope,\n} from './interface';\n\nimport { Transition } from './transition';\nimport { TransitionHook } from './transitionHook';\nimport { StateObject } from '../state/stateObject';\nimport { PathNode } from '../path/pathNode';\nimport { TransitionService } from './transitionService';\nimport { TransitionEventType } from './transitionEventType';\nimport { RegisteredHook } from './hookRegistry';\n\n/**\n * This class returns applicable TransitionHooks for a specific Transition instance.\n *\n * Hooks ([[RegisteredHook]]) may be registered globally, e.g., $transitions.onEnter(...), or locally, e.g.\n * myTransition.onEnter(...). The HookBuilder finds matching RegisteredHooks (where the match criteria is\n * determined by the type of hook)\n *\n * The HookBuilder also converts RegisteredHooks objects to TransitionHook objects, which are used to run a Transition.\n *\n * The HookBuilder constructor is given the $transitions service and a Transition instance. Thus, a HookBuilder\n * instance may only be used for one specific Transition object. (side note: the _treeChanges accessor is private\n * in the Transition class, so we must also provide the Transition's _treeChanges)\n */\nexport class HookBuilder {\n constructor(private transition: Transition) {}\n\n buildHooksForPhase(phase: TransitionHookPhase): TransitionHook[] {\n const $transitions = this.transition.router.transitionService;\n return $transitions._pluginapi\n ._getEvents(phase)\n .map((type) => this.buildHooks(type))\n .reduce(unnestR, [])\n .filter(identity);\n }\n\n /**\n * Returns an array of newly built TransitionHook objects.\n *\n * - Finds all RegisteredHooks registered for the given `hookType` which matched the transition's [[TreeChanges]].\n * - Finds [[PathNode]] (or `PathNode[]`) to use as the TransitionHook context(s)\n * - For each of the [[PathNode]]s, creates a TransitionHook\n *\n * @param hookType the type of the hook registration function, e.g., 'onEnter', 'onFinish'.\n */\n buildHooks(hookType: TransitionEventType): TransitionHook[] {\n const transition = this.transition;\n const treeChanges = transition.treeChanges();\n\n // Find all the matching registered hooks for a given hook type\n const matchingHooks = this.getMatchingHooks(hookType, treeChanges, transition);\n if (!matchingHooks) return [];\n\n const baseHookOptions = {\n transition: transition,\n current: transition.options().current,\n };\n\n const makeTransitionHooks = (hook: RegisteredHook) => {\n // Fetch the Nodes that caused this hook to match.\n const matches: IMatchingNodes = hook.matches(treeChanges, transition);\n // Select the PathNode[] that will be used as TransitionHook context objects\n const matchingNodes: PathNode[] = matches[hookType.criteriaMatchPath.name];\n\n // Return an array of HookTuples\n return matchingNodes.map((node) => {\n const _options = extend(\n {\n bind: hook.bind,\n traceData: { hookType: hookType.name, context: node },\n },\n baseHookOptions\n );\n\n const state = hookType.criteriaMatchPath.scope === TransitionHookScope.STATE ? node.state.self : null;\n const transitionHook = new TransitionHook(transition, state, hook, _options);\n return { hook, node, transitionHook };\n });\n };\n\n return matchingHooks\n .map(makeTransitionHooks)\n .reduce(unnestR, [])\n .sort(tupleSort(hookType.reverseSort))\n .map((tuple) => tuple.transitionHook);\n }\n\n /**\n * Finds all RegisteredHooks from:\n * - The Transition object instance hook registry\n * - The TransitionService ($transitions) global hook registry\n *\n * which matched:\n * - the eventType\n * - the matchCriteria (to, from, exiting, retained, entering)\n *\n * @returns an array of matched [[RegisteredHook]]s\n */\n public getMatchingHooks(\n hookType: TransitionEventType,\n treeChanges: TreeChanges,\n transition: Transition\n ): RegisteredHook[] {\n const isCreate = hookType.hookPhase === TransitionHookPhase.CREATE;\n\n // Instance and Global hook registries\n const $transitions = this.transition.router.transitionService;\n const registries = isCreate ? [$transitions] : [this.transition, $transitions];\n\n return registries\n .map((reg: IHookRegistry) => reg.getHooks(hookType.name)) // Get named hooks from registries\n .filter(assertPredicate(isArray, `broken event named: ${hookType.name}`)) // Sanity check\n .reduce(unnestR, []) // Un-nest RegisteredHook[][] to RegisteredHook[] array\n .filter((hook) => hook.matches(treeChanges, transition)); // Only those satisfying matchCriteria\n }\n}\n\ninterface HookTuple {\n hook: RegisteredHook;\n node: PathNode;\n transitionHook: TransitionHook;\n}\n\n/**\n * A factory for a sort function for HookTuples.\n *\n * The sort function first compares the PathNode depth (how deep in the state tree a node is), then compares\n * the EventHook priority.\n *\n * @param reverseDepthSort a boolean, when true, reverses the sort order for the node depth\n * @returns a tuple sort function\n */\nfunction tupleSort(reverseDepthSort = false) {\n return function nodeDepthThenPriority(l: HookTuple, r: HookTuple): number {\n const factor = reverseDepthSort ? -1 : 1;\n const depthDelta = (l.node.state.path.length - r.node.state.path.length) * factor;\n return depthDelta !== 0 ? depthDelta : r.hook.priority - l.hook.priority;\n };\n}\n", "import { trace } from '../common/trace';\nimport { services } from '../common/coreservices';\nimport { stringify } from '../common/strings';\nimport { map, find, extend, mergeR, tail, omit, arrayTuples, unnestR, identity, anyTrueR } from '../common/common';\nimport { isObject, isUndefined } from '../common/predicates';\nimport { prop, propEq, val, not, is } from '../common/hof';\nimport { StateDeclaration, StateOrName } from '../state/interface';\nimport {\n TransitionOptions,\n TreeChanges,\n IHookRegistry,\n TransitionHookPhase,\n RegisteredHooks,\n HookRegOptions,\n HookMatchCriteria,\n TransitionStateHookFn,\n TransitionHookFn,\n} from './interface'; // has or is using\nimport { TransitionHook } from './transitionHook';\nimport { matchState, makeEvent, RegisteredHook } from './hookRegistry';\nimport { HookBuilder } from './hookBuilder';\nimport { PathNode } from '../path/pathNode';\nimport { PathUtils } from '../path/pathUtils';\nimport { StateObject } from '../state/stateObject';\nimport { TargetState } from '../state/targetState';\nimport { Param } from '../params/param';\nimport { Resolvable } from '../resolve/resolvable';\nimport { ViewConfig } from '../view/interface';\nimport { ResolveContext } from '../resolve/resolveContext';\nimport { UIRouter } from '../router';\nimport { UIInjector } from '../interface';\nimport { RawParams } from '../params/interface';\nimport { ResolvableLiteral } from '../resolve/interface';\nimport { Rejection } from './rejectFactory';\nimport { applyPairs, flattenR, uniqR } from '../common';\n\n/** @internal */\nconst stateSelf: (_state: StateObject) => StateDeclaration = prop('self');\n\n/**\n * Represents a transition between two states.\n *\n * When navigating to a state, we are transitioning **from** the current state **to** the new state.\n *\n * This object contains all contextual information about the to/from states, parameters, resolves.\n * It has information about all states being entered and exited as a result of the transition.\n */\nexport class Transition implements IHookRegistry {\n /** @internal */\n static diToken = Transition;\n\n /**\n * A unique identifier for the transition.\n *\n * This is an auto incrementing integer, starting from `0`.\n */\n $id: number;\n\n /**\n * A reference to the [[UIRouter]] instance\n *\n * This reference can be used to access the router services, such as the [[StateService]]\n */\n router: UIRouter;\n\n /** @internal */\n private _deferred = services.$q.defer();\n /**\n * This promise is resolved or rejected based on the outcome of the Transition.\n *\n * When the transition is successful, the promise is resolved\n * When the transition is unsuccessful, the promise is rejected with the [[Rejection]] or javascript error\n */\n promise: Promise = this._deferred.promise;\n /**\n * A boolean which indicates if the transition was successful\n *\n * After a successful transition, this value is set to true.\n * After an unsuccessful transition, this value is set to false.\n *\n * The value will be undefined if the transition is not complete\n */\n success: boolean;\n /** @internal */\n _aborted: boolean;\n /** @internal */\n private _error: Rejection;\n\n /** @internal Holds the hook registration functions such as those passed to Transition.onStart() */\n _registeredHooks: RegisteredHooks = {};\n\n /** @internal */\n private _options: TransitionOptions;\n /** @internal */\n private _treeChanges: TreeChanges;\n /** @internal */\n private _targetState: TargetState;\n /** @internal */\n private _hookBuilder = new HookBuilder(this);\n\n /** @internal */\n onBefore(criteria: HookMatchCriteria, callback: TransitionHookFn, options?: HookRegOptions): Function {\n return;\n }\n /** @inheritdoc */\n onStart(criteria: HookMatchCriteria, callback: TransitionHookFn, options?: HookRegOptions): Function {\n return;\n }\n /** @inheritdoc */\n onExit(criteria: HookMatchCriteria, callback: TransitionStateHookFn, options?: HookRegOptions): Function {\n return;\n }\n /** @inheritdoc */\n onRetain(criteria: HookMatchCriteria, callback: TransitionStateHookFn, options?: HookRegOptions): Function {\n return;\n }\n /** @inheritdoc */\n onEnter(criteria: HookMatchCriteria, callback: TransitionStateHookFn, options?: HookRegOptions): Function {\n return;\n }\n /** @inheritdoc */\n onFinish(criteria: HookMatchCriteria, callback: TransitionHookFn, options?: HookRegOptions): Function {\n return;\n }\n /** @inheritdoc */\n onSuccess(criteria: HookMatchCriteria, callback: TransitionHookFn, options?: HookRegOptions): Function {\n return;\n }\n /** @inheritdoc */\n onError(criteria: HookMatchCriteria, callback: TransitionHookFn, options?: HookRegOptions): Function {\n return;\n }\n\n /** @internal\n * Creates the transition-level hook registration functions\n * (which can then be used to register hooks)\n */\n private createTransitionHookRegFns() {\n this.router.transitionService._pluginapi\n ._getEvents()\n .filter((type) => type.hookPhase !== TransitionHookPhase.CREATE)\n .forEach((type) => makeEvent(this, this.router.transitionService, type));\n }\n\n /** @internal */\n getHooks(hookName: string): RegisteredHook[] {\n return this._registeredHooks[hookName];\n }\n\n /**\n * Creates a new Transition object.\n *\n * If the target state is not valid, an error is thrown.\n *\n * @internal\n *\n * @param fromPath The path of [[PathNode]]s from which the transition is leaving. The last node in the `fromPath`\n * encapsulates the \"from state\".\n * @param targetState The target state and parameters being transitioned to (also, the transition options)\n * @param router The [[UIRouter]] instance\n * @internal\n */\n constructor(fromPath: PathNode[], targetState: TargetState, router: UIRouter) {\n this.router = router;\n this._targetState = targetState;\n\n if (!targetState.valid()) {\n throw new Error(targetState.error());\n }\n\n // current() is assumed to come from targetState.options, but provide a naive implementation otherwise.\n this._options = extend({ current: val(this) }, targetState.options());\n this.$id = router.transitionService._transitionCount++;\n const toPath = PathUtils.buildToPath(fromPath, targetState);\n this._treeChanges = PathUtils.treeChanges(fromPath, toPath, this._options.reloadState);\n this.createTransitionHookRegFns();\n\n const onCreateHooks = this._hookBuilder.buildHooksForPhase(TransitionHookPhase.CREATE);\n TransitionHook.invokeHooks(onCreateHooks, () => null);\n\n this.applyViewConfigs(router);\n }\n\n private applyViewConfigs(router: UIRouter) {\n const enteringStates = this._treeChanges.entering.map((node) => node.state);\n PathUtils.applyViewConfigs(router.transitionService.$view, this._treeChanges.to, enteringStates);\n }\n\n /**\n * @internal\n * @returns the internal from [State] object\n */\n $from() {\n return tail(this._treeChanges.from).state;\n }\n\n /**\n * @internal\n * @returns the internal to [State] object\n */\n $to() {\n return tail(this._treeChanges.to).state;\n }\n\n /**\n * Returns the \"from state\"\n *\n * Returns the state that the transition is coming *from*.\n *\n * @returns The state declaration object for the Transition's (\"from state\").\n */\n from(): StateDeclaration {\n return this.$from().self;\n }\n\n /**\n * Returns the \"to state\"\n *\n * Returns the state that the transition is going *to*.\n *\n * @returns The state declaration object for the Transition's target state (\"to state\").\n */\n to(): StateDeclaration {\n return this.$to().self;\n }\n\n /**\n * Gets the Target State\n *\n * A transition's [[TargetState]] encapsulates the [[to]] state, the [[params]], and the [[options]] as a single object.\n *\n * @returns the [[TargetState]] of this Transition\n */\n targetState() {\n return this._targetState;\n }\n\n /**\n * Determines whether two transitions are equivalent.\n * @deprecated\n */\n is(compare: Transition | { to?: any; from?: any }): boolean {\n if (compare instanceof Transition) {\n // TODO: Also compare parameters\n return this.is({ to: compare.$to().name, from: compare.$from().name });\n }\n return !(\n (compare.to && !matchState(this.$to(), compare.to, this)) ||\n (compare.from && !matchState(this.$from(), compare.from, this))\n );\n }\n\n /**\n * Gets transition parameter values\n *\n * Returns the parameter values for a transition as key/value pairs.\n * This object is immutable.\n *\n * By default, returns the new parameter values (for the \"to state\").\n *\n * #### Example:\n * ```js\n * var toParams = transition.params();\n * ```\n *\n * To return the previous parameter values, supply `'from'` as the `pathname` argument.\n *\n * #### Example:\n * ```js\n * var fromParams = transition.params('from');\n * ```\n *\n * @param pathname the name of the treeChanges path to get parameter values for:\n * (`'to'`, `'from'`, `'entering'`, `'exiting'`, `'retained'`)\n *\n * @returns transition parameter values for the desired path.\n */\n params(pathname?: string): { [paramName: string]: any };\n params(pathname?: string): T;\n params(pathname = 'to') {\n return Object.freeze(this._treeChanges[pathname].map(prop('paramValues')).reduce(mergeR, {}));\n }\n\n /**\n * Gets the new values of any parameters that changed during this transition.\n *\n * Returns any parameter values that have changed during a transition, as key/value pairs.\n *\n * - Any parameter values that have changed will be present on the returned object reflecting the new value.\n * - Any parameters that *not* have changed will not be present on the returned object.\n * - Any new parameters that weren't present in the \"from\" state, but are now present in the \"to\" state will be present on the returned object.\n * - Any previous parameters that are no longer present (because the \"to\" state doesn't have them) will be included with a value of `undefined`.\n *\n * The returned object is immutable.\n *\n * #### Examples:\n *\n * Given:\n * ```js\n * var stateA = { name: 'stateA', url: '/stateA/:param1/param2' }\n * var stateB = { name: 'stateB', url: '/stateB/:param3' }\n * var stateC = { name: 'stateB.nest', url: '/nest/:param4' }\n * ```\n *\n * #### Example 1\n *\n * From `/stateA/abc/def` to `/stateA/abc/xyz`\n *\n * ```js\n * var changed = transition.paramsChanged()\n * // changed is { param2: 'xyz' }\n * ```\n *\n * The value of `param2` changed to `xyz`.\n * The value of `param1` stayed the same so its value is not present.\n *\n * #### Example 2\n *\n * From `/stateA/abc/def` to `/stateB/123`\n *\n * ```js\n * var changed = transition.paramsChanged()\n * // changed is { param1: undefined, param2: undefined, param3: '123' }\n * ```\n *\n * The value `param3` is present because it is a new param.\n * Both `param1` and `param2` are no longer present so their value is undefined.\n *\n * #### Example 3\n *\n * From `/stateB/123` to `/stateB/123/nest/456`\n *\n * ```js\n * var changed = transition.paramsChanged()\n * // changed is { param4: '456' }\n * ```\n *\n * The value `param4` is present because it is a new param.\n * The value of `param3` did not change, so its value is not present.\n *\n * @returns an immutable object with changed parameter keys/values.\n */\n paramsChanged(): { [paramName: string]: any };\n paramsChanged(): T;\n paramsChanged() {\n const fromParams = this.params('from');\n const toParams = this.params('to');\n\n // All the parameters declared on both the \"to\" and \"from\" paths\n const allParamDescriptors: Param[] = []\n .concat(this._treeChanges.to)\n .concat(this._treeChanges.from)\n .map((pathNode) => pathNode.paramSchema)\n .reduce(flattenR, [])\n .reduce(uniqR, []);\n\n const changedParamDescriptors = Param.changed(allParamDescriptors, fromParams, toParams);\n\n return changedParamDescriptors.reduce((changedValues, descriptor) => {\n changedValues[descriptor.id] = toParams[descriptor.id];\n return changedValues;\n }, {});\n }\n\n /**\n * Creates a [[UIInjector]] Dependency Injector\n *\n * Returns a Dependency Injector for the Transition's target state (to state).\n * The injector provides resolve values which the target state has access to.\n *\n * The `UIInjector` can also provide values from the native root/global injector (ng1/ng2).\n *\n * #### Example:\n * ```js\n * .onEnter({ entering: 'myState' }, trans => {\n * var myResolveValue = trans.injector().get('myResolve');\n * // Inject a global service from the global/native injector (if it exists)\n * var MyService = trans.injector().get('MyService');\n * })\n * ```\n *\n * In some cases (such as `onBefore`), you may need access to some resolve data but it has not yet been fetched.\n * You can use [[UIInjector.getAsync]] to get a promise for the data.\n * #### Example:\n * ```js\n * .onBefore({}, trans => {\n * return trans.injector().getAsync('myResolve').then(myResolveValue =>\n * return myResolveValue !== 'ABORT';\n * });\n * });\n * ```\n *\n * If a `state` is provided, the injector that is returned will be limited to resolve values that the provided state has access to.\n * This can be useful if both a parent state `foo` and a child state `foo.bar` have both defined a resolve such as `data`.\n * #### Example:\n * ```js\n * .onEnter({ to: 'foo.bar' }, trans => {\n * // returns result of `foo` state's `myResolve` resolve\n * // even though `foo.bar` also has a `myResolve` resolve\n * var fooData = trans.injector('foo').get('myResolve');\n * });\n * ```\n *\n * If you need resolve data from the exiting states, pass `'from'` as `pathName`.\n * The resolve data from the `from` path will be returned.\n * #### Example:\n * ```js\n * .onExit({ exiting: 'foo.bar' }, trans => {\n * // Gets the resolve value of `myResolve` from the state being exited\n * var fooData = trans.injector(null, 'from').get('myResolve');\n * });\n * ```\n *\n *\n * @param state Limits the resolves provided to only the resolves the provided state has access to.\n * @param pathName Default: `'to'`: Chooses the path for which to create the injector. Use this to access resolves for `exiting` states.\n *\n * @returns a [[UIInjector]]\n */\n injector(state?: StateOrName, pathName = 'to'): UIInjector {\n let path: PathNode[] = this._treeChanges[pathName];\n if (state) path = PathUtils.subPath(path, (node) => node.state === state || node.state.name === state);\n return new ResolveContext(path).injector();\n }\n\n /**\n * Gets all available resolve tokens (keys)\n *\n * This method can be used in conjunction with [[injector]] to inspect the resolve values\n * available to the Transition.\n *\n * This returns all the tokens defined on [[StateDeclaration.resolve]] blocks, for the states\n * in the Transition's [[TreeChanges.to]] path.\n *\n * #### Example:\n * This example logs all resolve values\n * ```js\n * let tokens = trans.getResolveTokens();\n * tokens.forEach(token => console.log(token + \" = \" + trans.injector().get(token)));\n * ```\n *\n * #### Example:\n * This example creates promises for each resolve value.\n * This triggers fetches of resolves (if any have not yet been fetched).\n * When all promises have all settled, it logs the resolve values.\n * ```js\n * let tokens = trans.getResolveTokens();\n * let promise = tokens.map(token => trans.injector().getAsync(token));\n * Promise.all(promises).then(values => console.log(\"Resolved values: \" + values));\n * ```\n *\n * Note: Angular 1 users whould use `$q.all()`\n *\n * @param pathname resolve context's path name (e.g., `to` or `from`)\n *\n * @returns an array of resolve tokens (keys)\n */\n getResolveTokens(pathname = 'to'): any[] {\n return new ResolveContext(this._treeChanges[pathname]).getTokens();\n }\n\n /**\n * Dynamically adds a new [[Resolvable]] (i.e., [[StateDeclaration.resolve]]) to this transition.\n *\n * Allows a transition hook to dynamically add a Resolvable to this Transition.\n *\n * Use the [[Transition.injector]] to retrieve the resolved data in subsequent hooks ([[UIInjector.get]]).\n *\n * If a `state` argument is provided, the Resolvable is processed when that state is being entered.\n * If no `state` is provided then the root state is used.\n * If the given `state` has already been entered, the Resolvable is processed when any child state is entered.\n * If no child states will be entered, the Resolvable is processed during the `onFinish` phase of the Transition.\n *\n * The `state` argument also scopes the resolved data.\n * The resolved data is available from the injector for that `state` and any children states.\n *\n * #### Example:\n * ```js\n * transitionService.onBefore({}, transition => {\n * transition.addResolvable({\n * token: 'myResolve',\n * deps: ['MyService'],\n * resolveFn: myService => myService.getData()\n * });\n * });\n * ```\n *\n * @param resolvable a [[ResolvableLiteral]] object (or a [[Resolvable]])\n * @param state the state in the \"to path\" which should receive the new resolve (otherwise, the root state)\n */\n addResolvable(resolvable: Resolvable | ResolvableLiteral, state: StateOrName = ''): void {\n resolvable = is(Resolvable)(resolvable) ? resolvable : new Resolvable(resolvable);\n\n const stateName: string = typeof state === 'string' ? state : state.name;\n const topath = this._treeChanges.to;\n const targetNode = find(topath, (node) => node.state.name === stateName);\n const resolveContext: ResolveContext = new ResolveContext(topath);\n resolveContext.addResolvables([resolvable as Resolvable], targetNode.state);\n }\n\n /**\n * Gets the transition from which this transition was redirected.\n *\n * If the current transition is a redirect, this method returns the transition that was redirected.\n *\n * #### Example:\n * ```js\n * let transitionA = $state.go('A').transition\n * transitionA.onStart({}, () => $state.target('B'));\n * $transitions.onSuccess({ to: 'B' }, (trans) => {\n * trans.to().name === 'B'; // true\n * trans.redirectedFrom() === transitionA; // true\n * });\n * ```\n *\n * @returns The previous Transition, or null if this Transition is not the result of a redirection\n */\n redirectedFrom(): Transition {\n return this._options.redirectedFrom || null;\n }\n\n /**\n * Gets the original transition in a redirect chain\n *\n * A transition might belong to a long chain of multiple redirects.\n * This method walks the [[redirectedFrom]] chain back to the original (first) transition in the chain.\n *\n * #### Example:\n * ```js\n * // states\n * registry.register({ name: 'A', redirectTo: 'B' });\n * registry.register({ name: 'B', redirectTo: 'C' });\n * registry.register({ name: 'C', redirectTo: 'D' });\n * registry.register({ name: 'D' });\n *\n * let transitionA = $state.go('A').transition\n *\n * $transitions.onSuccess({ to: 'D' }, (trans) => {\n * trans.to().name === 'D'; // true\n * trans.redirectedFrom().to().name === 'C'; // true\n * trans.originalTransition() === transitionA; // true\n * trans.originalTransition().to().name === 'A'; // true\n * });\n * ```\n *\n * @returns The original Transition that started a redirect chain\n */\n originalTransition(): Transition {\n const rf = this.redirectedFrom();\n return (rf && rf.originalTransition()) || this;\n }\n\n /**\n * Get the transition options\n *\n * @returns the options for this Transition.\n */\n options(): TransitionOptions {\n return this._options;\n }\n\n /**\n * Gets the states being entered.\n *\n * @returns an array of states that will be entered during this transition.\n */\n entering(): StateDeclaration[] {\n return map(this._treeChanges.entering, prop('state')).map(stateSelf);\n }\n\n /**\n * Gets the states being exited.\n *\n * @returns an array of states that will be exited during this transition.\n */\n exiting(): StateDeclaration[] {\n return map(this._treeChanges.exiting, prop('state')).map(stateSelf).reverse();\n }\n\n /**\n * Gets the states being retained.\n *\n * @returns an array of states that are already entered from a previous Transition, that will not be\n * exited during this Transition\n */\n retained(): StateDeclaration[] {\n return map(this._treeChanges.retained, prop('state')).map(stateSelf);\n }\n\n /**\n * Get the [[ViewConfig]]s associated with this Transition\n *\n * Each state can define one or more views (template/controller), which are encapsulated as `ViewConfig` objects.\n * This method fetches the `ViewConfigs` for a given path in the Transition (e.g., \"to\" or \"entering\").\n *\n * @param pathname the name of the path to fetch views for:\n * (`'to'`, `'from'`, `'entering'`, `'exiting'`, `'retained'`)\n * @param state If provided, only returns the `ViewConfig`s for a single state in the path\n *\n * @returns a list of ViewConfig objects for the given path.\n */\n views(pathname = 'entering', state?: StateObject): ViewConfig[] {\n let path = this._treeChanges[pathname];\n path = !state ? path : path.filter(propEq('state', state));\n return path.map(prop('views')).filter(identity).reduce(unnestR, []);\n }\n\n /**\n * Return the transition's tree changes\n *\n * A transition goes from one state/parameters to another state/parameters.\n * During a transition, states are entered and/or exited.\n *\n * This function returns various branches (paths) which represent the changes to the\n * active state tree that are caused by the transition.\n *\n * @param pathname The name of the tree changes path to get:\n * (`'to'`, `'from'`, `'entering'`, `'exiting'`, `'retained'`)\n */\n treeChanges(pathname: string): PathNode[];\n treeChanges(): TreeChanges;\n treeChanges(pathname?: string) {\n return pathname ? this._treeChanges[pathname] : this._treeChanges;\n }\n\n /**\n * Creates a new transition that is a redirection of the current one.\n *\n * This transition can be returned from a [[TransitionService]] hook to\n * redirect a transition to a new state and/or set of parameters.\n *\n * @internal\n *\n * @returns Returns a new [[Transition]] instance.\n */\n redirect(targetState: TargetState): Transition {\n let redirects = 1,\n trans: Transition = this;\n // tslint:disable-next-line:no-conditional-assignment\n while ((trans = trans.redirectedFrom()) != null) {\n if (++redirects > 20) throw new Error(`Too many consecutive Transition redirects (20+)`);\n }\n\n const redirectOpts: TransitionOptions = { redirectedFrom: this, source: 'redirect' };\n // If the original transition was caused by URL sync, then use { location: 'replace' }\n // on the new transition (unless the target state explicitly specifies location: false).\n // This causes the original url to be replaced with the url for the redirect target\n // so the original url disappears from the browser history.\n if (this.options().source === 'url' && targetState.options().location !== false) {\n redirectOpts.location = 'replace';\n }\n\n const newOptions = extend({}, this.options(), targetState.options(), redirectOpts);\n targetState = targetState.withOptions(newOptions, true);\n\n const newTransition = this.router.transitionService.create(this._treeChanges.from, targetState);\n const originalEnteringNodes = this._treeChanges.entering;\n const redirectEnteringNodes = newTransition._treeChanges.entering;\n\n // --- Re-use resolve data from original transition ---\n // When redirecting from a parent state to a child state where the parent parameter values haven't changed\n // (because of the redirect), the resolves fetched by the original transition are still valid in the\n // redirected transition.\n //\n // This allows you to define a redirect on a parent state which depends on an async resolve value.\n // You can wait for the resolve, then redirect to a child state based on the result.\n // The redirected transition does not have to re-fetch the resolve.\n // ---------------------------------------------------------\n\n const nodeIsReloading = (reloadState: StateObject) => (node: PathNode) => {\n return reloadState && node.state.includes[reloadState.name];\n };\n\n // Find any \"entering\" nodes in the redirect path that match the original path and aren't being reloaded\n const matchingEnteringNodes: PathNode[] = PathUtils.matching(\n redirectEnteringNodes,\n originalEnteringNodes,\n PathUtils.nonDynamicParams\n ).filter(not(nodeIsReloading(targetState.options().reloadState)));\n\n // Use the existing (possibly pre-resolved) resolvables for the matching entering nodes.\n matchingEnteringNodes.forEach((node, idx) => {\n node.resolvables = originalEnteringNodes[idx].resolvables;\n });\n\n return newTransition;\n }\n\n /** @internal If a transition doesn't exit/enter any states, returns any [[Param]] whose value changed */\n private _changedParams(): Param[] {\n const tc = this._treeChanges;\n\n /** Return undefined if it's not a \"dynamic\" transition, for the following reasons */\n // If user explicitly wants a reload\n if (this._options.reload) return undefined;\n // If any states are exiting or entering\n if (tc.exiting.length || tc.entering.length) return undefined;\n // If to/from path lengths differ\n if (tc.to.length !== tc.from.length) return undefined;\n // If the to/from paths are different\n const pathsDiffer: boolean = arrayTuples(tc.to, tc.from)\n .map((tuple) => tuple[0].state !== tuple[1].state)\n .reduce(anyTrueR, false);\n if (pathsDiffer) return undefined;\n\n // Find any parameter values that differ\n const nodeSchemas: Param[][] = tc.to.map((node: PathNode) => node.paramSchema);\n const [toValues, fromValues] = [tc.to, tc.from].map((path) => path.map((x) => x.paramValues));\n const tuples = arrayTuples(nodeSchemas, toValues, fromValues);\n\n return tuples.map(([schema, toVals, fromVals]) => Param.changed(schema, toVals, fromVals)).reduce(unnestR, []);\n }\n\n /**\n * Returns true if the transition is dynamic.\n *\n * A transition is dynamic if no states are entered nor exited, but at least one dynamic parameter has changed.\n *\n * @returns true if the Transition is dynamic\n */\n dynamic(): boolean {\n const changes = this._changedParams();\n return !changes ? false : changes.map((x) => x.dynamic).reduce(anyTrueR, false);\n }\n\n /**\n * Returns true if the transition is ignored.\n *\n * A transition is ignored if no states are entered nor exited, and no parameter values have changed.\n *\n * @returns true if the Transition is ignored.\n */\n ignored(): boolean {\n return !!this._ignoredReason();\n }\n\n /** @internal */\n _ignoredReason(): 'SameAsCurrent' | 'SameAsPending' | undefined {\n const pending = this.router.globals.transition;\n const reloadState = this._options.reloadState;\n\n const same = (pathA, pathB) => {\n if (pathA.length !== pathB.length) return false;\n const matching = PathUtils.matching(pathA, pathB);\n return pathA.length === matching.filter((node) => !reloadState || !node.state.includes[reloadState.name]).length;\n };\n\n const newTC = this.treeChanges();\n const pendTC = pending && pending.treeChanges();\n\n if (pendTC && same(pendTC.to, newTC.to) && same(pendTC.exiting, newTC.exiting)) return 'SameAsPending';\n if (newTC.exiting.length === 0 && newTC.entering.length === 0 && same(newTC.from, newTC.to)) return 'SameAsCurrent';\n }\n\n /**\n * Runs the transition\n *\n * This method is generally called from the [[StateService.transitionTo]]\n *\n * @internal\n *\n * @returns a promise for a successful transition.\n */\n run(): Promise {\n const runAllHooks = TransitionHook.runAllHooks;\n\n // Gets transition hooks array for the given phase\n const getHooksFor = (phase: TransitionHookPhase) => this._hookBuilder.buildHooksForPhase(phase);\n\n // When the chain is complete, then resolve or reject the deferred\n const transitionSuccess = () => {\n trace.traceSuccess(this.$to(), this);\n this.success = true;\n this._deferred.resolve(this.to());\n runAllHooks(getHooksFor(TransitionHookPhase.SUCCESS));\n };\n\n const transitionError = (reason: Rejection) => {\n trace.traceError(reason, this);\n this.success = false;\n this._deferred.reject(reason);\n this._error = reason;\n runAllHooks(getHooksFor(TransitionHookPhase.ERROR));\n };\n\n const runTransition = () => {\n // Wait to build the RUN hook chain until the BEFORE hooks are done\n // This allows a BEFORE hook to dynamically add additional RUN hooks via the Transition object.\n const allRunHooks = getHooksFor(TransitionHookPhase.RUN);\n const done = () => services.$q.when(undefined);\n return TransitionHook.invokeHooks(allRunHooks, done);\n };\n\n const startTransition = () => {\n const globals = this.router.globals;\n\n globals.lastStartedTransitionId = this.$id;\n globals.transition = this;\n globals.transitionHistory.enqueue(this);\n\n trace.traceTransitionStart(this);\n\n return services.$q.when(undefined);\n };\n\n const allBeforeHooks = getHooksFor(TransitionHookPhase.BEFORE);\n TransitionHook.invokeHooks(allBeforeHooks, startTransition)\n .then(runTransition)\n .then(transitionSuccess, transitionError);\n\n return this.promise;\n }\n\n /** Checks if this transition is currently active/running. */\n isActive = () => this.router.globals.transition === this;\n\n /**\n * Checks if the Transition is valid\n *\n * @returns true if the Transition is valid\n */\n valid() {\n return !this.error() || this.success !== undefined;\n }\n\n /**\n * Aborts this transition\n *\n * Imperative API to abort a Transition.\n * This only applies to Transitions that are not yet complete.\n */\n abort() {\n // Do not set flag if the transition is already complete\n if (isUndefined(this.success)) {\n this._aborted = true;\n }\n }\n\n /**\n * The Transition error reason.\n *\n * If the transition is invalid (and could not be run), returns the reason the transition is invalid.\n * If the transition was valid and ran, but was not successful, returns the reason the transition failed.\n *\n * @returns a transition rejection explaining why the transition is invalid, or the reason the transition failed.\n */\n error(): Rejection {\n const state: StateObject = this.$to();\n\n if (state.self.abstract) {\n return Rejection.invalid(`Cannot transition to abstract state '${state.name}'`);\n }\n\n const paramDefs = state.parameters();\n const values = this.params();\n const invalidParams = paramDefs.filter((param) => !param.validates(values[param.id]));\n\n if (invalidParams.length) {\n const invalidValues = invalidParams.map((param) => `[${param.id}:${stringify(values[param.id])}]`).join(', ');\n const detail = `The following parameter values are not valid for state '${state.name}': ${invalidValues}`;\n return Rejection.invalid(detail);\n }\n\n if (this.success === false) return this._error;\n }\n\n /**\n * A string representation of the Transition\n *\n * @returns A string representation of the Transition\n */\n toString() {\n const fromStateOrName = this.from();\n const toStateOrName = this.to();\n\n const avoidEmptyHash = (params: RawParams) =>\n params['#'] !== null && params['#'] !== undefined ? params : omit(params, ['#']);\n\n // (X) means the to state is invalid.\n const id = this.$id,\n from = isObject(fromStateOrName) ? fromStateOrName.name : fromStateOrName,\n fromParams = stringify(avoidEmptyHash(this._treeChanges.from.map(prop('paramValues')).reduce(mergeR, {}))),\n toValid = this.valid() ? '' : '(X) ',\n to = isObject(toStateOrName) ? toStateOrName.name : toStateOrName,\n toParams = stringify(avoidEmptyHash(this.params()));\n\n return `Transition#${id}( '${from}'${fromParams} -> ${toValid}'${to}'${toParams} )`;\n }\n}\n", - "import { map, inherit, identity, unnest, tail, find, Obj, allTrueR, unnestR, arrayTuples } from '../common/common';\nimport { prop, propEq } from '../common/hof';\nimport { isArray, isString, isDefined } from '../common/predicates';\nimport { Param, DefType } from '../params/param';\nimport { ParamTypes } from '../params/paramTypes';\nimport { RawParams } from '../params/interface';\nimport { UrlMatcherCompileConfig } from './interface';\nimport { joinNeighborsR, splitOnDelim } from '../common/strings';\nimport { ParamType } from '../params';\nimport { defaults } from '../common';\nimport { ParamFactory } from './urlMatcherFactory';\n\nfunction quoteRegExp(str: any, param?: any) {\n let surroundPattern = ['', ''],\n result = str.replace(/[\\\\\\[\\]\\^$*+?.()|{}]/g, '\\\\$&');\n if (!param) return result;\n\n switch (param.squash) {\n case false:\n surroundPattern = ['(', ')' + (param.isOptional ? '?' : '')];\n break;\n case true:\n result = result.replace(/\\/$/, '');\n surroundPattern = ['(?:/(', ')|/)?'];\n break;\n default:\n surroundPattern = [`(${param.squash}|`, ')?'];\n break;\n }\n return result + surroundPattern[0] + param.type.pattern.source + surroundPattern[1];\n}\n\nconst memoizeTo = (obj: Obj, _prop: string, fn: Function) => (obj[_prop] = obj[_prop] || fn());\n\nconst splitOnSlash = splitOnDelim('/');\n\ninterface UrlMatcherCache {\n segments?: any[];\n weights?: number[];\n path?: UrlMatcher[];\n parent?: UrlMatcher;\n pattern?: RegExp;\n}\n\ninterface MatchDetails {\n id: string;\n regexp: string;\n segment: string;\n type: ParamType;\n}\n\nconst defaultConfig: UrlMatcherCompileConfig = {\n state: { params: {} },\n strict: true,\n caseInsensitive: true,\n decodeParams: true,\n};\n\n/**\n * Matches URLs against patterns.\n *\n * Matches URLs against patterns and extracts named parameters from the path or the search\n * part of the URL.\n *\n * A URL pattern consists of a path pattern, optionally followed by '?' and a list of search (query)\n * parameters. Multiple search parameter names are separated by '&'. Search parameters\n * do not influence whether or not a URL is matched, but their values are passed through into\n * the matched parameters returned by [[UrlMatcher.exec]].\n *\n * - *Path parameters* are defined using curly brace placeholders (`/somepath/{param}`)\n * or colon placeholders (`/somePath/:param`).\n *\n * - *A parameter RegExp* may be defined for a param after a colon\n * (`/somePath/{param:[a-zA-Z0-9]+}`) in a curly brace placeholder.\n * The regexp must match for the url to be matched.\n * Should the regexp itself contain curly braces, they must be in matched pairs or escaped with a backslash.\n *\n * Note: a RegExp parameter will encode its value using either [[ParamTypes.path]] or [[ParamTypes.query]].\n *\n * - *Custom parameter types* may also be specified after a colon (`/somePath/{param:int}`) in curly brace parameters.\n * See [[UrlMatcherFactory.type]] for more information.\n *\n * - *Catch-all parameters* are defined using an asterisk placeholder (`/somepath/*catchallparam`).\n * A catch-all * parameter value will contain the remainder of the URL.\n *\n * ---\n *\n * Parameter names may contain only word characters (latin letters, digits, and underscore) and\n * must be unique within the pattern (across both path and search parameters).\n * A path parameter matches any number of characters other than '/'. For catch-all\n * placeholders the path parameter matches any number of characters.\n *\n * Examples:\n *\n * * `'/hello/'` - Matches only if the path is exactly '/hello/'. There is no special treatment for\n * trailing slashes, and patterns have to match the entire path, not just a prefix.\n * * `'/user/:id'` - Matches '/user/bob' or '/user/1234!!!' or even '/user/' but not '/user' or\n * '/user/bob/details'. The second path segment will be captured as the parameter 'id'.\n * * `'/user/{id}'` - Same as the previous example, but using curly brace syntax.\n * * `'/user/{id:[^/]*}'` - Same as the previous example.\n * * `'/user/{id:[0-9a-fA-F]{1,8}}'` - Similar to the previous example, but only matches if the id\n * parameter consists of 1 to 8 hex digits.\n * * `'/files/{path:.*}'` - Matches any URL starting with '/files/' and captures the rest of the\n * path into the parameter 'path'.\n * * `'/files/*path'` - ditto.\n * * `'/calendar/{start:date}'` - Matches \"/calendar/2014-11-12\" (because the pattern defined\n * in the built-in `date` ParamType matches `2014-11-12`) and provides a Date object in $stateParams.start\n *\n */\nexport class UrlMatcher {\n /** @internal */\n static nameValidator: RegExp = /^\\w+([-.]+\\w+)*(?:\\[\\])?$/;\n\n /** @internal */\n private _cache: UrlMatcherCache = { path: [this] };\n /** @internal */\n private _children: UrlMatcher[] = [];\n /** @internal */\n private _params: Param[] = [];\n /** @internal */\n private _segments: string[] = [];\n /** @internal */\n private _compiled: string[] = [];\n /** @internal */\n private readonly config: UrlMatcherCompileConfig;\n\n /** The pattern that was passed into the constructor */\n public pattern: string;\n\n /** @internal */\n static encodeDashes(str: string) {\n // Replace dashes with encoded \"\\-\"\n return encodeURIComponent(str).replace(/-/g, (c) => `%5C%${c.charCodeAt(0).toString(16).toUpperCase()}`);\n }\n\n /** @internal Given a matcher, return an array with the matcher's path segments and path params, in order */\n static pathSegmentsAndParams(matcher: UrlMatcher) {\n const staticSegments = matcher._segments;\n const pathParams = matcher._params.filter((p) => p.location === DefType.PATH);\n return arrayTuples(staticSegments, pathParams.concat(undefined))\n .reduce(unnestR, [])\n .filter((x) => x !== '' && isDefined(x));\n }\n\n /** @internal Given a matcher, return an array with the matcher's query params */\n static queryParams(matcher: UrlMatcher): Param[] {\n return matcher._params.filter((p) => p.location === DefType.SEARCH);\n }\n\n /**\n * Compare two UrlMatchers\n *\n * This comparison function converts a UrlMatcher into static and dynamic path segments.\n * Each static path segment is a static string between a path separator (slash character).\n * Each dynamic segment is a path parameter.\n *\n * The comparison function sorts static segments before dynamic ones.\n */\n static compare(a: UrlMatcher, b: UrlMatcher): number {\n /**\n * Turn a UrlMatcher and all its parent matchers into an array\n * of slash literals '/', string literals, and Param objects\n *\n * This example matcher matches strings like \"/foo/:param/tail\":\n * var matcher = $umf.compile(\"/foo\").append($umf.compile(\"/:param\")).append($umf.compile(\"/\")).append($umf.compile(\"tail\"));\n * var result = segments(matcher); // [ '/', 'foo', '/', Param, '/', 'tail' ]\n *\n * Caches the result as `matcher._cache.segments`\n */\n const segments = (matcher: UrlMatcher) =>\n (matcher._cache.segments =\n matcher._cache.segments ||\n matcher._cache.path\n .map(UrlMatcher.pathSegmentsAndParams)\n .reduce(unnestR, [])\n .reduce(joinNeighborsR, [])\n .map((x) => (isString(x) ? splitOnSlash(x) : x))\n .reduce(unnestR, []));\n\n /**\n * Gets the sort weight for each segment of a UrlMatcher\n *\n * Caches the result as `matcher._cache.weights`\n */\n const weights = (matcher: UrlMatcher) =>\n (matcher._cache.weights =\n matcher._cache.weights ||\n segments(matcher).map((segment) => {\n // Sort slashes first, then static strings, the Params\n if (segment === '/') return 1;\n if (isString(segment)) return 2;\n if (segment instanceof Param) return 3;\n }));\n\n /**\n * Pads shorter array in-place (mutates)\n */\n const padArrays = (l: any[], r: any[], padVal: any) => {\n const len = Math.max(l.length, r.length);\n while (l.length < len) l.push(padVal);\n while (r.length < len) r.push(padVal);\n };\n\n const weightsA = weights(a),\n weightsB = weights(b);\n padArrays(weightsA, weightsB, 0);\n\n const _pairs = arrayTuples(weightsA, weightsB);\n let cmp, i;\n\n for (i = 0; i < _pairs.length; i++) {\n cmp = _pairs[i][0] - _pairs[i][1];\n if (cmp !== 0) return cmp;\n }\n\n return 0;\n }\n\n /**\n * @param pattern The pattern to compile into a matcher.\n * @param paramTypes The [[ParamTypes]] registry\n * @param paramFactory A [[ParamFactory]] object\n * @param config A [[UrlMatcherCompileConfig]] configuration object\n */\n constructor(pattern: string, paramTypes: ParamTypes, paramFactory: ParamFactory, config?: UrlMatcherCompileConfig) {\n this.config = config = defaults(config, defaultConfig);\n this.pattern = pattern;\n\n // Find all placeholders and create a compiled pattern, using either classic or curly syntax:\n // '*' name\n // ':' name\n // '{' name '}'\n // '{' name ':' regexp '}'\n // The regular expression is somewhat complicated due to the need to allow curly braces\n // inside the regular expression. The placeholder regexp breaks down as follows:\n // ([:*])([\\w\\[\\]]+) - classic placeholder ($1 / $2) (search version has - for snake-case)\n // \\{([\\w\\[\\]]+)(?:\\:\\s*( ... ))?\\} - curly brace placeholder ($3) with optional regexp/type ... ($4) (search version has - for snake-case\n // (?: ... | ... | ... )+ - the regexp consists of any number of atoms, an atom being either\n // [^{}\\\\]+ - anything other than curly braces or backslash\n // \\\\. - a backslash escape\n // \\{(?:[^{}\\\\]+|\\\\.)*\\} - a matched set of curly braces containing other atoms\n const placeholder = /([:*])([\\w\\[\\]]+)|\\{([\\w\\[\\]]+)(?:\\:\\s*((?:[^{}\\\\]+|\\\\.|\\{(?:[^{}\\\\]+|\\\\.)*\\})+))?\\}/g;\n const searchPlaceholder = /([:]?)([\\w\\[\\].-]+)|\\{([\\w\\[\\].-]+)(?:\\:\\s*((?:[^{}\\\\]+|\\\\.|\\{(?:[^{}\\\\]+|\\\\.)*\\})+))?\\}/g;\n const patterns: any[][] = [];\n let last = 0;\n let matchArray: RegExpExecArray;\n\n const checkParamErrors = (id: string) => {\n if (!UrlMatcher.nameValidator.test(id)) throw new Error(`Invalid parameter name '${id}' in pattern '${pattern}'`);\n if (find(this._params, propEq('id', id)))\n throw new Error(`Duplicate parameter name '${id}' in pattern '${pattern}'`);\n };\n\n // Split into static segments separated by path parameter placeholders.\n // The number of segments is always 1 more than the number of parameters.\n const matchDetails = (m: RegExpExecArray, isSearch: boolean): MatchDetails => {\n // IE[78] returns '' for unmatched groups instead of null\n const id: string = m[2] || m[3];\n const regexp: string = isSearch ? m[4] : m[4] || (m[1] === '*' ? '[\\\\s\\\\S]*' : null);\n\n const makeRegexpType = (str) =>\n inherit(paramTypes.type(isSearch ? 'query' : 'path'), {\n pattern: new RegExp(str, this.config.caseInsensitive ? 'i' : undefined),\n });\n\n return {\n id,\n regexp,\n segment: pattern.substring(last, m.index),\n type: !regexp ? null : paramTypes.type(regexp) || makeRegexpType(regexp),\n };\n };\n\n let details: MatchDetails;\n let segment: string;\n\n // tslint:disable-next-line:no-conditional-assignment\n while ((matchArray = placeholder.exec(pattern))) {\n details = matchDetails(matchArray, false);\n if (details.segment.indexOf('?') >= 0) break; // we're into the search part\n\n checkParamErrors(details.id);\n this._params.push(paramFactory.fromPath(details.id, details.type, config.state));\n this._segments.push(details.segment);\n patterns.push([details.segment, tail(this._params)]);\n last = placeholder.lastIndex;\n }\n segment = pattern.substring(last);\n\n // Find any search parameter names and remove them from the last segment\n const i = segment.indexOf('?');\n\n if (i >= 0) {\n const search = segment.substring(i);\n segment = segment.substring(0, i);\n\n if (search.length > 0) {\n last = 0;\n\n // tslint:disable-next-line:no-conditional-assignment\n while ((matchArray = searchPlaceholder.exec(search))) {\n details = matchDetails(matchArray, true);\n checkParamErrors(details.id);\n this._params.push(paramFactory.fromSearch(details.id, details.type, config.state));\n last = placeholder.lastIndex;\n // check if ?&\n }\n }\n }\n\n this._segments.push(segment);\n this._compiled = patterns.map((_pattern) => quoteRegExp.apply(null, _pattern)).concat(quoteRegExp(segment));\n }\n\n /**\n * Creates a new concatenated UrlMatcher\n *\n * Builds a new UrlMatcher by appending another UrlMatcher to this one.\n *\n * @param url A `UrlMatcher` instance to append as a child of the current `UrlMatcher`.\n */\n append(url: UrlMatcher): UrlMatcher {\n this._children.push(url);\n url._cache = {\n path: this._cache.path.concat(url),\n parent: this,\n pattern: null,\n };\n return url;\n }\n\n /** @internal */\n isRoot(): boolean {\n return this._cache.path[0] === this;\n }\n\n /** Returns the input pattern string */\n toString(): string {\n return this.pattern;\n }\n\n private _getDecodedParamValue(value: any, param: Param): any {\n if (isDefined(value)) {\n if (this.config.decodeParams && !param.type.raw) {\n if (isArray(value)) {\n value = value.map((paramValue) => decodeURIComponent(paramValue));\n } else {\n value = decodeURIComponent(value);\n }\n }\n\n value = param.type.decode(value);\n }\n\n return param.value(value);\n }\n\n /**\n * Tests the specified url/path against this matcher.\n *\n * Tests if the given url matches this matcher's pattern, and returns an object containing the captured\n * parameter values. Returns null if the path does not match.\n *\n * The returned object contains the values\n * of any search parameters that are mentioned in the pattern, but their value may be null if\n * they are not present in `search`. This means that search parameters are always treated\n * as optional.\n *\n * #### Example:\n * ```js\n * new UrlMatcher('/user/{id}?q&r').exec('/user/bob', {\n * x: '1', q: 'hello'\n * });\n * // returns { id: 'bob', q: 'hello', r: null }\n * ```\n *\n * @param path The URL path to match, e.g. `$location.path()`.\n * @param search URL search parameters, e.g. `$location.search()`.\n * @param hash URL hash e.g. `$location.hash()`.\n * @param options\n *\n * @returns The captured parameter values.\n */\n exec(path: string, search: any = {}, hash?: string, options: any = {}): RawParams {\n const match = memoizeTo(this._cache, 'pattern', () => {\n return new RegExp(\n [\n '^',\n unnest(this._cache.path.map(prop('_compiled'))).join(''),\n this.config.strict === false ? '/?' : '',\n '$',\n ].join(''),\n this.config.caseInsensitive ? 'i' : undefined\n );\n }).exec(path);\n\n if (!match) return null;\n\n // options = defaults(options, { isolate: false });\n\n const allParams: Param[] = this.parameters(),\n pathParams: Param[] = allParams.filter((param) => !param.isSearch()),\n searchParams: Param[] = allParams.filter((param) => param.isSearch()),\n nPathSegments = this._cache.path.map((urlm) => urlm._segments.length - 1).reduce((a, x) => a + x),\n values: RawParams = {};\n\n if (nPathSegments !== match.length - 1) throw new Error(`Unbalanced capture group in route '${this.pattern}'`);\n\n function decodePathArray(paramVal: string) {\n const reverseString = (str: string) => str.split('').reverse().join('');\n const unquoteDashes = (str: string) => str.replace(/\\\\-/g, '-');\n\n const split = reverseString(paramVal).split(/-(?!\\\\)/);\n const allReversed = map(split, reverseString);\n return map(allReversed, unquoteDashes).reverse();\n }\n\n for (let i = 0; i < nPathSegments; i++) {\n const param: Param = pathParams[i];\n let value: any | any[] = match[i + 1];\n\n // if the param value matches a pre-replace pair, replace the value before decoding.\n for (let j = 0; j < param.replace.length; j++) {\n if (param.replace[j].from === value) value = param.replace[j].to;\n }\n\n if (value && param.array === true) value = decodePathArray(value);\n\n values[param.id] = this._getDecodedParamValue(value, param);\n }\n searchParams.forEach((param: Param) => {\n let value = search[param.id];\n\n for (let j = 0; j < param.replace.length; j++) {\n if (param.replace[j].from === value) value = param.replace[j].to;\n }\n\n values[param.id] = this._getDecodedParamValue(value, param);\n });\n\n if (hash) values['#'] = hash;\n\n return values;\n }\n\n /**\n * @internal\n * Returns all the [[Param]] objects of all path and search parameters of this pattern in order of appearance.\n *\n * @returns {Array.} An array of [[Param]] objects. Must be treated as read-only. If the\n * pattern has no parameters, an empty array is returned.\n */\n parameters(opts: any = {}): Param[] {\n if (opts.inherit === false) return this._params;\n return unnest(this._cache.path.map((matcher) => matcher._params));\n }\n\n /**\n * @internal\n * Returns a single parameter from this UrlMatcher by id\n *\n * @param id\n * @param opts\n * @returns {T|Param|any|boolean|UrlMatcher|null}\n */\n parameter(id: string, opts: any = {}): Param {\n const findParam = () => {\n for (const param of this._params) {\n if (param.id === id) return param;\n }\n };\n\n const parent = this._cache.parent;\n return findParam() || (opts.inherit !== false && parent && parent.parameter(id, opts)) || null;\n }\n\n /**\n * Validates the input parameter values against this UrlMatcher\n *\n * Checks an object hash of parameters to validate their correctness according to the parameter\n * types of this `UrlMatcher`.\n *\n * @param params The object hash of parameters to validate.\n * @returns Returns `true` if `params` validates, otherwise `false`.\n */\n validates(params: RawParams): boolean {\n const validParamVal = (param: Param, val: any) => !param || param.validates(val);\n\n params = params || {};\n\n // I'm not sure why this checks only the param keys passed in, and not all the params known to the matcher\n const paramSchema = this.parameters().filter((paramDef) => params.hasOwnProperty(paramDef.id));\n return paramSchema.map((paramDef) => validParamVal(paramDef, params[paramDef.id])).reduce(allTrueR, true);\n }\n\n /**\n * Given a set of parameter values, creates a URL from this UrlMatcher.\n *\n * Creates a URL that matches this pattern by substituting the specified values\n * for the path and search parameters.\n *\n * #### Example:\n * ```js\n * new UrlMatcher('/user/{id}?q').format({ id:'bob', q:'yes' });\n * // returns '/user/bob?q=yes'\n * ```\n *\n * @param values the values to substitute for the parameters in this pattern.\n * @returns the formatted URL (path and optionally search part).\n */\n format(values: RawParams = {}) {\n // Build the full path of UrlMatchers (including all parent UrlMatchers)\n const urlMatchers = this._cache.path;\n\n // Extract all the static segments and Params (processed as ParamDetails)\n // into an ordered array\n const pathSegmentsAndParams: Array = urlMatchers\n .map(UrlMatcher.pathSegmentsAndParams)\n .reduce(unnestR, [])\n .map((x) => (isString(x) ? x : getDetails(x)));\n\n // Extract the query params into a separate array\n const queryParams: Array = urlMatchers\n .map(UrlMatcher.queryParams)\n .reduce(unnestR, [])\n .map(getDetails);\n\n const isInvalid = (param: ParamDetails) => param.isValid === false;\n if (pathSegmentsAndParams.concat(queryParams).filter(isInvalid).length) {\n return null;\n }\n\n /**\n * Given a Param, applies the parameter value, then returns detailed information about it\n */\n function getDetails(param: Param): ParamDetails {\n // Normalize to typed value\n const value = param.value(values[param.id]);\n const isValid = param.validates(value);\n const isDefaultValue = param.isDefaultValue(value);\n // Check if we're in squash mode for the parameter\n const squash = isDefaultValue ? param.squash : false;\n // Allow the Parameter's Type to encode the value\n const encoded = param.type.encode(value);\n\n return { param, value, isValid, isDefaultValue, squash, encoded };\n }\n\n // Build up the path-portion from the list of static segments and parameters\n const pathString = pathSegmentsAndParams.reduce((acc: string, x: string | ParamDetails) => {\n // The element is a static segment (a raw string); just append it\n if (isString(x)) return acc + x;\n\n // Otherwise, it's a ParamDetails.\n const { squash, encoded, param } = x;\n\n // If squash is === true, try to remove a slash from the path\n if (squash === true) return acc.match(/\\/$/) ? acc.slice(0, -1) : acc;\n // If squash is a string, use the string for the param value\n if (isString(squash)) return acc + squash;\n if (squash !== false) return acc; // ?\n if (encoded == null) return acc;\n // If this parameter value is an array, encode the value using encodeDashes\n if (isArray(encoded)) return acc + map(encoded, UrlMatcher.encodeDashes).join('-');\n // If the parameter type is \"raw\", then do not encodeURIComponent\n if (param.raw) return acc + encoded;\n // Encode the value\n return acc + encodeURIComponent(encoded);\n }, '');\n\n // Build the query string by applying parameter values (array or regular)\n // then mapping to key=value, then flattening and joining using \"&\"\n const queryString = queryParams\n .map((paramDetails: ParamDetails) => {\n let { param, squash, encoded, isDefaultValue } = paramDetails;\n if (encoded == null || (isDefaultValue && squash !== false)) return;\n if (!isArray(encoded)) encoded = [encoded];\n if (encoded.length === 0) return;\n if (!param.raw) encoded = map(encoded, encodeURIComponent);\n\n return (encoded).map((val) => `${param.id}=${val}`);\n })\n .filter(identity)\n .reduce(unnestR, [])\n .join('&');\n\n // Concat the pathstring with the queryString (if exists) and the hashString (if exists)\n return pathString + (queryString ? `?${queryString}` : '') + (values['#'] ? '#' + values['#'] : '');\n }\n}\n\n/** @internal */\ninterface ParamDetails {\n param: Param;\n value: any;\n isValid: boolean;\n isDefaultValue: boolean;\n squash: boolean | string;\n encoded: string | string[];\n}\n", + "import { map, inherit, identity, unnest, tail, find, Obj, allTrueR, unnestR, arrayTuples } from '../common/common';\nimport { prop, propEq } from '../common/hof';\nimport { isArray, isString, isDefined } from '../common/predicates';\nimport { Param, DefType } from '../params/param';\nimport { ParamTypes } from '../params/paramTypes';\nimport { RawParams } from '../params/interface';\nimport { UrlMatcherCompileConfig } from './interface';\nimport { joinNeighborsR, splitOnDelim } from '../common/strings';\nimport { ParamType } from '../params';\nimport { defaults } from '../common';\nimport { ParamFactory } from './urlMatcherFactory';\n\nfunction quoteRegExp(str: any, param?: any) {\n let surroundPattern = ['', ''],\n result = str.replace(/[\\\\\\[\\]\\^$*+?.()|{}]/g, '\\\\$&');\n if (!param) return result;\n\n switch (param.squash) {\n case false:\n surroundPattern = ['(', ')' + (param.isOptional ? '?' : '')];\n break;\n case true:\n result = result.replace(/\\/$/, '');\n surroundPattern = ['(?:/(', ')|/)?'];\n break;\n default:\n surroundPattern = [`(${param.squash}|`, ')?'];\n break;\n }\n return result + surroundPattern[0] + param.type.pattern.source + surroundPattern[1];\n}\n\nconst memoizeTo = (obj: Obj, _prop: string, fn: Function) => (obj[_prop] = obj[_prop] || fn());\n\nconst splitOnSlash = splitOnDelim('/');\n\ninterface UrlMatcherCache {\n segments?: any[];\n weights?: number[];\n path?: UrlMatcher[];\n parent?: UrlMatcher;\n pattern?: RegExp;\n}\n\ninterface MatchDetails {\n id: string;\n regexp: string;\n segment: string;\n type: ParamType;\n}\n\nconst defaultConfig: UrlMatcherCompileConfig = {\n state: { params: {} },\n strict: true,\n caseInsensitive: true,\n decodeParams: true,\n};\n\n/**\n * Matches URLs against patterns.\n *\n * Matches URLs against patterns and extracts named parameters from the path or the search\n * part of the URL.\n *\n * A URL pattern consists of a path pattern, optionally followed by '?' and a list of search (query)\n * parameters. Multiple search parameter names are separated by '&'. Search parameters\n * do not influence whether or not a URL is matched, but their values are passed through into\n * the matched parameters returned by [[UrlMatcher.exec]].\n *\n * - *Path parameters* are defined using curly brace placeholders (`/somepath/{param}`)\n * or colon placeholders (`/somePath/:param`).\n *\n * - *A parameter RegExp* may be defined for a param after a colon\n * (`/somePath/{param:[a-zA-Z0-9]+}`) in a curly brace placeholder.\n * The regexp must match for the url to be matched.\n * Should the regexp itself contain curly braces, they must be in matched pairs or escaped with a backslash.\n *\n * Note: a RegExp parameter will encode its value using either [[ParamTypes.path]] or [[ParamTypes.query]].\n *\n * - *Custom parameter types* may also be specified after a colon (`/somePath/{param:int}`) in curly brace parameters.\n * See [[UrlMatcherFactory.type]] for more information.\n *\n * - *Catch-all parameters* are defined using an asterisk placeholder (`/somepath/*catchallparam`).\n * A catch-all * parameter value will contain the remainder of the URL.\n *\n * ---\n *\n * Parameter names may contain only word characters (latin letters, digits, and underscore) and\n * must be unique within the pattern (across both path and search parameters).\n * A path parameter matches any number of characters other than '/'. For catch-all\n * placeholders the path parameter matches any number of characters.\n *\n * Examples:\n *\n * * `'/hello/'` - Matches only if the path is exactly '/hello/'. There is no special treatment for\n * trailing slashes, and patterns have to match the entire path, not just a prefix.\n * * `'/user/:id'` - Matches '/user/bob' or '/user/1234!!!' or even '/user/' but not '/user' or\n * '/user/bob/details'. The second path segment will be captured as the parameter 'id'.\n * * `'/user/{id}'` - Same as the previous example, but using curly brace syntax.\n * * `'/user/{id:[^/]*}'` - Same as the previous example.\n * * `'/user/{id:[0-9a-fA-F]{1,8}}'` - Similar to the previous example, but only matches if the id\n * parameter consists of 1 to 8 hex digits.\n * * `'/files/{path:.*}'` - Matches any URL starting with '/files/' and captures the rest of the\n * path into the parameter 'path'.\n * * `'/files/*path'` - ditto.\n * * `'/calendar/{start:date}'` - Matches \"/calendar/2014-11-12\" (because the pattern defined\n * in the built-in `date` ParamType matches `2014-11-12`) and provides a Date object in $stateParams.start\n *\n */\nexport class UrlMatcher {\n /** @internal */\n static nameValidator: RegExp = /^\\w+([-.]+\\w+)*(?:\\[\\])?$/;\n\n /** @internal */\n private _cache: UrlMatcherCache = { path: [this] };\n /** @internal */\n private _children: UrlMatcher[] = [];\n /** @internal */\n private _params: Param[] = [];\n /** @internal */\n private _segments: string[] = [];\n /** @internal */\n private _compiled: string[] = [];\n /** @internal */\n private readonly config: UrlMatcherCompileConfig;\n\n /** The pattern that was passed into the constructor */\n public pattern: string;\n\n /** @internal */\n static encodeDashes(str: string) {\n // Replace dashes with encoded \"\\-\"\n return encodeURIComponent(str).replace(/-/g, (c) => `%5C%${c.charCodeAt(0).toString(16).toUpperCase()}`);\n }\n\n /** @internal Given a matcher, return an array with the matcher's path segments and path params, in order */\n static pathSegmentsAndParams(matcher: UrlMatcher) {\n const staticSegments = matcher._segments;\n const pathParams = matcher._params.filter((p) => p.location === DefType.PATH);\n return arrayTuples(staticSegments, pathParams.concat(undefined))\n .reduce(unnestR, [])\n .filter((x) => x !== '' && isDefined(x));\n }\n\n /** @internal Given a matcher, return an array with the matcher's query params */\n static queryParams(matcher: UrlMatcher): Param[] {\n return matcher._params.filter((p) => p.location === DefType.SEARCH);\n }\n\n /**\n * Compare two UrlMatchers\n *\n * This comparison function converts a UrlMatcher into static and dynamic path segments.\n * Each static path segment is a static string between a path separator (slash character).\n * Each dynamic segment is a path parameter.\n *\n * The comparison function sorts static segments before dynamic ones.\n */\n static compare(a: UrlMatcher, b: UrlMatcher): number {\n /**\n * Turn a UrlMatcher and all its parent matchers into an array\n * of slash literals '/', string literals, and Param objects\n *\n * This example matcher matches strings like \"/foo/:param/tail\":\n * var matcher = $umf.compile(\"/foo\").append($umf.compile(\"/:param\")).append($umf.compile(\"/\")).append($umf.compile(\"tail\"));\n * var result = segments(matcher); // [ '/', 'foo', '/', Param, '/', 'tail' ]\n *\n * Caches the result as `matcher._cache.segments`\n */\n const segments = (matcher: UrlMatcher) =>\n (matcher._cache.segments =\n matcher._cache.segments ||\n matcher._cache.path\n .map(UrlMatcher.pathSegmentsAndParams)\n .reduce(unnestR, [])\n .reduce(joinNeighborsR, [])\n .map((x) => (isString(x) ? splitOnSlash(x) : x))\n .reduce(unnestR, []));\n\n /**\n * Gets the sort weight for each segment of a UrlMatcher\n *\n * Caches the result as `matcher._cache.weights`\n */\n const weights = (matcher: UrlMatcher) =>\n (matcher._cache.weights =\n matcher._cache.weights ||\n segments(matcher).map((segment) => {\n // Sort slashes first, then static strings, the Params\n if (segment === '/') return 1;\n if (isString(segment)) return 2;\n if (segment instanceof Param) return 3;\n }));\n\n /**\n * Pads shorter array in-place (mutates)\n */\n const padArrays = (l: any[], r: any[], padVal: any) => {\n const len = Math.max(l.length, r.length);\n while (l.length < len) l.push(padVal);\n while (r.length < len) r.push(padVal);\n };\n\n const weightsA = weights(a),\n weightsB = weights(b);\n padArrays(weightsA, weightsB, 0);\n\n const _pairs = arrayTuples(weightsA, weightsB);\n let cmp, i;\n\n for (i = 0; i < _pairs.length; i++) {\n cmp = _pairs[i][0] - _pairs[i][1];\n if (cmp !== 0) return cmp;\n }\n\n return 0;\n }\n\n /**\n * @param pattern The pattern to compile into a matcher.\n * @param paramTypes The [[ParamTypes]] registry\n * @param paramFactory A [[ParamFactory]] object\n * @param config A [[UrlMatcherCompileConfig]] configuration object\n */\n constructor(pattern: string, paramTypes: ParamTypes, paramFactory: ParamFactory, config?: UrlMatcherCompileConfig) {\n this.config = config = defaults(config, defaultConfig);\n this.pattern = pattern;\n\n // Find all placeholders and create a compiled pattern, using either classic or curly syntax:\n // '*' name\n // ':' name\n // '{' name '}'\n // '{' name ':' regexp '}'\n // The regular expression is somewhat complicated due to the need to allow curly braces\n // inside the regular expression. The placeholder regexp breaks down as follows:\n // ([:*])([\\w\\[\\]]+) - classic placeholder ($1 / $2) (search version has - for snake-case)\n // \\{([\\w\\[\\]]+)(?:\\: ... ( ... ))?\\} - curly brace placeholder ($3) with optional regexp/type ... ($5) (search version has - for snake-case\n // (?: ... | ... | ... )+ - the regexp consists of any number of atoms, an atom being either\n // [^{}\\\\] - anything other than curly braces or backslash\n // \\\\. - a backslash escape\n // \\{(?:[^{}\\\\]|\\\\.)*\\} - a matched set of curly braces containing other atoms\n const placeholder = /([:*])([\\w\\[\\]]+)|\\{([\\w\\[\\]]+)(?:\\:(?=(\\s*))\\4((?:[^{}\\\\]|\\\\.|\\{(?:[^{}\\\\]|\\\\.)*\\})+))?\\}/g;\n const searchPlaceholder =\n /([:]?)([\\w\\[\\].-]+)|\\{([\\w\\[\\].-]+)(?:\\:(?=(\\s*))\\4((?:[^{}\\\\]|\\\\.|\\{(?:[^{}\\\\]|\\\\.)*\\})+))?\\}/g;\n const patterns: any[][] = [];\n let last = 0;\n let matchArray: RegExpExecArray;\n\n const checkParamErrors = (id: string) => {\n if (!UrlMatcher.nameValidator.test(id)) throw new Error(`Invalid parameter name '${id}' in pattern '${pattern}'`);\n if (find(this._params, propEq('id', id)))\n throw new Error(`Duplicate parameter name '${id}' in pattern '${pattern}'`);\n };\n\n // Split into static segments separated by path parameter placeholders.\n // The number of segments is always 1 more than the number of parameters.\n const matchDetails = (m: RegExpExecArray, isSearch: boolean): MatchDetails => {\n // IE[78] returns '' for unmatched groups instead of null\n const id: string = m[2] || m[3];\n const regexp: string = isSearch ? m[5] : m[5] || (m[1] === '*' ? '[\\\\s\\\\S]*' : null);\n\n const makeRegexpType = (str) =>\n inherit(paramTypes.type(isSearch ? 'query' : 'path'), {\n pattern: new RegExp(str, this.config.caseInsensitive ? 'i' : undefined),\n });\n\n return {\n id,\n regexp,\n segment: pattern.substring(last, m.index),\n type: !regexp ? null : paramTypes.type(regexp) || makeRegexpType(regexp),\n };\n };\n\n let details: MatchDetails;\n let segment: string;\n\n // tslint:disable-next-line:no-conditional-assignment\n while ((matchArray = placeholder.exec(pattern))) {\n details = matchDetails(matchArray, false);\n if (details.segment.indexOf('?') >= 0) break; // we're into the search part\n\n checkParamErrors(details.id);\n this._params.push(paramFactory.fromPath(details.id, details.type, config.state));\n this._segments.push(details.segment);\n patterns.push([details.segment, tail(this._params)]);\n last = placeholder.lastIndex;\n }\n segment = pattern.substring(last);\n\n // Find any search parameter names and remove them from the last segment\n const i = segment.indexOf('?');\n\n if (i >= 0) {\n const search = segment.substring(i);\n segment = segment.substring(0, i);\n\n if (search.length > 0) {\n last = 0;\n\n // tslint:disable-next-line:no-conditional-assignment\n while ((matchArray = searchPlaceholder.exec(search))) {\n details = matchDetails(matchArray, true);\n checkParamErrors(details.id);\n this._params.push(paramFactory.fromSearch(details.id, details.type, config.state));\n last = placeholder.lastIndex;\n // check if ?&\n }\n }\n }\n\n this._segments.push(segment);\n this._compiled = patterns.map((_pattern) => quoteRegExp.apply(null, _pattern)).concat(quoteRegExp(segment));\n }\n\n /**\n * Creates a new concatenated UrlMatcher\n *\n * Builds a new UrlMatcher by appending another UrlMatcher to this one.\n *\n * @param url A `UrlMatcher` instance to append as a child of the current `UrlMatcher`.\n */\n append(url: UrlMatcher): UrlMatcher {\n this._children.push(url);\n url._cache = {\n path: this._cache.path.concat(url),\n parent: this,\n pattern: null,\n };\n return url;\n }\n\n /** @internal */\n isRoot(): boolean {\n return this._cache.path[0] === this;\n }\n\n /** Returns the input pattern string */\n toString(): string {\n return this.pattern;\n }\n\n private _getDecodedParamValue(value: any, param: Param): any {\n if (isDefined(value)) {\n if (this.config.decodeParams && !param.type.raw) {\n if (isArray(value)) {\n value = value.map((paramValue) => decodeURIComponent(paramValue));\n } else {\n value = decodeURIComponent(value);\n }\n }\n\n value = param.type.decode(value);\n }\n\n return param.value(value);\n }\n\n /**\n * Tests the specified url/path against this matcher.\n *\n * Tests if the given url matches this matcher's pattern, and returns an object containing the captured\n * parameter values. Returns null if the path does not match.\n *\n * The returned object contains the values\n * of any search parameters that are mentioned in the pattern, but their value may be null if\n * they are not present in `search`. This means that search parameters are always treated\n * as optional.\n *\n * #### Example:\n * ```js\n * new UrlMatcher('/user/{id}?q&r').exec('/user/bob', {\n * x: '1', q: 'hello'\n * });\n * // returns { id: 'bob', q: 'hello', r: null }\n * ```\n *\n * @param path The URL path to match, e.g. `$location.path()`.\n * @param search URL search parameters, e.g. `$location.search()`.\n * @param hash URL hash e.g. `$location.hash()`.\n * @param options\n *\n * @returns The captured parameter values.\n */\n exec(path: string, search: any = {}, hash?: string, options: any = {}): RawParams {\n const match = memoizeTo(this._cache, 'pattern', () => {\n return new RegExp(\n [\n '^',\n unnest(this._cache.path.map(prop('_compiled'))).join(''),\n this.config.strict === false ? '/?' : '',\n '$',\n ].join(''),\n this.config.caseInsensitive ? 'i' : undefined\n );\n }).exec(path);\n\n if (!match) return null;\n\n // options = defaults(options, { isolate: false });\n\n const allParams: Param[] = this.parameters(),\n pathParams: Param[] = allParams.filter((param) => !param.isSearch()),\n searchParams: Param[] = allParams.filter((param) => param.isSearch()),\n nPathSegments = this._cache.path.map((urlm) => urlm._segments.length - 1).reduce((a, x) => a + x),\n values: RawParams = {};\n\n if (nPathSegments !== match.length - 1) throw new Error(`Unbalanced capture group in route '${this.pattern}'`);\n\n function decodePathArray(paramVal: string) {\n const reverseString = (str: string) => str.split('').reverse().join('');\n const unquoteDashes = (str: string) => str.replace(/\\\\-/g, '-');\n\n const split = reverseString(paramVal).split(/-(?!\\\\)/);\n const allReversed = map(split, reverseString);\n return map(allReversed, unquoteDashes).reverse();\n }\n\n for (let i = 0; i < nPathSegments; i++) {\n const param: Param = pathParams[i];\n let value: any | any[] = match[i + 1];\n\n // if the param value matches a pre-replace pair, replace the value before decoding.\n for (let j = 0; j < param.replace.length; j++) {\n if (param.replace[j].from === value) value = param.replace[j].to;\n }\n\n if (value && param.array === true) value = decodePathArray(value);\n\n values[param.id] = this._getDecodedParamValue(value, param);\n }\n searchParams.forEach((param: Param) => {\n let value = search[param.id];\n\n for (let j = 0; j < param.replace.length; j++) {\n if (param.replace[j].from === value) value = param.replace[j].to;\n }\n\n values[param.id] = this._getDecodedParamValue(value, param);\n });\n\n if (hash) values['#'] = hash;\n\n return values;\n }\n\n /**\n * @internal\n * Returns all the [[Param]] objects of all path and search parameters of this pattern in order of appearance.\n *\n * @returns {Array.} An array of [[Param]] objects. Must be treated as read-only. If the\n * pattern has no parameters, an empty array is returned.\n */\n parameters(opts: any = {}): Param[] {\n if (opts.inherit === false) return this._params;\n return unnest(this._cache.path.map((matcher) => matcher._params));\n }\n\n /**\n * @internal\n * Returns a single parameter from this UrlMatcher by id\n *\n * @param id\n * @param opts\n * @returns {T|Param|any|boolean|UrlMatcher|null}\n */\n parameter(id: string, opts: any = {}): Param {\n const findParam = () => {\n for (const param of this._params) {\n if (param.id === id) return param;\n }\n };\n\n const parent = this._cache.parent;\n return findParam() || (opts.inherit !== false && parent && parent.parameter(id, opts)) || null;\n }\n\n /**\n * Validates the input parameter values against this UrlMatcher\n *\n * Checks an object hash of parameters to validate their correctness according to the parameter\n * types of this `UrlMatcher`.\n *\n * @param params The object hash of parameters to validate.\n * @returns Returns `true` if `params` validates, otherwise `false`.\n */\n validates(params: RawParams): boolean {\n const validParamVal = (param: Param, val: any) => !param || param.validates(val);\n\n params = params || {};\n\n // I'm not sure why this checks only the param keys passed in, and not all the params known to the matcher\n const paramSchema = this.parameters().filter((paramDef) => params.hasOwnProperty(paramDef.id));\n return paramSchema.map((paramDef) => validParamVal(paramDef, params[paramDef.id])).reduce(allTrueR, true);\n }\n\n /**\n * Given a set of parameter values, creates a URL from this UrlMatcher.\n *\n * Creates a URL that matches this pattern by substituting the specified values\n * for the path and search parameters.\n *\n * #### Example:\n * ```js\n * new UrlMatcher('/user/{id}?q').format({ id:'bob', q:'yes' });\n * // returns '/user/bob?q=yes'\n * ```\n *\n * @param values the values to substitute for the parameters in this pattern.\n * @returns the formatted URL (path and optionally search part).\n */\n format(values: RawParams = {}) {\n // Build the full path of UrlMatchers (including all parent UrlMatchers)\n const urlMatchers = this._cache.path;\n\n // Extract all the static segments and Params (processed as ParamDetails)\n // into an ordered array\n const pathSegmentsAndParams: Array = urlMatchers\n .map(UrlMatcher.pathSegmentsAndParams)\n .reduce(unnestR, [])\n .map((x) => (isString(x) ? x : getDetails(x)));\n\n // Extract the query params into a separate array\n const queryParams: Array = urlMatchers\n .map(UrlMatcher.queryParams)\n .reduce(unnestR, [])\n .map(getDetails);\n\n const isInvalid = (param: ParamDetails) => param.isValid === false;\n if (pathSegmentsAndParams.concat(queryParams).filter(isInvalid).length) {\n return null;\n }\n\n /**\n * Given a Param, applies the parameter value, then returns detailed information about it\n */\n function getDetails(param: Param): ParamDetails {\n // Normalize to typed value\n const value = param.value(values[param.id]);\n const isValid = param.validates(value);\n const isDefaultValue = param.isDefaultValue(value);\n // Check if we're in squash mode for the parameter\n const squash = isDefaultValue ? param.squash : false;\n // Allow the Parameter's Type to encode the value\n const encoded = param.type.encode(value);\n\n return { param, value, isValid, isDefaultValue, squash, encoded };\n }\n\n // Build up the path-portion from the list of static segments and parameters\n const pathString = pathSegmentsAndParams.reduce((acc: string, x: string | ParamDetails) => {\n // The element is a static segment (a raw string); just append it\n if (isString(x)) return acc + x;\n\n // Otherwise, it's a ParamDetails.\n const { squash, encoded, param } = x;\n\n // If squash is === true, try to remove a slash from the path\n if (squash === true) return acc.match(/\\/$/) ? acc.slice(0, -1) : acc;\n // If squash is a string, use the string for the param value\n if (isString(squash)) return acc + squash;\n if (squash !== false) return acc; // ?\n if (encoded == null) return acc;\n // If this parameter value is an array, encode the value using encodeDashes\n if (isArray(encoded)) return acc + map(encoded, UrlMatcher.encodeDashes).join('-');\n // If the parameter type is \"raw\", then do not encodeURIComponent\n if (param.raw) return acc + encoded;\n // Encode the value\n return acc + encodeURIComponent(encoded);\n }, '');\n\n // Build the query string by applying parameter values (array or regular)\n // then mapping to key=value, then flattening and joining using \"&\"\n const queryString = queryParams\n .map((paramDetails: ParamDetails) => {\n let { param, squash, encoded, isDefaultValue } = paramDetails;\n if (encoded == null || (isDefaultValue && squash !== false)) return;\n if (!isArray(encoded)) encoded = [encoded];\n if (encoded.length === 0) return;\n if (!param.raw) encoded = map(encoded, encodeURIComponent);\n\n return (encoded).map((val) => `${param.id}=${val}`);\n })\n .filter(identity)\n .reduce(unnestR, [])\n .join('&');\n\n // Concat the pathstring with the queryString (if exists) and the hashString (if exists)\n return pathString + (queryString ? `?${queryString}` : '') + (values['#'] ? '#' + values['#'] : '');\n }\n}\n\n/** @internal */\ninterface ParamDetails {\n param: Param;\n value: any;\n isValid: boolean;\n isDefaultValue: boolean;\n squash: boolean | string;\n encoded: string | string[];\n}\n", "import { extend, forEach, isDefined, isFunction, isObject } from '../common';\nimport { UrlMatcher } from './urlMatcher';\nimport { DefType, Param, ParamType, ParamTypeDefinition } from '../params';\nimport { UrlMatcherCompileConfig } from './interface';\nimport { StateDeclaration } from '../state';\nimport { UIRouter } from '../router';\n\nexport class ParamFactory {\n fromConfig(id: string, type: ParamType, state: StateDeclaration) {\n return new Param(id, type, DefType.CONFIG, this.router.urlService.config, state);\n }\n\n fromPath(id: string, type: ParamType, state: StateDeclaration) {\n return new Param(id, type, DefType.PATH, this.router.urlService.config, state);\n }\n\n fromSearch(id: string, type: ParamType, state: StateDeclaration) {\n return new Param(id, type, DefType.SEARCH, this.router.urlService.config, state);\n }\n\n constructor(private router: UIRouter) {}\n}\n\n/**\n * Factory for [[UrlMatcher]] instances.\n *\n * The factory is available to ng1 services as\n * `$urlMatcherFactory` or ng1 providers as `$urlMatcherFactoryProvider`.\n */\nexport class UrlMatcherFactory {\n /** Creates a new [[Param]] for a given location (DefType) */\n paramFactory = new ParamFactory(this.router);\n // TODO: Check if removal of this will break anything, then remove these\n UrlMatcher: typeof UrlMatcher = UrlMatcher;\n Param: typeof Param = Param;\n\n // TODO: move implementations to UrlConfig (urlService.config)\n constructor(/** @internal */ private router: UIRouter) {}\n\n /**\n * Creates a [[UrlMatcher]] for the specified pattern.\n *\n * @param pattern The URL pattern.\n * @param config The config object hash.\n * @returns The UrlMatcher.\n */\n compile(pattern: string, config?: UrlMatcherCompileConfig) {\n const urlConfig = this.router.urlService.config;\n // backward-compatible support for config.params -> config.state.params\n const params = config && !config.state && (config as any).params;\n config = params ? { state: { params }, ...config } : config;\n const globalConfig: UrlMatcherCompileConfig = {\n strict: urlConfig._isStrictMode,\n caseInsensitive: urlConfig._isCaseInsensitive,\n decodeParams: urlConfig._decodeParams,\n };\n return new UrlMatcher(pattern, urlConfig.paramTypes, this.paramFactory, extend(globalConfig, config));\n }\n\n /**\n * Returns true if the specified object is a [[UrlMatcher]], or false otherwise.\n *\n * @param object The object to perform the type check against.\n * @returns `true` if the object matches the `UrlMatcher` interface, by\n * implementing all the same methods.\n */\n isMatcher(object: any): boolean {\n // TODO: typeof?\n if (!isObject(object)) return false;\n let result = true;\n\n forEach(UrlMatcher.prototype, (val, name) => {\n if (isFunction(val)) result = result && isDefined(object[name]) && isFunction(object[name]);\n });\n return result;\n }\n\n /** @internal */\n $get() {\n const urlConfig = this.router.urlService.config;\n urlConfig.paramTypes.enqueue = false;\n urlConfig.paramTypes._flushTypeQueue();\n return this;\n }\n\n /** @deprecated use [[UrlConfig.caseInsensitive]] */\n caseInsensitive = (value?: boolean) => this.router.urlService.config.caseInsensitive(value);\n\n /** @deprecated use [[UrlConfig.defaultSquashPolicy]] */\n defaultSquashPolicy = (value?: boolean | string) => this.router.urlService.config.defaultSquashPolicy(value);\n\n /** @deprecated use [[UrlConfig.strictMode]] */\n strictMode = (value?: boolean) => this.router.urlService.config.strictMode(value);\n\n /** @deprecated use [[UrlConfig.type]] */\n type = (name: string, definition?: ParamTypeDefinition, definitionFn?: () => ParamTypeDefinition) => {\n return this.router.urlService.config.type(name, definition, definitionFn) || this;\n };\n}\n", "import { StateDeclaration } from '../state';\nimport { UrlMatcher } from './urlMatcher';\nimport { isString, isDefined, isFunction } from '../common/predicates';\nimport { UIRouter } from '../router';\nimport { identity, extend } from '../common/common';\nimport { is, or, pattern } from '../common/hof';\nimport { StateObject } from '../state/stateObject';\nimport { RawParams } from '../params/interface';\nimport {\n UrlRule,\n UrlRuleMatchFn,\n UrlRuleHandlerFn,\n UrlRuleType,\n UrlParts,\n MatcherUrlRule,\n StateRule,\n RegExpRule,\n} from './interface';\n\n/**\n * Creates a [[UrlRule]]\n *\n * Creates a [[UrlRule]] from a:\n *\n * - `string`\n * - [[UrlMatcher]]\n * - `RegExp`\n * - [[StateObject]]\n */\nexport class UrlRuleFactory {\n static isUrlRule = (obj) => obj && ['type', 'match', 'handler'].every((key) => isDefined(obj[key]));\n\n constructor(public router: UIRouter) {}\n\n compile(str: string) {\n return this.router.urlMatcherFactory.compile(str);\n }\n\n create(\n what: string | UrlMatcher | StateObject | StateDeclaration | RegExp | UrlRuleMatchFn,\n handler?: string | UrlRuleHandlerFn\n ): UrlRule {\n const { isState, isStateDeclaration } = StateObject;\n const makeRule = pattern([\n [isString, (_what: string) => makeRule(this.compile(_what))],\n [is(UrlMatcher), (_what: UrlMatcher) => this.fromUrlMatcher(_what, handler)],\n [or(isState, isStateDeclaration), (_what: StateObject | StateDeclaration) => this.fromState(_what, this.router)],\n [is(RegExp), (_what: RegExp) => this.fromRegExp(_what, handler)],\n [isFunction, (_what: UrlRuleMatchFn) => new BaseUrlRule(_what, handler as UrlRuleHandlerFn)],\n ]);\n\n const rule = makeRule(what);\n if (!rule) throw new Error(\"invalid 'what' in when()\");\n return rule;\n }\n\n /**\n * A UrlRule which matches based on a UrlMatcher\n *\n * The `handler` may be either a `string`, a [[UrlRuleHandlerFn]] or another [[UrlMatcher]]\n *\n * ## Handler as a function\n *\n * If `handler` is a function, the function is invoked with:\n *\n * - matched parameter values ([[RawParams]] from [[UrlMatcher.exec]])\n * - url: the current Url ([[UrlParts]])\n * - router: the router object ([[UIRouter]])\n *\n * #### Example:\n * ```js\n * var urlMatcher = $umf.compile(\"/foo/:fooId/:barId\");\n * var rule = factory.fromUrlMatcher(urlMatcher, match => \"/home/\" + match.fooId + \"/\" + match.barId);\n * var match = rule.match('/foo/123/456'); // results in { fooId: '123', barId: '456' }\n * var result = rule.handler(match); // '/home/123/456'\n * ```\n *\n * ## Handler as UrlMatcher\n *\n * If `handler` is a UrlMatcher, the handler matcher is used to create the new url.\n * The `handler` UrlMatcher is formatted using the matched param from the first matcher.\n * The url is replaced with the result.\n *\n * #### Example:\n * ```js\n * var urlMatcher = $umf.compile(\"/foo/:fooId/:barId\");\n * var handler = $umf.compile(\"/home/:fooId/:barId\");\n * var rule = factory.fromUrlMatcher(urlMatcher, handler);\n * var match = rule.match('/foo/123/456'); // results in { fooId: '123', barId: '456' }\n * var result = rule.handler(match); // '/home/123/456'\n * ```\n */\n fromUrlMatcher(urlMatcher: UrlMatcher, handler: string | UrlMatcher | UrlRuleHandlerFn): MatcherUrlRule {\n let _handler: UrlRuleHandlerFn = handler as any;\n if (isString(handler)) handler = this.router.urlMatcherFactory.compile(handler);\n if (is(UrlMatcher)(handler)) _handler = (match: RawParams) => (handler as UrlMatcher).format(match);\n\n function matchUrlParamters(url: UrlParts): RawParams {\n const params = urlMatcher.exec(url.path, url.search, url.hash);\n return urlMatcher.validates(params) && params;\n }\n\n // Prioritize URLs, lowest to highest:\n // - Some optional URL parameters, but none matched\n // - No optional parameters in URL\n // - Some optional parameters, some matched\n // - Some optional parameters, all matched\n function matchPriority(params: RawParams): number {\n const optional = urlMatcher.parameters().filter((param) => param.isOptional);\n if (!optional.length) return 0.000001;\n const matched = optional.filter((param) => params[param.id]);\n return matched.length / optional.length;\n }\n\n const details = { urlMatcher, matchPriority, type: 'URLMATCHER' };\n return extend(new BaseUrlRule(matchUrlParamters, _handler), details) as MatcherUrlRule;\n }\n\n /**\n * A UrlRule which matches a state by its url\n *\n * #### Example:\n * ```js\n * var rule = factory.fromState($state.get('foo'), router);\n * var match = rule.match('/foo/123/456'); // results in { fooId: '123', barId: '456' }\n * var result = rule.handler(match);\n * // Starts a transition to 'foo' with params: { fooId: '123', barId: '456' }\n * ```\n */\n fromState(stateOrDecl: StateObject | StateDeclaration, router: UIRouter): StateRule {\n const state = StateObject.isStateDeclaration(stateOrDecl) ? stateOrDecl.$$state() : stateOrDecl;\n\n /**\n * Handles match by transitioning to matched state\n *\n * First checks if the router should start a new transition.\n * A new transition is not required if the current state's URL\n * and the new URL are already identical\n */\n const handler = (match: RawParams) => {\n const $state = router.stateService;\n const globals = router.globals;\n if ($state.href(state, match) !== $state.href(globals.current, globals.params)) {\n $state.transitionTo(state, match, { inherit: true, source: 'url' });\n }\n };\n\n const details = { state, type: 'STATE' };\n return extend(this.fromUrlMatcher(state.url, handler), details) as StateRule;\n }\n\n /**\n * A UrlRule which matches based on a regular expression\n *\n * The `handler` may be either a [[UrlRuleHandlerFn]] or a string.\n *\n * ## Handler as a function\n *\n * If `handler` is a function, the function is invoked with:\n *\n * - regexp match array (from `regexp`)\n * - url: the current Url ([[UrlParts]])\n * - router: the router object ([[UIRouter]])\n *\n * #### Example:\n * ```js\n * var rule = factory.fromRegExp(/^\\/foo\\/(bar|baz)$/, match => \"/home/\" + match[1])\n * var match = rule.match('/foo/bar'); // results in [ '/foo/bar', 'bar' ]\n * var result = rule.handler(match); // '/home/bar'\n * ```\n *\n * ## Handler as string\n *\n * If `handler` is a string, the url is *replaced by the string* when the Rule is invoked.\n * The string is first interpolated using `string.replace()` style pattern.\n *\n * #### Example:\n * ```js\n * var rule = factory.fromRegExp(/^\\/foo\\/(bar|baz)$/, \"/home/$1\")\n * var match = rule.match('/foo/bar'); // results in [ '/foo/bar', 'bar' ]\n * var result = rule.handler(match); // '/home/bar'\n * ```\n */\n fromRegExp(regexp: RegExp, handler: string | UrlRuleHandlerFn): RegExpRule {\n if (regexp.global || regexp.sticky) throw new Error('Rule RegExp must not be global or sticky');\n\n /**\n * If handler is a string, the url will be replaced by the string.\n * If the string has any String.replace() style variables in it (like `$2`),\n * they will be replaced by the captures from [[match]]\n */\n const redirectUrlTo = (match: RegExpExecArray) =>\n // Interpolates matched values into $1 $2, etc using a String.replace()-style pattern\n (handler as string).replace(/\\$(\\$|\\d{1,2})/, (m, what) => match[what === '$' ? 0 : Number(what)]);\n\n const _handler = isString(handler) ? redirectUrlTo : handler;\n\n const matchParamsFromRegexp = (url: UrlParts): RegExpExecArray => regexp.exec(url.path);\n\n const details = { regexp, type: 'REGEXP' };\n return extend(new BaseUrlRule(matchParamsFromRegexp, _handler), details) as RegExpRule;\n }\n}\n\n/**\n * A base rule which calls `match`\n *\n * The value from the `match` function is passed through to the `handler`.\n * @internal\n */\nexport class BaseUrlRule implements UrlRule {\n $id: number;\n priority: number;\n _group: number;\n type: UrlRuleType = 'RAW';\n handler: UrlRuleHandlerFn;\n matchPriority = (match) => 0 - this.$id;\n\n constructor(public match: UrlRuleMatchFn, handler?: UrlRuleHandlerFn) {\n this.handler = handler || identity;\n }\n}\n", "import { UIRouter } from '../router';\nimport { Disposable } from '../interface';\nimport { MatcherUrlRule, UrlRule, UrlRuleHandlerFn, UrlRuleMatchFn, UrlRulesApi } from './interface';\nimport { TargetState, TargetStateDef } from '../state';\nimport { UrlMatcher } from './urlMatcher';\nimport { is, isDefined, isFunction, isString, removeFrom, val } from '../common';\nimport { UrlRuleFactory } from './urlRule';\n\nconst prioritySort = (a: UrlRule, b: UrlRule) => (b.priority || 0) - (a.priority || 0);\n\nconst typeSort = (a: UrlRule, b: UrlRule) => {\n const weights = { STATE: 4, URLMATCHER: 4, REGEXP: 3, RAW: 2, OTHER: 1 };\n return (weights[a.type] || 0) - (weights[b.type] || 0);\n};\n\nconst urlMatcherSort = (a: MatcherUrlRule, b: MatcherUrlRule) =>\n !a.urlMatcher || !b.urlMatcher ? 0 : UrlMatcher.compare(a.urlMatcher, b.urlMatcher);\n\nconst idSort = (a: UrlRule, b: UrlRule) => {\n // Identically sorted STATE and URLMATCHER best rule will be chosen by `matchPriority` after each rule matches the URL\n const useMatchPriority = { STATE: true, URLMATCHER: true };\n const equal = useMatchPriority[a.type] && useMatchPriority[b.type];\n return equal ? 0 : (a.$id || 0) - (b.$id || 0);\n};\n\n/**\n * Default rule priority sorting function.\n *\n * Sorts rules by:\n *\n * - Explicit priority (set rule priority using [[UrlRules.when]])\n * - Rule type (STATE: 4, URLMATCHER: 4, REGEXP: 3, RAW: 2, OTHER: 1)\n * - `UrlMatcher` specificity ([[UrlMatcher.compare]]): works for STATE and URLMATCHER types to pick the most specific rule.\n * - Rule registration order (for rule types other than STATE and URLMATCHER)\n * - Equally sorted State and UrlMatcher rules will each match the URL.\n * Then, the *best* match is chosen based on how many parameter values were matched.\n */\nlet defaultRuleSortFn: (a: UrlRule, b: UrlRule) => number;\ndefaultRuleSortFn = (a, b) => {\n let cmp = prioritySort(a, b);\n if (cmp !== 0) return cmp;\n\n cmp = typeSort(a, b);\n if (cmp !== 0) return cmp;\n\n cmp = urlMatcherSort(a as MatcherUrlRule, b as MatcherUrlRule);\n if (cmp !== 0) return cmp;\n\n return idSort(a, b);\n};\n\nfunction getHandlerFn(handler: string | UrlRuleHandlerFn | TargetState | TargetStateDef): UrlRuleHandlerFn {\n if (!isFunction(handler) && !isString(handler) && !is(TargetState)(handler) && !TargetState.isDef(handler)) {\n throw new Error(\"'handler' must be a string, function, TargetState, or have a state: 'newtarget' property\");\n }\n return isFunction(handler) ? (handler as UrlRuleHandlerFn) : val(handler);\n}\n\n/**\n * API for managing URL rules\n *\n * This API is used to create and manage URL rules.\n * URL rules are a mechanism to respond to specific URL patterns.\n *\n * The most commonly used methods are [[otherwise]] and [[when]].\n *\n * This API is found at `router.urlService.rules` (see: [[UIRouter.urlService]], [[URLService.rules]])\n */\nexport class UrlRules implements Disposable {\n /** used to create [[UrlRule]] objects for common cases */\n public urlRuleFactory: UrlRuleFactory;\n\n /** @internal */ private _sortFn = defaultRuleSortFn;\n /** @internal */ private _otherwiseFn: UrlRule;\n /** @internal */ private _sorted: boolean;\n /** @internal */ private _rules: UrlRule[] = [];\n /** @internal */ private _id = 0;\n\n /** @internal */\n constructor(/** @internal */ private router: UIRouter) {\n this.urlRuleFactory = new UrlRuleFactory(router);\n }\n\n /** @internal */\n public dispose(router?: UIRouter) {\n this._rules = [];\n delete this._otherwiseFn;\n }\n\n /**\n * Defines the initial state, path, or behavior to use when the app starts.\n *\n * This rule defines the initial/starting state for the application.\n *\n * This rule is triggered the first time the URL is checked (when the app initially loads).\n * The rule is triggered only when the url matches either `\"\"` or `\"/\"`.\n *\n * Note: The rule is intended to be used when the root of the application is directly linked to.\n * When the URL is *not* `\"\"` or `\"/\"` and doesn't match other rules, the [[otherwise]] rule is triggered.\n * This allows 404-like behavior when an unknown URL is deep-linked.\n *\n * #### Example:\n * Start app at `home` state.\n * ```js\n * .initial({ state: 'home' });\n * ```\n *\n * #### Example:\n * Start app at `/home` (by url)\n * ```js\n * .initial('/home');\n * ```\n *\n * #### Example:\n * When no other url rule matches, go to `home` state\n * ```js\n * .initial((matchValue, url, router) => {\n * console.log('initial state');\n * return { state: 'home' };\n * })\n * ```\n *\n * @param handler The initial state or url path, or a function which returns the state or url path (or performs custom logic).\n */\n public initial(handler: string | UrlRuleHandlerFn | TargetState | TargetStateDef) {\n const handlerFn: UrlRuleHandlerFn = getHandlerFn(handler);\n const matchFn: UrlRuleMatchFn = (urlParts, router) =>\n router.globals.transitionHistory.size() === 0 && !!/^\\/?$/.exec(urlParts.path);\n\n this.rule(this.urlRuleFactory.create(matchFn, handlerFn));\n }\n\n /**\n * Defines the state, url, or behavior to use when no other rule matches the URL.\n *\n * This rule is matched when *no other rule* matches.\n * It is generally used to handle unknown URLs (similar to \"404\" behavior, but on the client side).\n *\n * - If `handler` a string, it is treated as a url redirect\n *\n * #### Example:\n * When no other url rule matches, redirect to `/index`\n * ```js\n * .otherwise('/index');\n * ```\n *\n * - If `handler` is an object with a `state` property, the state is activated.\n *\n * #### Example:\n * When no other url rule matches, redirect to `home` and provide a `dashboard` parameter value.\n * ```js\n * .otherwise({ state: 'home', params: { dashboard: 'default' } });\n * ```\n *\n * - If `handler` is a function, the function receives the current url ([[UrlParts]]) and the [[UIRouter]] object.\n * The function can perform actions, and/or return a value.\n *\n * #### Example:\n * When no other url rule matches, manually trigger a transition to the `home` state\n * ```js\n * .otherwise((matchValue, urlParts, router) => {\n * router.stateService.go('home');\n * });\n * ```\n *\n * #### Example:\n * When no other url rule matches, go to `home` state\n * ```js\n * .otherwise((matchValue, urlParts, router) => {\n * return { state: 'home' };\n * });\n * ```\n *\n * @param handler The url path to redirect to, or a function which returns the url path (or performs custom logic).\n */\n public otherwise(handler: string | UrlRuleHandlerFn | TargetState | TargetStateDef) {\n const handlerFn: UrlRuleHandlerFn = getHandlerFn(handler);\n\n this._otherwiseFn = this.urlRuleFactory.create(val(true), handlerFn);\n this._sorted = false;\n }\n\n /**\n * Remove a rule previously registered\n *\n * @param rule the matcher rule that was previously registered using [[rule]]\n */\n public removeRule(rule): void {\n removeFrom(this._rules, rule);\n }\n\n /**\n * Manually adds a URL Rule.\n *\n * Usually, a url rule is added using [[StateDeclaration.url]] or [[when]].\n * This api can be used directly for more control (to register a [[BaseUrlRule]], for example).\n * Rules can be created using [[urlRuleFactory]], or created manually as simple objects.\n *\n * A rule should have a `match` function which returns truthy if the rule matched.\n * It should also have a `handler` function which is invoked if the rule is the best match.\n *\n * @return a function that deregisters the rule\n */\n public rule(rule: UrlRule): Function {\n if (!UrlRuleFactory.isUrlRule(rule)) throw new Error('invalid rule');\n rule.$id = this._id++;\n rule.priority = rule.priority || 0;\n\n this._rules.push(rule);\n this._sorted = false;\n\n return () => this.removeRule(rule);\n }\n\n /**\n * Gets all registered rules\n *\n * @returns an array of all the registered rules\n */\n public rules(): UrlRule[] {\n this.ensureSorted();\n return this._rules.concat(this._otherwiseFn ? [this._otherwiseFn] : []);\n }\n\n /**\n * Defines URL Rule priorities\n *\n * More than one rule ([[UrlRule]]) might match a given URL.\n * This `compareFn` is used to sort the rules by priority.\n * Higher priority rules should sort earlier.\n *\n * The [[defaultRuleSortFn]] is used by default.\n *\n * You only need to call this function once.\n * The `compareFn` will be used to sort the rules as each is registered.\n *\n * If called without any parameter, it will re-sort the rules.\n *\n * ---\n *\n * Url rules may come from multiple sources: states's urls ([[StateDeclaration.url]]), [[when]], and [[rule]].\n * Each rule has a (user-provided) [[UrlRule.priority]], a [[UrlRule.type]], and a [[UrlRule.$id]]\n * The `$id` is is the order in which the rule was registered.\n *\n * The sort function should use these data, or data found on a specific type\n * of [[UrlRule]] (such as [[StateRule.state]]), to order the rules as desired.\n *\n * #### Example:\n * This compare function prioritizes rules by the order in which the rules were registered.\n * A rule registered earlier has higher priority.\n *\n * ```js\n * function compareFn(a, b) {\n * return a.$id - b.$id;\n * }\n * ```\n *\n * @param compareFn a function that compares to [[UrlRule]] objects.\n * The `compareFn` should abide by the `Array.sort` compare function rules.\n * Given two rules, `a` and `b`, return a negative number if `a` should be higher priority.\n * Return a positive number if `b` should be higher priority.\n * Return `0` if the rules are identical.\n *\n * See the [mozilla reference](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#Description)\n * for details.\n */\n sort(compareFn?: (a: UrlRule, b: UrlRule) => number) {\n const sorted = this.stableSort(this._rules, (this._sortFn = compareFn || this._sortFn));\n\n // precompute _sortGroup values and apply to each rule\n let group = 0;\n for (let i = 0; i < sorted.length; i++) {\n sorted[i]._group = group;\n if (i < sorted.length - 1 && this._sortFn(sorted[i], sorted[i + 1]) !== 0) {\n group++;\n }\n }\n\n this._rules = sorted;\n this._sorted = true;\n }\n\n /** @internal */\n private ensureSorted() {\n this._sorted || this.sort();\n }\n\n /** @internal */\n private stableSort(arr, compareFn) {\n const arrOfWrapper = arr.map((elem, idx) => ({ elem, idx }));\n\n arrOfWrapper.sort((wrapperA, wrapperB) => {\n const cmpDiff = compareFn(wrapperA.elem, wrapperB.elem);\n return cmpDiff === 0 ? wrapperA.idx - wrapperB.idx : cmpDiff;\n });\n\n return arrOfWrapper.map((wrapper) => wrapper.elem);\n }\n\n /**\n * Registers a `matcher` and `handler` for custom URLs handling.\n *\n * The `matcher` can be:\n *\n * - a [[UrlMatcher]]: See: [[UrlMatcherFactory.compile]]\n * - a `string`: The string is compiled to a [[UrlMatcher]]\n * - a `RegExp`: The regexp is used to match the url.\n *\n * The `handler` can be:\n *\n * - a string: The url is redirected to the value of the string.\n * - a function: The url is redirected to the return value of the function.\n *\n * ---\n *\n * When the `handler` is a `string` and the `matcher` is a `UrlMatcher` (or string), the redirect\n * string is interpolated with parameter values.\n *\n * #### Example:\n * When the URL is `/foo/123` the rule will redirect to `/bar/123`.\n * ```js\n * .when(\"/foo/:param1\", \"/bar/:param1\")\n * ```\n *\n * ---\n *\n * When the `handler` is a string and the `matcher` is a `RegExp`, the redirect string is\n * interpolated with capture groups from the RegExp.\n *\n * #### Example:\n * When the URL is `/foo/123` the rule will redirect to `/bar/123`.\n * ```js\n * .when(new RegExp(\"^/foo/(.*)$\"), \"/bar/$1\");\n * ```\n *\n * ---\n *\n * When the handler is a function, it receives the matched value, the current URL, and the `UIRouter` object (See [[UrlRuleHandlerFn]]).\n * The \"matched value\" differs based on the `matcher`.\n * For [[UrlMatcher]]s, it will be the matched state params.\n * For `RegExp`, it will be the match array from `regexp.exec()`.\n *\n * If the handler returns a string, the URL is redirected to the string.\n *\n * #### Example:\n * When the URL is `/foo/123` the rule will redirect to `/bar/123`.\n * ```js\n * .when(new RegExp(\"^/foo/(.*)$\"), match => \"/bar/\" + match[1]);\n * ```\n *\n * Note: the `handler` may also invoke arbitrary code, such as `$state.go()`\n *\n * @param matcher A pattern `string` to match, compiled as a [[UrlMatcher]], or a `RegExp`.\n * @param handler The path to redirect to, or a function that returns the path.\n * @param options `{ priority: number }`\n *\n * @return the registered [[UrlRule]]\n */\n public when(\n matcher: RegExp | UrlMatcher | string,\n handler: string | UrlRuleHandlerFn,\n options?: { priority: number }\n ): UrlRule {\n const rule = this.urlRuleFactory.create(matcher, handler);\n if (isDefined(options && options.priority)) rule.priority = options.priority;\n this.rule(rule);\n return rule;\n }\n}\n", @@ -245,6 +245,7 @@ "acc", "key", "fnname", + "String", "Error", "services", "$q", @@ -396,6 +397,7 @@ "ERROR", "errored", "d", + "$id", "maxLength", "max", "str", @@ -498,7 +500,6 @@ "a", "localeCompare", "view", - "$id", "$uiViewName", "$uiViewContextAnchor", "viewConfigString", @@ -588,7 +589,6 @@ "_flushTypeQueue", "valToString", "defaultTypeBase", - "String", "string", "query", "hash", @@ -609,10 +609,11 @@ "newParams", "$current", "$to", - "parentParams", "parents", "inherited", "inheritList", + "parentParams", + "parentParamsKeys", "stateOrNode", "PathNode", "node", @@ -1019,6 +1020,7 @@ "fromStateOrName", "toStateOrName", "avoidEmptyHash", + "toValid", "quoteRegExp", "surroundPattern", "splitOnSlash", @@ -1716,5 +1718,5 @@ "$anchorScroll", "scrollIntoView" ], - "mappings": "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" + "mappings": "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" } \ No newline at end of file