{"version":3,"file":"uirouter-angular.mjs","sources":["../../src/statebuilders/views.ts","../../src/mergeInjector.ts","../../src/directives/uiView.ts","../../src/directives/uiSref.ts","../../src/directives/uiSrefStatus.ts","../../src/directives/uiSrefActive.ts","../../src/directives/directives.ts","../../src/injectionTokens.ts","../../src/uiRouterConfig.ts","../../src/lazyLoad/lazyLoadNgModule.ts","../../src/statebuilders/lazyLoad.ts","../../src/location/locationService.ts","../../src/location/locationConfig.ts","../../src/providers.ts","../../src/uiRouterNgModule.ts","../../src/provideUiRouter.ts","../../src/uirouter-angular.ts"],"sourcesContent":["import { isFunction, StateObject } from '@uirouter/core';\nimport { PathNode } from '@uirouter/core';\nimport { pick, forEach } from '@uirouter/core';\nimport { ViewConfig } from '@uirouter/core';\nimport { Ng2ViewDeclaration } from '../interface';\nimport { services } from '@uirouter/core';\nimport { ViewService } from '@uirouter/core';\n\n/**\n * This is a [[StateBuilder.builder]] function for Angular `views`.\n *\n * When the [[StateBuilder]] builds a [[State]] object from a raw [[StateDeclaration]], this builder\n * handles the `views` property with logic specific to @uirouter/angular.\n *\n * If no `views: {}` property exists on the [[StateDeclaration]], then it creates the `views` object and\n * applies the state-level configuration to a view named `$default`.\n */\nexport function ng2ViewsBuilder(state: StateObject) {\n  const views: { [key: string]: Ng2ViewDeclaration } = {},\n    viewsObject = state.views || { $default: pick(state, ['component', 'bindings']) };\n\n  forEach(viewsObject, function (config: Ng2ViewDeclaration, name: string) {\n    name = name || '$default'; // Account for views: { \"\": { template... } }\n    if (isFunction(config)) config = { component: config as any };\n    if (Object.keys(config).length === 0) return;\n\n    config.$type = 'ng2';\n    config.$context = state;\n    config.$name = name;\n\n    const normalized = ViewService.normalizeUIViewTarget(config.$context, config.$name);\n    config.$uiViewName = normalized.uiViewName;\n    config.$uiViewContextAnchor = normalized.uiViewContextAnchor;\n\n    views[name] = config;\n  });\n  return views;\n}\n\nlet id = 0;\nexport class Ng2ViewConfig implements ViewConfig {\n  $id: number = id++;\n  loaded = true;\n\n  constructor(\n    public path: PathNode[],\n    public viewDecl: Ng2ViewDeclaration\n  ) {}\n\n  load() {\n    return services.$q.when(this);\n  }\n}\n","import { Injector } from '@angular/core';\n\n/**\n * Merge two injectors\n *\n * This class implements the Injector ng2 interface but delegates\n * to the Injectors provided in the constructor.\n */\nexport class MergeInjector implements Injector {\n  static NOT_FOUND = {};\n  private injectors: Injector[];\n  constructor(...injectors: Injector[]) {\n    if (injectors.length < 2) throw new Error('pass at least two injectors');\n    this.injectors = injectors;\n  }\n\n  /**\n   * Get the token from the first injector which contains it.\n   *\n   * Delegates to the first Injector.get().\n   * If not found, then delegates to the second Injector (and so forth).\n   * If no Injector contains the token, return the `notFoundValue`, or throw.\n   *\n   * @param token the DI token\n   * @param notFoundValue the value to return if none of the Injectors contains the token.\n   * @returns {any} the DI value\n   */\n  get(token: any, notFoundValue?: any): any {\n    for (let i = 0; i < this.injectors.length; i++) {\n      const val = this.injectors[i].get(token, MergeInjector.NOT_FOUND);\n      if (val !== MergeInjector.NOT_FOUND) return val;\n    }\n\n    if (arguments.length >= 2) return notFoundValue;\n\n    // This will throw the DI Injector error\n    this.injectors[0].get(token);\n  }\n}\n","import {\n  Component,\n  ComponentMirror,\n  ComponentRef,\n  Inject,\n  Injector,\n  Input,\n  OnDestroy,\n  OnInit,\n  reflectComponentType,\n  signal,\n  Type,\n  ViewChild,\n  ViewContainerRef,\n} from '@angular/core';\n\nimport {\n  ActiveUIView,\n  filter,\n  inArray,\n  isFunction,\n  NATIVE_INJECTOR_TOKEN,\n  Param,\n  parse,\n  PathNode,\n  ResolveContext,\n  StateDeclaration,\n  trace,\n  Transition,\n  TransitionHookFn,\n  UIRouter,\n  unnestR,\n  ViewConfig,\n  ViewContext,\n} from '@uirouter/core';\nimport { Ng2ViewConfig } from '../statebuilders/views';\nimport { MergeInjector } from '../mergeInjector';\n\n/** @hidden */\nlet id = 0;\n\n/** @internal These are provide()d as the string UIView.PARENT_INJECT */\nexport interface ParentUIViewInject {\n  context: ViewContext;\n  fqn: string;\n}\n\n/** @internal */\ninterface InputMapping {\n  token: string;\n  prop: string;\n}\n\n/**\n * Given a component class, gets the inputs of styles:\n *\n * - @Input('foo') _foo\n * - `inputs: ['foo']`\n *\n * @internal\n */\nfunction ng2ComponentInputs<T>(mirror: ComponentMirror<T>): InputMapping[] {\n  return mirror.inputs.map((input) => ({ prop: input.templateName, token: input.templateName }));\n}\n\n/**\n * A UI-Router viewport directive, which is filled in by a view (component) on a state.\n *\n * ### Selector\n *\n * A `ui-view` directive can be created as an element: `<ui-view></ui-view>` or as an attribute: `<div ui-view></div>`.\n *\n * ### Purpose\n *\n * This directive is used in a Component template (or as the root component) to create a viewport.  The viewport\n * is filled in by a view (as defined by a [[Ng2ViewDeclaration]] inside a [[Ng2StateDeclaration]]) when the view's\n * state has been activated.\n *\n * #### Example:\n * ```js\n * // This app has two states, 'foo' and 'bar'\n * stateRegistry.register({ name: 'foo', url: '/foo', component: FooComponent });\n * stateRegistry.register({ name: 'bar', url: '/bar', component: BarComponent });\n * ```\n * ```html\n * <!-- This ui-view will be filled in by the foo state's component or\n *      the bar state's component when the foo or bar state is activated -->\n * <ui-view></ui-view>\n * ```\n *\n * ### Named ui-views\n *\n * A `ui-view` may optionally be given a name via the attribute value: `<div ui-view='header'></div>`.  *Note:\n * an unnamed `ui-view` is internally named `$default`*.   When a `ui-view` has a name, it will be filled in\n * by a matching named view.\n *\n * #### Example:\n * ```js\n * stateRegistry.register({\n *   name: 'foo',\n *   url: '/foo',\n *   views: { header: HeaderComponent, $default: FooComponent });\n * ```\n * ```html\n * <!-- When 'foo' state is active, filled by HeaderComponent -->\n * <div ui-view=\"header\"></div>\n *\n * <!-- When 'foo' state is active, filled by FooComponent -->\n * <ui-view></ui-view>\n * ```\n */\n@Component({\n  selector: 'ui-view, [ui-view]',\n  exportAs: 'uiView',\n  standalone: true,\n  template: `\n    <ng-template #componentTarget></ng-template>\n    @if (!_componentRef()) {\n      <ng-content></ng-content>\n    }\n  `,\n})\nexport class UIView implements OnInit, OnDestroy {\n  static PARENT_INJECT = 'UIView.PARENT_INJECT';\n\n  @ViewChild('componentTarget', { read: ViewContainerRef, static: true })\n  _componentTarget: ViewContainerRef;\n  @Input('name') name: string;\n\n  @Input('ui-view')\n  set _name(val: string) {\n    this.name = val;\n  }\n\n  /** The reference to the component currently inside the viewport */\n  readonly _componentRef = signal<ComponentRef<any> | null>(null);\n  /** Deregisters the ui-view from the view service */\n  private _deregisterUIView: Function;\n  /** Deregisters the master uiCanExit transition hook */\n  private _deregisterUiCanExitHook: Function;\n  /** Deregisters the master uiOnParamsChanged transition hook */\n  private _deregisterUiOnParamsChangedHook: Function;\n  /** Data about the this UIView */\n  private _uiViewData: ActiveUIView = <any>{};\n  private _parent: ParentUIViewInject;\n\n  constructor(\n    public router: UIRouter,\n    @Inject(UIView.PARENT_INJECT) parent,\n    public viewContainerRef: ViewContainerRef\n  ) {\n    this._parent = parent;\n  }\n\n  /**\n   * @returns the UI-Router `state` that is filling this uiView, or `undefined`.\n   */\n  public get state(): StateDeclaration {\n    return parse('_uiViewData.config.viewDecl.$context.self')(this);\n  }\n\n  ngOnInit() {\n    const router = this.router;\n    const parentFqn = this._parent.fqn;\n    const name = this.name || '$default';\n\n    this._uiViewData = {\n      $type: 'ng2',\n      id: id++,\n      name: name,\n      fqn: parentFqn ? parentFqn + '.' + name : name,\n      creationContext: this._parent.context,\n      configUpdated: this._viewConfigUpdated.bind(this),\n      config: undefined,\n    };\n\n    this._deregisterUiCanExitHook = router.transitionService.onBefore({}, (trans) => {\n      return this._invokeUiCanExitHook(trans);\n    });\n\n    this._deregisterUiOnParamsChangedHook = router.transitionService.onSuccess({}, (trans) =>\n      this._invokeUiOnParamsChangedHook(trans)\n    );\n\n    this._deregisterUIView = router.viewService.registerUIView(this._uiViewData);\n  }\n\n  /**\n   * For each transition, checks the component loaded in the ui-view for:\n   *\n   * - has a uiCanExit() component hook\n   * - is being exited\n   *\n   * If both are true, adds the uiCanExit component function as a hook to that singular Transition.\n   */\n  private _invokeUiCanExitHook(trans: Transition) {\n    const instance = this._componentRef() && this._componentRef().instance;\n    const uiCanExitFn: TransitionHookFn = instance && instance.uiCanExit;\n\n    if (isFunction(uiCanExitFn)) {\n      const state: StateDeclaration = this.state;\n\n      if (trans.exiting().indexOf(state) !== -1) {\n        trans.onStart({}, function () {\n          return uiCanExitFn.call(instance, trans);\n        });\n      }\n    }\n  }\n\n  /**\n   * For each transition, checks if any param values changed and notify component\n   */\n  private _invokeUiOnParamsChangedHook($transition$: Transition) {\n    const instance = this._componentRef() && this._componentRef().instance;\n    const uiOnParamsChanged: TransitionHookFn = instance && instance.uiOnParamsChanged;\n\n    if (isFunction(uiOnParamsChanged)) {\n      const viewState: StateDeclaration = this.state;\n      const resolveContext: ResolveContext = new ResolveContext(this._uiViewData.config.path);\n      const viewCreationTrans = resolveContext.getResolvable('$transition$').data;\n\n      // Exit early if the $transition$ is the same as the view was created within.\n      // Exit early if the $transition$ will exit the state the view is for.\n      if ($transition$ === viewCreationTrans || $transition$.exiting().indexOf(viewState as StateDeclaration) !== -1)\n        return;\n\n      const toParams: { [paramName: string]: any } = $transition$.params('to');\n      const fromParams: { [paramName: string]: any } = $transition$.params('from');\n      const getNodeSchema = (node: PathNode) => node.paramSchema;\n      const toSchema: Param[] = $transition$.treeChanges('to').map(getNodeSchema).reduce(unnestR, []);\n      const fromSchema: Param[] = $transition$.treeChanges('from').map(getNodeSchema).reduce(unnestR, []);\n\n      // Find the to params that have different values than the from params\n      const changedToParams = toSchema.filter((param: Param) => {\n        const idx = fromSchema.indexOf(param);\n        return idx === -1 || !fromSchema[idx].type.equals(toParams[param.id], fromParams[param.id]);\n      });\n\n      // Only trigger callback if a to param has changed or is new\n      if (changedToParams.length) {\n        const changedKeys: string[] = changedToParams.map((x) => x.id);\n        // Filter the params to only changed/new to params.  `$transition$.params()` may be used to get all params.\n        const newValues = filter(toParams, (val, key) => changedKeys.indexOf(key) !== -1);\n        instance.uiOnParamsChanged(newValues, $transition$);\n      }\n    }\n  }\n\n  private _disposeLast() {\n    if (this._componentRef()) this._componentRef().destroy();\n    this._componentRef.set(null);\n  }\n\n  ngOnDestroy() {\n    if (this._deregisterUIView) this._deregisterUIView();\n    if (this._deregisterUiCanExitHook) this._deregisterUiCanExitHook();\n    if (this._deregisterUiOnParamsChangedHook) this._deregisterUiOnParamsChangedHook();\n    this._deregisterUIView = this._deregisterUiCanExitHook = this._deregisterUiOnParamsChangedHook = null;\n    this._disposeLast();\n  }\n\n  /**\n   * The view service is informing us of an updated ViewConfig\n   * (usually because a transition activated some state and its views)\n   */\n  _viewConfigUpdated(config: ViewConfig) {\n    // The config may be undefined if there is nothing currently targeting this UIView.\n    // Dispose the current component, if there is one\n    if (!config) return this._disposeLast();\n\n    // Only care about Ng2 configs\n    if (!(config instanceof Ng2ViewConfig)) return;\n\n    // The \"new\" viewconfig is already applied, so exit early\n    if (this._uiViewData.config === config) return;\n\n    // This is a new ViewConfig.  Dispose the previous component\n    this._disposeLast();\n    trace.traceUIViewConfigUpdated(this._uiViewData, config && config.viewDecl.$context);\n\n    this._applyUpdatedConfig(config);\n\n    // Initiate change detection for the newly created component\n    this._componentRef().changeDetectorRef.markForCheck();\n  }\n\n  private _applyUpdatedConfig(config: Ng2ViewConfig) {\n    this._uiViewData.config = config;\n    // Create the Injector for the routed component\n    const context = new ResolveContext(config.path);\n    const componentInjector = this._getComponentInjector(context);\n\n    // Get the component class from the view declaration. TODO: allow promises?\n    const componentClass = config.viewDecl.component;\n\n    // Create the component\n    this._componentRef.set(this._componentTarget.createComponent(componentClass, { injector: componentInjector }));\n    // Wire resolves to @Input()s\n    this._applyInputBindings(componentClass, this._componentRef(), context);\n  }\n\n  /**\n   * Creates a new Injector for a routed component.\n   *\n   * Adds resolve values to the Injector\n   * Adds providers from the NgModule for the state\n   * Adds providers from the parent Component in the component tree\n   * Adds a PARENT_INJECT view context object\n   *\n   * @returns an Injector\n   */\n  private _getComponentInjector(context: ResolveContext): Injector {\n    // Map resolves to \"useValue: providers\"\n    const resolvables = context\n      .getTokens()\n      .map((token) => context.getResolvable(token))\n      .filter((r) => r.resolved);\n\n    const newProviders = resolvables.map((r) => ({ provide: r.token, useValue: context.injector().get(r.token) }));\n\n    const parentInject = { context: this._uiViewData.config.viewDecl.$context, fqn: this._uiViewData.fqn };\n    newProviders.push({ provide: UIView.PARENT_INJECT, useValue: parentInject });\n\n    const parentComponentInjector = this.viewContainerRef.injector;\n    const moduleInjector = context.getResolvable(NATIVE_INJECTOR_TOKEN).data;\n    const mergedParentInjector = new MergeInjector(moduleInjector, parentComponentInjector);\n\n    return Injector.create({ providers: newProviders, parent: mergedParentInjector });\n  }\n\n  /**\n   * Supplies component inputs with resolve data\n   *\n   * Finds component inputs which match resolves (by name) and sets the input value\n   * to the resolve data.\n   */\n  private _applyInputBindings<T>(component: Type<T>, componentRef: ComponentRef<T>, context: ResolveContext): void {\n    const bindings = this._uiViewData.config.viewDecl['bindings'] || {};\n    const explicitBoundProps = Object.keys(bindings);\n    const mirror = reflectComponentType(component);\n\n    // Supply resolve data to component as specified in the state's `bindings: {}`\n    const explicitInputTuples = explicitBoundProps.reduce(\n      (acc, key) => acc.concat([{ prop: key, token: bindings[key] }]),\n      []\n    );\n\n    // Supply resolve data to matching @Input('prop') or inputs: ['prop']\n    const implicitInputTuples = ng2ComponentInputs(mirror).filter((tuple) => !inArray(explicitBoundProps, tuple.prop));\n\n    const addResolvable = (tuple: InputMapping) => ({\n      prop: tuple.prop,\n      resolvable: context.getResolvable(tuple.token),\n    });\n\n    const injector = context.injector();\n\n    explicitInputTuples\n      .concat(implicitInputTuples)\n      .map(addResolvable)\n      .filter((tuple) => tuple.resolvable && tuple.resolvable.resolved)\n      .forEach((tuple) => {\n        componentRef.setInput(tuple.prop, injector.get(tuple.resolvable.token));\n      });\n  }\n}\n","import {\n  UIRouter,\n  extend,\n  Obj,\n  StateOrName,\n  TransitionOptions,\n  TargetState,\n  isNumber,\n  isNullOrUndefined,\n} from '@uirouter/core';\nimport {\n  Directive,\n  Inject,\n  Input,\n  Optional,\n  ElementRef,\n  Renderer2,\n  OnChanges,\n  SimpleChanges,\n  HostListener,\n} from '@angular/core';\nimport { UIView, ParentUIViewInject } from './uiView';\nimport { ReplaySubject, Subscription } from 'rxjs';\n\n/**\n * @internal\n * # blah blah blah\n */\n@Directive({\n  selector: 'a[uiSref]',\n  standalone: true,\n})\nexport class AnchorUISref {\n  constructor(\n    public _el: ElementRef,\n    public _renderer: Renderer2\n  ) {}\n\n  openInNewTab() {\n    return this._el.nativeElement.target === '_blank';\n  }\n\n  update(href: string) {\n    if (!isNullOrUndefined(href)) {\n      this._renderer.setProperty(this._el.nativeElement, 'href', href);\n    } else {\n      this._renderer.removeAttribute(this._el.nativeElement, 'href');\n    }\n  }\n}\n\n/**\n * A directive when clicked, initiates a [[Transition]] to a [[TargetState]].\n *\n * ### Purpose\n *\n * This directive is applied to anchor tags (`<a>`) or any other clickable element.  It is a state reference (or sref --\n * similar to an href).  When clicked, the directive will transition to that state by calling [[StateService.go]],\n * and optionally supply state parameter values and transition options.\n *\n * When this directive is on an anchor tag, it will also add an `href` attribute to the anchor.\n *\n * ### Selector\n *\n * - `[uiSref]`: The directive is created as an attribute on an element, e.g., `<a uiSref></a>`\n *\n * ### Inputs\n *\n * - `uiSref`: the target state's name, e.g., `uiSref=\"foostate\"`.  If a component template uses a relative `uiSref`,\n * e.g., `uiSref=\".child\"`, the reference is relative to that component's state.\n *\n * - `uiParams`: any target state parameter values, as an object, e.g., `[uiParams]=\"{ fooId: bar.fooId }\"`\n *\n * - `uiOptions`: [[TransitionOptions]], e.g., `[uiOptions]=\"{ inherit: false }\"`\n *\n * @example\n * ```html\n *\n * <!-- Targets bar state' -->\n * <a uiSref=\"bar\">Bar</a>\n *\n * <!-- Assume this component's state is \"foo\".\n *      Relatively targets \"foo.child\" -->\n * <a uiSref=\".child\">Foo Child</a>\n *\n * <!-- Targets \"bar\" state and supplies parameter value -->\n * <a uiSref=\"bar\" [uiParams]=\"{ barId: foo.barId }\">Bar {{foo.barId}}</a>\n *\n * <!-- Targets \"bar\" state and parameter, doesn't inherit existing parameters-->\n * <a uiSref=\"bar\" [uiParams]=\"{ barId: foo.barId }\" [uiOptions]=\"{ inherit: false }\">Bar {{foo.barId}}</a>\n * ```\n */\n@Directive({\n  selector: '[uiSref]',\n  exportAs: 'uiSref',\n  standalone: true,\n})\nexport class UISref implements OnChanges {\n  /**\n   * `@Input('uiSref')` The name of the state to link to\n   *\n   * ```html\n   * <a uiSref=\"hoome\">Home</a>\n   * ```\n   */\n  @Input('uiSref') state: StateOrName;\n\n  /**\n   * `@Input('uiParams')` The parameter values to use (as key/values)\n   *\n   * ```html\n   * <a uiSref=\"book\" [uiParams]=\"{ bookId: book.id }\">Book {{ book.name }}</a>\n   * ```\n   */\n  @Input('uiParams') params: any;\n\n  /**\n   * `@Input('uiOptions')` The transition options\n   *\n   * ```html\n   * <a uiSref=\"books\" [uiOptions]=\"{ reload: true }\">Book {{ book.name }}</a>\n   * ```\n   */\n  @Input('uiOptions') options: TransitionOptions;\n\n  /**\n   * An observable (ReplaySubject) of the state this UISref is targeting.\n   * When the UISref is clicked, it will transition to this [[TargetState]].\n   */\n  public targetState$ = new ReplaySubject<TargetState>(1);\n\n  /** @internal */ private _emit = false;\n  /** @internal */ private _statesSub: Subscription;\n  /** @internal */ private _router: UIRouter;\n  /** @internal */ private _anchorUISref: AnchorUISref;\n  /** @internal */ private _parent: ParentUIViewInject;\n\n  constructor(\n    _router: UIRouter,\n    @Optional() _anchorUISref: AnchorUISref,\n    @Inject(UIView.PARENT_INJECT) parent: ParentUIViewInject\n  ) {\n    this._router = _router;\n    this._anchorUISref = _anchorUISref;\n    this._parent = parent;\n\n    this._statesSub = _router.globals.states$.subscribe(() => this.update());\n  }\n\n  /** @internal */\n  set uiSref(val: StateOrName) {\n    this.state = val;\n    this.update();\n  }\n  /** @internal */\n  set uiParams(val: Obj) {\n    this.params = val;\n    this.update();\n  }\n  /** @internal */\n  set uiOptions(val: TransitionOptions) {\n    this.options = val;\n    this.update();\n  }\n\n  ngOnInit() {\n    this._emit = true;\n    this.update();\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    this.update();\n  }\n\n  ngOnDestroy() {\n    this._emit = false;\n    this._statesSub.unsubscribe();\n    this.targetState$.unsubscribe();\n  }\n\n  private update() {\n    const $state = this._router.stateService;\n    if (this._emit) {\n      const newTarget = $state.target(this.state, this.params, this.getOptions());\n      this.targetState$.next(newTarget);\n    }\n\n    if (this._anchorUISref) {\n      if (!this.state) {\n        this._anchorUISref.update(null);\n      } else {\n        const href = $state.href(this.state, this.params, this.getOptions()) || '';\n        this._anchorUISref.update(href);\n      }\n    }\n  }\n\n  getOptions() {\n    const defaultOpts: TransitionOptions = {\n      relative: this._parent && this._parent.context && this._parent.context.name,\n      inherit: true,\n      source: 'sref',\n    };\n    return extend(defaultOpts, this.options || {});\n  }\n\n  /** When triggered by a (click) event, this function transitions to the UISref's target state */\n  @HostListener('click', ['$event.button', '$event.ctrlKey', '$event.metaKey'])\n  go(button: number, ctrlKey: boolean, metaKey: boolean) {\n    if (\n      (this._anchorUISref &&\n        (this._anchorUISref.openInNewTab() || button || !isNumber(button) || ctrlKey || metaKey)) ||\n      !this.state\n    ) {\n      return;\n    }\n\n    this._router.stateService.go(this.state, this.params, this.getOptions());\n    return false;\n  }\n}\n","import { Directive, Output, EventEmitter, ContentChildren, QueryList, Host, Self, Optional } from '@angular/core';\nimport { UISref } from './uiSref';\nimport {\n  PathNode,\n  Transition,\n  TargetState,\n  StateObject,\n  anyTrueR,\n  tail,\n  unnestR,\n  Predicate,\n  UIRouterGlobals,\n  Param,\n  PathUtils,\n  identity,\n  uniqR,\n} from '@uirouter/core';\n\nimport { Subscription, Observable, BehaviorSubject, of, from, combineLatest, concat } from 'rxjs';\nimport { switchMap, map, tap } from 'rxjs/operators';\n\n/** @internal */\ninterface TransEvt {\n  evt: string;\n  trans: Transition;\n}\n\n/**\n * UISref status emitted from [[UISrefStatus]]\n */\nexport interface SrefStatus {\n  /** The sref's target state (or one of its children) is currently active */\n  active: boolean;\n  /** The sref's target state is currently active */\n  exact: boolean;\n  /** A transition is entering the sref's target state */\n  entering: boolean;\n  /** A transition is exiting the sref's target state */\n  exiting: boolean;\n  /** The enclosed sref(s) target state(s) */\n  targetStates: TargetState[];\n}\n\n/** @internal */\nconst inactiveStatus: SrefStatus = {\n  active: false,\n  exact: false,\n  entering: false,\n  exiting: false,\n  targetStates: [],\n};\n\n/**\n * Returns a Predicate<PathNode[]>\n *\n * The predicate returns true when the target state (and param values)\n * match the (tail of) the path, and the path's param values\n *\n * @internal\n */\nconst pathMatches = (target: TargetState): Predicate<PathNode[]> => {\n  if (!target.exists()) return () => false;\n  const state: StateObject = target.$state();\n  const targetParamVals = target.params();\n  const targetPath: PathNode[] = PathUtils.buildPath(target);\n  const paramSchema: Param[] = targetPath\n    .map((node) => node.paramSchema)\n    .reduce(unnestR, [])\n    .filter((param: Param) => targetParamVals.hasOwnProperty(param.id));\n\n  return (path: PathNode[]) => {\n    const tailNode = tail(path);\n    if (!tailNode || tailNode.state !== state) return false;\n    const paramValues = PathUtils.paramValues(path);\n    return Param.equals(paramSchema, paramValues, targetParamVals);\n  };\n};\n\n/**\n * Given basePath: [a, b], appendPath: [c, d]),\n * Expands the path to [c], [c, d]\n * Then appends each to [a,b,] and returns: [a, b, c], [a, b, c, d]\n *\n * @internal\n */\nfunction spreadToSubPaths(basePath: PathNode[], appendPath: PathNode[]): PathNode[][] {\n  return appendPath.map((node) => basePath.concat(PathUtils.subPath(appendPath, (n) => n.state === node.state)));\n}\n\n/**\n * Given a TransEvt (Transition event: started, success, error)\n * and a UISref Target State, return a SrefStatus object\n * which represents the current status of that Sref:\n * active, activeEq (exact match), entering, exiting\n *\n * @internal\n */\nfunction getSrefStatus(event: TransEvt, srefTarget: TargetState): SrefStatus {\n  const pathMatchesTarget = pathMatches(srefTarget);\n  const tc = event.trans.treeChanges();\n\n  const isStartEvent = event.evt === 'start';\n  const isSuccessEvent = event.evt === 'success';\n  const activePath: PathNode[] = isSuccessEvent ? tc.to : tc.from;\n\n  const isActive = () => spreadToSubPaths([], activePath).map(pathMatchesTarget).reduce(anyTrueR, false);\n\n  const isExact = () => pathMatchesTarget(activePath);\n\n  const isEntering = () => spreadToSubPaths(tc.retained, tc.entering).map(pathMatchesTarget).reduce(anyTrueR, false);\n\n  const isExiting = () => spreadToSubPaths(tc.retained, tc.exiting).map(pathMatchesTarget).reduce(anyTrueR, false);\n\n  return {\n    active: isActive(),\n    exact: isExact(),\n    entering: isStartEvent ? isEntering() : false,\n    exiting: isStartEvent ? isExiting() : false,\n    targetStates: [srefTarget],\n  } as SrefStatus;\n}\n\n/** @internal */\nfunction mergeSrefStatus(left: SrefStatus, right: SrefStatus): SrefStatus {\n  return {\n    active: left.active || right.active,\n    exact: left.exact || right.exact,\n    entering: left.entering || right.entering,\n    exiting: left.exiting || right.exiting,\n    targetStates: left.targetStates.concat(right.targetStates),\n  };\n}\n\n/**\n * A directive which emits events when a paired [[UISref]] status changes.\n *\n * This directive is primarily used by the [[UISrefActive]] directives to monitor `UISref`(s).\n *\n * This directive shares two attribute selectors with `UISrefActive`:\n *\n * - `[uiSrefActive]`\n * - `[uiSrefActiveEq]`.\n *\n * Thus, whenever a `UISrefActive` directive is created, a `UISrefStatus` directive is also created.\n *\n * Most apps should simply use `UISrefActive`, but some advanced components may want to process the\n * [[SrefStatus]] events directly.\n *\n * ```js\n * <li (uiSrefStatus)=\"onSrefStatusChanged($event)\">\n *   <a uiSref=\"book\" [uiParams]=\"{ bookId: book.id }\">Book {{ book.name }}</a>\n * </li>\n * ```\n *\n * The `uiSrefStatus` event is emitted whenever an enclosed `uiSref`'s status changes.\n * The event emitted is of type [[SrefStatus]], and has boolean values for `active`, `exact`, `entering`, and `exiting`; also has a [[StateOrName]] `identifier`value.\n *\n * The values from this event can be captured and stored on a component (then applied, e.g., using ngClass).\n *\n * ---\n *\n * A single `uiSrefStatus` can enclose multiple `uiSref`.\n * Each status boolean (`active`, `exact`, `entering`, `exiting`) will be true if *any of the enclosed `uiSref` status is true*.\n * In other words, all enclosed `uiSref` statuses  are merged to a single status using `||` (logical or).\n *\n * ```js\n * <li (uiSrefStatus)=\"onSrefStatus($event)\" uiSref=\"admin\">\n *   Home\n *   <ul>\n *     <li> <a uiSref=\"admin.users\">Users</a> </li>\n *     <li> <a uiSref=\"admin.groups\">Groups</a> </li>\n *   </ul>\n * </li>\n * ```\n *\n * In the above example, `$event.active === true` when either `admin.users` or `admin.groups` is active.\n *\n * ---\n *\n * This API is subject to change.\n */\n@Directive({\n  selector: '[uiSrefStatus]',\n  exportAs: 'uiSrefStatus',\n  standalone: true,\n})\nexport class UISrefStatus {\n  /** current statuses of the state/params the uiSref directive is linking to */\n  @Output('uiSrefStatus') uiSrefStatus = new EventEmitter<SrefStatus>(false);\n  /** Monitor all child components for UISref(s) */\n  @ContentChildren(UISref, { descendants: true })\n  private _srefs: QueryList<UISref>;\n\n  /** The current status */\n  status: SrefStatus;\n\n  /** @internal */ private _subscription: Subscription;\n  /** @internal */ private _srefChangesSub: Subscription;\n  /** @internal */ private _srefs$: BehaviorSubject<UISref[]>;\n  /** @internal */ private _globals: UIRouterGlobals;\n  /** @internal */ private _hostUiSref: UISref;\n  constructor(@Host() @Self() @Optional() _hostUiSref: UISref, _globals: UIRouterGlobals) {\n    this._globals = _globals;\n    this._hostUiSref = _hostUiSref;\n    this.status = Object.assign({}, inactiveStatus);\n  }\n\n  ngAfterContentInit() {\n    // Map each transition start event to a stream of:\n    // start -> (success|error)\n    const transEvents$: Observable<TransEvt> = this._globals.start$.pipe(\n      switchMap((trans: Transition) => {\n        const event = (evt: string) => ({ evt, trans }) as TransEvt;\n\n        const transStart$ = of(event('start'));\n        const transResult = trans.promise.then(\n          () => event('success'),\n          () => event('error')\n        );\n        const transFinish$ = from(transResult);\n\n        return concat(transStart$, transFinish$);\n      })\n    );\n\n    const withHostSref = (childrenSrefs: UISref[]) =>\n      childrenSrefs.concat(this._hostUiSref).filter(identity).reduce(uniqR, []);\n\n    // Watch the @ContentChildren UISref[] components and get their target states\n    this._srefs$ = new BehaviorSubject(withHostSref(this._srefs.toArray()));\n    this._srefChangesSub = this._srefs.changes.subscribe((srefs: QueryList<UISref>) =>\n      this._srefs$.next(withHostSref(srefs.toArray()))\n    );\n\n    const targetStates$: Observable<TargetState[]> = this._srefs$.pipe(\n      switchMap((srefs: UISref[]) => combineLatest<TargetState[]>(srefs.map((sref) => sref.targetState$)))\n    );\n\n    // Calculate the status of each UISref based on the transition event.\n    // Reduce the statuses (if multiple) by or-ing each flag.\n    this._subscription = transEvents$\n      .pipe(\n        switchMap((evt: TransEvt) => {\n          return targetStates$.pipe(\n            map((targets: TargetState[]) => {\n              const statuses: SrefStatus[] = targets.map((target) => getSrefStatus(evt, target));\n              return statuses.reduce(mergeSrefStatus);\n            })\n          );\n        })\n      )\n      .subscribe(this._setStatus.bind(this));\n  }\n\n  ngOnDestroy() {\n    if (this._subscription) this._subscription.unsubscribe();\n    if (this._srefChangesSub) this._srefChangesSub.unsubscribe();\n    if (this._srefs$) this._srefs$.unsubscribe();\n    this._subscription = this._srefChangesSub = this._srefs$ = undefined;\n  }\n\n  private _setStatus(status: SrefStatus) {\n    this.status = status;\n    this.uiSrefStatus.emit(status);\n  }\n}\n","import { Directive, Input, ElementRef, Host, Renderer2 } from '@angular/core';\nimport { UISrefStatus, SrefStatus } from './uiSrefStatus';\nimport { Subscription } from 'rxjs';\n\n/**\n * A directive that adds a CSS class when its associated `uiSref` link is active.\n *\n * ### Purpose\n *\n * This directive should be paired with one (or more) [[UISref]] directives.\n * It will apply a CSS class to its element when the state the `uiSref` targets is activated.\n *\n * This can be used to create navigation UI where the active link is highlighted.\n *\n * ### Selectors\n *\n * - `[uiSrefActive]`: When this selector is used, the class is added when the target state or any\n * child of the target state is active\n * - `[uiSrefActiveEq]`: When this selector is used, the class is added when the target state is\n * exactly active (the class is not added if a child of the target state is active).\n *\n * ### Inputs\n *\n * - `uiSrefActive`/`uiSrefActiveEq`: one or more CSS classes to add to the element, when the `uiSref` is active\n *\n * #### Example:\n * The anchor tag has the `active` class added when the `foo` state is active.\n * ```html\n * <a uiSref=\"foo\" uiSrefActive=\"active\">Foo</a>\n * ```\n *\n * ### Matching parameters\n *\n * If the `uiSref` includes parameters, the current state must be active, *and* the parameter values must match.\n *\n * #### Example:\n * The first anchor tag has the `active` class added when the `foo.bar` state is active and the `id` parameter\n * equals 25.\n * The second anchor tag has the `active` class added when the `foo.bar` state is active and the `id` parameter\n * equals 32.\n * ```html\n * <a uiSref=\"foo.bar\" [uiParams]=\"{ id: 25 }\" uiSrefActive=\"active\">Bar #25</a>\n * <a uiSref=\"foo.bar\" [uiParams]=\"{ id: 32 }\" uiSrefActive=\"active\">Bar #32</a>\n * ```\n *\n * #### Example:\n * A list of anchor tags are created for a list of `bar` objects.\n * An anchor tag will have the `active` class when `foo.bar` state is active and the `id` parameter matches\n * that object's `id`.\n * ```html\n * <li *ngFor=\"let bar of bars\">\n *   <a uiSref=\"foo.bar\" [uiParams]=\"{ id: bar.id }\" uiSrefActive=\"active\">Bar #{{ bar.id }}</a>\n * </li>\n * ```\n *\n * ### Multiple uiSrefs\n *\n * A single `uiSrefActive` can be used for multiple `uiSref` links.\n * This can be used to create (for example) a drop down navigation menu, where the menui is highlighted\n * if *any* of its inner links are active.\n *\n * The `uiSrefActive` should be placed on an ancestor element of the `uiSref` list.\n * If anyof the `uiSref` links are activated, the class will be added to the ancestor element.\n *\n * #### Example:\n * This is a dropdown nagivation menu for \"Admin\" states.\n * When any of `admin.users`, `admin.groups`, `admin.settings` are active, the `<li>` for the dropdown\n * has the `dropdown-child-active` class applied.\n * Additionally, the active anchor tag has the `active` class applied.\n * ```html\n * <ul class=\"dropdown-menu\">\n *   <li uiSrefActive=\"dropdown-child-active\" class=\"dropdown admin\">\n *     Admin\n *     <ul>\n *       <li><a uiSref=\"admin.users\" uiSrefActive=\"active\">Users</a></li>\n *       <li><a uiSref=\"admin.groups\" uiSrefActive=\"active\">Groups</a></li>\n *       <li><a uiSref=\"admin.settings\" uiSrefActive=\"active\">Settings</a></li>\n *     </ul>\n *   </li>\n * </ul>\n * ```\n */\n@Directive({\n  selector: '[uiSrefActive],[uiSrefActiveEq]',\n  hostDirectives: [\n    {\n      directive: UISrefStatus,\n      outputs: ['uiSrefStatus'],\n    },\n  ],\n  standalone: true,\n})\nexport class UISrefActive {\n  private _classes: string[] = [];\n  @Input('uiSrefActive')\n  set active(val: string) {\n    this._classes = val.split(/\\s+/);\n  }\n\n  private _classesEq: string[] = [];\n  @Input('uiSrefActiveEq')\n  set activeEq(val: string) {\n    this._classesEq = val.split(/\\s+/);\n  }\n\n  private _subscription: Subscription;\n  constructor(uiSrefStatus: UISrefStatus, rnd: Renderer2, @Host() host: ElementRef) {\n    this._subscription = uiSrefStatus.uiSrefStatus.subscribe((next: SrefStatus) => {\n      this._classes.forEach((cls) => {\n        if (next.active) {\n          rnd.addClass(host.nativeElement, cls);\n        } else {\n          rnd.removeClass(host.nativeElement, cls);\n        }\n      });\n      this._classesEq.forEach((cls) => {\n        if (next.exact) {\n          rnd.addClass(host.nativeElement, cls);\n        } else {\n          rnd.removeClass(host.nativeElement, cls);\n        }\n      });\n    });\n  }\n\n  ngOnDestroy() {\n    this._subscription.unsubscribe();\n  }\n}\n","import { UISref, AnchorUISref } from './uiSref';\nimport { UISrefActive } from './uiSrefActive';\nimport { UIView } from './uiView';\nimport { UISrefStatus } from './uiSrefStatus';\n\nexport * from './uiView';\nexport * from './uiSref';\nexport * from './uiSrefStatus';\nexport * from './uiSrefActive';\n\n/** @internal */\nexport const _UIROUTER_DIRECTIVES = [UISref, AnchorUISref, UIView, UISrefActive, UISrefStatus];\n\n/**\n * References to the UI-Router directive classes, for use within a @Component's `directives:` property\n * @deprecated use [[UIRouterModule]]\n * @internal\n */\nexport const UIROUTER_DIRECTIVES = _UIROUTER_DIRECTIVES;\n","import { InjectionToken } from '@angular/core';\n/** @hidden */ export const UIROUTER_ROOT_MODULE = new InjectionToken('UIRouter Root Module');\n/** @hidden */ export const UIROUTER_MODULE_TOKEN = new InjectionToken('UIRouter Module');\n/** @hidden */ export const UIROUTER_STATES = new InjectionToken('UIRouter States');\n","import { UIRouter, isFunction, StateObject } from '@uirouter/core';\nimport { StatesModule, RootModule } from './uiRouterNgModule';\nimport { Injector } from '@angular/core';\nimport { isDefined } from '@uirouter/core';\n\nexport function applyModuleConfig(uiRouter: UIRouter, injector: Injector, module: StatesModule = {}): StateObject[] {\n  if (isFunction(module.config)) {\n    module.config(uiRouter, injector, module);\n  }\n\n  const states = module.states || [];\n  return states.map((state) => uiRouter.stateRegistry.register(state));\n}\n\nexport function applyRootModuleConfig(uiRouter: UIRouter, injector: Injector, module: RootModule) {\n  isDefined(module.deferIntercept) && uiRouter.urlService.deferIntercept(module.deferIntercept);\n  isDefined(module.otherwise) && uiRouter.urlService.rules.otherwise(module.otherwise);\n  isDefined(module.initial) && uiRouter.urlService.rules.initial(module.initial);\n}\n","import { NgModuleRef, Injector, Type, createNgModule, InjectionToken, isStandalone } from '@angular/core';\nimport {\n  Transition,\n  LazyLoadResult,\n  UIRouter,\n  Resolvable,\n  NATIVE_INJECTOR_TOKEN,\n  unnestR,\n  inArray,\n  StateObject,\n  uniqR,\n  StateDeclaration,\n} from '@uirouter/core';\nimport { UIROUTER_MODULE_TOKEN, UIROUTER_ROOT_MODULE } from '../injectionTokens';\nimport { RootModule, StatesModule } from '../uiRouterNgModule';\nimport { applyModuleConfig } from '../uiRouterConfig';\nimport { Ng2StateDeclaration } from '../interface';\n\n/**\n * A function that returns an NgModule, or a promise for an NgModule\n *\n * #### Example:\n * ```js\n * export function loadFooModule() {\n *   return import('../foo/foo.module').then(result => result.FooModule);\n * }\n * ```\n */\nexport type ModuleTypeCallback<T = unknown> = () => Type<T> | Promise<Type<T>>;\n\n/**\n * Returns a function which lazy loads a nested module\n *\n * This is primarily used by the [[ng2LazyLoadBuilder]] when processing [[Ng2StateDeclaration.loadChildren]].\n *\n * It could also be used manually as a [[StateDeclaration.lazyLoad]] property to lazy load an `NgModule` and its state(s).\n *\n * #### Example:\n * ```ts\n * var futureState = {\n *   name: 'home.**',\n *   url: '/home',\n *   lazyLoad: loadNgModule(() => import('./home/home.module').then(result => result.HomeModule))\n * }\n * ```\n *\n *\n * @param moduleToLoad function which loads the NgModule code which should\n *    return a reference to  the `NgModule` class being loaded (or a `Promise` for it).\n *\n * @returns A function which takes a transition, which:\n * - Gets the Injector (scoped properly for the destination state)\n * - Loads and creates the NgModule\n * - Finds the \"replacement state\" for the target state, and adds the new NgModule Injector to it (as a resolve)\n * - Returns the new states array\n */\nexport function loadNgModule<T>(\n  moduleToLoad: ModuleTypeCallback<T>\n): (transition: Transition, stateObject: StateDeclaration) => Promise<LazyLoadResult> {\n  return (transition: Transition, stateObject: StateDeclaration) => {\n    const ng2Injector = transition.injector().get(NATIVE_INJECTOR_TOKEN);\n\n    return loadModuleFactory(moduleToLoad, ng2Injector).then((moduleRef) =>\n      applyNgModule(moduleRef, ng2Injector, stateObject)\n    );\n  };\n}\n\n/**\n * Returns the module factory that can be used to instantiate a module\n *\n * For a Type<any> or Promise<Type<any>> this:\n * - Compiles the component type (if not running with AOT)\n * - Returns the NgModuleFactory resulting from compilation (or direct loading if using AOT) as a Promise\n *\n * @internal\n */\nexport function loadModuleFactory<T>(\n  moduleToLoad: ModuleTypeCallback<T>,\n  ng2Injector: Injector\n): Promise<NgModuleRef<T>> {\n  return Promise.resolve(moduleToLoad())\n    .then(_unwrapEsModuleDefault)\n    .then((t: Type<T>) => createNgModule(t, ng2Injector));\n}\n\nfunction _unwrapEsModuleDefault(x) {\n  return x && x.__esModule && x['default'] ? x['default'] : x;\n}\n\n/**\n * Apply the UI-Router Modules found in the lazy loaded module.\n *\n * Apply the Lazy Loaded NgModule's newly created Injector to the right state in the state tree.\n *\n * Lazy loading uses a placeholder state which is removed (and replaced) after the module is loaded.\n * The NgModule should include a state with the same name as the placeholder.\n *\n * Find the *newly loaded state* with the same name as the *placeholder state*.\n * The NgModule's Injector (and ComponentFactoryResolver) will be added to that state.\n * The Injector/Factory are used when creating Components for the `replacement` state and all its children.\n *\n * @internal\n */\nexport function applyNgModule<T>(\n  ng2Module: NgModuleRef<T>,\n  parentInjector: Injector,\n  lazyLoadState: StateDeclaration\n): LazyLoadResult {\n  const injector = ng2Module.injector;\n  const uiRouter: UIRouter = injector.get(UIRouter);\n  const registry = uiRouter.stateRegistry;\n\n  const originalName = lazyLoadState.name;\n  const originalState = registry.get(originalName);\n  // Check if it's a future state (ends with .**)\n  const isFuture = /^(.*)\\.\\*\\*$/.exec(originalName);\n  // Final name (without the .**)\n  const replacementName = isFuture && isFuture[1];\n\n  const newRootModules = multiProviderParentChildDelta(parentInjector, injector, UIROUTER_ROOT_MODULE).reduce(\n    uniqR,\n    []\n  ) as RootModule[];\n  const newChildModules = multiProviderParentChildDelta(parentInjector, injector, UIROUTER_MODULE_TOKEN).reduce(\n    uniqR,\n    []\n  ) as StatesModule[];\n\n  if (newRootModules.length) {\n    console.log(newRootModules); // tslint:disable-line:no-console\n    throw new Error('Lazy loaded modules should not contain a UIRouterModule.forRoot() module');\n  }\n\n  const newStateObjects: StateObject[] = newChildModules\n    .map((module) => applyModuleConfig(uiRouter, injector, module))\n    .reduce(unnestR, [])\n    .reduce(uniqR, []);\n\n  if (isFuture) {\n    const replacementState = registry.get(replacementName);\n    if (!replacementState || replacementState === originalState) {\n      throw new Error(\n        `The Future State named '${originalName}' lazy loaded an NgModule. ` +\n          `The lazy loaded NgModule must have a state named '${replacementName}' ` +\n          `which replaces the (placeholder) '${originalName}' Future State. ` +\n          `Add a '${replacementName}' state to the lazy loaded NgModule ` +\n          `using UIRouterModule.forChild({ states: CHILD_STATES }).`\n      );\n    }\n  }\n\n  // Supply the newly loaded states with the Injector from the lazy loaded NgModule.\n  // If a tree of states is lazy loaded, only add the injector to the root of the lazy loaded tree.\n  // The children will get the injector by resolve inheritance.\n  const newParentStates = newStateObjects.filter((state) => !inArray(newStateObjects, state.parent));\n\n  // Add the Injector to the top of the lazy loaded state tree as a resolve\n  newParentStates.forEach((state) => state.resolvables.push(Resolvable.fromData(NATIVE_INJECTOR_TOKEN, injector)));\n\n  return {};\n}\n\n/**\n * Returns the new dependency injection values from the Child Injector\n *\n * When a DI token is defined as multi: true, the child injector\n * can add new values for the token.\n *\n * This function returns the values added by the child injector,  and excludes all values from the parent injector.\n *\n * @internal\n */\nexport function multiProviderParentChildDelta<T>(\n  parent: Injector,\n  child: Injector,\n  token: InjectionToken<T>\n): RootModule[] {\n  const childVals: RootModule[] = child.get<RootModule[]>(token, []);\n  const parentVals: RootModule[] = parent.get<RootModule[]>(token, []);\n  return childVals.filter((val) => parentVals.indexOf(val) === -1);\n}\n\n/**\n * A function that returns a Component, or a promise for a Component\n *\n * #### Example:\n * ```ts\n * export function loadFooComponent() {\n *   return import('../foo/foo.component').then(result => result.FooComponent);\n * }\n * ```\n */\nexport type ComponentTypeCallback<T> = ModuleTypeCallback<T>;\n\n/**\n * Returns a function which lazy loads a standalone component for the target state\n *\n * #### Example:\n * ```ts\n * var futureComponentState = {\n *   name: 'home',\n *   url: '/home',\n *   lazyLoad: loadComponent(() => import('./home.component').then(result => result.HomeComponent))\n * }\n * ```\n *\n * @param callback function which loads the Component code which should\n *    return a reference to  the `Component` class being loaded (or a `Promise` for it).\n *\n * @returns A function which takes a transition, stateObject, and:\n * - Loads a standalone component\n * - replaces the component configuration of the stateObject.\n * - Returns the new states array\n */\nexport function loadComponent<T>(\n  callback: ComponentTypeCallback<T>\n): (transition: Transition, stateObject: Ng2StateDeclaration) => Promise<LazyLoadResult> {\n  return (transition: Transition, stateObject: Ng2StateDeclaration) => {\n    return Promise.resolve(callback())\n      .then(_unwrapEsModuleDefault)\n      .then((component: Type<T>) => applyComponent(component, transition, stateObject));\n  };\n}\n\n/**\n * Apply the lazy-loaded component to the stateObject.\n *\n * @internal\n * @param component reference to the component class\n * @param transition Transition object reference\n * @param stateObject target state configuration object\n *\n * @returns the new states array\n */\nexport function applyComponent<T>(\n  component: Type<T>,\n  transition: Transition,\n  stateObject: Ng2StateDeclaration\n): LazyLoadResult {\n  if (!isStandalone(component)) throw new Error('Is not a standalone component.');\n\n  const registry = transition.router.stateRegistry;\n  const current = stateObject.component;\n  stateObject.component = component || current;\n  const removed = registry.deregister(stateObject).map((child) => child.self);\n  const children = removed.filter((i) => i.name != stateObject.name);\n\n  return { states: [stateObject, ...children] };\n}\n","import { LazyLoadResult, Transition, StateDeclaration } from '@uirouter/core'; // has or is using\nimport { BuilderFunction, StateObject } from '@uirouter/core';\nimport { loadComponent, loadNgModule } from '../lazyLoad/lazyLoadNgModule';\n\n/**\n * This is a [[StateBuilder.builder]] function for ngModule lazy loading in Angular.\n *\n * When the [[StateBuilder]] builds a [[State]] object from a raw [[StateDeclaration]], this builder\n * decorates the `lazyLoad` property for states that have a [[Ng2StateDeclaration.ngModule]] declaration.\n *\n * If the state has a [[Ng2StateDeclaration.ngModule]], it will create a `lazyLoad` function\n * that in turn calls `loadNgModule(loadNgModuleFn)`.\n *\n * #### Example:\n * A state that has a `ngModule`\n * ```js\n * var decl = {\n *   ngModule: () => import('./childModule.ts')\n * }\n * ```\n * would build a state with a `lazyLoad` function like:\n * ```js\n * import { loadNgModule } from \"@uirouter/angular\";\n * var decl = {\n *   lazyLoad: loadNgModule(() => import('./childModule.ts')\n * }\n * ```\n *\n * If the state has both a `ngModule:` *and* a `lazyLoad`, then the `lazyLoad` is run first.\n *\n * #### Example:\n * ```js\n * var decl = {\n *   lazyLoad: () => import('third-party-library'),\n *   ngModule: () => import('./childModule.ts')\n * }\n * ```\n * would build a state with a `lazyLoad` function like:\n * ```js\n * import { loadNgModule } from \"@uirouter/angular\";\n * var decl = {\n *   lazyLoad: () => import('third-party-library')\n *       .then(() => loadNgModule(() => import('./childModule.ts'))\n * }\n * ```\n *\n */\nexport function ng2LazyLoadBuilder(state: StateObject, parent: BuilderFunction) {\n  const loadComponentFn = state['loadComponent'];\n  const loadNgModuleFn = state['loadChildren'];\n  return loadComponentFn\n    ? loadComponent(loadComponentFn)\n    : loadNgModuleFn\n      ? loadNgModule(loadNgModuleFn)\n      : state.lazyLoad;\n}\n","import { BaseLocationServices, parseUrl, UIRouter } from '@uirouter/core';\nimport { LocationStrategy } from '@angular/common';\n\n/** A `LocationServices` that delegates to the Angular LocationStrategy */\nexport class Ng2LocationServices extends BaseLocationServices {\n  constructor(\n    router: UIRouter,\n    private _locationStrategy: LocationStrategy,\n    isBrowser: boolean\n  ) {\n    super(router, isBrowser);\n\n    this._locationStrategy.onPopState((evt) => {\n      if (evt.type !== 'hashchange') {\n        this._listener(evt);\n      }\n    });\n  }\n\n  _get() {\n    return this._locationStrategy.path(true).replace(this._locationStrategy.getBaseHref().replace(/\\/$/, ''), '');\n  }\n\n  _set(state: any, title: string, url: string, replace: boolean): any {\n    const { path, search, hash } = parseUrl(url);\n\n    const hashWithPrefix = hash ? '#' + hash : '';\n    let urlPath = path;\n    let urlParams = search;\n\n    if (search) {\n      urlParams += hashWithPrefix;\n    } else {\n      urlPath += hashWithPrefix;\n    }\n\n    if (replace) {\n      this._locationStrategy.replaceState(state, title, urlPath, urlParams);\n    } else {\n      this._locationStrategy.pushState(state, title, urlPath, urlParams);\n    }\n  }\n\n  dispose(router: UIRouter) {\n    super.dispose(router);\n  }\n}\n","import { UIRouter, is, BrowserLocationConfig } from '@uirouter/core';\nimport { LocationStrategy, PathLocationStrategy } from '@angular/common';\n\nexport class Ng2LocationConfig extends BrowserLocationConfig {\n  constructor(\n    router: UIRouter,\n    private _locationStrategy: LocationStrategy\n  ) {\n    super(router, is(PathLocationStrategy)(_locationStrategy));\n  }\n\n  baseHref(href?: string): string {\n    return this._locationStrategy.getBaseHref();\n  }\n}\n","/**\n * # UI-Router for Angular (v2+)\n *\n * - [@uirouter/angular home page](https://ui-router.github.io/ng2)\n * - [tutorials](https://ui-router.github.io/tutorial/ng2/helloworld)\n * - [quick start repository](http://github.com/ui-router/quickstart-ng2)\n *\n * Getting started:\n *\n * - Use npm. Add a dependency on latest `@uirouter/angular`\n * - Import UI-Router classes directly from `\"@uirouter/angular\"`\n *\n * ```js\n * import {StateRegistry} from \"@uirouter/angular\";\n * ```\n *\n * - Create application states (as defined by [[Ng2StateDeclaration]]).\n *\n * ```js\n * export let state1: Ng2StateDeclaration = {\n *   name: 'state1',\n *   component: State1Component,\n *   url: '/one'\n * }\n *\n * export let state2: Ng2StateDeclaration = {\n *   name: 'state2',\n *   component: State2Component,\n *   url: '/two'\n * }\n * ```\n *\n * - Import a [[UIRouterModule.forChild]] module into your feature `NgModule`s.\n *\n * ```js\n * @ NgModule({\n *   imports: [\n *     SharedModule,\n *     UIRouterModule.forChild({ states: [state1, state2 ] })\n *   ],\n *   declarations: [\n *     State1Component,\n *     State2Component,\n *   ]\n * })\n * export class MyFeatureModule {}\n * ```\n *\n * - Import a [[UIRouterModule.forRoot]] module into your application root `NgModule`\n * - Either bootstrap a [[UIView]] component, or add a `<ui-view></ui-view>` viewport to your root component.\n *\n * ```js\n * @ NgModule({\n *   imports: [\n *     BrowserModule,\n *     UIRouterModule.forRoot({ states: [ homeState ] }),\n *     MyFeatureModule,\n *   ],\n *   declarations: [\n *     HomeComponent\n *   ]\n *   bootstrap: [ UIView ]\n * })\n * class RootAppModule {}\n *\n * browserPlatformDynamic.bootstrapModule(RootAppModule);\n * ```\n *\n * - Optionally specify a configuration class [[ChildModule.configClass]] for any module\n * to perform any router configuration during bootstrap or lazyload.\n * Pass the class to [[UIRouterModule.forRoot]] or [[UIRouterModule.forChild]].\n *\n * ```js\n * import {UIRouter} from \"@uirouter/angular\";\n *\n * @ Injectable()\n * export class MyUIRouterConfig {\n *   // Constructor is injectable\n *   constructor(uiRouter: UIRouter) {\n *     uiRouter.urlMatcherFactory.type('datetime', myDateTimeParamType);\n *   }\n * }\n * ```\n */\nimport { Injector, Provider, PLATFORM_ID, APP_INITIALIZER } from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\nimport {\n  UIRouter,\n  PathNode,\n  StateRegistry,\n  StateService,\n  TransitionService,\n  UrlMatcherFactory,\n  UrlRouter,\n  ViewService,\n  UrlService,\n  UIRouterGlobals,\n  services,\n  Resolvable,\n  NATIVE_INJECTOR_TOKEN,\n} from '@uirouter/core';\nimport { UIView, ParentUIViewInject } from './directives/uiView';\nimport { UIROUTER_MODULE_TOKEN, UIROUTER_ROOT_MODULE } from './injectionTokens';\nimport { ng2ViewsBuilder, Ng2ViewConfig } from './statebuilders/views';\nimport { Ng2ViewDeclaration } from './interface';\nimport { applyRootModuleConfig, applyModuleConfig } from './uiRouterConfig';\nimport { RootModule, StatesModule } from './uiRouterNgModule';\nimport { servicesPlugin, ServicesPlugin } from '@uirouter/core';\nimport { ng2LazyLoadBuilder } from './statebuilders/lazyLoad';\nimport { UIRouterRx } from '@uirouter/rx';\nimport { LocationStrategy } from '@angular/common';\nimport { Ng2LocationServices } from './location/locationService';\nimport { Ng2LocationConfig } from './location/locationConfig';\n\n/**\n * This is a factory function for a UIRouter instance\n *\n * Creates a UIRouter instance and configures it for Angular, then invokes router bootstrap.\n * This function is used as an Angular `useFactory` Provider.\n */\nexport function uiRouterFactory(\n  locationStrategy: LocationStrategy,\n  rootModules: RootModule[],\n  modules: StatesModule[],\n  injector: Injector\n) {\n  if (rootModules.length !== 1) {\n    throw new Error(\"Exactly one UIRouterModule.forRoot() should be in the bootstrapped app module's imports: []\");\n  }\n\n  // ----------------- Create router -----------------\n  // Create a new ng2 UIRouter and configure it for ng2\n  const router = new UIRouter();\n\n  // Add RxJS plugin\n  router.plugin(UIRouterRx);\n\n  // Add $q-like and $injector-like service APIs\n  router.plugin<ServicesPlugin>(servicesPlugin);\n\n  // ----------------- Monkey Patches ----------------\n  // Monkey patch the services.$injector to use the root ng2 Injector\n  services.$injector.get = injector.get.bind(injector);\n\n  // ----------------- Configure for ng2 -------------\n  router.locationService = new Ng2LocationServices(\n    router,\n    locationStrategy,\n    isPlatformBrowser(injector.get(PLATFORM_ID))\n  );\n  router.locationConfig = new Ng2LocationConfig(router, locationStrategy);\n\n  // Apply ng2 ui-view handling code\n  const viewConfigFactory = (path: PathNode[], config: Ng2ViewDeclaration) => new Ng2ViewConfig(path, config);\n  router.viewService._pluginapi._viewConfigFactory('ng2', viewConfigFactory);\n\n  // Apply statebuilder decorator for ng2 NgModule registration\n  const registry = router.stateRegistry;\n  registry.decorator('views', ng2ViewsBuilder);\n  registry.decorator('lazyLoad', ng2LazyLoadBuilder);\n\n  // Prep the tree of NgModule by placing the root NgModule's Injector on the root state.\n  const ng2InjectorResolvable = Resolvable.fromData(NATIVE_INJECTOR_TOKEN, injector);\n  registry.root().resolvables.push(ng2InjectorResolvable);\n\n  // Auto-flush the parameter type queue\n  router.urlMatcherFactory.$get();\n\n  // ----------------- Initialize router -------------\n  rootModules.forEach((moduleConfig) => applyRootModuleConfig(router, injector, moduleConfig));\n  modules.forEach((moduleConfig) => applyModuleConfig(router, injector, moduleConfig));\n\n  return router;\n}\n\n// Start monitoring the URL when the app starts\nexport function appInitializer(router: UIRouter) {\n  return () => {\n    if (!router.urlRouter.interceptDeferred) {\n      router.urlService.listen();\n      router.urlService.sync();\n    }\n  };\n}\n\nexport function parentUIViewInjectFactory(r: StateRegistry) {\n  return { fqn: null, context: r.root() } as ParentUIViewInject;\n}\n\nexport const _UIROUTER_INSTANCE_PROVIDERS: Provider[] = [\n  {\n    provide: UIRouter,\n    useFactory: uiRouterFactory,\n    deps: [LocationStrategy, UIROUTER_ROOT_MODULE, UIROUTER_MODULE_TOKEN, Injector],\n  },\n  { provide: UIView.PARENT_INJECT, useFactory: parentUIViewInjectFactory, deps: [StateRegistry] },\n  { provide: APP_INITIALIZER, useFactory: appInitializer, deps: [UIRouter], multi: true },\n];\n\nexport function fnStateService(r: UIRouter) {\n  return r.stateService;\n}\nexport function fnTransitionService(r: UIRouter) {\n  return r.transitionService;\n}\nexport function fnUrlMatcherFactory(r: UIRouter) {\n  return r.urlMatcherFactory;\n}\nexport function fnUrlRouter(r: UIRouter) {\n  return r.urlRouter;\n}\nexport function fnUrlService(r: UIRouter) {\n  return r.urlService;\n}\nexport function fnViewService(r: UIRouter) {\n  return r.viewService;\n}\nexport function fnStateRegistry(r: UIRouter) {\n  return r.stateRegistry;\n}\nexport function fnGlobals(r: any) {\n  return r.globals;\n}\n\nexport const _UIROUTER_SERVICE_PROVIDERS: Provider[] = [\n  { provide: StateService, useFactory: fnStateService, deps: [UIRouter] },\n  { provide: TransitionService, useFactory: fnTransitionService, deps: [UIRouter] },\n  { provide: UrlMatcherFactory, useFactory: fnUrlMatcherFactory, deps: [UIRouter] },\n  { provide: UrlRouter, useFactory: fnUrlRouter, deps: [UIRouter] },\n  { provide: UrlService, useFactory: fnUrlService, deps: [UIRouter] },\n  { provide: ViewService, useFactory: fnViewService, deps: [UIRouter] },\n  { provide: StateRegistry, useFactory: fnStateRegistry, deps: [UIRouter] },\n  { provide: UIRouterGlobals, useFactory: fnGlobals, deps: [UIRouter] },\n];\n\n/**\n * The UI-Router providers, for use in your application bootstrap\n *\n * @deprecated use [[UIRouterModule.forRoot]]\n */\nexport const UIROUTER_PROVIDERS: Provider[] = _UIROUTER_INSTANCE_PROVIDERS.concat(_UIROUTER_SERVICE_PROVIDERS);\n","import { UIROUTER_MODULE_TOKEN, UIROUTER_ROOT_MODULE } from './injectionTokens';\nimport { Ng2StateDeclaration } from './interface';\nimport { NgModule, ModuleWithProviders, Provider, Injector, APP_INITIALIZER } from '@angular/core';\nimport { LocationStrategy, HashLocationStrategy, PathLocationStrategy } from '@angular/common';\nimport { _UIROUTER_DIRECTIVES } from './directives/directives';\nimport { UrlRuleHandlerFn, TargetState, TargetStateDef, UIRouter, TransitionService } from '@uirouter/core';\nimport { _UIROUTER_INSTANCE_PROVIDERS, _UIROUTER_SERVICE_PROVIDERS } from './providers';\n\n// Delay angular bootstrap until first transition is successful, for SSR.\n// See https://github.com/ui-router/angular/pull/127\nexport function onTransitionReady(transitionService: TransitionService, root: RootModule[]) {\n  const mod = root[0];\n  if (!mod || !mod.deferInitialRender) {\n    return () => Promise.resolve();\n  }\n\n  return () =>\n    new Promise((resolve) => {\n      const hook = (trans) => {\n        trans.promise.then(resolve, resolve);\n      };\n      transitionService.onStart({}, hook, { invokeLimit: 1 });\n    });\n}\n\nexport function makeRootProviders(module: RootModule): Provider[] {\n  return [\n    { provide: UIROUTER_ROOT_MODULE, useValue: module, multi: true },\n    { provide: UIROUTER_MODULE_TOKEN, useValue: module, multi: true },\n    {\n      provide: APP_INITIALIZER,\n      useFactory: onTransitionReady,\n      deps: [TransitionService, UIROUTER_ROOT_MODULE],\n      multi: true,\n    },\n  ];\n}\n\nexport function makeChildProviders(module: StatesModule): Provider[] {\n  return [{ provide: UIROUTER_MODULE_TOKEN, useValue: module, multi: true }];\n}\n\nexport function locationStrategy(useHash) {\n  return { provide: LocationStrategy, useClass: useHash ? HashLocationStrategy : PathLocationStrategy };\n}\n\n/**\n * Creates UI-Router Modules\n *\n * This class has two static factory methods which create UIRouter Modules.\n * A UI-Router Module is an [Angular NgModule](https://angular.io/docs/ts/latest/guide/ngmodule.html)\n * with support for UI-Router.\n *\n * ### UIRouter Directives\n *\n * When a UI-Router Module is imported into a `NgModule`, that module's components\n * can use the UIRouter Directives such as [[UIView]], [[UISref]], [[UISrefActive]].\n *\n * ### State Definitions\n *\n * State definitions found in the `states:` property are provided to the Dependency Injector.\n * This enables UI-Router to automatically register the states with the [[StateRegistry]] at bootstrap (and during lazy load).\n */\n@NgModule({\n  imports: [_UIROUTER_DIRECTIVES],\n  exports: [_UIROUTER_DIRECTIVES],\n})\nexport class UIRouterModule {\n  /**\n   * Creates a UI-Router Module for the root (bootstrapped) application module to import\n   *\n   * This factory function creates an [Angular NgModule](https://angular.io/docs/ts/latest/guide/ngmodule.html)\n   * with UI-Router support.\n   *\n   * The `forRoot` module should be added to the `imports:` of the `NgModule` being bootstrapped.\n   * An application should only create and import a single `NgModule` using `forRoot()`.\n   * All other modules should be created using [[UIRouterModule.forChild]].\n   *\n   * Unlike `forChild`, an `NgModule` returned by this factory provides the [[UIRouter]] singleton object.\n   * This factory also accepts root-level router configuration.\n   * These are the only differences between `forRoot` and `forChild`.\n   *\n   * Example:\n   * ```js\n   * let routerConfig = {\n   *   otherwise: '/home',\n   *   states: [homeState, aboutState]\n   * };\n   *\n   * @ NgModule({\n   *   imports: [\n   *     BrowserModule,\n   *     UIRouterModule.forRoot(routerConfig),\n   *     FeatureModule1\n   *   ]\n   * })\n   * class MyRootAppModule {}\n   *\n   * browserPlatformDynamic.bootstrapModule(MyRootAppModule);\n   * ```\n   *\n   * @param config declarative UI-Router configuration\n   * @returns an `NgModule` which provides the [[UIRouter]] singleton instance\n   */\n  static forRoot(config: RootModule = {}): ModuleWithProviders<UIRouterModule> {\n    return {\n      ngModule: UIRouterModule,\n      providers: [\n        _UIROUTER_INSTANCE_PROVIDERS,\n        _UIROUTER_SERVICE_PROVIDERS,\n        locationStrategy(config.useHash),\n        ...makeRootProviders(config),\n      ],\n    };\n  }\n\n  /**\n   * Creates an `NgModule` for a UIRouter module\n   *\n   * This function creates an [Angular NgModule](https://angular.io/docs/ts/latest/guide/ngmodule.html)\n   * with UI-Router support.\n   *\n   * #### Example:\n   * ```js\n   * var homeState = { name: 'home', url: '/home', component: Home };\n   * var aboutState = { name: 'about', url: '/about', component: About };\n   *\n   * @ NgModule({\n   *   imports: [\n   *     UIRouterModule.forChild({ states: [ homeState, aboutState ] }),\n   *     SharedModule,\n   *   ],\n   *   declarations: [ Home, About ],\n   * })\n   * export class AppModule {};\n   * ```\n   *\n   * @param module UI-Router module options\n   * @returns an `NgModule`\n   */\n  static forChild(module: StatesModule = {}): ModuleWithProviders<UIRouterModule> {\n    return {\n      ngModule: UIRouterModule,\n      providers: makeChildProviders(module),\n    };\n  }\n}\n\n/**\n * UI-Router declarative configuration which can be provided to [[UIRouterModule.forRoot]]\n */\nexport interface RootModule extends StatesModule {\n  /**\n   * Chooses a `LocationStrategy`.\n   *\n   * The location strategy enables either HTML5 Push State\n   * (Requires server-side support) or \"HashBang\" URLs.\n   *\n   * When `false`, uses [`PathLocationStrategy`](https://angular.io/docs/ts/latest/api/common/index/PathLocationStrategy-class.html)\n   * When `true`, uses [`HashLocationStrategy`](https://angular.io/docs/ts/latest/api/common/index/HashLocationStrategy-class.html)\n   *\n   * Defaults to `false`\n   */\n  useHash?: boolean;\n\n  /**\n   * Configures the `otherwise` rule, which chooses the state or URL to activate when no other routes matched.\n   *\n   * See: [[UrlRulesApi.otherwise]].\n   */\n  otherwise?: string | UrlRuleHandlerFn | TargetState | TargetStateDef;\n\n  /**\n   * Configures the `initial` rule, which chooses the state or URL to activate when the\n   * application initially starts, and no other routes matched.\n   *\n   * See: [[UrlRulesApi.initial]].\n   */\n  initial?: string | UrlRuleHandlerFn | TargetState | TargetStateDef;\n\n  /**\n   * Sets [[UrlRouterProvider.deferIntercept]]\n   */\n  deferIntercept?: boolean;\n\n  /**\n   * Tells Angular to defer the first render until after the initial transition is complete.\n   *\n   * When `true`, adds an async `APP_INITIALIZER` which is resolved after any `onSuccess` or `onError`.\n   * The initializer stops angular from rendering the root component until after the first transition completes.\n   * This may prevent initial page flicker while the state is being loaded.\n   *\n   * Defaults to `false`\n   */\n  deferInitialRender?: boolean;\n}\n\n/**\n * UI-Router Module declarative configuration which can be passed to [[UIRouterModule.forChild]]\n */\nexport interface StatesModule {\n  /**\n   * The module's UI-Router states\n   *\n   * This list of [[Ng2StateDeclaration]] objects will be registered with the [[StateRegistry]].\n   */\n  states?: Ng2StateDeclaration[];\n\n  /**\n   * A UI-Router Module's imperative configuration\n   *\n   * If a UI-Router Module needs to perform some configuration (such as registering\n   * parameter types or Transition Hooks) a `configFn` should be supplied.\n   * The function will be passed the `UIRouter` instance, the module's `Injector`,\n   * and the module object.\n   *\n   * #### Example:\n   * ```js\n   * import { Injector } from \"@angular/core\";\n   * import { UIRouter } from \"@uirouter/angular\";\n   * import { requireAuthHook } from \"./requireAuthHook\";\n   * import { MyService } from \"./myService\";\n   *\n   * export function configureMyModule(uiRouter: UIRouter, injector: Injector, module: StatesModule) {\n   *   // Get UIRouter services off the UIRouter object\n   *   let urlConfig = uiRouter.urlService.config;\n   *   let transitionService = uiRouter.transitionService;\n   *   uiRouter.trace.enable(\"TRANSITION\");\n   *\n   *   transitionService.onBefore({ to: (state) => state.requiresAuth }, requireAuthHook);\n   *\n   *   // Create a slug type based on the string type\n   *   let builtInStringType = urlConfig.type('string');\n   *   let slugType = Object.assign({}, builtInStringType, { encode: (str) => str, decode: (str) => str });\n   *   urlConfig.type('slug', slugType);\n   *\n   *   // Inject arbitrary services from DI using the Injector argument\n   *   let myService: MyService = injector.get(MyService)\n   *   myService.useFastMode();\n   * }\n   * ```\n   *\n   * ```js\n   * @NgModule({\n   *   imports: [\n   *     UIRouterModule.forChild({ states: STATES, config: configureMyModule });\n   *   ]\n   * })\n   * class MyModule {}\n   * ```\n   */\n  config?: (uiRouterInstance: UIRouter, injector: Injector, module: StatesModule) => any;\n}\n","import { EnvironmentProviders, makeEnvironmentProviders } from '@angular/core';\nimport { locationStrategy, makeRootProviders, RootModule } from './uiRouterNgModule';\nimport { _UIROUTER_INSTANCE_PROVIDERS, _UIROUTER_SERVICE_PROVIDERS } from './providers';\n\n/**\n * Sets up providers necessary to enable UI-Router for the application. Intended as a replacement\n * for [[UIRouterModule.forRoot]] in newer standalone based applications.\n *\n * Example:\n * ```js\n * const routerConfig = {\n *   otherwise: '/home',\n *   states: [homeState, aboutState]\n * };\n *\n * const appConfig: ApplicationConfig = {\n *   providers: [\n *     provideZoneChangeDetection({ eventCoalescing: true }),\n *     provideUIRouter(routerConfig)\n *   ]\n * };\n *\n * bootstrapApplication(AppComponent, appConfig)\n *  .catch((err) => console.error(err));\n * ```\n *\n * @param config declarative UI-Router configuration\n * @returns an `EnvironmentProviders` which provides the [[UIRouter]] singleton instance\n */\nexport function provideUIRouter(config: RootModule = {}): EnvironmentProviders {\n  return makeEnvironmentProviders([\n    _UIROUTER_INSTANCE_PROVIDERS,\n    _UIROUTER_SERVICE_PROVIDERS,\n    locationStrategy(config.useHash),\n    ...makeRootProviders(config),\n  ]);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["id","i1.UISref","i2","i1.UISrefStatus","i1.AnchorUISref","i2.UIView","i3.UISrefActive","i4.UISrefStatus"],"mappings":"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"}