From fe441186e70d9230c6064fdb31483fa80f01a229 Mon Sep 17 00:00:00 2001 From: Dzmitry Shylovich Date: Mon, 12 Dec 2016 20:57:22 +0300 Subject: [PATCH] fix(common): add PopStateEvent interface (#13400) Closes #13378 PR Close #13400 --- modules/@angular/common/src/location/location.ts | 8 +++++++- tools/public_api_guard/common/index.d.ts | 9 ++++++++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/modules/@angular/common/src/location/location.ts b/modules/@angular/common/src/location/location.ts index 2c19970746..3076c48ee1 100644 --- a/modules/@angular/common/src/location/location.ts +++ b/modules/@angular/common/src/location/location.ts @@ -10,6 +10,12 @@ import {EventEmitter, Injectable} from '@angular/core'; import {LocationStrategy} from './location_strategy'; +/** @experimental */ +export interface PopStateEvent { + pop?: boolean; + type?: string; + url?: string; +} /** * @whatItDoes `Location` is a service that applications can use to interact with a browser's URL. @@ -122,7 +128,7 @@ export class Location { * Subscribe to the platform's `popState` events. */ subscribe( - onNext: (value: any) => void, onThrow: (exception: any) => void = null, + onNext: (value: PopStateEvent) => void, onThrow: (exception: any) => void = null, onReturn: () => void = null): Object { return this._subject.subscribe({next: onNext, error: onThrow, complete: onReturn}); } diff --git a/tools/public_api_guard/common/index.d.ts b/tools/public_api_guard/common/index.d.ts index d75bf6544b..647803b92d 100644 --- a/tools/public_api_guard/common/index.d.ts +++ b/tools/public_api_guard/common/index.d.ts @@ -74,7 +74,7 @@ export declare class Location { path(includeHash?: boolean): string; prepareExternalUrl(url: string): string; replaceState(path: string, query?: string): void; - subscribe(onNext: (value: any) => void, onThrow?: (exception: any) => void, onReturn?: () => void): Object; + subscribe(onNext: (value: PopStateEvent) => void, onThrow?: (exception: any) => void, onReturn?: () => void): Object; static joinWithSlash(start: string, end: string): string; static normalizeQueryParams(params: string): string; static stripTrailingSlash(url: string): string; @@ -239,6 +239,13 @@ export declare abstract class PlatformLocation { abstract replaceState(state: any, title: string, url: string): void; } +/** @experimental */ +export interface PopStateEvent { + pop?: boolean; + type?: string; + url?: string; +} + /** @stable */ export declare class SlicePipe implements PipeTransform { transform(value: any, start: number, end?: number): any;