@angular/common 21.0.0 → 21.0.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.
- package/fesm2022/_common_module-chunk.mjs +86 -86
- package/fesm2022/_common_module-chunk.mjs.map +1 -1
- package/fesm2022/_location-chunk.mjs +16 -16
- package/fesm2022/_location-chunk.mjs.map +1 -1
- package/fesm2022/_module-chunk.mjs +48 -48
- package/fesm2022/_module-chunk.mjs.map +1 -1
- package/fesm2022/_platform_navigation-chunk.mjs +4 -4
- package/fesm2022/_platform_navigation-chunk.mjs.map +1 -1
- package/fesm2022/_xhr-chunk.mjs +1 -1
- package/fesm2022/_xhr-chunk.mjs.map +1 -1
- package/fesm2022/common.mjs +17 -17
- package/fesm2022/common.mjs.map +1 -1
- package/fesm2022/http-testing.mjs +8 -8
- package/fesm2022/http-testing.mjs.map +1 -1
- package/fesm2022/http.mjs +29 -28
- package/fesm2022/http.mjs.map +1 -1
- package/fesm2022/testing.mjs +13 -13
- package/fesm2022/testing.mjs.map +1 -1
- package/fesm2022/upgrade.mjs +5 -5
- package/fesm2022/upgrade.mjs.map +1 -1
- package/package.json +2 -2
- package/types/_common_module-chunk.d.ts +1 -1
- package/types/_module-chunk.d.ts +1 -1
- package/types/_platform_location-chunk.d.ts +1 -1
- package/types/_xhr-chunk.d.ts +1 -1
- package/types/common.d.ts +1 -1
- package/types/http-testing.d.ts +1 -1
- package/types/http.d.ts +5 -1
- package/types/testing.d.ts +1 -1
- package/types/upgrade.d.ts +1 -1
package/fesm2022/testing.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Angular v21.0.
|
|
2
|
+
* @license Angular v21.0.2
|
|
3
3
|
* (c) 2010-2025 Google LLC. https://angular.dev/
|
|
4
4
|
* License: MIT
|
|
5
5
|
*/
|
|
@@ -201,7 +201,7 @@ class MockPlatformLocation {
|
|
|
201
201
|
}
|
|
202
202
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
203
203
|
minVersion: "12.0.0",
|
|
204
|
-
version: "21.0.
|
|
204
|
+
version: "21.0.2",
|
|
205
205
|
ngImport: i0,
|
|
206
206
|
type: MockPlatformLocation,
|
|
207
207
|
deps: [{
|
|
@@ -212,14 +212,14 @@ class MockPlatformLocation {
|
|
|
212
212
|
});
|
|
213
213
|
static ɵprov = i0.ɵɵngDeclareInjectable({
|
|
214
214
|
minVersion: "12.0.0",
|
|
215
|
-
version: "21.0.
|
|
215
|
+
version: "21.0.2",
|
|
216
216
|
ngImport: i0,
|
|
217
217
|
type: MockPlatformLocation
|
|
218
218
|
});
|
|
219
219
|
}
|
|
220
220
|
i0.ɵɵngDeclareClassMetadata({
|
|
221
221
|
minVersion: "12.0.0",
|
|
222
|
-
version: "21.0.
|
|
222
|
+
version: "21.0.2",
|
|
223
223
|
ngImport: i0,
|
|
224
224
|
type: MockPlatformLocation,
|
|
225
225
|
decorators: [{
|
|
@@ -299,7 +299,7 @@ class FakeNavigationPlatformLocation {
|
|
|
299
299
|
}
|
|
300
300
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
301
301
|
minVersion: "12.0.0",
|
|
302
|
-
version: "21.0.
|
|
302
|
+
version: "21.0.2",
|
|
303
303
|
ngImport: i0,
|
|
304
304
|
type: FakeNavigationPlatformLocation,
|
|
305
305
|
deps: [],
|
|
@@ -307,14 +307,14 @@ class FakeNavigationPlatformLocation {
|
|
|
307
307
|
});
|
|
308
308
|
static ɵprov = i0.ɵɵngDeclareInjectable({
|
|
309
309
|
minVersion: "12.0.0",
|
|
310
|
-
version: "21.0.
|
|
310
|
+
version: "21.0.2",
|
|
311
311
|
ngImport: i0,
|
|
312
312
|
type: FakeNavigationPlatformLocation
|
|
313
313
|
});
|
|
314
314
|
}
|
|
315
315
|
i0.ɵɵngDeclareClassMetadata({
|
|
316
316
|
minVersion: "12.0.0",
|
|
317
|
-
version: "21.0.
|
|
317
|
+
version: "21.0.2",
|
|
318
318
|
ngImport: i0,
|
|
319
319
|
type: FakeNavigationPlatformLocation,
|
|
320
320
|
decorators: [{
|
|
@@ -498,7 +498,7 @@ class SpyLocation {
|
|
|
498
498
|
}
|
|
499
499
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
500
500
|
minVersion: "12.0.0",
|
|
501
|
-
version: "21.0.
|
|
501
|
+
version: "21.0.2",
|
|
502
502
|
ngImport: i0,
|
|
503
503
|
type: SpyLocation,
|
|
504
504
|
deps: [],
|
|
@@ -506,14 +506,14 @@ class SpyLocation {
|
|
|
506
506
|
});
|
|
507
507
|
static ɵprov = i0.ɵɵngDeclareInjectable({
|
|
508
508
|
minVersion: "12.0.0",
|
|
509
|
-
version: "21.0.
|
|
509
|
+
version: "21.0.2",
|
|
510
510
|
ngImport: i0,
|
|
511
511
|
type: SpyLocation
|
|
512
512
|
});
|
|
513
513
|
}
|
|
514
514
|
i0.ɵɵngDeclareClassMetadata({
|
|
515
515
|
minVersion: "12.0.0",
|
|
516
|
-
version: "21.0.
|
|
516
|
+
version: "21.0.2",
|
|
517
517
|
ngImport: i0,
|
|
518
518
|
type: SpyLocation,
|
|
519
519
|
decorators: [{
|
|
@@ -594,7 +594,7 @@ class MockLocationStrategy extends LocationStrategy {
|
|
|
594
594
|
}
|
|
595
595
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
596
596
|
minVersion: "12.0.0",
|
|
597
|
-
version: "21.0.
|
|
597
|
+
version: "21.0.2",
|
|
598
598
|
ngImport: i0,
|
|
599
599
|
type: MockLocationStrategy,
|
|
600
600
|
deps: [],
|
|
@@ -602,14 +602,14 @@ class MockLocationStrategy extends LocationStrategy {
|
|
|
602
602
|
});
|
|
603
603
|
static ɵprov = i0.ɵɵngDeclareInjectable({
|
|
604
604
|
minVersion: "12.0.0",
|
|
605
|
-
version: "21.0.
|
|
605
|
+
version: "21.0.2",
|
|
606
606
|
ngImport: i0,
|
|
607
607
|
type: MockLocationStrategy
|
|
608
608
|
});
|
|
609
609
|
}
|
|
610
610
|
i0.ɵɵngDeclareClassMetadata({
|
|
611
611
|
minVersion: "12.0.0",
|
|
612
|
-
version: "21.0.
|
|
612
|
+
version: "21.0.2",
|
|
613
613
|
ngImport: i0,
|
|
614
614
|
type: MockLocationStrategy,
|
|
615
615
|
decorators: [{
|
package/fesm2022/testing.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testing.mjs","sources":["../../../../../k8-fastbuild-ST-199a4f3c4e20/bin/packages/common/testing/src/mock_platform_location.ts","../../../../../k8-fastbuild-ST-199a4f3c4e20/bin/packages/common/testing/src/navigation/provide_fake_platform_navigation.ts","../../../../../k8-fastbuild-ST-199a4f3c4e20/bin/packages/common/testing/src/location_mock.ts","../../../../../k8-fastbuild-ST-199a4f3c4e20/bin/packages/common/testing/src/mock_location_strategy.ts","../../../../../k8-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-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":";;;;;;;;;;;;;;;AAsCA,MAAMA,QAAQ,GAAG,+DAA+D;AAEhF,SAASC,QAAQA,CAACC,MAAc,EAAEC,QAAgB,EAAA;EAChD,MAAMC,cAAc,GAAG,wBAAwB;AAC/C,EAAA,IAAIC,UAA8B;AAIlC,EAAA,IAAI,CAACD,cAAc,CAACE,IAAI,CAACJ,MAAM,CAAC,EAAE;AAChCG,IAAAA,UAAU,GAAG,mBAAmB;AAClC;AACA,EAAA,IAAIE,SAOH;EACD,IAAI;AACFA,IAAAA,SAAS,GAAG,IAAIC,GAAG,CAACN,MAAM,EAAEG,UAAU,CAAC;GACzC,CAAE,OAAOI,CAAC,EAAE;IACV,MAAMC,MAAM,GAAGV,QAAQ,CAACW,IAAI,CAACN,UAAU,IAAI,EAAE,GAAGH,MAAM,CAAC;IACvD,IAAI,CAACQ,MAAM,EAAE;MACX,MAAM,IAAIE,KAAK,CAAC,CAAA,aAAA,EAAgBV,MAAM,CAAeC,YAAAA,EAAAA,QAAQ,EAAE,CAAC;AAClE;IACA,MAAMU,SAAS,GAAGH,MAAM,CAAC,CAAC,CAAC,CAACI,KAAK,CAAC,GAAG,CAAC;AACtCP,IAAAA,SAAS,GAAG;AACVQ,MAAAA,QAAQ,EAAEL,MAAM,CAAC,CAAC,CAAC;AACnBM,MAAAA,QAAQ,EAAEH,SAAS,CAAC,CAAC,CAAC;AACtBI,MAAAA,IAAI,EAAEJ,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE;AACxBK,MAAAA,QAAQ,EAAER,MAAM,CAAC,CAAC,CAAC;AACnBS,MAAAA,MAAM,EAAET,MAAM,CAAC,CAAC,CAAC;MACjBU,IAAI,EAAEV,MAAM,CAAC,CAAC;KACf;AACH;AACA,EAAA,IAAIH,SAAS,CAACW,QAAQ,IAAIX,SAAS,CAACW,QAAQ,CAACG,OAAO,CAAClB,QAAQ,CAAC,KAAK,CAAC,EAAE;AACpEI,IAAAA,SAAS,CAACW,QAAQ,GAAGX,SAAS,CAACW,QAAQ,CAACI,SAAS,CAACnB,QAAQ,CAACoB,MAAM,CAAC;AACpE;EACA,OAAO;IACLP,QAAQ,EAAG,CAACX,UAAU,IAAIE,SAAS,CAACS,QAAQ,IAAK,EAAE;IACnDD,QAAQ,EAAG,CAACV,UAAU,IAAIE,SAAS,CAACQ,QAAQ,IAAK,EAAE;IACnDE,IAAI,EAAG,CAACZ,UAAU,IAAIE,SAAS,CAACU,IAAI,IAAK,EAAE;AAC3CC,IAAAA,QAAQ,EAAEX,SAAS,CAACW,QAAQ,IAAI,GAAG;AACnCC,IAAAA,MAAM,EAAEZ,SAAS,CAACY,MAAM,IAAI,EAAE;AAC9BC,IAAAA,IAAI,EAAEb,SAAS,CAACa,IAAI,IAAI;GACzB;AACH;MAiBaI,6BAA6B,GAAG,IAAIC,cAAc,CAC7D,+BAA+B;MASpBC,oBAAoB,CAAA;AACvBvB,EAAAA,QAAQ,GAAW,EAAE;AACrBwB,EAAAA,UAAU,GAAG,IAAIC,OAAO,EAAuB;AAC/CC,EAAAA,eAAe,GAAG,IAAID,OAAO,EAAuB;AACpDE,EAAAA,cAAc,GAAW,CAAC;AAC1BC,EAAAA,UAAU,GAQZ,CAAC;AAACf,IAAAA,QAAQ,EAAE,EAAE;AAAED,IAAAA,QAAQ,EAAE,EAAE;AAAEE,IAAAA,IAAI,EAAE,EAAE;AAAEC,IAAAA,QAAQ,EAAE,GAAG;AAAEC,IAAAA,MAAM,EAAE,EAAE;AAAEC,IAAAA,IAAI,EAAE,EAAE;AAAEY,IAAAA,KAAK,EAAE;AAAI,GAAC,CAAC;EAEhGC,WAAAA,CACqDC,MAAmC,EAAA;AAEtF,IAAA,IAAIA,MAAM,EAAE;AACV,MAAA,IAAI,CAAC/B,QAAQ,GAAG+B,MAAM,CAACC,WAAW,IAAI,EAAE;AAExC,MAAA,MAAMC,aAAa,GAAG,IAAI,CAACC,YAAY,CACrC,IAAI,EACJH,MAAM,CAACI,QAAQ,IAAI,iBAAiB,EACpC,IAAI,CAACnC,QAAQ,CACd;AACD,MAAA,IAAI,CAAC4B,UAAU,CAAC,CAAC,CAAC,GAAG;QAAC,GAAGK;OAAc;AACzC;AACF;EAEA,IAAIpB,QAAQA,GAAA;IACV,OAAO,IAAI,CAACe,UAAU,CAAC,IAAI,CAACD,cAAc,CAAC,CAACd,QAAQ;AACtD;EACA,IAAID,QAAQA,GAAA;IACV,OAAO,IAAI,CAACgB,UAAU,CAAC,IAAI,CAACD,cAAc,CAAC,CAACf,QAAQ;AACtD;EACA,IAAIE,IAAIA,GAAA;IACN,OAAO,IAAI,CAACc,UAAU,CAAC,IAAI,CAACD,cAAc,CAAC,CAACb,IAAI;AAClD;EACA,IAAIC,QAAQA,GAAA;IACV,OAAO,IAAI,CAACa,UAAU,CAAC,IAAI,CAACD,cAAc,CAAC,CAACZ,QAAQ;AACtD;EACA,IAAIC,MAAMA,GAAA;IACR,OAAO,IAAI,CAACY,UAAU,CAAC,IAAI,CAACD,cAAc,CAAC,CAACX,MAAM;AACpD;EACA,IAAIC,IAAIA,GAAA;IACN,OAAO,IAAI,CAACW,UAAU,CAAC,IAAI,CAACD,cAAc,CAAC,CAACV,IAAI;AAClD;EACA,IAAIY,KAAKA,GAAA;IACP,OAAO,IAAI,CAACD,UAAU,CAAC,IAAI,CAACD,cAAc,CAAC,CAACE,KAAK;AACnD;AAEAO,EAAAA,kBAAkBA,GAAA;IAChB,OAAO,IAAI,CAACpC,QAAQ;AACtB;EAEAqC,UAAUA,CAACC,EAA0B,EAAA;IACnC,MAAMC,YAAY,GAAG,IAAI,CAACb,eAAe,CAACc,SAAS,CAACF,EAAE,CAAC;AACvD,IAAA,OAAO,MAAMC,YAAY,CAACE,WAAW,EAAE;AACzC;EAEAC,YAAYA,CAACJ,EAA0B,EAAA;IACrC,MAAMC,YAAY,GAAG,IAAI,CAACf,UAAU,CAACgB,SAAS,CAACF,EAAE,CAAC;AAClD,IAAA,OAAO,MAAMC,YAAY,CAACE,WAAW,EAAE;AACzC;EAEA,IAAIE,IAAIA,GAAA;IACN,IAAIC,GAAG,GAAG,CAAG,EAAA,IAAI,CAAChC,QAAQ,CAAA,EAAA,EAAK,IAAI,CAACC,QAAQ,CAAA,EAAG,IAAI,CAACC,IAAI,GAAG,GAAG,GAAG,IAAI,CAACA,IAAI,GAAG,EAAE,CAAE,CAAA;IACjF8B,GAAG,IAAI,GAAG,IAAI,CAAC7B,QAAQ,KAAK,GAAG,GAAG,EAAE,GAAG,IAAI,CAACA,QAAQ,GAAG,IAAI,CAACC,MAAM,CAAG,EAAA,IAAI,CAACC,IAAI,CAAE,CAAA;AAChF,IAAA,OAAO2B,GAAG;AACZ;EAEA,IAAIA,GAAGA,GAAA;AACL,IAAA,OAAO,CAAG,EAAA,IAAI,CAAC7B,QAAQ,CAAG,EAAA,IAAI,CAACC,MAAM,CAAG,EAAA,IAAI,CAACC,IAAI,CAAE,CAAA;AACrD;EAEQiB,YAAYA,CAACL,KAAc,EAAEe,GAAW,EAAE5C,WAAmB,EAAE,EAAA;IAErE6B,KAAK,GAAGgB,IAAI,CAACC,KAAK,CAACD,IAAI,CAACE,SAAS,CAAClB,KAAK,CAAC,CAAC;IACzC,OAAO;AAAC,MAAA,GAAG/B,QAAQ,CAAC8C,GAAG,EAAE5C,QAAQ,CAAC;AAAE6B,MAAAA;KAAM;AAC5C;AAEAmB,EAAAA,YAAYA,CAACnB,KAAU,EAAEoB,KAAa,EAAEC,MAAc,EAAA;IACpD,MAAM;MAACnC,QAAQ;MAAEC,MAAM;AAAEa,MAAAA,KAAK,EAAEsB,WAAW;AAAElC,MAAAA;KAAK,GAAG,IAAI,CAACiB,YAAY,CAACL,KAAK,EAAEqB,MAAM,CAAC;AAErF,IAAA,IAAI,CAACtB,UAAU,CAAC,IAAI,CAACD,cAAc,CAAC,GAAG;AACrC,MAAA,GAAG,IAAI,CAACC,UAAU,CAAC,IAAI,CAACD,cAAc,CAAC;MACvCZ,QAAQ;MACRC,MAAM;MACNC,IAAI;AACJY,MAAAA,KAAK,EAAEsB;KACR;AACH;AAEAC,EAAAA,SAASA,CAACvB,KAAU,EAAEoB,KAAa,EAAEC,MAAc,EAAA;IACjD,MAAM;MAACnC,QAAQ;MAAEC,MAAM;AAAEa,MAAAA,KAAK,EAAEsB,WAAW;AAAElC,MAAAA;KAAK,GAAG,IAAI,CAACiB,YAAY,CAACL,KAAK,EAAEqB,MAAM,CAAC;AACrF,IAAA,IAAI,IAAI,CAACvB,cAAc,GAAG,CAAC,EAAE;MAC3B,IAAI,CAACC,UAAU,CAACyB,MAAM,CAAC,IAAI,CAAC1B,cAAc,GAAG,CAAC,CAAC;AACjD;AACA,IAAA,IAAI,CAACC,UAAU,CAAC0B,IAAI,CAAC;AACnB,MAAA,GAAG,IAAI,CAAC1B,UAAU,CAAC,IAAI,CAACD,cAAc,CAAC;MACvCZ,QAAQ;MACRC,MAAM;MACNC,IAAI;AACJY,MAAAA,KAAK,EAAEsB;AACR,KAAA,CAAC;IACF,IAAI,CAACxB,cAAc,GAAG,IAAI,CAACC,UAAU,CAACR,MAAM,GAAG,CAAC;AAClD;AAEAmC,EAAAA,OAAOA,GAAA;AACL,IAAA,MAAMC,MAAM,GAAG,IAAI,CAACZ,GAAG;AACvB,IAAA,MAAMa,OAAO,GAAG,IAAI,CAACxC,IAAI;IACzB,IAAI,IAAI,CAACU,cAAc,GAAG,IAAI,CAACC,UAAU,CAACR,MAAM,EAAE;MAChD,IAAI,CAACO,cAAc,EAAE;AACvB;AACA,IAAA,IAAI,CAAC+B,UAAU,CAACD,OAAO,EAAED,MAAM,CAAC;AAClC;AAEAG,EAAAA,IAAIA,GAAA;AACF,IAAA,MAAMH,MAAM,GAAG,IAAI,CAACZ,GAAG;AACvB,IAAA,MAAMa,OAAO,GAAG,IAAI,CAACxC,IAAI;AACzB,IAAA,IAAI,IAAI,CAACU,cAAc,GAAG,CAAC,EAAE;MAC3B,IAAI,CAACA,cAAc,EAAE;AACvB;AACA,IAAA,IAAI,CAAC+B,UAAU,CAACD,OAAO,EAAED,MAAM,CAAC;AAClC;AAEAI,EAAAA,SAASA,CAACC,mBAA2B,CAAC,EAAA;AACpC,IAAA,MAAML,MAAM,GAAG,IAAI,CAACZ,GAAG;AACvB,IAAA,MAAMa,OAAO,GAAG,IAAI,CAACxC,IAAI;AACzB,IAAA,MAAM6C,aAAa,GAAG,IAAI,CAACnC,cAAc,GAAGkC,gBAAgB;IAC5D,IAAIC,aAAa,IAAI,CAAC,IAAIA,aAAa,GAAG,IAAI,CAAClC,UAAU,CAACR,MAAM,EAAE;MAChE,IAAI,CAACO,cAAc,GAAGmC,aAAa;AACrC;AACA,IAAA,IAAI,CAACJ,UAAU,CAACD,OAAO,EAAED,MAAM,CAAC;AAClC;AAEAO,EAAAA,QAAQA,GAAA;IACN,OAAO,IAAI,CAAClC,KAAK;AACnB;AAYQ6B,EAAAA,UAAUA,CAACD,OAAe,EAAED,MAAc,EAAA;AAChD,IAAA,IAAI,CAAC9B,eAAe,CAACsC,IAAI,CAAC;AACxBC,MAAAA,IAAI,EAAE,UAAU;AAChBpC,MAAAA,KAAK,EAAE,IAAI,CAACkC,QAAQ,EAAE;MACtBP,MAAM;MACNN,MAAM,EAAE,IAAI,CAACN;AACS,KAAA,CAAC;AACzB,IAAA,IAAIa,OAAO,KAAK,IAAI,CAACxC,IAAI,EAAE;AACzB,MAAA,IAAI,CAACO,UAAU,CAACwC,IAAI,CAAC;AACnBC,QAAAA,IAAI,EAAE,YAAY;AAClBpC,QAAAA,KAAK,EAAE,IAAI;QACX2B,MAAM;QACNN,MAAM,EAAE,IAAI,CAACN;AACS,OAAA,CAAC;AAC3B;AACF;AAtKW,EAAA,OAAAsB,IAAA,GAAAC,EAAA,CAAAC,kBAAA,CAAA;AAAAC,IAAAA,UAAA,EAAA,QAAA;AAAAC,IAAAA,OAAA,EAAA,mBAAA;AAAAC,IAAAA,QAAA,EAAAJ,EAAA;AAAAF,IAAAA,IAAA,EAAA1C,oBAAoB;;aAgBrBF,6BAA6B;AAAAmD,MAAAA,QAAA,EAAA;AAAA,KAAA,CAAA;AAAAC,IAAAA,MAAA,EAAAN,EAAA,CAAAO,eAAA,CAAAC;AAAA,GAAA,CAAA;;;;;UAhB5BpD;AAAoB,GAAA,CAAA;;;;;;QAApBA,oBAAoB;AAAAqD,EAAAA,UAAA,EAAA,CAAA;UADhCD;;;;;YAiBIE,MAAM;aAACxD,6BAA6B;;YAAGyD;;;;MA6J/BC,8BAA8B,CAAA;EACxBC,mBAAmB;AAEpClD,EAAAA,WAAAA,GAAA;AACE,IAAA,MAAMmD,kBAAkB,GAAGC,MAAM,CAACC,kBAAkB,CAAC;AACrD,IAAA,IAAI,EAAEF,kBAAkB,YAAYG,eAAc,CAAC,EAAE;AACnD,MAAA,MAAM,IAAI3E,KAAK,CACb,oEAAoE,GAClE,uEAAuE,CAC1E;AACH;IACA,IAAI,CAACuE,mBAAmB,GAAGC,kBAAkB;AAC/C;AAEQlD,EAAAA,MAAM,GAAGmD,MAAM,CAAC7D,6BAA6B,EAAE;AAACmD,IAAAA,QAAQ,EAAE;AAAK,GAAA,CAAC;AACxEpC,EAAAA,kBAAkBA,GAAA;AAChB,IAAA,OAAO,IAAI,CAACL,MAAM,EAAEC,WAAW,IAAI,EAAE;AACvC;EAEAK,UAAUA,CAACC,EAA0B,EAAA;IACnC,IAAI,CAAC0C,mBAAmB,CAACK,MAAM,CAACC,gBAAgB,CAAC,UAAU,EAAEhD,EAAE,CAAC;AAChE,IAAA,OAAO,MAAM,IAAI,CAAC0C,mBAAmB,CAACK,MAAM,CAACE,mBAAmB,CAAC,UAAU,EAAEjD,EAAE,CAAC;AAClF;EAEAI,YAAYA,CAACJ,EAA0B,EAAA;IACrC,IAAI,CAAC0C,mBAAmB,CAACK,MAAM,CAACC,gBAAgB,CAAC,YAAY,EAAEhD,EAAS,CAAC;AACzE,IAAA,OAAO,MAAM,IAAI,CAAC0C,mBAAmB,CAACK,MAAM,CAACE,mBAAmB,CAAC,YAAY,EAAEjD,EAAS,CAAC;AAC3F;EAEA,IAAIK,IAAIA,GAAA;AACN,IAAA,OAAO,IAAI,CAACqC,mBAAmB,CAACQ,YAAY,CAAC5C,GAAI;AACnD;EACA,IAAIhC,QAAQA,GAAA;AACV,IAAA,OAAO,IAAIP,GAAG,CAAC,IAAI,CAAC2E,mBAAmB,CAACQ,YAAY,CAAC5C,GAAI,CAAC,CAAChC,QAAQ;AACrE;EACA,IAAIC,QAAQA,GAAA;AACV,IAAA,OAAO,IAAIR,GAAG,CAAC,IAAI,CAAC2E,mBAAmB,CAACQ,YAAY,CAAC5C,GAAI,CAAC,CAAC/B,QAAQ;AACrE;EACA,IAAIC,IAAIA,GAAA;AACN,IAAA,OAAO,IAAIT,GAAG,CAAC,IAAI,CAAC2E,mBAAmB,CAACQ,YAAY,CAAC5C,GAAI,CAAC,CAAC9B,IAAI;AACjE;EACA,IAAIC,QAAQA,GAAA;AACV,IAAA,OAAO,IAAIV,GAAG,CAAC,IAAI,CAAC2E,mBAAmB,CAACQ,YAAY,CAAC5C,GAAI,CAAC,CAAC7B,QAAQ;AACrE;EACA,IAAIC,MAAMA,GAAA;AACR,IAAA,OAAO,IAAIX,GAAG,CAAC,IAAI,CAAC2E,mBAAmB,CAACQ,YAAY,CAAC5C,GAAI,CAAC,CAAC5B,MAAM;AACnE;EACA,IAAIC,IAAIA,GAAA;AACN,IAAA,OAAO,IAAIZ,GAAG,CAAC,IAAI,CAAC2E,mBAAmB,CAACQ,YAAY,CAAC5C,GAAI,CAAC,CAAC3B,IAAI;AACjE;AAEAmC,EAAAA,SAASA,CAACvB,KAAU,EAAEoB,KAAa,EAAEL,GAAW,EAAA;IAC9C,IAAI,CAACoC,mBAAmB,CAAC5B,SAAS,CAACvB,KAAK,EAAEoB,KAAK,EAAEL,GAAG,CAAC;AACvD;AAEAI,EAAAA,YAAYA,CAACnB,KAAU,EAAEoB,KAAa,EAAEL,GAAW,EAAA;IACjD,IAAI,CAACoC,mBAAmB,CAAChC,YAAY,CAACnB,KAAK,EAAEoB,KAAK,EAAEL,GAAG,CAAC;AAC1D;AAEAW,EAAAA,OAAOA,GAAA;AACL,IAAA,IAAI,CAACyB,mBAAmB,CAACzB,OAAO,EAAE;AACpC;AAEAI,EAAAA,IAAIA,GAAA;AACF,IAAA,IAAI,CAACqB,mBAAmB,CAACrB,IAAI,EAAE;AACjC;AAEAC,EAAAA,SAASA,CAACC,mBAA2B,CAAC,EAAA;AACpC,IAAA,IAAI,CAACmB,mBAAmB,CAACS,EAAE,CAAC5B,gBAAgB,CAAC;AAC/C;AAEAE,EAAAA,QAAQA,GAAA;IACN,OAAO,IAAI,CAACiB,mBAAmB,CAACQ,YAAY,CAACE,eAAe,EAAE;AAChE;;;;;UAzEWX,8BAA8B;AAAAY,IAAAA,IAAA,EAAA,EAAA;AAAAlB,IAAAA,MAAA,EAAAN,EAAA,CAAAO,eAAA,CAAAC;AAAA,GAAA,CAAA;;;;;UAA9BI;AAA8B,GAAA,CAAA;;;;;;QAA9BA,8BAA8B;AAAAH,EAAAA,UAAA,EAAA,CAAA;UAD1CD;;;;;AC1QD,MAAMiB,eAAe,GAAG,IAAItE,cAAc,CAAiB,gBAAgB,EAAE;AAC3EuE,EAAAA,UAAU,EAAE,MAAM;EAClBC,OAAO,EAAEA,MAAK;AACZ,IAAA,MAAM/D,MAAM,GAAGmD,MAAM,CAAC7D,6BAA6B,EAAE;AAACmD,MAAAA,QAAQ,EAAE;AAAK,KAAA,CAAC;IACtE,MAAMuB,YAAY,GAAG,iBAAiB;AACtC,IAAA,MAAM5D,QAAQ,GAAG,IAAI9B,GAAG,CAAC0B,MAAM,EAAEI,QAAQ,IAAI4D,YAAY,EAAEA,YAAY,CAAC;AACxE,IAAA,MAAMC,cAAc,GAAG,IAAIZ,eAAc,CAACF,MAAM,CAACe,QAAQ,CAAC,EAAE9D,QAAQ,CAACQ,IAAuB,CAAC;AAC7FqD,IAAAA,cAAc,CAACE,kCAAkC,CAAC,IAAI,CAAC;AACvD,IAAA,OAAOF,cAAc;AACvB;AACD,CAAA,CAAC;SAKcG,6BAA6BA,GAAA;AAC3C,EAAA,OAAO,CACL;AACEC,IAAAA,OAAO,EAAEjB,kBAAkB;AAC3BkB,IAAAA,UAAU,EAAEA,MAAMnB,MAAM,CAACU,eAAe;AACzC,GAAA,EACD;AAACQ,IAAAA,OAAO,EAAEE,gBAAgB;AAAEC,IAAAA,QAAQ,EAAExB;AAA+B,GAAA,CACtE;AACH;;MClBayB,WAAW,CAAA;AACtB5E,EAAAA,UAAU,GAAa,EAAE;EACjB6E,QAAQ,GAAoB,CAAC,IAAIC,aAAa,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;AAC7DC,EAAAA,aAAa,GAAW,CAAC;AAEjCC,EAAAA,QAAQ,GAAG,IAAInF,OAAO,EAAiB;AAEvCoF,EAAAA,SAAS,GAAW,EAAE;AAEtBC,EAAAA,iBAAiB,GAAqB,IAAK;AAE3CC,EAAAA,mBAAmB,GAA8C,EAAE;AAEnEC,EAAAA,sBAAsB,GAA4B,IAAI;AAGtDC,EAAAA,WAAWA,GAAA;AACT,IAAA,IAAI,CAACD,sBAAsB,EAAEvE,WAAW,EAAE;IAC1C,IAAI,CAACsE,mBAAmB,GAAG,EAAE;AAC/B;EAEAG,cAAcA,CAACtE,GAAW,EAAA;IACxB,IAAI,CAAC6D,QAAQ,CAAC,IAAI,CAACE,aAAa,CAAC,CAACQ,IAAI,GAAGvE,GAAG;AAC9C;EAEAwE,WAAWA,CAACxE,GAAW,EAAA;IACrB,IAAI,CAACiE,SAAS,GAAGjE,GAAG;AACtB;AAEAuE,EAAAA,IAAIA,GAAA;IACF,OAAO,IAAI,CAACV,QAAQ,CAAC,IAAI,CAACE,aAAa,CAAC,CAACQ,IAAI;AAC/C;AAEApD,EAAAA,QAAQA,GAAA;IACN,OAAO,IAAI,CAAC0C,QAAQ,CAAC,IAAI,CAACE,aAAa,CAAC,CAAC9E,KAAK;AAChD;AAEAwF,EAAAA,oBAAoBA,CAACF,IAAY,EAAEG,KAAA,GAAgB,EAAE,EAAA;IACnD,MAAMC,SAAS,GAAGJ,IAAI,CAACK,QAAQ,CAAC,GAAG,CAAC,GAAGL,IAAI,CAAChG,SAAS,CAAC,CAAC,EAAEgG,IAAI,CAAC/F,MAAM,GAAG,CAAC,CAAC,GAAG+F,IAAI;AAChF,IAAA,MAAMM,QAAQ,GAAG,IAAI,CAACN,IAAI,EAAE,CAACK,QAAQ,CAAC,GAAG,CAAA,GACrC,IAAI,CAACL,IAAI,EAAE,CAAChG,SAAS,CAAC,CAAC,EAAE,IAAI,CAACgG,IAAI,EAAE,CAAC/F,MAAM,GAAG,CAAC,CAAA,GAC/C,IAAI,CAAC+F,IAAI,EAAE;AAEf,IAAA,OAAOM,QAAQ,IAAIF,SAAS,IAAID,KAAK,CAAClG,MAAM,GAAG,CAAC,GAAG,GAAG,GAAGkG,KAAK,GAAG,EAAE,CAAC;AACtE;EAEAI,cAAcA,CAAC3G,QAAgB,EAAA;AAC7B,IAAA,IAAI,CAAC6F,QAAQ,CAAC5C,IAAI,CAAC;AAAC,MAAA,KAAK,EAAEjD,QAAQ;AAAE,MAAA,KAAK,EAAE,IAAI;AAAE,MAAA,MAAM,EAAE;AAAU,KAAC,CAAC;AACxE;EAEA4G,kBAAkBA,CAAC5G,QAAgB,EAAA;AACjC,IAAA,MAAMoG,IAAI,GAAG,IAAI,CAACS,kBAAkB,CAAC7G,QAAQ,CAAC;IAC9C,IAAI,CAAC8G,WAAW,CAACV,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC;IAEhC,IAAI,CAACvF,UAAU,CAAC0B,IAAI,CAAC,QAAQ,GAAGvC,QAAQ,CAAC;AAGzC,IAAA,IAAI,CAAC6F,QAAQ,CAAC5C,IAAI,CAAC;AAAC,MAAA,KAAK,EAAEjD,QAAQ;AAAE,MAAA,KAAK,EAAE,IAAI;AAAE,MAAA,MAAM,EAAE;AAAU,KAAC,CAAC;AACtE,IAAA,IAAI,CAAC6F,QAAQ,CAAC5C,IAAI,CAAC;AAAC,MAAA,KAAK,EAAEjD,QAAQ;AAAE,MAAA,KAAK,EAAE,IAAI;AAAE,MAAA,MAAM,EAAE;AAAY,KAAC,CAAC;AAC1E;EAEA6G,kBAAkBA,CAAChF,GAAW,EAAA;AAC5B,IAAA,IAAIA,GAAG,CAACxB,MAAM,GAAG,CAAC,IAAI,CAACwB,GAAG,CAACkF,UAAU,CAAC,GAAG,CAAC,EAAE;MAC1ClF,GAAG,GAAG,GAAG,GAAGA,GAAG;AACjB;AACA,IAAA,OAAO,IAAI,CAACiE,SAAS,GAAGjE,GAAG;AAC7B;EAEA6C,EAAEA,CAAC0B,IAAY,EAAEG,QAAgB,EAAE,EAAEzF,QAAa,IAAI,EAAA;AACpDsF,IAAAA,IAAI,GAAG,IAAI,CAACS,kBAAkB,CAACT,IAAI,CAAC;IAEpC,IAAI,CAACU,WAAW,CAACV,IAAI,EAAEG,KAAK,EAAEzF,KAAK,CAAC;IAEpC,MAAMkG,aAAa,GAAG,IAAI,CAACtB,QAAQ,CAAC,IAAI,CAACE,aAAa,GAAG,CAAC,CAAC;IAC3D,IAAIoB,aAAa,CAACZ,IAAI,IAAIA,IAAI,IAAIY,aAAa,CAACT,KAAK,IAAIA,KAAK,EAAE;AAC9D,MAAA;AACF;AAEA,IAAA,MAAM1E,GAAG,GAAGuE,IAAI,IAAIG,KAAK,CAAClG,MAAM,GAAG,CAAC,GAAG,GAAG,GAAGkG,KAAK,GAAG,EAAE,CAAC;AACxD,IAAA,IAAI,CAAC1F,UAAU,CAAC0B,IAAI,CAACV,GAAG,CAAC;IACzB,IAAI,CAACoF,yBAAyB,CAACb,IAAI,GAAGc,qBAAoB,CAACX,KAAK,CAAC,EAAEzF,KAAK,CAAC;AAC3E;EAEAmB,YAAYA,CAACmE,IAAY,EAAEG,QAAgB,EAAE,EAAEzF,QAAa,IAAI,EAAA;AAC9DsF,IAAAA,IAAI,GAAG,IAAI,CAACS,kBAAkB,CAACT,IAAI,CAAC;IAEpC,MAAMe,OAAO,GAAG,IAAI,CAACzB,QAAQ,CAAC,IAAI,CAACE,aAAa,CAAC;IAEjDuB,OAAO,CAACrG,KAAK,GAAGA,KAAK;IAErB,IAAIqG,OAAO,CAACf,IAAI,IAAIA,IAAI,IAAIe,OAAO,CAACZ,KAAK,IAAIA,KAAK,EAAE;AAClD,MAAA;AACF;IAEAY,OAAO,CAACf,IAAI,GAAGA,IAAI;IACnBe,OAAO,CAACZ,KAAK,GAAGA,KAAK;AAErB,IAAA,MAAM1E,GAAG,GAAGuE,IAAI,IAAIG,KAAK,CAAClG,MAAM,GAAG,CAAC,GAAG,GAAG,GAAGkG,KAAK,GAAG,EAAE,CAAC;IACxD,IAAI,CAAC1F,UAAU,CAAC0B,IAAI,CAAC,WAAW,GAAGV,GAAG,CAAC;IACvC,IAAI,CAACoF,yBAAyB,CAACb,IAAI,GAAGc,qBAAoB,CAACX,KAAK,CAAC,EAAEzF,KAAK,CAAC;AAC3E;AAEA0B,EAAAA,OAAOA,GAAA;IACL,IAAI,IAAI,CAACoD,aAAa,GAAG,IAAI,CAACF,QAAQ,CAACrF,MAAM,GAAG,CAAC,EAAE;MACjD,IAAI,CAACuF,aAAa,EAAE;AACpB,MAAA,IAAI,CAACC,QAAQ,CAAC5C,IAAI,CAAC;AACjB,QAAA,KAAK,EAAE,IAAI,CAACmD,IAAI,EAAE;AAClB,QAAA,OAAO,EAAE,IAAI,CAACpD,QAAQ,EAAE;AACxB,QAAA,KAAK,EAAE,IAAI;AACX,QAAA,MAAM,EAAE;AACT,OAAA,CAAC;AACJ;AACF;AAEAJ,EAAAA,IAAIA,GAAA;AACF,IAAA,IAAI,IAAI,CAACgD,aAAa,GAAG,CAAC,EAAE;MAC1B,IAAI,CAACA,aAAa,EAAE;AACpB,MAAA,IAAI,CAACC,QAAQ,CAAC5C,IAAI,CAAC;AACjB,QAAA,KAAK,EAAE,IAAI,CAACmD,IAAI,EAAE;AAClB,QAAA,OAAO,EAAE,IAAI,CAACpD,QAAQ,EAAE;AACxB,QAAA,KAAK,EAAE,IAAI;AACX,QAAA,MAAM,EAAE;AACT,OAAA,CAAC;AACJ;AACF;AAEAH,EAAAA,SAASA,CAACC,mBAA2B,CAAC,EAAA;AACpC,IAAA,MAAMC,aAAa,GAAG,IAAI,CAAC6C,aAAa,GAAG9C,gBAAgB;IAC3D,IAAIC,aAAa,IAAI,CAAC,IAAIA,aAAa,GAAG,IAAI,CAAC2C,QAAQ,CAACrF,MAAM,EAAE;MAC9D,IAAI,CAACuF,aAAa,GAAG7C,aAAa;AAClC,MAAA,IAAI,CAAC8C,QAAQ,CAAC5C,IAAI,CAAC;AACjB,QAAA,KAAK,EAAE,IAAI,CAACmD,IAAI,EAAE;AAClB,QAAA,OAAO,EAAE,IAAI,CAACpD,QAAQ,EAAE;AACxB,QAAA,KAAK,EAAE,IAAI;AACX,QAAA,MAAM,EAAE;AACT,OAAA,CAAC;AACJ;AACF;EAEAoE,WAAWA,CAAC7F,EAAyC,EAAA;AACnD,IAAA,IAAI,CAACyE,mBAAmB,CAACzD,IAAI,CAAChB,EAAE,CAAC;IAEjC,IAAI,CAAC0E,sBAAsB,KAAK,IAAI,CAACxE,SAAS,CAAE4F,CAAC,IAAI;MACnD,IAAI,CAACJ,yBAAyB,CAACI,CAAC,CAACxF,GAAG,EAAEwF,CAAC,CAACvG,KAAK,CAAC;AAChD,KAAC,CAAC;AAEF,IAAA,OAAO,MAAK;MACV,MAAMwG,OAAO,GAAG,IAAI,CAACtB,mBAAmB,CAAC7F,OAAO,CAACoB,EAAE,CAAC;MACpD,IAAI,CAACyE,mBAAmB,CAAC1D,MAAM,CAACgF,OAAO,EAAE,CAAC,CAAC;AAE3C,MAAA,IAAI,IAAI,CAACtB,mBAAmB,CAAC3F,MAAM,KAAK,CAAC,EAAE;AACzC,QAAA,IAAI,CAAC4F,sBAAsB,EAAEvE,WAAW,EAAE;QAC1C,IAAI,CAACuE,sBAAsB,GAAG,IAAI;AACpC;KACD;AACH;AAGAgB,EAAAA,yBAAyBA,CAACpF,GAAA,GAAc,EAAE,EAAEf,KAAc,EAAA;AACxD,IAAA,IAAI,CAACkF,mBAAmB,CAACuB,OAAO,CAAEhG,EAAE,IAAKA,EAAE,CAACM,GAAG,EAAEf,KAAK,CAAC,CAAC;AAC1D;AAEAW,EAAAA,SAASA,CACP+F,MAA4B,EAC5BC,OAAuC,EACvCC,QAA8B,EAAA;AAE9B,IAAA,OAAO,IAAI,CAAC7B,QAAQ,CAACpE,SAAS,CAAC;AAC7BwB,MAAAA,IAAI,EAAEuE,MAAM;MACZG,KAAK,EAAEF,OAAO,IAAIG,SAAS;MAC3BC,QAAQ,EAAEH,QAAQ,IAAIE;AACvB,KAAA,CAAC;AACJ;EAEAE,SAASA,CAACjG,GAAW,EAAA;AACnB,IAAA,OAAO,IAAK;AACd;AAEQiF,EAAAA,WAAWA,CAACV,IAAY,EAAEG,KAAa,EAAEzF,KAAU,EAAA;AACzD,IAAA,IAAI,IAAI,CAAC8E,aAAa,GAAG,CAAC,EAAE;MAC1B,IAAI,CAACF,QAAQ,CAACpD,MAAM,CAAC,IAAI,CAACsD,aAAa,GAAG,CAAC,CAAC;AAC9C;AACA,IAAA,IAAI,CAACF,QAAQ,CAACnD,IAAI,CAAC,IAAIoD,aAAa,CAACS,IAAI,EAAEG,KAAK,EAAEzF,KAAK,CAAC,CAAC;IACzD,IAAI,CAAC8E,aAAa,GAAG,IAAI,CAACF,QAAQ,CAACrF,MAAM,GAAG,CAAC;AAC/C;;;;;UAxLWoF,WAAW;AAAAb,IAAAA,IAAA,EAAA,EAAA;AAAAlB,IAAAA,MAAA,EAAAN,EAAA,CAAAO,eAAA,CAAAC;AAAA,GAAA,CAAA;;;;;UAAX6B;AAAW,GAAA,CAAA;;;;;;QAAXA,WAAW;AAAA5B,EAAAA,UAAA,EAAA,CAAA;UADvBD;;;AA4LD,MAAM+B,aAAa,CAAA;EAERS,IAAA;EACAG,KAAA;EACAzF,KAAA;AAHTC,EAAAA,WAAAA,CACSqF,IAAY,EACZG,KAAa,EACbzF,KAAU,EAAA;IAFV,IAAI,CAAAsF,IAAA,GAAJA,IAAI;IACJ,IAAK,CAAAG,KAAA,GAALA,KAAK;IACL,IAAK,CAAAzF,KAAA,GAALA,KAAK;AACX;AACJ;;ACrMK,MAAOiH,oBAAqB,SAAQC,gBAAgB,CAAA;AACxDC,EAAAA,gBAAgB,GAAW,GAAG;AAC9BC,EAAAA,YAAY,GAAW,GAAG;AAC1BC,EAAAA,aAAa,GAAW,EAAE;AAC1BtH,EAAAA,UAAU,GAAa,EAAE;AAEzBgF,EAAAA,QAAQ,GAAG,IAAInF,OAAO,EAAsB;AACpC0H,EAAAA,YAAY,GAAU,EAAE;AAChCrH,EAAAA,WAAAA,GAAA;AACE,IAAA,KAAK,EAAE;AACT;EAEAsH,gBAAgBA,CAACxG,GAAW,EAAA;IAC1B,IAAI,CAACqG,YAAY,GAAGrG,GAAG;AACvB,IAAA,IAAI,CAACgE,QAAQ,CAAC5C,IAAI,CAAC,IAAIqF,kBAAkB,CAAC,IAAI,CAAClC,IAAI,EAAE,CAAC,CAAC;AACzD;AAESA,EAAAA,IAAIA,CAACmC,cAAuB,KAAK,EAAA;IACxC,OAAO,IAAI,CAACL,YAAY;AAC1B;EAESrB,kBAAkBA,CAAC2B,QAAgB,EAAA;AAC1C,IAAA,IAAIA,QAAQ,CAACzB,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAACkB,gBAAgB,CAACxB,QAAQ,CAAC,GAAG,CAAC,EAAE;MACnE,OAAO,IAAI,CAACwB,gBAAgB,GAAGO,QAAQ,CAACpI,SAAS,CAAC,CAAC,CAAC;AACtD;AACA,IAAA,OAAO,IAAI,CAAC6H,gBAAgB,GAAGO,QAAQ;AACzC;EAESnG,SAASA,CAACoG,GAAQ,EAAEvG,KAAa,EAAEkE,IAAY,EAAEG,KAAa,EAAA;AAErE,IAAA,IAAI,CAAC6B,YAAY,CAAC7F,IAAI,CAACkG,GAAG,CAAC;IAE3B,IAAI,CAACN,aAAa,GAAGjG,KAAK;AAE1B,IAAA,MAAML,GAAG,GAAGuE,IAAI,IAAIG,KAAK,CAAClG,MAAM,GAAG,CAAC,GAAG,GAAG,GAAGkG,KAAK,GAAG,EAAE,CAAC;IACxD,IAAI,CAAC2B,YAAY,GAAGrG,GAAG;AAEvB,IAAA,MAAM6G,WAAW,GAAG,IAAI,CAAC7B,kBAAkB,CAAChF,GAAG,CAAC;AAChD,IAAA,IAAI,CAAChB,UAAU,CAAC0B,IAAI,CAACmG,WAAW,CAAC;AACnC;EAESzG,YAAYA,CAACwG,GAAQ,EAAEvG,KAAa,EAAEkE,IAAY,EAAEG,KAAa,EAAA;AAExE,IAAA,IAAI,CAAC6B,YAAY,CAAC,CAAC,IAAI,CAACA,YAAY,CAAC/H,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,GAAGoI,GAAG;IAE5D,IAAI,CAACN,aAAa,GAAGjG,KAAK;AAE1B,IAAA,MAAML,GAAG,GAAGuE,IAAI,IAAIG,KAAK,CAAClG,MAAM,GAAG,CAAC,GAAG,GAAG,GAAGkG,KAAK,GAAG,EAAE,CAAC;IACxD,IAAI,CAAC2B,YAAY,GAAGrG,GAAG;AAEvB,IAAA,MAAM6G,WAAW,GAAG,IAAI,CAAC7B,kBAAkB,CAAChF,GAAG,CAAC;IAChD,IAAI,CAAChB,UAAU,CAAC0B,IAAI,CAAC,WAAW,GAAGmG,WAAW,CAAC;AACjD;EAESpH,UAAUA,CAACC,EAAwB,EAAA;AAC1C,IAAA,IAAI,CAACsE,QAAQ,CAACpE,SAAS,CAAC;AAACwB,MAAAA,IAAI,EAAE1B;AAAG,KAAA,CAAC;AACrC;AAESoH,EAAAA,WAAWA,GAAA;IAClB,OAAO,IAAI,CAACV,gBAAgB;AAC9B;AAESrF,EAAAA,IAAIA,GAAA;AACX,IAAA,IAAI,IAAI,CAAC/B,UAAU,CAACR,MAAM,GAAG,CAAC,EAAE;AAC9B,MAAA,IAAI,CAACQ,UAAU,CAAC+H,GAAG,EAAE;AACrB,MAAA,IAAI,CAACR,YAAY,CAACQ,GAAG,EAAE;MACvB,MAAMC,OAAO,GAAG,IAAI,CAAChI,UAAU,CAACR,MAAM,GAAG,CAAC,GAAG,IAAI,CAACQ,UAAU,CAAC,IAAI,CAACA,UAAU,CAACR,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE;AAC7F,MAAA,IAAI,CAACgI,gBAAgB,CAACQ,OAAO,CAAC;AAChC;AACF;AAESrG,EAAAA,OAAOA,GAAA;AACd,IAAA,MAAM,iBAAiB;AACzB;AAESQ,EAAAA,QAAQA,GAAA;AACf,IAAA,OAAO,IAAI,CAACoF,YAAY,CAAC,CAAC,IAAI,CAACA,YAAY,CAAC/H,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC;AAC/D;;;;;UA7EW0H,oBAAoB;AAAAnD,IAAAA,IAAA,EAAA,EAAA;AAAAlB,IAAAA,MAAA,EAAAN,EAAA,CAAAO,eAAA,CAAAC;AAAA,GAAA,CAAA;;;;;UAApBmE;AAAoB,GAAA,CAAA;;;;;;QAApBA,oBAAoB;AAAAlE,EAAAA,UAAA,EAAA,CAAA;UADhCD;;;;AAiFD,MAAM0E,kBAAkB,CAAA;EAGHnG,MAAA;AAFnByG,EAAAA,GAAG,GAAY,IAAI;AACnB1F,EAAAA,IAAI,GAAW,UAAU;EACzBnC,WAAAA,CAAmBoB,MAAc,EAAA;IAAd,IAAM,CAAAA,MAAA,GAANA,MAAM;AAAW;AACrC;;SCnFe2G,oBAAoBA,GAAA;AAClC,EAAA,OAAO,CACL;AAACzD,IAAAA,OAAO,EAAE0D,QAAQ;AAAEvD,IAAAA,QAAQ,EAAEC;AAAY,GAAA,EAC1C;AAACJ,IAAAA,OAAO,EAAE2C,kBAAgB;AAAExC,IAAAA,QAAQ,EAAEuC;AAAqB,GAAA,CAC5D;AACH;;;;"}
|
package/fesm2022/upgrade.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Angular v21.0.
|
|
2
|
+
* @license Angular v21.0.2
|
|
3
3
|
* (c) 2010-2025 Google LLC. https://angular.dev/
|
|
4
4
|
* License: MIT
|
|
5
5
|
*/
|
|
@@ -600,7 +600,7 @@ class LocationUpgradeModule {
|
|
|
600
600
|
}
|
|
601
601
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
602
602
|
minVersion: "12.0.0",
|
|
603
|
-
version: "21.0.
|
|
603
|
+
version: "21.0.2",
|
|
604
604
|
ngImport: i0,
|
|
605
605
|
type: LocationUpgradeModule,
|
|
606
606
|
deps: [],
|
|
@@ -608,14 +608,14 @@ class LocationUpgradeModule {
|
|
|
608
608
|
});
|
|
609
609
|
static ɵmod = i0.ɵɵngDeclareNgModule({
|
|
610
610
|
minVersion: "14.0.0",
|
|
611
|
-
version: "21.0.
|
|
611
|
+
version: "21.0.2",
|
|
612
612
|
ngImport: i0,
|
|
613
613
|
type: LocationUpgradeModule,
|
|
614
614
|
imports: [CommonModule]
|
|
615
615
|
});
|
|
616
616
|
static ɵinj = i0.ɵɵngDeclareInjector({
|
|
617
617
|
minVersion: "12.0.0",
|
|
618
|
-
version: "21.0.
|
|
618
|
+
version: "21.0.2",
|
|
619
619
|
ngImport: i0,
|
|
620
620
|
type: LocationUpgradeModule,
|
|
621
621
|
imports: [CommonModule]
|
|
@@ -623,7 +623,7 @@ class LocationUpgradeModule {
|
|
|
623
623
|
}
|
|
624
624
|
i0.ɵɵngDeclareClassMetadata({
|
|
625
625
|
minVersion: "12.0.0",
|
|
626
|
-
version: "21.0.
|
|
626
|
+
version: "21.0.2",
|
|
627
627
|
ngImport: i0,
|
|
628
628
|
type: LocationUpgradeModule,
|
|
629
629
|
decorators: [{
|