@angular/common 21.1.0-next.0 → 21.1.0-next.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Angular v21.1.0-next.0
2
+ * @license Angular v21.1.0-next.2
3
3
  * (c) 2010-2025 Google LLC. https://angular.dev/
4
4
  * License: MIT
5
5
  */
@@ -11,7 +11,8 @@ import { Subject } from 'rxjs';
11
11
  import { PlatformNavigation } from './_platform_navigation-chunk.mjs';
12
12
  import { ɵFakeNavigation as _FakeNavigation } from '@angular/core/testing';
13
13
  export { ɵFakeNavigation } from '@angular/core/testing';
14
- import { PlatformLocation, Location, LocationStrategy as LocationStrategy$1 } from './_location-chunk.mjs';
14
+ import { Location, LocationStrategy as LocationStrategy$1 } from './_location-chunk.mjs';
15
+ import { PlatformLocation } from './_platform_location-chunk.mjs';
15
16
 
16
17
  const urlParse = /^(([^:\/?#]+):)?(\/\/([^\/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;
17
18
  function parseUrl(urlStr, baseHref) {
@@ -201,7 +202,7 @@ class MockPlatformLocation {
201
202
  }
202
203
  static ɵfac = i0.ɵɵngDeclareFactory({
203
204
  minVersion: "12.0.0",
204
- version: "21.1.0-next.0",
205
+ version: "21.1.0-next.2",
205
206
  ngImport: i0,
206
207
  type: MockPlatformLocation,
207
208
  deps: [{
@@ -212,14 +213,14 @@ class MockPlatformLocation {
212
213
  });
213
214
  static ɵprov = i0.ɵɵngDeclareInjectable({
214
215
  minVersion: "12.0.0",
215
- version: "21.1.0-next.0",
216
+ version: "21.1.0-next.2",
216
217
  ngImport: i0,
217
218
  type: MockPlatformLocation
218
219
  });
219
220
  }
220
221
  i0.ɵɵngDeclareClassMetadata({
221
222
  minVersion: "12.0.0",
222
- version: "21.1.0-next.0",
223
+ version: "21.1.0-next.2",
223
224
  ngImport: i0,
224
225
  type: MockPlatformLocation,
225
226
  decorators: [{
@@ -299,7 +300,7 @@ class FakeNavigationPlatformLocation {
299
300
  }
300
301
  static ɵfac = i0.ɵɵngDeclareFactory({
301
302
  minVersion: "12.0.0",
302
- version: "21.1.0-next.0",
303
+ version: "21.1.0-next.2",
303
304
  ngImport: i0,
304
305
  type: FakeNavigationPlatformLocation,
305
306
  deps: [],
@@ -307,14 +308,14 @@ class FakeNavigationPlatformLocation {
307
308
  });
308
309
  static ɵprov = i0.ɵɵngDeclareInjectable({
309
310
  minVersion: "12.0.0",
310
- version: "21.1.0-next.0",
311
+ version: "21.1.0-next.2",
311
312
  ngImport: i0,
312
313
  type: FakeNavigationPlatformLocation
313
314
  });
314
315
  }
315
316
  i0.ɵɵngDeclareClassMetadata({
316
317
  minVersion: "12.0.0",
317
- version: "21.1.0-next.0",
318
+ version: "21.1.0-next.2",
318
319
  ngImport: i0,
319
320
  type: FakeNavigationPlatformLocation,
320
321
  decorators: [{
@@ -498,7 +499,7 @@ class SpyLocation {
498
499
  }
499
500
  static ɵfac = i0.ɵɵngDeclareFactory({
500
501
  minVersion: "12.0.0",
501
- version: "21.1.0-next.0",
502
+ version: "21.1.0-next.2",
502
503
  ngImport: i0,
503
504
  type: SpyLocation,
504
505
  deps: [],
@@ -506,14 +507,14 @@ class SpyLocation {
506
507
  });
507
508
  static ɵprov = i0.ɵɵngDeclareInjectable({
508
509
  minVersion: "12.0.0",
509
- version: "21.1.0-next.0",
510
+ version: "21.1.0-next.2",
510
511
  ngImport: i0,
511
512
  type: SpyLocation
512
513
  });
513
514
  }
514
515
  i0.ɵɵngDeclareClassMetadata({
515
516
  minVersion: "12.0.0",
516
- version: "21.1.0-next.0",
517
+ version: "21.1.0-next.2",
517
518
  ngImport: i0,
518
519
  type: SpyLocation,
519
520
  decorators: [{
@@ -594,7 +595,7 @@ class MockLocationStrategy extends LocationStrategy {
594
595
  }
595
596
  static ɵfac = i0.ɵɵngDeclareFactory({
596
597
  minVersion: "12.0.0",
597
- version: "21.1.0-next.0",
598
+ version: "21.1.0-next.2",
598
599
  ngImport: i0,
599
600
  type: MockLocationStrategy,
600
601
  deps: [],
@@ -602,14 +603,14 @@ class MockLocationStrategy extends LocationStrategy {
602
603
  });
603
604
  static ɵprov = i0.ɵɵngDeclareInjectable({
604
605
  minVersion: "12.0.0",
605
- version: "21.1.0-next.0",
606
+ version: "21.1.0-next.2",
606
607
  ngImport: i0,
607
608
  type: MockLocationStrategy
608
609
  });
609
610
  }
610
611
  i0.ɵɵngDeclareClassMetadata({
611
612
  minVersion: "12.0.0",
612
- version: "21.1.0-next.0",
613
+ version: "21.1.0-next.2",
613
614
  ngImport: i0,
614
615
  type: MockLocationStrategy,
615
616
  decorators: [{
@@ -1 +1 @@
1
- {"version":3,"file":"testing.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/packages/common/testing/src/mock_platform_location.ts","../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/packages/common/testing/src/navigation/provide_fake_platform_navigation.ts","../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/packages/common/testing/src/location_mock.ts","../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/packages/common/testing/src/mock_location_strategy.ts","../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/packages/common/testing/src/provide_location_mocks.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {\n LocationChangeEvent,\n LocationChangeListener,\n PlatformLocation,\n PlatformNavigation,\n} from '../../index';\nimport {Inject, inject, Injectable, InjectionToken, Optional} from '@angular/core';\nimport {Subject} from 'rxjs';\n\nimport {FakeNavigation} from './navigation/fake_navigation';\n\n/**\n * Parser from https://tools.ietf.org/html/rfc3986#appendix-B\n * ^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?\n * 12 3 4 5 6 7 8 9\n *\n * Example: http://www.ics.uci.edu/pub/ietf/uri/#Related\n *\n * Results in:\n *\n * $1 = http:\n * $2 = http\n * $3 = //www.ics.uci.edu\n * $4 = www.ics.uci.edu\n * $5 = /pub/ietf/uri/\n * $6 = <undefined>\n * $7 = <undefined>\n * $8 = #Related\n * $9 = Related\n */\nconst urlParse = /^(([^:\\/?#]+):)?(\\/\\/([^\\/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?/;\n\nfunction parseUrl(urlStr: string, baseHref: string) {\n const verifyProtocol = /^((http[s]?|ftp):\\/\\/)/;\n let serverBase: string | undefined;\n\n // URL class requires full URL. If the URL string doesn't start with protocol, we need to add\n // an arbitrary base URL which can be removed afterward.\n if (!verifyProtocol.test(urlStr)) {\n serverBase = 'http://empty.com/';\n }\n let parsedUrl: {\n protocol: string;\n hostname: string;\n port: string;\n pathname: string;\n search: string;\n hash: string;\n };\n try {\n parsedUrl = new URL(urlStr, serverBase);\n } catch (e) {\n const result = urlParse.exec(serverBase || '' + urlStr);\n if (!result) {\n throw new Error(`Invalid URL: ${urlStr} with base: ${baseHref}`);\n }\n const hostSplit = result[4].split(':');\n parsedUrl = {\n protocol: result[1],\n hostname: hostSplit[0],\n port: hostSplit[1] || '',\n pathname: result[5],\n search: result[6],\n hash: result[8],\n };\n }\n if (parsedUrl.pathname && parsedUrl.pathname.indexOf(baseHref) === 0) {\n parsedUrl.pathname = parsedUrl.pathname.substring(baseHref.length);\n }\n return {\n hostname: (!serverBase && parsedUrl.hostname) || '',\n protocol: (!serverBase && parsedUrl.protocol) || '',\n port: (!serverBase && parsedUrl.port) || '',\n pathname: parsedUrl.pathname || '/',\n search: parsedUrl.search || '',\n hash: parsedUrl.hash || '',\n };\n}\n\n/**\n * Mock platform location config\n *\n * @publicApi\n */\nexport interface MockPlatformLocationConfig {\n startUrl?: string;\n appBaseHref?: string;\n}\n\n/**\n * Provider for mock platform location config\n *\n * @publicApi\n */\nexport const MOCK_PLATFORM_LOCATION_CONFIG = new InjectionToken<MockPlatformLocationConfig>(\n 'MOCK_PLATFORM_LOCATION_CONFIG',\n);\n\n/**\n * Mock implementation of URL state.\n *\n * @publicApi\n */\n@Injectable()\nexport class MockPlatformLocation implements PlatformLocation {\n private baseHref: string = '';\n private hashUpdate = new Subject<LocationChangeEvent>();\n private popStateSubject = new Subject<LocationChangeEvent>();\n private urlChangeIndex: number = 0;\n private urlChanges: {\n hostname: string;\n protocol: string;\n port: string;\n pathname: string;\n search: string;\n hash: string;\n state: unknown;\n }[] = [{hostname: '', protocol: '', port: '', pathname: '/', search: '', hash: '', state: null}];\n\n constructor(\n @Inject(MOCK_PLATFORM_LOCATION_CONFIG) @Optional() config?: MockPlatformLocationConfig,\n ) {\n if (config) {\n this.baseHref = config.appBaseHref || '';\n\n const parsedChanges = this.parseChanges(\n null,\n config.startUrl || 'http://_empty_/',\n this.baseHref,\n );\n this.urlChanges[0] = {...parsedChanges};\n }\n }\n\n get hostname() {\n return this.urlChanges[this.urlChangeIndex].hostname;\n }\n get protocol() {\n return this.urlChanges[this.urlChangeIndex].protocol;\n }\n get port() {\n return this.urlChanges[this.urlChangeIndex].port;\n }\n get pathname() {\n return this.urlChanges[this.urlChangeIndex].pathname;\n }\n get search() {\n return this.urlChanges[this.urlChangeIndex].search;\n }\n get hash() {\n return this.urlChanges[this.urlChangeIndex].hash;\n }\n get state() {\n return this.urlChanges[this.urlChangeIndex].state;\n }\n\n getBaseHrefFromDOM(): string {\n return this.baseHref;\n }\n\n onPopState(fn: LocationChangeListener): VoidFunction {\n const subscription = this.popStateSubject.subscribe(fn);\n return () => subscription.unsubscribe();\n }\n\n onHashChange(fn: LocationChangeListener): VoidFunction {\n const subscription = this.hashUpdate.subscribe(fn);\n return () => subscription.unsubscribe();\n }\n\n get href(): string {\n let url = `${this.protocol}//${this.hostname}${this.port ? ':' + this.port : ''}`;\n url += `${this.pathname === '/' ? '' : this.pathname}${this.search}${this.hash}`;\n return url;\n }\n\n get url(): string {\n return `${this.pathname}${this.search}${this.hash}`;\n }\n\n private parseChanges(state: unknown, url: string, baseHref: string = '') {\n // When the `history.state` value is stored, it is always copied.\n state = JSON.parse(JSON.stringify(state));\n return {...parseUrl(url, baseHref), state};\n }\n\n replaceState(state: any, title: string, newUrl: string): void {\n const {pathname, search, state: parsedState, hash} = this.parseChanges(state, newUrl);\n\n this.urlChanges[this.urlChangeIndex] = {\n ...this.urlChanges[this.urlChangeIndex],\n pathname,\n search,\n hash,\n state: parsedState,\n };\n }\n\n pushState(state: any, title: string, newUrl: string): void {\n const {pathname, search, state: parsedState, hash} = this.parseChanges(state, newUrl);\n if (this.urlChangeIndex > 0) {\n this.urlChanges.splice(this.urlChangeIndex + 1);\n }\n this.urlChanges.push({\n ...this.urlChanges[this.urlChangeIndex],\n pathname,\n search,\n hash,\n state: parsedState,\n });\n this.urlChangeIndex = this.urlChanges.length - 1;\n }\n\n forward(): void {\n const oldUrl = this.url;\n const oldHash = this.hash;\n if (this.urlChangeIndex < this.urlChanges.length) {\n this.urlChangeIndex++;\n }\n this.emitEvents(oldHash, oldUrl);\n }\n\n back(): void {\n const oldUrl = this.url;\n const oldHash = this.hash;\n if (this.urlChangeIndex > 0) {\n this.urlChangeIndex--;\n }\n this.emitEvents(oldHash, oldUrl);\n }\n\n historyGo(relativePosition: number = 0): void {\n const oldUrl = this.url;\n const oldHash = this.hash;\n const nextPageIndex = this.urlChangeIndex + relativePosition;\n if (nextPageIndex >= 0 && nextPageIndex < this.urlChanges.length) {\n this.urlChangeIndex = nextPageIndex;\n }\n this.emitEvents(oldHash, oldUrl);\n }\n\n getState(): unknown {\n return this.state;\n }\n\n /**\n * Browsers are inconsistent in when they fire events and perform the state updates\n * The most easiest thing to do in our mock is synchronous and that happens to match\n * Firefox and Chrome, at least somewhat closely\n *\n * https://github.com/WICG/navigation-api#watching-for-navigations\n * https://docs.google.com/document/d/1Pdve-DJ1JCGilj9Yqf5HxRJyBKSel5owgOvUJqTauwU/edit#heading=h.3ye4v71wsz94\n * popstate is always sent before hashchange:\n * https://developer.mozilla.org/en-US/docs/Web/API/Window/popstate_event#when_popstate_is_sent\n */\n private emitEvents(oldHash: string, oldUrl: string) {\n this.popStateSubject.next({\n type: 'popstate',\n state: this.getState(),\n oldUrl,\n newUrl: this.url,\n } as LocationChangeEvent);\n if (oldHash !== this.hash) {\n this.hashUpdate.next({\n type: 'hashchange',\n state: null,\n oldUrl,\n newUrl: this.url,\n } as LocationChangeEvent);\n }\n }\n}\n\n/**\n * Mock implementation of URL state.\n */\n@Injectable()\nexport class FakeNavigationPlatformLocation implements PlatformLocation {\n private readonly _platformNavigation: FakeNavigation;\n\n constructor() {\n const platformNavigation = inject(PlatformNavigation);\n if (!(platformNavigation instanceof FakeNavigation)) {\n throw new Error(\n 'FakePlatformNavigation cannot be used without FakeNavigation. Use ' +\n '`provideFakeNavigation` to have all these services provided together.',\n );\n }\n this._platformNavigation = platformNavigation;\n }\n\n private config = inject(MOCK_PLATFORM_LOCATION_CONFIG, {optional: true});\n getBaseHrefFromDOM(): string {\n return this.config?.appBaseHref ?? '';\n }\n\n onPopState(fn: LocationChangeListener): VoidFunction {\n this._platformNavigation.window.addEventListener('popstate', fn);\n return () => this._platformNavigation.window.removeEventListener('popstate', fn);\n }\n\n onHashChange(fn: LocationChangeListener): VoidFunction {\n this._platformNavigation.window.addEventListener('hashchange', fn as any);\n return () => this._platformNavigation.window.removeEventListener('hashchange', fn as any);\n }\n\n get href(): string {\n return this._platformNavigation.currentEntry.url!;\n }\n get protocol(): string {\n return new URL(this._platformNavigation.currentEntry.url!).protocol;\n }\n get hostname(): string {\n return new URL(this._platformNavigation.currentEntry.url!).hostname;\n }\n get port(): string {\n return new URL(this._platformNavigation.currentEntry.url!).port;\n }\n get pathname(): string {\n return new URL(this._platformNavigation.currentEntry.url!).pathname;\n }\n get search(): string {\n return new URL(this._platformNavigation.currentEntry.url!).search;\n }\n get hash(): string {\n return new URL(this._platformNavigation.currentEntry.url!).hash;\n }\n\n pushState(state: any, title: string, url: string): void {\n this._platformNavigation.pushState(state, title, url);\n }\n\n replaceState(state: any, title: string, url: string): void {\n this._platformNavigation.replaceState(state, title, url);\n }\n\n forward(): void {\n this._platformNavigation.forward();\n }\n\n back(): void {\n this._platformNavigation.back();\n }\n\n historyGo(relativePosition: number = 0): void {\n this._platformNavigation.go(relativePosition);\n }\n\n getState(): unknown {\n return this._platformNavigation.currentEntry.getHistoryState();\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {DOCUMENT, PlatformLocation, PlatformNavigation} from '../../../index';\nimport {inject, InjectionToken, Provider} from '@angular/core';\n\nimport {\n FakeNavigationPlatformLocation,\n MOCK_PLATFORM_LOCATION_CONFIG,\n} from '../mock_platform_location';\n\nimport {FakeNavigation} from './fake_navigation';\n\nconst FAKE_NAVIGATION = new InjectionToken<FakeNavigation>('fakeNavigation', {\n providedIn: 'root',\n factory: () => {\n const config = inject(MOCK_PLATFORM_LOCATION_CONFIG, {optional: true});\n const baseFallback = 'http://_empty_/';\n const startUrl = new URL(config?.startUrl || baseFallback, baseFallback);\n const fakeNavigation = new FakeNavigation(inject(DOCUMENT), startUrl.href as `http${string}`);\n fakeNavigation.setSynchronousTraversalsForTesting(true);\n return fakeNavigation;\n },\n});\n\n/**\n * Return a provider for the `FakeNavigation` in place of the real Navigation API.\n */\nexport function provideFakePlatformNavigation(): Provider[] {\n return [\n {\n provide: PlatformNavigation,\n useFactory: () => inject(FAKE_NAVIGATION),\n },\n {provide: PlatformLocation, useClass: FakeNavigationPlatformLocation},\n ];\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {\n Location,\n LocationStrategy,\n PopStateEvent,\n ɵnormalizeQueryParams as normalizeQueryParams,\n} from '@angular/common';\nimport {Injectable} from '@angular/core';\nimport {Subject, SubscriptionLike} from 'rxjs';\n\n/**\n * A spy for {@link Location} that allows tests to fire simulated location events.\n *\n * @publicApi\n */\n@Injectable()\nexport class SpyLocation implements Location {\n urlChanges: string[] = [];\n private _history: LocationState[] = [new LocationState('', '', null)];\n private _historyIndex: number = 0;\n /** @internal */\n _subject = new Subject<PopStateEvent>();\n /** @internal */\n _basePath: string = '';\n /** @internal */\n _locationStrategy: LocationStrategy = null!;\n /** @internal */\n _urlChangeListeners: ((url: string, state: unknown) => void)[] = [];\n /** @internal */\n _urlChangeSubscription: SubscriptionLike | null = null;\n\n /** @docs-private */\n ngOnDestroy(): void {\n this._urlChangeSubscription?.unsubscribe();\n this._urlChangeListeners = [];\n }\n\n setInitialPath(url: string) {\n this._history[this._historyIndex].path = url;\n }\n\n setBaseHref(url: string) {\n this._basePath = url;\n }\n\n path(): string {\n return this._history[this._historyIndex].path;\n }\n\n getState(): unknown {\n return this._history[this._historyIndex].state;\n }\n\n isCurrentPathEqualTo(path: string, query: string = ''): boolean {\n const givenPath = path.endsWith('/') ? path.substring(0, path.length - 1) : path;\n const currPath = this.path().endsWith('/')\n ? this.path().substring(0, this.path().length - 1)\n : this.path();\n\n return currPath == givenPath + (query.length > 0 ? '?' + query : '');\n }\n\n simulateUrlPop(pathname: string) {\n this._subject.next({'url': pathname, 'pop': true, 'type': 'popstate'});\n }\n\n simulateHashChange(pathname: string) {\n const path = this.prepareExternalUrl(pathname);\n this.pushHistory(path, '', null);\n\n this.urlChanges.push('hash: ' + pathname);\n // the browser will automatically fire popstate event before each `hashchange` event, so we need\n // to simulate it.\n this._subject.next({'url': pathname, 'pop': true, 'type': 'popstate'});\n this._subject.next({'url': pathname, 'pop': true, 'type': 'hashchange'});\n }\n\n prepareExternalUrl(url: string): string {\n if (url.length > 0 && !url.startsWith('/')) {\n url = '/' + url;\n }\n return this._basePath + url;\n }\n\n go(path: string, query: string = '', state: any = null) {\n path = this.prepareExternalUrl(path);\n\n this.pushHistory(path, query, state);\n\n const locationState = this._history[this._historyIndex - 1];\n if (locationState.path == path && locationState.query == query) {\n return;\n }\n\n const url = path + (query.length > 0 ? '?' + query : '');\n this.urlChanges.push(url);\n this._notifyUrlChangeListeners(path + normalizeQueryParams(query), state);\n }\n\n replaceState(path: string, query: string = '', state: any = null) {\n path = this.prepareExternalUrl(path);\n\n const history = this._history[this._historyIndex];\n\n history.state = state;\n\n if (history.path == path && history.query == query) {\n return;\n }\n\n history.path = path;\n history.query = query;\n\n const url = path + (query.length > 0 ? '?' + query : '');\n this.urlChanges.push('replace: ' + url);\n this._notifyUrlChangeListeners(path + normalizeQueryParams(query), state);\n }\n\n forward() {\n if (this._historyIndex < this._history.length - 1) {\n this._historyIndex++;\n this._subject.next({\n 'url': this.path(),\n 'state': this.getState(),\n 'pop': true,\n 'type': 'popstate',\n });\n }\n }\n\n back() {\n if (this._historyIndex > 0) {\n this._historyIndex--;\n this._subject.next({\n 'url': this.path(),\n 'state': this.getState(),\n 'pop': true,\n 'type': 'popstate',\n });\n }\n }\n\n historyGo(relativePosition: number = 0): void {\n const nextPageIndex = this._historyIndex + relativePosition;\n if (nextPageIndex >= 0 && nextPageIndex < this._history.length) {\n this._historyIndex = nextPageIndex;\n this._subject.next({\n 'url': this.path(),\n 'state': this.getState(),\n 'pop': true,\n 'type': 'popstate',\n });\n }\n }\n\n onUrlChange(fn: (url: string, state: unknown) => void): VoidFunction {\n this._urlChangeListeners.push(fn);\n\n this._urlChangeSubscription ??= this.subscribe((v) => {\n this._notifyUrlChangeListeners(v.url, v.state);\n });\n\n return () => {\n const fnIndex = this._urlChangeListeners.indexOf(fn);\n this._urlChangeListeners.splice(fnIndex, 1);\n\n if (this._urlChangeListeners.length === 0) {\n this._urlChangeSubscription?.unsubscribe();\n this._urlChangeSubscription = null;\n }\n };\n }\n\n /** @internal */\n _notifyUrlChangeListeners(url: string = '', state: unknown) {\n this._urlChangeListeners.forEach((fn) => fn(url, state));\n }\n\n subscribe(\n onNext: (value: any) => void,\n onThrow?: ((error: any) => void) | null,\n onReturn?: (() => void) | null,\n ): SubscriptionLike {\n return this._subject.subscribe({\n next: onNext,\n error: onThrow ?? undefined,\n complete: onReturn ?? undefined,\n });\n }\n\n normalize(url: string): string {\n return null!;\n }\n\n private pushHistory(path: string, query: string, state: any) {\n if (this._historyIndex > 0) {\n this._history.splice(this._historyIndex + 1);\n }\n this._history.push(new LocationState(path, query, state));\n this._historyIndex = this._history.length - 1;\n }\n}\n\nclass LocationState {\n constructor(\n public path: string,\n public query: string,\n public state: any,\n ) {}\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {LocationStrategy} from '@angular/common';\nimport {Injectable} from '@angular/core';\nimport {Subject} from 'rxjs';\n\n/**\n * A mock implementation of {@link LocationStrategy} that allows tests to fire simulated\n * location events.\n *\n * @publicApi\n */\n@Injectable()\nexport class MockLocationStrategy extends LocationStrategy {\n internalBaseHref: string = '/';\n internalPath: string = '/';\n internalTitle: string = '';\n urlChanges: string[] = [];\n /** @internal */\n _subject = new Subject<_MockPopStateEvent>();\n private stateChanges: any[] = [];\n constructor() {\n super();\n }\n\n simulatePopState(url: string): void {\n this.internalPath = url;\n this._subject.next(new _MockPopStateEvent(this.path()));\n }\n\n override path(includeHash: boolean = false): string {\n return this.internalPath;\n }\n\n override prepareExternalUrl(internal: string): string {\n if (internal.startsWith('/') && this.internalBaseHref.endsWith('/')) {\n return this.internalBaseHref + internal.substring(1);\n }\n return this.internalBaseHref + internal;\n }\n\n override pushState(ctx: any, title: string, path: string, query: string): void {\n // Add state change to changes array\n this.stateChanges.push(ctx);\n\n this.internalTitle = title;\n\n const url = path + (query.length > 0 ? '?' + query : '');\n this.internalPath = url;\n\n const externalUrl = this.prepareExternalUrl(url);\n this.urlChanges.push(externalUrl);\n }\n\n override replaceState(ctx: any, title: string, path: string, query: string): void {\n // Reset the last index of stateChanges to the ctx (state) object\n this.stateChanges[(this.stateChanges.length || 1) - 1] = ctx;\n\n this.internalTitle = title;\n\n const url = path + (query.length > 0 ? '?' + query : '');\n this.internalPath = url;\n\n const externalUrl = this.prepareExternalUrl(url);\n this.urlChanges.push('replace: ' + externalUrl);\n }\n\n override onPopState(fn: (value: any) => void): void {\n this._subject.subscribe({next: fn});\n }\n\n override getBaseHref(): string {\n return this.internalBaseHref;\n }\n\n override back(): void {\n if (this.urlChanges.length > 0) {\n this.urlChanges.pop();\n this.stateChanges.pop();\n const nextUrl = this.urlChanges.length > 0 ? this.urlChanges[this.urlChanges.length - 1] : '';\n this.simulatePopState(nextUrl);\n }\n }\n\n override forward(): void {\n throw 'not implemented';\n }\n\n override getState(): unknown {\n return this.stateChanges[(this.stateChanges.length || 1) - 1];\n }\n}\n\nclass _MockPopStateEvent {\n pop: boolean = true;\n type: string = 'popstate';\n constructor(public newUrl: string) {}\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {Location, LocationStrategy} from '../../index';\nimport {Provider} from '@angular/core';\n\nimport {SpyLocation} from './location_mock';\nimport {MockLocationStrategy} from './mock_location_strategy';\n\n/**\n * Returns mock providers for the `Location` and `LocationStrategy` classes.\n * The mocks are helpful in tests to fire simulated location events.\n *\n * @publicApi\n */\nexport function provideLocationMocks(): Provider[] {\n return [\n {provide: Location, useClass: SpyLocation},\n {provide: LocationStrategy, useClass: MockLocationStrategy},\n ];\n}\n"],"names":["urlParse","parseUrl","urlStr","baseHref","verifyProtocol","serverBase","test","parsedUrl","URL","e","result","exec","Error","hostSplit","split","protocol","hostname","port","pathname","search","hash","indexOf","substring","length","MOCK_PLATFORM_LOCATION_CONFIG","InjectionToken","MockPlatformLocation","hashUpdate","Subject","popStateSubject","urlChangeIndex","urlChanges","state","constructor","config","appBaseHref","parsedChanges","parseChanges","startUrl","getBaseHrefFromDOM","onPopState","fn","subscription","subscribe","unsubscribe","onHashChange","href","url","JSON","parse","stringify","replaceState","title","newUrl","parsedState","pushState","splice","push","forward","oldUrl","oldHash","emitEvents","back","historyGo","relativePosition","nextPageIndex","getState","next","type","ɵfac","i0","ɵɵngDeclareFactory","minVersion","version","ngImport","optional","target","ɵɵFactoryTarget","Injectable","decorators","Inject","Optional","FakeNavigationPlatformLocation","_platformNavigation","platformNavigation","inject","PlatformNavigation","FakeNavigation","window","addEventListener","removeEventListener","currentEntry","go","getHistoryState","deps","FAKE_NAVIGATION","providedIn","factory","baseFallback","fakeNavigation","DOCUMENT","setSynchronousTraversalsForTesting","provideFakePlatformNavigation","provide","useFactory","PlatformLocation","useClass","SpyLocation","_history","LocationState","_historyIndex","_subject","_basePath","_locationStrategy","_urlChangeListeners","_urlChangeSubscription","ngOnDestroy","setInitialPath","path","setBaseHref","isCurrentPathEqualTo","query","givenPath","endsWith","currPath","simulateUrlPop","simulateHashChange","prepareExternalUrl","pushHistory","startsWith","locationState","_notifyUrlChangeListeners","normalizeQueryParams","history","onUrlChange","v","fnIndex","forEach","onNext","onThrow","onReturn","error","undefined","complete","normalize","MockLocationStrategy","LocationStrategy","internalBaseHref","internalPath","internalTitle","stateChanges","simulatePopState","_MockPopStateEvent","includeHash","internal","ctx","externalUrl","getBaseHref","pop","nextUrl","provideLocationMocks","Location"],"mappings":"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"}
1
+ {"version":3,"file":"testing.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/packages/common/testing/src/mock_platform_location.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/packages/common/testing/src/navigation/provide_fake_platform_navigation.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/packages/common/testing/src/location_mock.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/packages/common/testing/src/mock_location_strategy.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/packages/common/testing/src/provide_location_mocks.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {\n LocationChangeEvent,\n LocationChangeListener,\n PlatformLocation,\n PlatformNavigation,\n} from '../../index';\nimport {Inject, inject, Injectable, InjectionToken, Optional} from '@angular/core';\nimport {Subject} from 'rxjs';\n\nimport {FakeNavigation} from './navigation/fake_navigation';\n\n/**\n * Parser from https://tools.ietf.org/html/rfc3986#appendix-B\n * ^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?\n * 12 3 4 5 6 7 8 9\n *\n * Example: http://www.ics.uci.edu/pub/ietf/uri/#Related\n *\n * Results in:\n *\n * $1 = http:\n * $2 = http\n * $3 = //www.ics.uci.edu\n * $4 = www.ics.uci.edu\n * $5 = /pub/ietf/uri/\n * $6 = <undefined>\n * $7 = <undefined>\n * $8 = #Related\n * $9 = Related\n */\nconst urlParse = /^(([^:\\/?#]+):)?(\\/\\/([^\\/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?/;\n\nfunction parseUrl(urlStr: string, baseHref: string) {\n const verifyProtocol = /^((http[s]?|ftp):\\/\\/)/;\n let serverBase: string | undefined;\n\n // URL class requires full URL. If the URL string doesn't start with protocol, we need to add\n // an arbitrary base URL which can be removed afterward.\n if (!verifyProtocol.test(urlStr)) {\n serverBase = 'http://empty.com/';\n }\n let parsedUrl: {\n protocol: string;\n hostname: string;\n port: string;\n pathname: string;\n search: string;\n hash: string;\n };\n try {\n parsedUrl = new URL(urlStr, serverBase);\n } catch (e) {\n const result = urlParse.exec(serverBase || '' + urlStr);\n if (!result) {\n throw new Error(`Invalid URL: ${urlStr} with base: ${baseHref}`);\n }\n const hostSplit = result[4].split(':');\n parsedUrl = {\n protocol: result[1],\n hostname: hostSplit[0],\n port: hostSplit[1] || '',\n pathname: result[5],\n search: result[6],\n hash: result[8],\n };\n }\n if (parsedUrl.pathname && parsedUrl.pathname.indexOf(baseHref) === 0) {\n parsedUrl.pathname = parsedUrl.pathname.substring(baseHref.length);\n }\n return {\n hostname: (!serverBase && parsedUrl.hostname) || '',\n protocol: (!serverBase && parsedUrl.protocol) || '',\n port: (!serverBase && parsedUrl.port) || '',\n pathname: parsedUrl.pathname || '/',\n search: parsedUrl.search || '',\n hash: parsedUrl.hash || '',\n };\n}\n\n/**\n * Mock platform location config\n *\n * @publicApi\n */\nexport interface MockPlatformLocationConfig {\n startUrl?: string;\n appBaseHref?: string;\n}\n\n/**\n * Provider for mock platform location config\n *\n * @publicApi\n */\nexport const MOCK_PLATFORM_LOCATION_CONFIG = new InjectionToken<MockPlatformLocationConfig>(\n 'MOCK_PLATFORM_LOCATION_CONFIG',\n);\n\n/**\n * Mock implementation of URL state.\n *\n * @publicApi\n */\n@Injectable()\nexport class MockPlatformLocation implements PlatformLocation {\n private baseHref: string = '';\n private hashUpdate = new Subject<LocationChangeEvent>();\n private popStateSubject = new Subject<LocationChangeEvent>();\n private urlChangeIndex: number = 0;\n private urlChanges: {\n hostname: string;\n protocol: string;\n port: string;\n pathname: string;\n search: string;\n hash: string;\n state: unknown;\n }[] = [{hostname: '', protocol: '', port: '', pathname: '/', search: '', hash: '', state: null}];\n\n constructor(\n @Inject(MOCK_PLATFORM_LOCATION_CONFIG) @Optional() config?: MockPlatformLocationConfig,\n ) {\n if (config) {\n this.baseHref = config.appBaseHref || '';\n\n const parsedChanges = this.parseChanges(\n null,\n config.startUrl || 'http://_empty_/',\n this.baseHref,\n );\n this.urlChanges[0] = {...parsedChanges};\n }\n }\n\n get hostname() {\n return this.urlChanges[this.urlChangeIndex].hostname;\n }\n get protocol() {\n return this.urlChanges[this.urlChangeIndex].protocol;\n }\n get port() {\n return this.urlChanges[this.urlChangeIndex].port;\n }\n get pathname() {\n return this.urlChanges[this.urlChangeIndex].pathname;\n }\n get search() {\n return this.urlChanges[this.urlChangeIndex].search;\n }\n get hash() {\n return this.urlChanges[this.urlChangeIndex].hash;\n }\n get state() {\n return this.urlChanges[this.urlChangeIndex].state;\n }\n\n getBaseHrefFromDOM(): string {\n return this.baseHref;\n }\n\n onPopState(fn: LocationChangeListener): VoidFunction {\n const subscription = this.popStateSubject.subscribe(fn);\n return () => subscription.unsubscribe();\n }\n\n onHashChange(fn: LocationChangeListener): VoidFunction {\n const subscription = this.hashUpdate.subscribe(fn);\n return () => subscription.unsubscribe();\n }\n\n get href(): string {\n let url = `${this.protocol}//${this.hostname}${this.port ? ':' + this.port : ''}`;\n url += `${this.pathname === '/' ? '' : this.pathname}${this.search}${this.hash}`;\n return url;\n }\n\n get url(): string {\n return `${this.pathname}${this.search}${this.hash}`;\n }\n\n private parseChanges(state: unknown, url: string, baseHref: string = '') {\n // When the `history.state` value is stored, it is always copied.\n state = JSON.parse(JSON.stringify(state));\n return {...parseUrl(url, baseHref), state};\n }\n\n replaceState(state: any, title: string, newUrl: string): void {\n const {pathname, search, state: parsedState, hash} = this.parseChanges(state, newUrl);\n\n this.urlChanges[this.urlChangeIndex] = {\n ...this.urlChanges[this.urlChangeIndex],\n pathname,\n search,\n hash,\n state: parsedState,\n };\n }\n\n pushState(state: any, title: string, newUrl: string): void {\n const {pathname, search, state: parsedState, hash} = this.parseChanges(state, newUrl);\n if (this.urlChangeIndex > 0) {\n this.urlChanges.splice(this.urlChangeIndex + 1);\n }\n this.urlChanges.push({\n ...this.urlChanges[this.urlChangeIndex],\n pathname,\n search,\n hash,\n state: parsedState,\n });\n this.urlChangeIndex = this.urlChanges.length - 1;\n }\n\n forward(): void {\n const oldUrl = this.url;\n const oldHash = this.hash;\n if (this.urlChangeIndex < this.urlChanges.length) {\n this.urlChangeIndex++;\n }\n this.emitEvents(oldHash, oldUrl);\n }\n\n back(): void {\n const oldUrl = this.url;\n const oldHash = this.hash;\n if (this.urlChangeIndex > 0) {\n this.urlChangeIndex--;\n }\n this.emitEvents(oldHash, oldUrl);\n }\n\n historyGo(relativePosition: number = 0): void {\n const oldUrl = this.url;\n const oldHash = this.hash;\n const nextPageIndex = this.urlChangeIndex + relativePosition;\n if (nextPageIndex >= 0 && nextPageIndex < this.urlChanges.length) {\n this.urlChangeIndex = nextPageIndex;\n }\n this.emitEvents(oldHash, oldUrl);\n }\n\n getState(): unknown {\n return this.state;\n }\n\n /**\n * Browsers are inconsistent in when they fire events and perform the state updates\n * The most easiest thing to do in our mock is synchronous and that happens to match\n * Firefox and Chrome, at least somewhat closely\n *\n * https://github.com/WICG/navigation-api#watching-for-navigations\n * https://docs.google.com/document/d/1Pdve-DJ1JCGilj9Yqf5HxRJyBKSel5owgOvUJqTauwU/edit#heading=h.3ye4v71wsz94\n * popstate is always sent before hashchange:\n * https://developer.mozilla.org/en-US/docs/Web/API/Window/popstate_event#when_popstate_is_sent\n */\n private emitEvents(oldHash: string, oldUrl: string) {\n this.popStateSubject.next({\n type: 'popstate',\n state: this.getState(),\n oldUrl,\n newUrl: this.url,\n } as LocationChangeEvent);\n if (oldHash !== this.hash) {\n this.hashUpdate.next({\n type: 'hashchange',\n state: null,\n oldUrl,\n newUrl: this.url,\n } as LocationChangeEvent);\n }\n }\n}\n\n/**\n * Mock implementation of URL state.\n */\n@Injectable()\nexport class FakeNavigationPlatformLocation implements PlatformLocation {\n private readonly _platformNavigation: FakeNavigation;\n\n constructor() {\n const platformNavigation = inject(PlatformNavigation);\n if (!(platformNavigation instanceof FakeNavigation)) {\n throw new Error(\n 'FakePlatformNavigation cannot be used without FakeNavigation. Use ' +\n '`provideFakeNavigation` to have all these services provided together.',\n );\n }\n this._platformNavigation = platformNavigation;\n }\n\n private config = inject(MOCK_PLATFORM_LOCATION_CONFIG, {optional: true});\n getBaseHrefFromDOM(): string {\n return this.config?.appBaseHref ?? '';\n }\n\n onPopState(fn: LocationChangeListener): VoidFunction {\n this._platformNavigation.window.addEventListener('popstate', fn);\n return () => this._platformNavigation.window.removeEventListener('popstate', fn);\n }\n\n onHashChange(fn: LocationChangeListener): VoidFunction {\n this._platformNavigation.window.addEventListener('hashchange', fn as any);\n return () => this._platformNavigation.window.removeEventListener('hashchange', fn as any);\n }\n\n get href(): string {\n return this._platformNavigation.currentEntry.url!;\n }\n get protocol(): string {\n return new URL(this._platformNavigation.currentEntry.url!).protocol;\n }\n get hostname(): string {\n return new URL(this._platformNavigation.currentEntry.url!).hostname;\n }\n get port(): string {\n return new URL(this._platformNavigation.currentEntry.url!).port;\n }\n get pathname(): string {\n return new URL(this._platformNavigation.currentEntry.url!).pathname;\n }\n get search(): string {\n return new URL(this._platformNavigation.currentEntry.url!).search;\n }\n get hash(): string {\n return new URL(this._platformNavigation.currentEntry.url!).hash;\n }\n\n pushState(state: any, title: string, url: string): void {\n this._platformNavigation.pushState(state, title, url);\n }\n\n replaceState(state: any, title: string, url: string): void {\n this._platformNavigation.replaceState(state, title, url);\n }\n\n forward(): void {\n this._platformNavigation.forward();\n }\n\n back(): void {\n this._platformNavigation.back();\n }\n\n historyGo(relativePosition: number = 0): void {\n this._platformNavigation.go(relativePosition);\n }\n\n getState(): unknown {\n return this._platformNavigation.currentEntry.getHistoryState();\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {DOCUMENT, PlatformLocation, PlatformNavigation} from '../../../index';\nimport {inject, InjectionToken, Provider} from '@angular/core';\n\nimport {\n FakeNavigationPlatformLocation,\n MOCK_PLATFORM_LOCATION_CONFIG,\n} from '../mock_platform_location';\n\nimport {FakeNavigation} from './fake_navigation';\n\nconst FAKE_NAVIGATION = new InjectionToken<FakeNavigation>('fakeNavigation', {\n providedIn: 'root',\n factory: () => {\n const config = inject(MOCK_PLATFORM_LOCATION_CONFIG, {optional: true});\n const baseFallback = 'http://_empty_/';\n const startUrl = new URL(config?.startUrl || baseFallback, baseFallback);\n const fakeNavigation = new FakeNavigation(inject(DOCUMENT), startUrl.href as `http${string}`);\n fakeNavigation.setSynchronousTraversalsForTesting(true);\n return fakeNavigation;\n },\n});\n\n/**\n * Return a provider for the `FakeNavigation` in place of the real Navigation API.\n */\nexport function provideFakePlatformNavigation(): Provider[] {\n return [\n {\n provide: PlatformNavigation,\n useFactory: () => inject(FAKE_NAVIGATION),\n },\n {provide: PlatformLocation, useClass: FakeNavigationPlatformLocation},\n ];\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {\n Location,\n LocationStrategy,\n PopStateEvent,\n ɵnormalizeQueryParams as normalizeQueryParams,\n} from '@angular/common';\nimport {Injectable} from '@angular/core';\nimport {Subject, SubscriptionLike} from 'rxjs';\n\n/**\n * A spy for {@link Location} that allows tests to fire simulated location events.\n *\n * @publicApi\n */\n@Injectable()\nexport class SpyLocation implements Location {\n urlChanges: string[] = [];\n private _history: LocationState[] = [new LocationState('', '', null)];\n private _historyIndex: number = 0;\n /** @internal */\n _subject = new Subject<PopStateEvent>();\n /** @internal */\n _basePath: string = '';\n /** @internal */\n _locationStrategy: LocationStrategy = null!;\n /** @internal */\n _urlChangeListeners: ((url: string, state: unknown) => void)[] = [];\n /** @internal */\n _urlChangeSubscription: SubscriptionLike | null = null;\n\n /** @docs-private */\n ngOnDestroy(): void {\n this._urlChangeSubscription?.unsubscribe();\n this._urlChangeListeners = [];\n }\n\n setInitialPath(url: string) {\n this._history[this._historyIndex].path = url;\n }\n\n setBaseHref(url: string) {\n this._basePath = url;\n }\n\n path(): string {\n return this._history[this._historyIndex].path;\n }\n\n getState(): unknown {\n return this._history[this._historyIndex].state;\n }\n\n isCurrentPathEqualTo(path: string, query: string = ''): boolean {\n const givenPath = path.endsWith('/') ? path.substring(0, path.length - 1) : path;\n const currPath = this.path().endsWith('/')\n ? this.path().substring(0, this.path().length - 1)\n : this.path();\n\n return currPath == givenPath + (query.length > 0 ? '?' + query : '');\n }\n\n simulateUrlPop(pathname: string) {\n this._subject.next({'url': pathname, 'pop': true, 'type': 'popstate'});\n }\n\n simulateHashChange(pathname: string) {\n const path = this.prepareExternalUrl(pathname);\n this.pushHistory(path, '', null);\n\n this.urlChanges.push('hash: ' + pathname);\n // the browser will automatically fire popstate event before each `hashchange` event, so we need\n // to simulate it.\n this._subject.next({'url': pathname, 'pop': true, 'type': 'popstate'});\n this._subject.next({'url': pathname, 'pop': true, 'type': 'hashchange'});\n }\n\n prepareExternalUrl(url: string): string {\n if (url.length > 0 && !url.startsWith('/')) {\n url = '/' + url;\n }\n return this._basePath + url;\n }\n\n go(path: string, query: string = '', state: any = null) {\n path = this.prepareExternalUrl(path);\n\n this.pushHistory(path, query, state);\n\n const locationState = this._history[this._historyIndex - 1];\n if (locationState.path == path && locationState.query == query) {\n return;\n }\n\n const url = path + (query.length > 0 ? '?' + query : '');\n this.urlChanges.push(url);\n this._notifyUrlChangeListeners(path + normalizeQueryParams(query), state);\n }\n\n replaceState(path: string, query: string = '', state: any = null) {\n path = this.prepareExternalUrl(path);\n\n const history = this._history[this._historyIndex];\n\n history.state = state;\n\n if (history.path == path && history.query == query) {\n return;\n }\n\n history.path = path;\n history.query = query;\n\n const url = path + (query.length > 0 ? '?' + query : '');\n this.urlChanges.push('replace: ' + url);\n this._notifyUrlChangeListeners(path + normalizeQueryParams(query), state);\n }\n\n forward() {\n if (this._historyIndex < this._history.length - 1) {\n this._historyIndex++;\n this._subject.next({\n 'url': this.path(),\n 'state': this.getState(),\n 'pop': true,\n 'type': 'popstate',\n });\n }\n }\n\n back() {\n if (this._historyIndex > 0) {\n this._historyIndex--;\n this._subject.next({\n 'url': this.path(),\n 'state': this.getState(),\n 'pop': true,\n 'type': 'popstate',\n });\n }\n }\n\n historyGo(relativePosition: number = 0): void {\n const nextPageIndex = this._historyIndex + relativePosition;\n if (nextPageIndex >= 0 && nextPageIndex < this._history.length) {\n this._historyIndex = nextPageIndex;\n this._subject.next({\n 'url': this.path(),\n 'state': this.getState(),\n 'pop': true,\n 'type': 'popstate',\n });\n }\n }\n\n onUrlChange(fn: (url: string, state: unknown) => void): VoidFunction {\n this._urlChangeListeners.push(fn);\n\n this._urlChangeSubscription ??= this.subscribe((v) => {\n this._notifyUrlChangeListeners(v.url, v.state);\n });\n\n return () => {\n const fnIndex = this._urlChangeListeners.indexOf(fn);\n this._urlChangeListeners.splice(fnIndex, 1);\n\n if (this._urlChangeListeners.length === 0) {\n this._urlChangeSubscription?.unsubscribe();\n this._urlChangeSubscription = null;\n }\n };\n }\n\n /** @internal */\n _notifyUrlChangeListeners(url: string = '', state: unknown) {\n this._urlChangeListeners.forEach((fn) => fn(url, state));\n }\n\n subscribe(\n onNext: (value: any) => void,\n onThrow?: ((error: any) => void) | null,\n onReturn?: (() => void) | null,\n ): SubscriptionLike {\n return this._subject.subscribe({\n next: onNext,\n error: onThrow ?? undefined,\n complete: onReturn ?? undefined,\n });\n }\n\n normalize(url: string): string {\n return null!;\n }\n\n private pushHistory(path: string, query: string, state: any) {\n if (this._historyIndex > 0) {\n this._history.splice(this._historyIndex + 1);\n }\n this._history.push(new LocationState(path, query, state));\n this._historyIndex = this._history.length - 1;\n }\n}\n\nclass LocationState {\n constructor(\n public path: string,\n public query: string,\n public state: any,\n ) {}\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {LocationStrategy} from '@angular/common';\nimport {Injectable} from '@angular/core';\nimport {Subject} from 'rxjs';\n\n/**\n * A mock implementation of {@link LocationStrategy} that allows tests to fire simulated\n * location events.\n *\n * @publicApi\n */\n@Injectable()\nexport class MockLocationStrategy extends LocationStrategy {\n internalBaseHref: string = '/';\n internalPath: string = '/';\n internalTitle: string = '';\n urlChanges: string[] = [];\n /** @internal */\n _subject = new Subject<_MockPopStateEvent>();\n private stateChanges: any[] = [];\n constructor() {\n super();\n }\n\n simulatePopState(url: string): void {\n this.internalPath = url;\n this._subject.next(new _MockPopStateEvent(this.path()));\n }\n\n override path(includeHash: boolean = false): string {\n return this.internalPath;\n }\n\n override prepareExternalUrl(internal: string): string {\n if (internal.startsWith('/') && this.internalBaseHref.endsWith('/')) {\n return this.internalBaseHref + internal.substring(1);\n }\n return this.internalBaseHref + internal;\n }\n\n override pushState(ctx: any, title: string, path: string, query: string): void {\n // Add state change to changes array\n this.stateChanges.push(ctx);\n\n this.internalTitle = title;\n\n const url = path + (query.length > 0 ? '?' + query : '');\n this.internalPath = url;\n\n const externalUrl = this.prepareExternalUrl(url);\n this.urlChanges.push(externalUrl);\n }\n\n override replaceState(ctx: any, title: string, path: string, query: string): void {\n // Reset the last index of stateChanges to the ctx (state) object\n this.stateChanges[(this.stateChanges.length || 1) - 1] = ctx;\n\n this.internalTitle = title;\n\n const url = path + (query.length > 0 ? '?' + query : '');\n this.internalPath = url;\n\n const externalUrl = this.prepareExternalUrl(url);\n this.urlChanges.push('replace: ' + externalUrl);\n }\n\n override onPopState(fn: (value: any) => void): void {\n this._subject.subscribe({next: fn});\n }\n\n override getBaseHref(): string {\n return this.internalBaseHref;\n }\n\n override back(): void {\n if (this.urlChanges.length > 0) {\n this.urlChanges.pop();\n this.stateChanges.pop();\n const nextUrl = this.urlChanges.length > 0 ? this.urlChanges[this.urlChanges.length - 1] : '';\n this.simulatePopState(nextUrl);\n }\n }\n\n override forward(): void {\n throw 'not implemented';\n }\n\n override getState(): unknown {\n return this.stateChanges[(this.stateChanges.length || 1) - 1];\n }\n}\n\nclass _MockPopStateEvent {\n pop: boolean = true;\n type: string = 'popstate';\n constructor(public newUrl: string) {}\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {Location, LocationStrategy} from '../../index';\nimport {Provider} from '@angular/core';\n\nimport {SpyLocation} from './location_mock';\nimport {MockLocationStrategy} from './mock_location_strategy';\n\n/**\n * Returns mock providers for the `Location` and `LocationStrategy` classes.\n * The mocks are helpful in tests to fire simulated location events.\n *\n * @publicApi\n */\nexport function provideLocationMocks(): Provider[] {\n return [\n {provide: Location, useClass: SpyLocation},\n {provide: LocationStrategy, useClass: MockLocationStrategy},\n ];\n}\n"],"names":["urlParse","parseUrl","urlStr","baseHref","verifyProtocol","serverBase","test","parsedUrl","URL","e","result","exec","Error","hostSplit","split","protocol","hostname","port","pathname","search","hash","indexOf","substring","length","MOCK_PLATFORM_LOCATION_CONFIG","InjectionToken","MockPlatformLocation","hashUpdate","Subject","popStateSubject","urlChangeIndex","urlChanges","state","constructor","config","appBaseHref","parsedChanges","parseChanges","startUrl","getBaseHrefFromDOM","onPopState","fn","subscription","subscribe","unsubscribe","onHashChange","href","url","JSON","parse","stringify","replaceState","title","newUrl","parsedState","pushState","splice","push","forward","oldUrl","oldHash","emitEvents","back","historyGo","relativePosition","nextPageIndex","getState","next","type","ɵfac","i0","ɵɵngDeclareFactory","minVersion","version","ngImport","optional","target","ɵɵFactoryTarget","Injectable","decorators","Inject","Optional","FakeNavigationPlatformLocation","_platformNavigation","platformNavigation","inject","PlatformNavigation","FakeNavigation","window","addEventListener","removeEventListener","currentEntry","go","getHistoryState","deps","FAKE_NAVIGATION","providedIn","factory","baseFallback","fakeNavigation","DOCUMENT","setSynchronousTraversalsForTesting","provideFakePlatformNavigation","provide","useFactory","PlatformLocation","useClass","SpyLocation","_history","LocationState","_historyIndex","_subject","_basePath","_locationStrategy","_urlChangeListeners","_urlChangeSubscription","ngOnDestroy","setInitialPath","path","setBaseHref","isCurrentPathEqualTo","query","givenPath","endsWith","currPath","simulateUrlPop","simulateHashChange","prepareExternalUrl","pushHistory","startsWith","locationState","_notifyUrlChangeListeners","normalizeQueryParams","history","onUrlChange","v","fnIndex","forEach","onNext","onThrow","onReturn","error","undefined","complete","normalize","MockLocationStrategy","LocationStrategy","internalBaseHref","internalPath","internalTitle","stateChanges","simulatePopState","_MockPopStateEvent","includeHash","internal","ctx","externalUrl","getBaseHref","pop","nextUrl","provideLocationMocks","Location"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Angular v21.1.0-next.0
2
+ * @license Angular v21.1.0-next.2
3
3
  * (c) 2010-2025 Google LLC. https://angular.dev/
4
4
  * License: MIT
5
5
  */
@@ -9,7 +9,8 @@ import { ɵisPromise as _isPromise, InjectionToken, NgModule, inject } from '@an
9
9
  import { ReplaySubject } from 'rxjs';
10
10
  import { UpgradeModule } from '@angular/upgrade/static';
11
11
  import { CommonModule, HashLocationStrategy } from './_common_module-chunk.mjs';
12
- import { Location, LocationStrategy, APP_BASE_HREF, PlatformLocation, PathLocationStrategy } from './_location-chunk.mjs';
12
+ import { Location, LocationStrategy, APP_BASE_HREF, PathLocationStrategy } from './_location-chunk.mjs';
13
+ import { PlatformLocation } from './_platform_location-chunk.mjs';
13
14
 
14
15
  function deepEqual(a, b) {
15
16
  if (a === b) {
@@ -574,8 +575,8 @@ function encodeUriQuery(val, pctEncodeSpaces = false) {
574
575
  return encodeURIComponent(val).replace(/%40/g, '@').replace(/%3A/gi, ':').replace(/%24/g, '$').replace(/%2C/gi, ',').replace(/%3B/gi, ';').replace(/%20/g, pctEncodeSpaces ? '%20' : '+');
575
576
  }
576
577
 
577
- const LOCATION_UPGRADE_CONFIGURATION = new InjectionToken(typeof ngDevMode !== undefined && ngDevMode ? 'LOCATION_UPGRADE_CONFIGURATION' : '');
578
- const APP_BASE_HREF_RESOLVED = new InjectionToken(typeof ngDevMode !== undefined && ngDevMode ? 'APP_BASE_HREF_RESOLVED' : '');
578
+ const LOCATION_UPGRADE_CONFIGURATION = new InjectionToken(typeof ngDevMode !== 'undefined' && ngDevMode ? 'LOCATION_UPGRADE_CONFIGURATION' : '');
579
+ const APP_BASE_HREF_RESOLVED = new InjectionToken(typeof ngDevMode !== 'undefined' && ngDevMode ? 'APP_BASE_HREF_RESOLVED' : '');
579
580
  class LocationUpgradeModule {
580
581
  static config(config) {
581
582
  return {
@@ -600,7 +601,7 @@ class LocationUpgradeModule {
600
601
  }
601
602
  static ɵfac = i0.ɵɵngDeclareFactory({
602
603
  minVersion: "12.0.0",
603
- version: "21.1.0-next.0",
604
+ version: "21.1.0-next.2",
604
605
  ngImport: i0,
605
606
  type: LocationUpgradeModule,
606
607
  deps: [],
@@ -608,14 +609,14 @@ class LocationUpgradeModule {
608
609
  });
609
610
  static ɵmod = i0.ɵɵngDeclareNgModule({
610
611
  minVersion: "14.0.0",
611
- version: "21.1.0-next.0",
612
+ version: "21.1.0-next.2",
612
613
  ngImport: i0,
613
614
  type: LocationUpgradeModule,
614
615
  imports: [CommonModule]
615
616
  });
616
617
  static ɵinj = i0.ɵɵngDeclareInjector({
617
618
  minVersion: "12.0.0",
618
- version: "21.1.0-next.0",
619
+ version: "21.1.0-next.2",
619
620
  ngImport: i0,
620
621
  type: LocationUpgradeModule,
621
622
  imports: [CommonModule]
@@ -623,7 +624,7 @@ class LocationUpgradeModule {
623
624
  }
624
625
  i0.ɵɵngDeclareClassMetadata({
625
626
  minVersion: "12.0.0",
626
- version: "21.1.0-next.0",
627
+ version: "21.1.0-next.2",
627
628
  ngImport: i0,
628
629
  type: LocationUpgradeModule,
629
630
  decorators: [{