refactor: move angular source to /packages rather than modules/@angular
This commit is contained in:
50
packages/router/src/route_reuse_strategy.ts
Normal file
50
packages/router/src/route_reuse_strategy.ts
Normal file
@ -0,0 +1,50 @@
|
||||
/**
|
||||
* @license
|
||||
* Copyright Google Inc. All Rights Reserved.
|
||||
*
|
||||
* Use of this source code is governed by an MIT-style license that can be
|
||||
* found in the LICENSE file at https://angular.io/license
|
||||
*/
|
||||
|
||||
import {ComponentRef} from '@angular/core';
|
||||
|
||||
import {ActivatedRoute, ActivatedRouteSnapshot} from './router_state';
|
||||
import {TreeNode} from './utils/tree';
|
||||
|
||||
/**
|
||||
* @whatItDoes Represents the detached route tree.
|
||||
*
|
||||
* This is an opaque value the router will give to a custom route reuse strategy
|
||||
* to store and retrieve later on.
|
||||
*
|
||||
* @experimental
|
||||
*/
|
||||
export type DetachedRouteHandle = {};
|
||||
|
||||
/** @internal */
|
||||
export type DetachedRouteHandleInternal = {
|
||||
componentRef: ComponentRef<any>,
|
||||
route: TreeNode<ActivatedRoute>,
|
||||
};
|
||||
|
||||
/**
|
||||
* @whatItDoes Provides a way to customize when activated routes get reused.
|
||||
*
|
||||
* @experimental
|
||||
*/
|
||||
export abstract class RouteReuseStrategy {
|
||||
/** Determines if this route (and its subtree) should be detached to be reused later */
|
||||
abstract shouldDetach(route: ActivatedRouteSnapshot): boolean;
|
||||
|
||||
/** Stores the detached route */
|
||||
abstract store(route: ActivatedRouteSnapshot, handle: DetachedRouteHandle): void;
|
||||
|
||||
/** Determines if this route (and its subtree) should be reattached */
|
||||
abstract shouldAttach(route: ActivatedRouteSnapshot): boolean;
|
||||
|
||||
/** Retrieves the previously stored route */
|
||||
abstract retrieve(route: ActivatedRouteSnapshot): DetachedRouteHandle;
|
||||
|
||||
/** Determines if a route should be reused */
|
||||
abstract shouldReuseRoute(future: ActivatedRouteSnapshot, curr: ActivatedRouteSnapshot): boolean;
|
||||
}
|
Reference in New Issue
Block a user