chore(js/css): update generated files

This commit is contained in:
InverseBot committed 2020-02-05 02:13:22 -05:00
1 parent ad3a9c87f8
commit c49137e620
4 files changed
+11 -11

No files matched your search

+3 -3
View File
@@ -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.24
* @version v1.0.25
* @link https://ui-router.github.io
* @license MIT License, http://www.opensource.org/licenses/MIT
*/
@@ -1207,7 +1207,7 @@
}
function getSafeConsole() {
// @ts-ignore
var isIE9 = document && document.documentMode && document.documentMode === 9;
var isIE9 = typeof document !== 'undefined' && document.documentMode && document.documentMode === 9;
if (isIE9) {
return window && window.console ? ie9Console(window.console) : noopConsoleStub;
}
@@ -6957,7 +6957,7 @@
* ```
* .state('abc', {
* component: 'fooComponent',
* lazyLoad: () => System.import('./fooComponent')
* lazyLoad: () => import('./fooComponent')
* });
* ```
*
+3 -3
View File
@@ -91,7 +91,7 @@
"/** @publicapi @module common */ /** */\nimport { pushTo } from './common';\n\nexport class Queue<T> {\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<T> {\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",
"/** @publicapi @module transition */ /** */\n'use strict';\nimport { extend, silentRejection } from '../common/common';\nimport { stringify } from '../common/strings';\nimport { is } from '../common/hof';\n\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/** @hidden */\nlet id = 0;\n\nexport class Rejection {\n /** @hidden */\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},Line truncated
"/**\n * Functions that manipulate strings\n *\n * Although these functions are exported, they are subject to change without notice.\n *\n * @module common_strings\n */ /** */\n\nimport { isArray, isFunction, isInjectable, isNull, isObject, isPromise, isString, isUndefined } from './predicates';\nimport { Rejection } from '../transition/rejectFactory';\nimport { identity, IInjectable, pushR, tail } from './common';\nimport { pattern, val } from './hof';\n\n/**\n * Returns a string shortened to a maximum length\n *\n * If the string is already less than the `max` length, return the string.\n * Else return the string, shortened to `max - 3` and append three dots (\"...\").\n *\n * @param max the maximum length of the string to return\n * @param str the input string\n */\nexport function maxLength(max: number, str: string) {\n if (str.length <= max) return str;\n return str.substr(0, max - 3) + '...';\n}\n\n/**\n * Returns a string, with spaces added to the end, up to a desired str length\n *\n * If the string is already longer than the desired length, return the string.\n * Else returns the string, with extra spaces on the end, such that it reaches `length` characters.\n *\n * @param length the desired length of the string to return\n * @param str the input string\n */\nexport function padString(length: number, str: string) {\n while (str.length < length) str += ' ';\n return str;\n}\n\nexport function kebobString(camelCase: string) {\n return camelCase\n .replace(/^([A-Z])/, $1 => $1.toLowerCase()) // replace first char\n .replace(/([A-Z])/g, $1 => '-' + $1.toLowerCase()); // replace rest\n}\n\nexport function functionToString(fn: Function) {\n const fnStr = fnToString(fn);\n const namedFunctionMatch = fnStr.match(/^(function [^ ]+\\([^)]*\\))/);\n const toStr = namedFunctionMatch ? namedFunctionMatch[1] : fnStr;\n\n const fnName = fn['name'] || '';\n if (fnName && toStr.match(/function \\(/)) {\n return 'function ' + fnName + toStr.substr(9);\n }\n return toStr;\n}\n\nexport function fnToString(fn: IInjectable) {\n const _fn = isArray(fn) ? fn.slice(-1)[0] : fn;\n return (_fn && _fn.toString()) || 'undefined';\n}\n\nconst isRejection = Rejection.isRejectionPromise;\nconst hasToString = (obj: any) =>\n isObject(obj) && !isArray(obj) && obj.constructor !== Object && isFunction(obj.toString);\n\nconst stringifyPattern = pattern([\n [isUndefined, val('undefined')],\n [isNull, val('null')],\n [isPromise, val('[Promise]')],\n [isRejection, (x: any) => x._transitionRejection.toString()],\n [hasToString, (x: object) => x.toString()],\n [isInjectable, functionToString],\n [val(true), identity],\n]) as (val: any) => string;\n\nexport function stringify(o: any) {\n const seen: any[] = [];\n\n function format(value: any) {\n if (isObject(value)) {\n if (seen.indexOf(value) !== -1) return '[circular ref]';\n seen.push(value);\n }\n return stringifyPattern(value);\n }\n\n if (isUndefined(o)) {\n // Workaround for IE & Edge Spec incompatibility where replacer function would not be called when JSON.stringify\n // is given `undefined` as value. To work around that, we simply detect `undefined` and bail out early by\n // manually stringifying it.\n return format(o);\n }\n\n return JSON.stringify(o, (key, value) => format(value)).replace(/\\\\\"/g, '\"');\n}\n\n/** Returns a function that splits a string on a character or substring */\nexport const beforeAfterSubstr = (char: string) => (str: string): string[] => {\n if (!str) return ['', ''];\n const idx = str.indexOf(char);\n if (idx === -1) return [str, ''];\n return [str.substr(0, idx), str.substr(idx + 1)];\n};\n\nexport const hostRegex = new RegExp('^(?:[a-z]+:)?//[^/]+/');\nexport const stripLastPathElement = (str: string) => str.replace(/\\/[^/]*$/, '');\nexport const splitHash = beforeAfterSubstr('#');\nexport const splitQuery = beforeAfterSubstr('?');\nexport const splitEqual = beforeAfterSubstr('=');\nexport const trimHashVal = (str: string) => (str ? str.replace(/^#/, '') : '');\n\n/**\n * Splits on a delimiter, but returns the delimiters in the array\n *\n * #### Example:\n * ```js\n * var splitOnSlashes = splitOnDelim('/');\n * splitOnSlashes(\"/foo\"); // [\"/\", \"foo\"]\n * splitOnSlashes(\"/foo/\"); // [\"/\", \"foo\", \"/\"]\n * ```\n */\nexport function splitOnDelim(delim: string) {\n const re = new RegExp('(' + delim + ')', 'g');\n return (str: string) => str.split(re).filter(identity);\n}\n\n/**\n * Reduce fn that joins neighboring strings\n *\n * Given an array of strings, returns a new array\n * where all neighboring strings have been joined.\n *\n * #### Example:\n * ```js\n * let arr = [\"foo\", \"bar\", 1, \"baz\", \"\", \"qux\" ];\n * arr.reduce(joinNeighborsR, []) // [\"foobar\", 1, \"bazqux\" ]\n * ```\n */\nexport function joinNeighborsR(acc: any[], x: any) {\n if (isString(tail(acc)) && isString(x)) return acc.slice(0, -1).concat(tail(acc) + x);\n return pushR(acc, Line truncated
"/** workaround for missing console object in IE9 when dev tools haven't been opened o_O */\n/* tslint:disable:no-console */\nimport { noop } from './common';\n\nconst noopConsoleStub = { log: noop, error: noop, table: noop };\n\nfunction ie9Console(console) {\n const bound = (fn: Function) => Function.prototype.bind.call(fn, console);\n return {\n log: bound(console.log),\n error: bound(console.log),\n table: bound(console.log),\n };\n}\n\nfunction fallbackConsole(console) {\n const log = console.log.bind(console);\n const error = console.error ? console.error.bind(console) : log;\n const table = console.table ? console.table.bind(console) : log;\n return { log, error, table };\n}\n\nfunction getSafeConsole() {\n // @ts-ignore\n const isIE9 = document && document.documentMode && document.documentMode === 9;\n if (isIE9) {\n return window && window.console ? ie9Console(window.console) : noopConsoleStub;\n } else if (!console.table || !console.error) {\n return fallbackConsole(console);\n } else {\n return console;\n }\n}\n\nexport const safeConsole = getSafeConsole();\n",
"/** workaround for missing console object in IE9 when dev tools haven't been opened o_O */\n/* tslint:disable:no-console */\nimport { noop } from './common';\n\nconst noopConsoleStub = { log: noop, error: noop, table: noop };\n\nfunction ie9Console(console) {\n const bound = (fn: Function) => Function.prototype.bind.call(fn, console);\n return {\n log: bound(console.log),\n error: bound(console.log),\n table: bound(console.log),\n };\n}\n\nfunction fallbackConsole(console) {\n const log = console.log.bind(console);\n const error = console.error ? console.error.bind(console) : log;\n const table = console.table ? console.table.bind(console) : log;\n return { log, error, table };\n}\n\nfunction getSafeConsole() {\n // @ts-ignore\n const isIE9 = typeof document !== 'undefined' && document.documentMode && document.documentMode === 9;\n if (isIE9) {\n return window && window.console ? ie9Console(window.console) : noopConsoleStub;\n } else if (!console.table || !console.error) {\n return fallbackConsole(console);\n } else {\n return console;\n }\n}\n\nexport const safeConsole = getSafeConsole();\n",
"/**\n * # Transition tracing (debug)\n *\n * Enable transition tracing to print transition information to the console,\n * in order to help debug your application.\n * Tracing logs detailed information about each Transition to your console.\n *\n * To enable tracing, import the [[Trace]] singleton and enable one or more categories.\n *\n * ### ES6\n * ```js\n * import {trace} from \"@uirouter/core\";\n * trace.enable(1, 5); // TRANSITION and VIEWCONFIG\n * ```\n *\n * ### CJS\n * ```js\n * let trace = require(\"@uirouter/core\").trace;\n * trace.enable(\"TRANSITION\", \"VIEWCONFIG\");\n * ```\n *\n * ### Globals\n * ```js\n * let trace = window[\"@uirouter/core\"].trace;\n * trace.enable(); // Trace everything (very verbose)\n * ```\n *\n * ### Angular 1:\n * ```js\n * app.run($trace => $trace.enable());\n * ```\n *\n * @publicapi @module trace\n */\nimport { parse } from '../common/hof';\nimport { isFunction, isNumber } from '../common/predicates';\nimport { Transition } from '../transition/transition';\nimport { ViewTuple } from '../view';\nimport { ActiveUIView, ViewConfig, ViewContext } from '../view/interface';\nimport { stringify, functionToString, maxLength, padString } from './strings';\nimport { safeConsole } from './safeConsole';\nimport { Resolvable } from '../resolve/resolvable';\nimport { PathNode } from '../path/pathNode';\nimport { PolicyWhen } from '../resolve/interface';\nimport { TransitionHook } from '../transition/transitionHook';\nimport { HookResult } from '../transition/interface';\nimport { StateObject } from '../state/stateObject';\n\n/** @hidden */\nfunction uiViewString(uiview: ActiveUIView) {\n if (!uiview) return 'ui-view (defunct)';\n const state = uiview.creationContext ? uiview.creationContext.name || '(root)' : '(none)';\n return `[ui-view#${uiview.id} ${uiview.$type}:${uiview.fqn} (${uiview.name}@${state})]`;\n}\n\n/** @hidden */\nconst viewConfigString = (viewConfig: ViewConfig) => {\n const view = viewConfig.viewDecl;\n const state = view.$context.name || '(root)';\n return `[View#${viewConfig.$id} from '${state}' state]: target ui-view: '${view.$uiViewName}@${view.$uiViewContextAnchor}'`;\n};\n\n/** @hidden */\nfunction normalizedCat(input: Category | string): string {\n return isNumber(input) ? Category[input] : Category[Category[input]];\n}\n\n/**\n * Trace categories Enum\n *\n * Enable or disable a category using [[Trace.enable]] or [[Trace.disable]]\n *\n * `trace.enable(Category.TRANSITION)`\n *\n * These can also be provided using a matching string, or position ordinal\n *\n * `trace.enable(\"TRANSITION\")`\n *\n * `trace.enable(1)`\n */\nenum Category {\n RESOLVE,\n TRANSITION,\n HOOK,\n UIVIEW,\n VIEWCONFIG,\n}\n\nexport { Category };\n\n/** @hidden */\nconst _tid = parse('$id');\n\n/** @hidden */\nconst _rid = parse('router.$id');\n\n/** @hidden */\nconst transLbl = trans => `Transition #${_tid(trans)}-${_rid(trans)}`;\n\n/**\n * Prints UI-Router Transition trace information to the console.\n */\nexport class Trace {\n /** @hidden */\n approximateDigests: number;\n\n /** @hidden */\n private _enabled: { [key: string]: boolean } = {};\n\n /** @hidden */\n constructor() {\n this.approximateDigests = 0;\n }\n\n /** @hidden */\n private _set(enabled: boolean, categories: Category[]) {\n if (!categories.length) {\n categories = <any>Object.keys(Category)\n .map(k => parseInt(k, 10))\n .filter(k => !isNaN(k))\n .map(key => Category[key]);\n }\n categories.map(normalizedCat).forEach(category => (this._enabled[category] = enabled));\n }\n\n /**\n * Enables a trace [[Category]]\n *\n * ```js\n * trace.enable(\"TRANSITION\");\n * ```\n *\n * @param categories categories to enable. If `categories` is omitted, all categories are enabled.\n * Also takes strings (category name) or ordinal (category position)\n */\n enable(...categories: (Category | string | number)[]);\n enable(...categories: any[]) {\n this._set(true, categories);\n }\n /**\n * Disables a trace [[Category]]\n *\n * ```js\n * trace.disable(\"VIEWCONFIG\");\n * ```\n *\n * @param categories categories to disable. If `categories` is omitted, all categories are disabled.\n * Also takes strings (category name) or ordinal (category position)\n */\n disable(...categories: (Category | string | number)[]);\n disable(...categories: any[]) {\n this._set(false, categories);\n }\n\n /**\n * Retrieves the enabled stateus of a [[Category]]\n *\n * ```js\n * trace.enabled(\"VIEWCONFIG\"); // true or false\n * ```\n *\n * @returns boolean true if the category is enabled\n */\n enabled(category: Category | string | number): boolean {\n return !!this._enabled[normalizedCat(category)];\n }\n\n /** @internalapi called by ui-router code */\n traceTransitionStart(trans: Transition) {\n if (!this.enabled(Category.TRANSITION)) return;\n safeConsole.log(`${transLbl(trans)}: SLine truncated
"/** @publicapi @module params */ /** */\nimport { 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 * @internalapi\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 (<any>ArrayType)(this, mode);\n }\n}\n\n/**\n * Wraps up a `ParamType` object to handle array values.\n * @internalapi\n */\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' ? arraLine truncated
"/** @publicapi @module params */ /** */\nimport { 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\n/** @hidden */\nconst hasOwn = Object.prototype.hasOwnProperty;\n\n/** @hidden */\nconst isShorthand = (cfg: ParamDeclaration) =>\n ['value', 'type', 'squash', 'array', 'dynamic'].filter(hasOwn.bind(cfg || {})).length === 0;\n\n/** @internalapi */\nenum DefType {\n PATH,\n SEARCH,\n CONFIG,\n}\nexport { DefType };\n\n/** @internalapi */\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\n/** @hidden */\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\n/** @hidden */\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/**\n * @internalapi\n * returns false, true, or the squash value to indicate the \"default parameter url squash policy\".\n */\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\n/** @internalapi */\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\n/** @internalapi */\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(valLine truncated
@@ -130,7 +130,7 @@
"/** @internalapi @module hooks */ /** */\nimport { noop } from '../common/common';\nimport { services } from '../common/coreservices';\nimport { Transition } from '../transition/transition';\nimport { ViewService } from '../view/view';\nimport { ViewConfig } from '../view/interface';\nimport { TransitionHookFn } from '../transition/interface';\nimport { TransitionService } from '../transition/transitionService';\n\n/**\n * A [[TransitionHookFn]] which waits for the views to load\n *\n * Registered using `transitionService.onStart({}, loadEnteringViews);`\n *\n * Allows the views to do async work in [[ViewConfig.load]] before the transition continues.\n * In angular 1, this includes loading the templates.\n */\nconst loadEnteringViews: TransitionHookFn = (transition: Transition) => {\n const $q = services.$q;\n const enteringViews = transition.views('entering');\n if (!enteringViews.length) return;\n return $q.all(enteringViews.map(view => $q.when(view.load()))).then(noop);\n};\n\nexport const registerLoadEnteringViews = (transitionService: TransitionService) =>\n transitionService.onFinish({}, loadEnteringViews);\n\n/**\n * A [[TransitionHookFn]] which activates the new views when a transition is successful.\n *\n * Registered using `transitionService.onSuccess({}, activateViews);`\n *\n * After a transition is complete, this hook deactivates the old views from the previous state,\n * and activates the new views from the destination state.\n *\n * See [[ViewService]]\n */\nconst activateViews: TransitionHookFn = (transition: Transition) => {\n const enteringViews = transition.views('entering');\n const exitingViews = transition.views('exiting');\n if (!enteringViews.length && !exitingViews.length) return;\n\n const $view: ViewService = transition.router.viewService;\n\n exitingViews.forEach((vc: ViewConfig) => $view.deactivateViewConfig(vc));\n enteringViews.forEach((vc: ViewConfig) => $view.activateViewConfig(vc));\n\n $view.sync();\n};\n\nexport const registerActivateViews = (transitionService: TransitionService) =>\n transitionService.onSuccess({}, activateViews);\n",
"/** @internalapi @module hooks */ /** */\nimport { Transition } from '../transition/transition';\nimport { copy } from '../common/common';\nimport { TransitionService } from '../transition/transitionService';\n\n/**\n * A [[TransitionHookFn]] which updates global UI-Router state\n *\n * Registered using `transitionService.onBefore({}, updateGlobalState);`\n *\n * Before a [[Transition]] starts, updates the global value of \"the current transition\" ([[Globals.transition]]).\n * After a successful [[Transition]], updates the global values of \"the current state\"\n * ([[Globals.current]] and [[Globals.$current]]) and \"the current param values\" ([[Globals.params]]).\n *\n * See also the deprecated properties:\n * [[StateService.transition]], [[StateService.current]], [[StateService.params]]\n */\nconst updateGlobalState = (trans: Transition) => {\n const globals = trans.router.globals;\n\n const transitionSuccessful = () => {\n globals.successfulTransitions.enqueue(trans);\n globals.$current = trans.$to();\n globals.current = globals.$current.self;\n\n copy(trans.params(), globals.params);\n };\n\n const clearCurrentTransition = () => {\n // Do not clear globals.transition if a different transition has started in the meantime\n if (globals.transition === trans) globals.transition = null;\n };\n\n trans.onSuccess({}, transitionSuccessful, { priority: 10000 });\n trans.promise.then(clearCurrentTransition, clearCurrentTransition);\n};\n\nexport const registerUpdateGlobalState = (transitionService: TransitionService) =>\n transitionService.onCreate({}, updateGlobalState);\n",
"/** @internalapi @module hooks */ /** */\nimport { UrlRouter } from '../url/urlRouter';\nimport { StateService } from '../state/stateService';\nimport { Transition } from '../transition/transition';\nimport { TransitionHookFn } from '../transition/interface';\nimport { TransitionService } from '../transition/transitionService';\n\n/**\n * A [[TransitionHookFn]] which updates the URL after a successful transition\n *\n * Registered using `transitionService.onSuccess({}, updateUrl);`\n */\nconst updateUrl: TransitionHookFn = (transition: Transition) => {\n const options = transition.options();\n const $state: StateService = transition.router.stateService;\n const $urlRouter: UrlRouter = transition.router.urlRouter;\n\n // Dont update the url in these situations:\n // The transition was triggered by a URL sync (options.source === 'url')\n // The user doesn't want the url to update (options.location === false)\n // The destination state, and all parents have no navigable url\n if (options.source !== 'url' && options.location && $state.$current.navigable) {\n const urlOptions = { replace: options.location === 'replace' };\n $urlRouter.push($state.$current.navigable.url, $state.params, urlOptions);\n }\n\n $urlRouter.update(true);\n};\n\nexport const registerUpdateUrl = (transitionService: TransitionService) =>\n transitionService.onSuccess({}, updateUrl, { priority: 9999 });\n",
"/** @internalapi @module hooks */ /** */\nimport { Transition } from '../transition/transition';\nimport { TransitionService } from '../transition/transitionService';\nimport { TransitionHookFn } from '../transition/interface';\nimport { StateDeclaration, LazyLoadResult } from '../state/interface';\nimport { services } from '../common/coreservices';\nimport { StateRule } from '../url/interface';\n\n/**\n * A [[TransitionHookFn]] that performs lazy loading\n *\n * When entering a state \"abc\" which has a `lazyLoad` function defined:\n * - Invoke the `lazyLoad` function (unless it is already in process)\n * - Flag the hook function as \"in process\"\n * - The function should return a promise (that resolves when lazy loading is complete)\n * - Wait for the promise to settle\n * - If the promise resolves to a [[LazyLoadResult]], then register those states\n * - Flag the hook function as \"not in process\"\n * - If the hook was successful\n * - Remove the `lazyLoad` function from the state declaration\n * - If all the hooks were successful\n * - Retry the transition (by returning a TargetState)\n *\n * ```\n * .state('abc', {\n * component: 'fooComponent',\n * lazyLoad: () => System.import('./fooComponent')\n * });\n * ```\n *\n * See [[StateDeclaration.lazyLoad]]\n */\nconst lazyLoadHook: TransitionHookFn = (transition: Transition) => {\n const router = transition.router;\n\n function retryTransition() {\n if (transition.originalTransition().options().source !== 'url') {\n // The original transition was not triggered via url sync\n // The lazy state should be loaded now, so re-try the original transition\n const orig = transition.targetState();\n return router.stateService.target(orig.identifier(), orig.params(), orig.options());\n }\n\n // The original transition was triggered via url sync\n // Run the URL rules and find the best match\n const $url = router.urlService;\n const result = $url.match($url.parts());\n const rule = result && result.rule;\n\n // If the best match is a state, redirect the transition (instead\n // of calling sync() which supersedes the current transition)\n if (rule && rule.type === 'STATE') {\n const state = (rule as StateRule).state;\n const params = result.match;\n return router.stateService.target(state, params, transition.options());\n }\n\n // No matching state found, so let .sync() choose the best non-state match/otherwise\n router.urlService.sync();\n }\n\n const promises = transition\n .entering()\n .filter(state => !!state.$$state().lazyLoad)\n .map(state => lazyLoadState(transition, state));\n\n return services.$q.all(promises).then(retryTransition);\n};\n\nexport const registerLazyLoadHook = (transitionService: TransitionService) =>\n transitionService.onBefore({ entering: state => !!state.lazyLoad }, lazyLoadHook);\n\n/**\n * Invokes a state's lazy load function\n *\n * @param transition a Transition context\n * @param state the state to lazy load\n * @returns A promise for the lazy load result\n */\nexport function lazyLoadState(transition: Transition, state: StateDeclaration): Promise<LazyLoadResult> {\n const lazyLoadFn = state.$$state().lazyLoad;\n\n // Store/get the lazy load promise on/from the hookfn so it doesn't get re-invoked\n let promise = lazyLoadFn['_promise'];\n if (!promise) {\n const success = result => {\n delete state.lazyLoad;\n delete state.$$state().lazyLoad;\n delete lazyLoadFn['_promise'];\n return result;\n };\n\n const error = err => {\n delete lazyLoadFn['_promise'];\n return services.$q.reject(err);\n };\n\n promise = lazyLoadFn['_promise'] = services.$q\n .when(lazyLoadFn(transition, state))\n .then(updateStateRegistry)\n .then(success, error);\n }\n\n /** Register any lazy loaded state definitions */\n function updateStateRegistry(result: LazyLoadResult) {\n if (result && Array.isArray(result.states)) {\n result.states.forEach(_state => transition.router.stateRegistry.register(_state));\n }\n return result;\n }\n\n return promise;\n}\n",
"/** @internalapi @module hooks */ /** */\nimport { Transition } from '../transition/transition';\nimport { TransitionService } from '../transition/transitionService';\nimport { TransitionHookFn } from '../transition/interface';\nimport { StateDeclaration, LazyLoadResult } from '../state/interface';\nimport { services } from '../common/coreservices';\nimport { StateRule } from '../url/interface';\n\n/**\n * A [[TransitionHookFn]] that performs lazy loading\n *\n * When entering a state \"abc\" which has a `lazyLoad` function defined:\n * - Invoke the `lazyLoad` function (unless it is already in process)\n * - Flag the hook function as \"in process\"\n * - The function should return a promise (that resolves when lazy loading is complete)\n * - Wait for the promise to settle\n * - If the promise resolves to a [[LazyLoadResult]], then register those states\n * - Flag the hook function as \"not in process\"\n * - If the hook was successful\n * - Remove the `lazyLoad` function from the state declaration\n * - If all the hooks were successful\n * - Retry the transition (by returning a TargetState)\n *\n * ```\n * .state('abc', {\n * component: 'fooComponent',\n * lazyLoad: () => import('./fooComponent')\n * });\n * ```\n *\n * See [[StateDeclaration.lazyLoad]]\n */\nconst lazyLoadHook: TransitionHookFn = (transition: Transition) => {\n const router = transition.router;\n\n function retryTransition() {\n if (transition.originalTransition().options().source !== 'url') {\n // The original transition was not triggered via url sync\n // The lazy state should be loaded now, so re-try the original transition\n const orig = transition.targetState();\n return router.stateService.target(orig.identifier(), orig.params(), orig.options());\n }\n\n // The original transition was triggered via url sync\n // Run the URL rules and find the best match\n const $url = router.urlService;\n const result = $url.match($url.parts());\n const rule = result && result.rule;\n\n // If the best match is a state, redirect the transition (instead\n // of calling sync() which supersedes the current transition)\n if (rule && rule.type === 'STATE') {\n const state = (rule as StateRule).state;\n const params = result.match;\n return router.stateService.target(state, params, transition.options());\n }\n\n // No matching state found, so let .sync() choose the best non-state match/otherwise\n router.urlService.sync();\n }\n\n const promises = transition\n .entering()\n .filter(state => !!state.$$state().lazyLoad)\n .map(state => lazyLoadState(transition, state));\n\n return services.$q.all(promises).then(retryTransition);\n};\n\nexport const registerLazyLoadHook = (transitionService: TransitionService) =>\n transitionService.onBefore({ entering: state => !!state.lazyLoad }, lazyLoadHook);\n\n/**\n * Invokes a state's lazy load function\n *\n * @param transition a Transition context\n * @param state the state to lazy load\n * @returns A promise for the lazy load result\n */\nexport function lazyLoadState(transition: Transition, state: StateDeclaration): Promise<LazyLoadResult> {\n const lazyLoadFn = state.$$state().lazyLoad;\n\n // Store/get the lazy load promise on/from the hookfn so it doesn't get re-invoked\n let promise = lazyLoadFn['_promise'];\n if (!promise) {\n const success = result => {\n delete state.lazyLoad;\n delete state.$$state().lazyLoad;\n delete lazyLoadFn['_promise'];\n return result;\n };\n\n const error = err => {\n delete lazyLoadFn['_promise'];\n return services.$q.reject(err);\n };\n\n promise = lazyLoadFn['_promise'] = services.$q\n .when(lazyLoadFn(transition, state))\n .then(updateStateRegistry)\n .then(success, error);\n }\n\n /** Register any lazy loaded state definitions */\n function updateStateRegistry(result: LazyLoadResult) {\n if (result && Array.isArray(result.states)) {\n result.states.forEach(_state => transition.router.stateRegistry.register(_state));\n }\n return result;\n }\n\n return promise;\n}\n",
"/** @publicapi @module transition */ /** */\nimport { TransitionHookPhase, PathType } from './interface';\nimport { GetErrorHandler, GetResultHandler, TransitionHook } from './transitionHook';\n/**\n * This class defines a type of hook, such as `onBefore` or `onEnter`.\n * Plugins can define custom hook types, such as sticky states does for `onInactive`.\n *\n * @interalapi\n */\nexport class TransitionEventType {\n /* tslint:disable:no-inferrable-types */\n constructor(\n public name: string,\n public hookPhase: TransitionHookPhase,\n public hookOrder: number,\n public criteriaMatchPath: PathType,\n public reverseSort: boolean = false,\n public getResultHandler: GetResultHandler = TransitionHook.HANDLE_RESULT,\n public getErrorHandler: GetErrorHandler = TransitionHook.REJECT_ERROR,\n public synchronous: boolean = false\n ) {}\n}\n",
"/** @internalapi @module hooks */ /** */\n\nimport { trace } from '../common/trace';\nimport { Rejection } from '../transition/rejectFactory';\nimport { TransitionService } from '../transition/transitionService';\nimport { Transition } from '../transition/transition';\n\n/**\n * A [[TransitionHookFn]] that skips a transition if it should be ignored\n *\n * This hook is invoked at the end of the onBefore phase.\n *\n * If the transition should be ignored (because no parameter or states changed)\n * then the transition is ignored and not processed.\n */\nfunction ignoredHook(trans: Transition) {\n const ignoredReason = trans._ignoredReason();\n if (!ignoredReason) return;\n\n trace.traceTransitionIgnored(trans);\n\n const pending = trans.router.globals.transition;\n\n // The user clicked a link going back to the *current state* ('A')\n // However, there is also a pending transition in flight (to 'B')\n // Abort the transition to 'B' because the user now wants to be back at 'A'.\n if (ignoredReason === 'SameAsCurrent' && pending) {\n pending.abort();\n }\n\n return Rejection.ignored().toPromise();\n}\n\nexport const registerIgnoredTransitionHook = (transitionService: TransitionService) =>\n transitionService.onBefore({}, ignoredHook, { priority: -9999 });\n",
"/** @internalapi @module hooks */ /** */\n\nimport { TransitionService } from '../transition/transitionService';\nimport { Transition } from '../transition/transition';\n\n/**\n * A [[TransitionHookFn]] that rejects the Transition if it is invalid\n *\n * This hook is invoked at the end of the onBefore phase.\n * If the transition is invalid (for example, param values do not validate)\n * then the transition is rejected.\n */\nfunction invalidTransitionHook(trans: Transition) {\n if (!trans.valid()) {\n throw new Error(trans.error().toString());\n }\n}\n\nexport const registerInvalidTransitionHook = (transitionService: TransitionService) =>\n transitionService.onBefore({}, invalidTransitionHook, { priority: -10000 });\n",
@@ -174,5 +174,5 @@
"__extends",
"id"
],
"mappings": "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 truncated
"mappings": "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 truncated
}
+2 -2
View File
@@ -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.24
* @version v1.0.25
* @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(d,t){"use strict";var e=angular,$=t&&t.module?t:e,n=function(){for(var t=0,e=0,r=arguments.length;e<r;e++)t+=arguments[e].length;var n=Array(t),i=0;for(e=0;e<r;e++)for(var o=arguments[e],a=0,u=o.length;a<u;a++,i++)n[i]=o[a];return n};function s(r){return function t(){if(arguments.length>=r.length)return r.apply(this,arguments);var e=Array.prototype.slice.call(arguments);return t.bind.apply(t,n([this],e))}}function r(){var r=arguments,n=r.length-1;return function(){for(var t=n,e=r[n].apply(this,arguments);t--;)e=r[t].call(this,e);return e}}function c(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return r.apply(null,[].slice.call(arguments).reverse())}var m=function(e){return function(t){return t&&t[e]}},y=s(function(t,e,r){return r&&r[t]===e}),R=function(t){return c.apply(null,t.split(".").map(m))},l=function(r){return function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return!r.apply(null,t)}};function i(r,n){return function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return r.apply(null,t)&&n.apply(null,t)}}function o(r,n){return function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return r.apply(null,t)||n.apply(null,t)}}function a(e){return function(t){return e===t}}var u=function(r){return function(t){return t.reduce(function(t,e){return t&&!!r(e)},!0)}},f=function(r){return function(t){return t.reduce(function(t,e){return t||!!r(e)},!1)}},h=function(e){return function(t){return null!=t&&t.constructor===e||t instanceof e}},p=function(t){return function(){return t}};function v(e,r){return function(t){return t[e].apply(t,r)}}function g(r){return function(t){for(var e=0;e<r.length;e++)if(r[e][0](t))return r[e][1](t)}}function w(e){return function(t){return typeof t===e}}function _(t){return null===t}var S=Object.prototype.toString,b=w("undefined"),E=l(b),C=o(_,b),T=w("function"),P=w("number"),k=w("string"),O=function(t){return null!==t&&"object"==typeof t},x=Array.isArray,j=function(t){return"[object Date]"===S.call(t)},V=function(t){return"[object RegExp]"===S.call(t)};function H(t){if(x(t)&&t.length){var e=t.slice(0,-1),r=t.slice(-1);return!(e.filter(l(k)).length||r.filter(l(T)).length)}return T(t)}function I(r,t){return t.reduce(function(t,e){return t[e]=function(t){return function(){throw new Error("No implementation for "+t+". The framework specific code did not implement this method.")}}(r+"."+e+"()"),t},{})}var A=i(O,c(m("then"),T)),D={$q:void 0,$injector:void 0},q=function(){for(var t=0,e=0,r=arguments.length;e<r;e++)t+=arguments[e].length;var n=Array(t),i=0;for(e=0;e<r;e++)for(var o=arguments[e],a=0,u=o.length;a<u;a++,i++)n[i]=o[a];return n},U="object"==typeof self&&self.self===self&&self||"object"==typeof global&&global.global===global&&global||void 0,F=U.angular||{},N=F.fromJson||JSON.parse.bind(JSON),L=F.toJson||JSON.stringify.bind(JSON),M=F.forEach||function(e,r,t){if(x(e))return e.forEach(r,t);Object.keys(e).forEach(function(t){return r(e[t],t)})},B=Object.assign||Ot,G=F.equals||xt;function z(t){return t}function W(){}function J(e,r,n,t,i){void 0===i&&(i=!1);function o(t){return e()[t].bind(n())}return(t=t||Object.keys(e())).reduce(function(t,e){return t[e]=i?function(t){return function(){return r[t]=o(t),r[t].apply(null,arguments)}}(e):o(e),t},r)}var Q=function(t,e){return B(Object.create(t),e)},K=s(Y);function Y(t,e){return-1!==t.indexOf(e)}var Z=s(X);function X(t,e){var r=t.indexOf(e);return 0<=r&&t.splice(r,1),t}var tt=s(et);function et(t,e){return t.push(e),e}function rt(e){return e.slice().forEach(function(t){"function"==typeof t&&t(),Z(e,t)})}function nt(t){for(var e=[],r=1;r<arguments.length;r++)e[r-1]=arguments[r];var n=B.apply(void 0,q([{}],e.reverse()));return B(n,at(t||{},Object.keys(n)))}function it(t,e){return B(t,e)}function ot(t,e){var r=[];for(var n in t.path){if(t.path[n]!==e.path[n])break;r.push(t.path[n])}return r}function at(t,e){var r={};for(var n in t)-1!==e.indexOf(n)&&(r[n]=t[n]);return r}function ut(r,t){return Object.keys(r).filter(l(K(t))).reduce(function(t,e){return t[e]=r[e],t},{})}function st(t,e){return ht(t,m(e))}function ct(t,r){var e=x(t),n=e?[]:{},i=e?function(t){return n.push(t)}:function(t,e){return n[e]=t};return M(t,function(t,e){r(t,e)&&i(t,e)}),n}function ft(t,r){var n;return M(t,function(t,e){n||r(t,e)&&(n=t)}),n}var lt=ht;function ht(t,r,n){return n=n||(x(t)?[]:{}),M(t,function(t,e){return n[e]=r(t,e)}),n}function pt(e){return Object.keys(e).map(function(t){return e[t]})}function vt(t,e){return t&&e}function dt(t,e){return t||e}var mt=function(t,e){return t.concat(e)},yt=function(t,e){return x(e)?t.concat(e.reduce(yt,[])):gt(t,e)};function gt(t,e){return t.push(e),t}function wt(t,e){return K(t,e)?t:gt(t,e)}function _t(t){return t.reduce(mt,[])}function St(tLine truncated
!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(d,t){"use strict";var e=angular,$=t&&t.module?t:e,n=function(){for(var t=0,e=0,r=arguments.length;e<r;e++)t+=arguments[e].length;var n=Array(t),i=0;for(e=0;e<r;e++)for(var o=arguments[e],a=0,u=o.length;a<u;a++,i++)n[i]=o[a];return n};function s(r){return function t(){if(arguments.length>=r.length)return r.apply(this,arguments);var e=Array.prototype.slice.call(arguments);return t.bind.apply(t,n([this],e))}}function r(){var r=arguments,n=r.length-1;return function(){for(var t=n,e=r[n].apply(this,arguments);t--;)e=r[t].call(this,e);return e}}function c(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return r.apply(null,[].slice.call(arguments).reverse())}var m=function(e){return function(t){return t&&t[e]}},y=s(function(t,e,r){return r&&r[t]===e}),R=function(t){return c.apply(null,t.split(".").map(m))},l=function(r){return function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return!r.apply(null,t)}};function i(r,n){return function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return r.apply(null,t)&&n.apply(null,t)}}function o(r,n){return function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return r.apply(null,t)||n.apply(null,t)}}function a(e){return function(t){return e===t}}var u=function(r){return function(t){return t.reduce(function(t,e){return t&&!!r(e)},!0)}},f=function(r){return function(t){return t.reduce(function(t,e){return t||!!r(e)},!1)}},h=function(e){return function(t){return null!=t&&t.constructor===e||t instanceof e}},p=function(t){return function(){return t}};function v(e,r){return function(t){return t[e].apply(t,r)}}function g(r){return function(t){for(var e=0;e<r.length;e++)if(r[e][0](t))return r[e][1](t)}}function w(e){return function(t){return typeof t===e}}function _(t){return null===t}var S=Object.prototype.toString,b=w("undefined"),E=l(b),C=o(_,b),T=w("function"),P=w("number"),k=w("string"),O=function(t){return null!==t&&"object"==typeof t},x=Array.isArray,j=function(t){return"[object Date]"===S.call(t)},V=function(t){return"[object RegExp]"===S.call(t)};function H(t){if(x(t)&&t.length){var e=t.slice(0,-1),r=t.slice(-1);return!(e.filter(l(k)).length||r.filter(l(T)).length)}return T(t)}function I(r,t){return t.reduce(function(t,e){return t[e]=function(t){return function(){throw new Error("No implementation for "+t+". The framework specific code did not implement this method.")}}(r+"."+e+"()"),t},{})}var A=i(O,c(m("then"),T)),D={$q:void 0,$injector:void 0},q=function(){for(var t=0,e=0,r=arguments.length;e<r;e++)t+=arguments[e].length;var n=Array(t),i=0;for(e=0;e<r;e++)for(var o=arguments[e],a=0,u=o.length;a<u;a++,i++)n[i]=o[a];return n},U="object"==typeof self&&self.self===self&&self||"object"==typeof global&&global.global===global&&global||void 0,F=U.angular||{},N=F.fromJson||JSON.parse.bind(JSON),L=F.toJson||JSON.stringify.bind(JSON),M=F.forEach||function(e,r,t){if(x(e))return e.forEach(r,t);Object.keys(e).forEach(function(t){return r(e[t],t)})},B=Object.assign||Ot,G=F.equals||xt;function z(t){return t}function W(){}function J(e,r,n,t,i){void 0===i&&(i=!1);function o(t){return e()[t].bind(n())}return(t=t||Object.keys(e())).reduce(function(t,e){return t[e]=i?function(t){return function(){return r[t]=o(t),r[t].apply(null,arguments)}}(e):o(e),t},r)}var Q=function(t,e){return B(Object.create(t),e)},K=s(Y);function Y(t,e){return-1!==t.indexOf(e)}var Z=s(X);function X(t,e){var r=t.indexOf(e);return 0<=r&&t.splice(r,1),t}var tt=s(et);function et(t,e){return t.push(e),e}function rt(e){return e.slice().forEach(function(t){"function"==typeof t&&t(),Z(e,t)})}function nt(t){for(var e=[],r=1;r<arguments.length;r++)e[r-1]=arguments[r];var n=B.apply(void 0,q([{}],e.reverse()));return B(n,at(t||{},Object.keys(n)))}function it(t,e){return B(t,e)}function ot(t,e){var r=[];for(var n in t.path){if(t.path[n]!==e.path[n])break;r.push(t.path[n])}return r}function at(t,e){var r={};for(var n in t)-1!==e.indexOf(n)&&(r[n]=t[n]);return r}function ut(r,t){return Object.keys(r).filter(l(K(t))).reduce(function(t,e){return t[e]=r[e],t},{})}function st(t,e){return ht(t,m(e))}function ct(t,r){var e=x(t),n=e?[]:{},i=e?function(t){return n.push(t)}:function(t,e){return n[e]=t};return M(t,function(t,e){r(t,e)&&i(t,e)}),n}function ft(t,r){var n;return M(t,function(t,e){n||r(t,e)&&(n=t)}),n}var lt=ht;function ht(t,r,n){return n=n||(x(t)?[]:{}),M(t,function(t,e){return n[e]=r(t,e)}),n}function pt(e){return Object.keys(e).map(function(t){return e[t]})}function vt(t,e){return t&&e}function dt(t,e){return t||e}var mt=function(t,e){return t.concat(e)},yt=function(t,e){return x(e)?t.concat(e.reduce(yt,[])):gt(t,e)};function gt(t,e){return t.push(e),t}function wt(t,e){return K(t,e)?t:gt(t,e)}function _t(t){return t.reduce(mt,[])}function St(tLine truncated
//# sourceMappingURL=angular-ui-router.min.js.map
@@ -90,7 +90,7 @@
"/** @publicapi @module transition */ /** */\n'use strict';\nimport { extend, silentRejection } from '../common/common';\nimport { stringify } from '../common/strings';\nimport { is } from '../common/hof';\n\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/** @hidden */\nlet id = 0;\n\nexport class Rejection {\n /** @hidden */\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},Line truncated
"/** @publicapi @module common */ /** */\nimport { pushTo } from './common';\n\nexport class Queue<T> {\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<T> {\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",
"/**\n * Functions that manipulate strings\n *\n * Although these functions are exported, they are subject to change without notice.\n *\n * @module common_strings\n */ /** */\n\nimport { isArray, isFunction, isInjectable, isNull, isObject, isPromise, isString, isUndefined } from './predicates';\nimport { Rejection } from '../transition/rejectFactory';\nimport { identity, IInjectable, pushR, tail } from './common';\nimport { pattern, val } from './hof';\n\n/**\n * Returns a string shortened to a maximum length\n *\n * If the string is already less than the `max` length, return the string.\n * Else return the string, shortened to `max - 3` and append three dots (\"...\").\n *\n * @param max the maximum length of the string to return\n * @param str the input string\n */\nexport function maxLength(max: number, str: string) {\n if (str.length <= max) return str;\n return str.substr(0, max - 3) + '...';\n}\n\n/**\n * Returns a string, with spaces added to the end, up to a desired str length\n *\n * If the string is already longer than the desired length, return the string.\n * Else returns the string, with extra spaces on the end, such that it reaches `length` characters.\n *\n * @param length the desired length of the string to return\n * @param str the input string\n */\nexport function padString(length: number, str: string) {\n while (str.length < length) str += ' ';\n return str;\n}\n\nexport function kebobString(camelCase: string) {\n return camelCase\n .replace(/^([A-Z])/, $1 => $1.toLowerCase()) // replace first char\n .replace(/([A-Z])/g, $1 => '-' + $1.toLowerCase()); // replace rest\n}\n\nexport function functionToString(fn: Function) {\n const fnStr = fnToString(fn);\n const namedFunctionMatch = fnStr.match(/^(function [^ ]+\\([^)]*\\))/);\n const toStr = namedFunctionMatch ? namedFunctionMatch[1] : fnStr;\n\n const fnName = fn['name'] || '';\n if (fnName && toStr.match(/function \\(/)) {\n return 'function ' + fnName + toStr.substr(9);\n }\n return toStr;\n}\n\nexport function fnToString(fn: IInjectable) {\n const _fn = isArray(fn) ? fn.slice(-1)[0] : fn;\n return (_fn && _fn.toString()) || 'undefined';\n}\n\nconst isRejection = Rejection.isRejectionPromise;\nconst hasToString = (obj: any) =>\n isObject(obj) && !isArray(obj) && obj.constructor !== Object && isFunction(obj.toString);\n\nconst stringifyPattern = pattern([\n [isUndefined, val('undefined')],\n [isNull, val('null')],\n [isPromise, val('[Promise]')],\n [isRejection, (x: any) => x._transitionRejection.toString()],\n [hasToString, (x: object) => x.toString()],\n [isInjectable, functionToString],\n [val(true), identity],\n]) as (val: any) => string;\n\nexport function stringify(o: any) {\n const seen: any[] = [];\n\n function format(value: any) {\n if (isObject(value)) {\n if (seen.indexOf(value) !== -1) return '[circular ref]';\n seen.push(value);\n }\n return stringifyPattern(value);\n }\n\n if (isUndefined(o)) {\n // Workaround for IE & Edge Spec incompatibility where replacer function would not be called when JSON.stringify\n // is given `undefined` as value. To work around that, we simply detect `undefined` and bail out early by\n // manually stringifying it.\n return format(o);\n }\n\n return JSON.stringify(o, (key, value) => format(value)).replace(/\\\\\"/g, '\"');\n}\n\n/** Returns a function that splits a string on a character or substring */\nexport const beforeAfterSubstr = (char: string) => (str: string): string[] => {\n if (!str) return ['', ''];\n const idx = str.indexOf(char);\n if (idx === -1) return [str, ''];\n return [str.substr(0, idx), str.substr(idx + 1)];\n};\n\nexport const hostRegex = new RegExp('^(?:[a-z]+:)?//[^/]+/');\nexport const stripLastPathElement = (str: string) => str.replace(/\\/[^/]*$/, '');\nexport const splitHash = beforeAfterSubstr('#');\nexport const splitQuery = beforeAfterSubstr('?');\nexport const splitEqual = beforeAfterSubstr('=');\nexport const trimHashVal = (str: string) => (str ? str.replace(/^#/, '') : '');\n\n/**\n * Splits on a delimiter, but returns the delimiters in the array\n *\n * #### Example:\n * ```js\n * var splitOnSlashes = splitOnDelim('/');\n * splitOnSlashes(\"/foo\"); // [\"/\", \"foo\"]\n * splitOnSlashes(\"/foo/\"); // [\"/\", \"foo\", \"/\"]\n * ```\n */\nexport function splitOnDelim(delim: string) {\n const re = new RegExp('(' + delim + ')', 'g');\n return (str: string) => str.split(re).filter(identity);\n}\n\n/**\n * Reduce fn that joins neighboring strings\n *\n * Given an array of strings, returns a new array\n * where all neighboring strings have been joined.\n *\n * #### Example:\n * ```js\n * let arr = [\"foo\", \"bar\", 1, \"baz\", \"\", \"qux\" ];\n * arr.reduce(joinNeighborsR, []) // [\"foobar\", 1, \"bazqux\" ]\n * ```\n */\nexport function joinNeighborsR(acc: any[], x: any) {\n if (isString(tail(acc)) && isString(x)) return acc.slice(0, -1).concat(tail(acc) + x);\n return pushR(acc, Line truncated
"/** workaround for missing console object in IE9 when dev tools haven't been opened o_O */\n/* tslint:disable:no-console */\nimport { noop } from './common';\n\nconst noopConsoleStub = { log: noop, error: noop, table: noop };\n\nfunction ie9Console(console) {\n const bound = (fn: Function) => Function.prototype.bind.call(fn, console);\n return {\n log: bound(console.log),\n error: bound(console.log),\n table: bound(console.log),\n };\n}\n\nfunction fallbackConsole(console) {\n const log = console.log.bind(console);\n const error = console.error ? console.error.bind(console) : log;\n const table = console.table ? console.table.bind(console) : log;\n return { log, error, table };\n}\n\nfunction getSafeConsole() {\n // @ts-ignore\n const isIE9 = document && document.documentMode && document.documentMode === 9;\n if (isIE9) {\n return window && window.console ? ie9Console(window.console) : noopConsoleStub;\n } else if (!console.table || !console.error) {\n return fallbackConsole(console);\n } else {\n return console;\n }\n}\n\nexport const safeConsole = getSafeConsole();\n",
"/** workaround for missing console object in IE9 when dev tools haven't been opened o_O */\n/* tslint:disable:no-console */\nimport { noop } from './common';\n\nconst noopConsoleStub = { log: noop, error: noop, table: noop };\n\nfunction ie9Console(console) {\n const bound = (fn: Function) => Function.prototype.bind.call(fn, console);\n return {\n log: bound(console.log),\n error: bound(console.log),\n table: bound(console.log),\n };\n}\n\nfunction fallbackConsole(console) {\n const log = console.log.bind(console);\n const error = console.error ? console.error.bind(console) : log;\n const table = console.table ? console.table.bind(console) : log;\n return { log, error, table };\n}\n\nfunction getSafeConsole() {\n // @ts-ignore\n const isIE9 = typeof document !== 'undefined' && document.documentMode && document.documentMode === 9;\n if (isIE9) {\n return window && window.console ? ie9Console(window.console) : noopConsoleStub;\n } else if (!console.table || !console.error) {\n return fallbackConsole(console);\n } else {\n return console;\n }\n}\n\nexport const safeConsole = getSafeConsole();\n",
"/**\n * # Transition tracing (debug)\n *\n * Enable transition tracing to print transition information to the console,\n * in order to help debug your application.\n * Tracing logs detailed information about each Transition to your console.\n *\n * To enable tracing, import the [[Trace]] singleton and enable one or more categories.\n *\n * ### ES6\n * ```js\n * import {trace} from \"@uirouter/core\";\n * trace.enable(1, 5); // TRANSITION and VIEWCONFIG\n * ```\n *\n * ### CJS\n * ```js\n * let trace = require(\"@uirouter/core\").trace;\n * trace.enable(\"TRANSITION\", \"VIEWCONFIG\");\n * ```\n *\n * ### Globals\n * ```js\n * let trace = window[\"@uirouter/core\"].trace;\n * trace.enable(); // Trace everything (very verbose)\n * ```\n *\n * ### Angular 1:\n * ```js\n * app.run($trace => $trace.enable());\n * ```\n *\n * @publicapi @module trace\n */\nimport { parse } from '../common/hof';\nimport { isFunction, isNumber } from '../common/predicates';\nimport { Transition } from '../transition/transition';\nimport { ViewTuple } from '../view';\nimport { ActiveUIView, ViewConfig, ViewContext } from '../view/interface';\nimport { stringify, functionToString, maxLength, padString } from './strings';\nimport { safeConsole } from './safeConsole';\nimport { Resolvable } from '../resolve/resolvable';\nimport { PathNode } from '../path/pathNode';\nimport { PolicyWhen } from '../resolve/interface';\nimport { TransitionHook } from '../transition/transitionHook';\nimport { HookResult } from '../transition/interface';\nimport { StateObject } from '../state/stateObject';\n\n/** @hidden */\nfunction uiViewString(uiview: ActiveUIView) {\n if (!uiview) return 'ui-view (defunct)';\n const state = uiview.creationContext ? uiview.creationContext.name || '(root)' : '(none)';\n return `[ui-view#${uiview.id} ${uiview.$type}:${uiview.fqn} (${uiview.name}@${state})]`;\n}\n\n/** @hidden */\nconst viewConfigString = (viewConfig: ViewConfig) => {\n const view = viewConfig.viewDecl;\n const state = view.$context.name || '(root)';\n return `[View#${viewConfig.$id} from '${state}' state]: target ui-view: '${view.$uiViewName}@${view.$uiViewContextAnchor}'`;\n};\n\n/** @hidden */\nfunction normalizedCat(input: Category | string): string {\n return isNumber(input) ? Category[input] : Category[Category[input]];\n}\n\n/**\n * Trace categories Enum\n *\n * Enable or disable a category using [[Trace.enable]] or [[Trace.disable]]\n *\n * `trace.enable(Category.TRANSITION)`\n *\n * These can also be provided using a matching string, or position ordinal\n *\n * `trace.enable(\"TRANSITION\")`\n *\n * `trace.enable(1)`\n */\nenum Category {\n RESOLVE,\n TRANSITION,\n HOOK,\n UIVIEW,\n VIEWCONFIG,\n}\n\nexport { Category };\n\n/** @hidden */\nconst _tid = parse('$id');\n\n/** @hidden */\nconst _rid = parse('router.$id');\n\n/** @hidden */\nconst transLbl = trans => `Transition #${_tid(trans)}-${_rid(trans)}`;\n\n/**\n * Prints UI-Router Transition trace information to the console.\n */\nexport class Trace {\n /** @hidden */\n approximateDigests: number;\n\n /** @hidden */\n private _enabled: { [key: string]: boolean } = {};\n\n /** @hidden */\n constructor() {\n this.approximateDigests = 0;\n }\n\n /** @hidden */\n private _set(enabled: boolean, categories: Category[]) {\n if (!categories.length) {\n categories = <any>Object.keys(Category)\n .map(k => parseInt(k, 10))\n .filter(k => !isNaN(k))\n .map(key => Category[key]);\n }\n categories.map(normalizedCat).forEach(category => (this._enabled[category] = enabled));\n }\n\n /**\n * Enables a trace [[Category]]\n *\n * ```js\n * trace.enable(\"TRANSITION\");\n * ```\n *\n * @param categories categories to enable. If `categories` is omitted, all categories are enabled.\n * Also takes strings (category name) or ordinal (category position)\n */\n enable(...categories: (Category | string | number)[]);\n enable(...categories: any[]) {\n this._set(true, categories);\n }\n /**\n * Disables a trace [[Category]]\n *\n * ```js\n * trace.disable(\"VIEWCONFIG\");\n * ```\n *\n * @param categories categories to disable. If `categories` is omitted, all categories are disabled.\n * Also takes strings (category name) or ordinal (category position)\n */\n disable(...categories: (Category | string | number)[]);\n disable(...categories: any[]) {\n this._set(false, categories);\n }\n\n /**\n * Retrieves the enabled stateus of a [[Category]]\n *\n * ```js\n * trace.enabled(\"VIEWCONFIG\"); // true or false\n * ```\n *\n * @returns boolean true if the category is enabled\n */\n enabled(category: Category | string | number): boolean {\n return !!this._enabled[normalizedCat(category)];\n }\n\n /** @internalapi called by ui-router code */\n traceTransitionStart(trans: Transition) {\n if (!this.enabled(Category.TRANSITION)) return;\n safeConsole.log(`${transLbl(trans)}: SLine truncated
"/** @publicapi @module params */ /** */\nimport { 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 * @internalapi\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 (<any>ArrayType)(this, mode);\n }\n}\n\n/**\n * Wraps up a `ParamType` object to handle array values.\n * @internalapi\n */\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' ? arraLine truncated
"/** @publicapi @module params */ /** */\nimport { 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\n/** @hidden */\nconst hasOwn = Object.prototype.hasOwnProperty;\n\n/** @hidden */\nconst isShorthand = (cfg: ParamDeclaration) =>\n ['value', 'type', 'squash', 'array', 'dynamic'].filter(hasOwn.bind(cfg || {})).length === 0;\n\n/** @internalapi */\nenum DefType {\n PATH,\n SEARCH,\n CONFIG,\n}\nexport { DefType };\n\n/** @internalapi */\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\n/** @hidden */\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\n/** @hidden */\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/**\n * @internalapi\n * returns false, true, or the squash value to indicate the \"default parameter url squash policy\".\n */\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\n/** @internalapi */\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\n/** @internalapi */\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(valLine truncated
@@ -129,7 +129,7 @@
"/** @internalapi @module hooks */ /** */\nimport { noop } from '../common/common';\nimport { services } from '../common/coreservices';\nimport { Transition } from '../transition/transition';\nimport { ViewService } from '../view/view';\nimport { ViewConfig } from '../view/interface';\nimport { TransitionHookFn } from '../transition/interface';\nimport { TransitionService } from '../transition/transitionService';\n\n/**\n * A [[TransitionHookFn]] which waits for the views to load\n *\n * Registered using `transitionService.onStart({}, loadEnteringViews);`\n *\n * Allows the views to do async work in [[ViewConfig.load]] before the transition continues.\n * In angular 1, this includes loading the templates.\n */\nconst loadEnteringViews: TransitionHookFn = (transition: Transition) => {\n const $q = services.$q;\n const enteringViews = transition.views('entering');\n if (!enteringViews.length) return;\n return $q.all(enteringViews.map(view => $q.when(view.load()))).then(noop);\n};\n\nexport const registerLoadEnteringViews = (transitionService: TransitionService) =>\n transitionService.onFinish({}, loadEnteringViews);\n\n/**\n * A [[TransitionHookFn]] which activates the new views when a transition is successful.\n *\n * Registered using `transitionService.onSuccess({}, activateViews);`\n *\n * After a transition is complete, this hook deactivates the old views from the previous state,\n * and activates the new views from the destination state.\n *\n * See [[ViewService]]\n */\nconst activateViews: TransitionHookFn = (transition: Transition) => {\n const enteringViews = transition.views('entering');\n const exitingViews = transition.views('exiting');\n if (!enteringViews.length && !exitingViews.length) return;\n\n const $view: ViewService = transition.router.viewService;\n\n exitingViews.forEach((vc: ViewConfig) => $view.deactivateViewConfig(vc));\n enteringViews.forEach((vc: ViewConfig) => $view.activateViewConfig(vc));\n\n $view.sync();\n};\n\nexport const registerActivateViews = (transitionService: TransitionService) =>\n transitionService.onSuccess({}, activateViews);\n",
"/** @internalapi @module hooks */ /** */\nimport { Transition } from '../transition/transition';\nimport { copy } from '../common/common';\nimport { TransitionService } from '../transition/transitionService';\n\n/**\n * A [[TransitionHookFn]] which updates global UI-Router state\n *\n * Registered using `transitionService.onBefore({}, updateGlobalState);`\n *\n * Before a [[Transition]] starts, updates the global value of \"the current transition\" ([[Globals.transition]]).\n * After a successful [[Transition]], updates the global values of \"the current state\"\n * ([[Globals.current]] and [[Globals.$current]]) and \"the current param values\" ([[Globals.params]]).\n *\n * See also the deprecated properties:\n * [[StateService.transition]], [[StateService.current]], [[StateService.params]]\n */\nconst updateGlobalState = (trans: Transition) => {\n const globals = trans.router.globals;\n\n const transitionSuccessful = () => {\n globals.successfulTransitions.enqueue(trans);\n globals.$current = trans.$to();\n globals.current = globals.$current.self;\n\n copy(trans.params(), globals.params);\n };\n\n const clearCurrentTransition = () => {\n // Do not clear globals.transition if a different transition has started in the meantime\n if (globals.transition === trans) globals.transition = null;\n };\n\n trans.onSuccess({}, transitionSuccessful, { priority: 10000 });\n trans.promise.then(clearCurrentTransition, clearCurrentTransition);\n};\n\nexport const registerUpdateGlobalState = (transitionService: TransitionService) =>\n transitionService.onCreate({}, updateGlobalState);\n",
"/** @internalapi @module hooks */ /** */\nimport { UrlRouter } from '../url/urlRouter';\nimport { StateService } from '../state/stateService';\nimport { Transition } from '../transition/transition';\nimport { TransitionHookFn } from '../transition/interface';\nimport { TransitionService } from '../transition/transitionService';\n\n/**\n * A [[TransitionHookFn]] which updates the URL after a successful transition\n *\n * Registered using `transitionService.onSuccess({}, updateUrl);`\n */\nconst updateUrl: TransitionHookFn = (transition: Transition) => {\n const options = transition.options();\n const $state: StateService = transition.router.stateService;\n const $urlRouter: UrlRouter = transition.router.urlRouter;\n\n // Dont update the url in these situations:\n // The transition was triggered by a URL sync (options.source === 'url')\n // The user doesn't want the url to update (options.location === false)\n // The destination state, and all parents have no navigable url\n if (options.source !== 'url' && options.location && $state.$current.navigable) {\n const urlOptions = { replace: options.location === 'replace' };\n $urlRouter.push($state.$current.navigable.url, $state.params, urlOptions);\n }\n\n $urlRouter.update(true);\n};\n\nexport const registerUpdateUrl = (transitionService: TransitionService) =>\n transitionService.onSuccess({}, updateUrl, { priority: 9999 });\n",
"/** @internalapi @module hooks */ /** */\nimport { Transition } from '../transition/transition';\nimport { TransitionService } from '../transition/transitionService';\nimport { TransitionHookFn } from '../transition/interface';\nimport { StateDeclaration, LazyLoadResult } from '../state/interface';\nimport { services } from '../common/coreservices';\nimport { StateRule } from '../url/interface';\n\n/**\n * A [[TransitionHookFn]] that performs lazy loading\n *\n * When entering a state \"abc\" which has a `lazyLoad` function defined:\n * - Invoke the `lazyLoad` function (unless it is already in process)\n * - Flag the hook function as \"in process\"\n * - The function should return a promise (that resolves when lazy loading is complete)\n * - Wait for the promise to settle\n * - If the promise resolves to a [[LazyLoadResult]], then register those states\n * - Flag the hook function as \"not in process\"\n * - If the hook was successful\n * - Remove the `lazyLoad` function from the state declaration\n * - If all the hooks were successful\n * - Retry the transition (by returning a TargetState)\n *\n * ```\n * .state('abc', {\n * component: 'fooComponent',\n * lazyLoad: () => System.import('./fooComponent')\n * });\n * ```\n *\n * See [[StateDeclaration.lazyLoad]]\n */\nconst lazyLoadHook: TransitionHookFn = (transition: Transition) => {\n const router = transition.router;\n\n function retryTransition() {\n if (transition.originalTransition().options().source !== 'url') {\n // The original transition was not triggered via url sync\n // The lazy state should be loaded now, so re-try the original transition\n const orig = transition.targetState();\n return router.stateService.target(orig.identifier(), orig.params(), orig.options());\n }\n\n // The original transition was triggered via url sync\n // Run the URL rules and find the best match\n const $url = router.urlService;\n const result = $url.match($url.parts());\n const rule = result && result.rule;\n\n // If the best match is a state, redirect the transition (instead\n // of calling sync() which supersedes the current transition)\n if (rule && rule.type === 'STATE') {\n const state = (rule as StateRule).state;\n const params = result.match;\n return router.stateService.target(state, params, transition.options());\n }\n\n // No matching state found, so let .sync() choose the best non-state match/otherwise\n router.urlService.sync();\n }\n\n const promises = transition\n .entering()\n .filter(state => !!state.$$state().lazyLoad)\n .map(state => lazyLoadState(transition, state));\n\n return services.$q.all(promises).then(retryTransition);\n};\n\nexport const registerLazyLoadHook = (transitionService: TransitionService) =>\n transitionService.onBefore({ entering: state => !!state.lazyLoad }, lazyLoadHook);\n\n/**\n * Invokes a state's lazy load function\n *\n * @param transition a Transition context\n * @param state the state to lazy load\n * @returns A promise for the lazy load result\n */\nexport function lazyLoadState(transition: Transition, state: StateDeclaration): Promise<LazyLoadResult> {\n const lazyLoadFn = state.$$state().lazyLoad;\n\n // Store/get the lazy load promise on/from the hookfn so it doesn't get re-invoked\n let promise = lazyLoadFn['_promise'];\n if (!promise) {\n const success = result => {\n delete state.lazyLoad;\n delete state.$$state().lazyLoad;\n delete lazyLoadFn['_promise'];\n return result;\n };\n\n const error = err => {\n delete lazyLoadFn['_promise'];\n return services.$q.reject(err);\n };\n\n promise = lazyLoadFn['_promise'] = services.$q\n .when(lazyLoadFn(transition, state))\n .then(updateStateRegistry)\n .then(success, error);\n }\n\n /** Register any lazy loaded state definitions */\n function updateStateRegistry(result: LazyLoadResult) {\n if (result && Array.isArray(result.states)) {\n result.states.forEach(_state => transition.router.stateRegistry.register(_state));\n }\n return result;\n }\n\n return promise;\n}\n",
"/** @internalapi @module hooks */ /** */\nimport { Transition } from '../transition/transition';\nimport { TransitionService } from '../transition/transitionService';\nimport { TransitionHookFn } from '../transition/interface';\nimport { StateDeclaration, LazyLoadResult } from '../state/interface';\nimport { services } from '../common/coreservices';\nimport { StateRule } from '../url/interface';\n\n/**\n * A [[TransitionHookFn]] that performs lazy loading\n *\n * When entering a state \"abc\" which has a `lazyLoad` function defined:\n * - Invoke the `lazyLoad` function (unless it is already in process)\n * - Flag the hook function as \"in process\"\n * - The function should return a promise (that resolves when lazy loading is complete)\n * - Wait for the promise to settle\n * - If the promise resolves to a [[LazyLoadResult]], then register those states\n * - Flag the hook function as \"not in process\"\n * - If the hook was successful\n * - Remove the `lazyLoad` function from the state declaration\n * - If all the hooks were successful\n * - Retry the transition (by returning a TargetState)\n *\n * ```\n * .state('abc', {\n * component: 'fooComponent',\n * lazyLoad: () => import('./fooComponent')\n * });\n * ```\n *\n * See [[StateDeclaration.lazyLoad]]\n */\nconst lazyLoadHook: TransitionHookFn = (transition: Transition) => {\n const router = transition.router;\n\n function retryTransition() {\n if (transition.originalTransition().options().source !== 'url') {\n // The original transition was not triggered via url sync\n // The lazy state should be loaded now, so re-try the original transition\n const orig = transition.targetState();\n return router.stateService.target(orig.identifier(), orig.params(), orig.options());\n }\n\n // The original transition was triggered via url sync\n // Run the URL rules and find the best match\n const $url = router.urlService;\n const result = $url.match($url.parts());\n const rule = result && result.rule;\n\n // If the best match is a state, redirect the transition (instead\n // of calling sync() which supersedes the current transition)\n if (rule && rule.type === 'STATE') {\n const state = (rule as StateRule).state;\n const params = result.match;\n return router.stateService.target(state, params, transition.options());\n }\n\n // No matching state found, so let .sync() choose the best non-state match/otherwise\n router.urlService.sync();\n }\n\n const promises = transition\n .entering()\n .filter(state => !!state.$$state().lazyLoad)\n .map(state => lazyLoadState(transition, state));\n\n return services.$q.all(promises).then(retryTransition);\n};\n\nexport const registerLazyLoadHook = (transitionService: TransitionService) =>\n transitionService.onBefore({ entering: state => !!state.lazyLoad }, lazyLoadHook);\n\n/**\n * Invokes a state's lazy load function\n *\n * @param transition a Transition context\n * @param state the state to lazy load\n * @returns A promise for the lazy load result\n */\nexport function lazyLoadState(transition: Transition, state: StateDeclaration): Promise<LazyLoadResult> {\n const lazyLoadFn = state.$$state().lazyLoad;\n\n // Store/get the lazy load promise on/from the hookfn so it doesn't get re-invoked\n let promise = lazyLoadFn['_promise'];\n if (!promise) {\n const success = result => {\n delete state.lazyLoad;\n delete state.$$state().lazyLoad;\n delete lazyLoadFn['_promise'];\n return result;\n };\n\n const error = err => {\n delete lazyLoadFn['_promise'];\n return services.$q.reject(err);\n };\n\n promise = lazyLoadFn['_promise'] = services.$q\n .when(lazyLoadFn(transition, state))\n .then(updateStateRegistry)\n .then(success, error);\n }\n\n /** Register any lazy loaded state definitions */\n function updateStateRegistry(result: LazyLoadResult) {\n if (result && Array.isArray(result.states)) {\n result.states.forEach(_state => transition.router.stateRegistry.register(_state));\n }\n return result;\n }\n\n return promise;\n}\n",
"/** @publicapi @module transition */ /** */\nimport { TransitionHookPhase, PathType } from './interface';\nimport { GetErrorHandler, GetResultHandler, TransitionHook } from './transitionHook';\n/**\n * This class defines a type of hook, such as `onBefore` or `onEnter`.\n * Plugins can define custom hook types, such as sticky states does for `onInactive`.\n *\n * @interalapi\n */\nexport class TransitionEventType {\n /* tslint:disable:no-inferrable-types */\n constructor(\n public name: string,\n public hookPhase: TransitionHookPhase,\n public hookOrder: number,\n public criteriaMatchPath: PathType,\n public reverseSort: boolean = false,\n public getResultHandler: GetResultHandler = TransitionHook.HANDLE_RESULT,\n public getErrorHandler: GetErrorHandler = TransitionHook.REJECT_ERROR,\n public synchronous: boolean = false\n ) {}\n}\n",
"/** @internalapi @module hooks */ /** */\n\nimport { trace } from '../common/trace';\nimport { Rejection } from '../transition/rejectFactory';\nimport { TransitionService } from '../transition/transitionService';\nimport { Transition } from '../transition/transition';\n\n/**\n * A [[TransitionHookFn]] that skips a transition if it should be ignored\n *\n * This hook is invoked at the end of the onBefore phase.\n *\n * If the transition should be ignored (because no parameter or states changed)\n * then the transition is ignored and not processed.\n */\nfunction ignoredHook(trans: Transition) {\n const ignoredReason = trans._ignoredReason();\n if (!ignoredReason) return;\n\n trace.traceTransitionIgnored(trans);\n\n const pending = trans.router.globals.transition;\n\n // The user clicked a link going back to the *current state* ('A')\n // However, there is also a pending transition in flight (to 'B')\n // Abort the transition to 'B' because the user now wants to be back at 'A'.\n if (ignoredReason === 'SameAsCurrent' && pending) {\n pending.abort();\n }\n\n return Rejection.ignored().toPromise();\n}\n\nexport const registerIgnoredTransitionHook = (transitionService: TransitionService) =>\n transitionService.onBefore({}, ignoredHook, { priority: -9999 });\n",
"/** @internalapi @module hooks */ /** */\n\nimport { TransitionService } from '../transition/transitionService';\nimport { Transition } from '../transition/transition';\n\n/**\n * A [[TransitionHookFn]] that rejects the Transition if it is invalid\n *\n * This hook is invoked at the end of the onBefore phase.\n * If the transition is invalid (for example, param values do not validate)\n * then the transition is rejected.\n */\nfunction invalidTransitionHook(trans: Transition) {\n if (!trans.valid()) {\n throw new Error(trans.error().toString());\n }\n}\n\nexport const registerInvalidTransitionHook = (transitionService: TransitionService) =>\n transitionService.onBefore({}, invalidTransitionHook, { priority: -10000 });\n",
@@ -1711,5 +1711,5 @@
"$anchorScroll",
"scrollIntoView"
],
"mappings": "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 truncated
"mappings": "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 truncated
}