@angular/common
Version:
Angular - commonly needed directives and services
29 lines • 3.96 kB
JavaScript
/**
* @license
* Copyright Google LLC All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.io/license
*/
import { DOCUMENT, PlatformLocation } from '@angular/common';
import { inject } from '@angular/core';
// @ng_package: ignore-cross-repo-import
import { PlatformNavigation } from '../../../src/navigation/platform_navigation';
import { FakeNavigationPlatformLocation, MOCK_PLATFORM_LOCATION_CONFIG, } from '../mock_platform_location';
import { FakeNavigation } from './fake_navigation';
/**
* Return a provider for the `FakeNavigation` in place of the real Navigation API.
*/
export function provideFakePlatformNavigation() {
return [
{
provide: PlatformNavigation,
useFactory: () => {
const config = inject(MOCK_PLATFORM_LOCATION_CONFIG, { optional: true });
return new FakeNavigation(inject(DOCUMENT).defaultView, config?.startUrl ?? 'http://_empty_/');
},
},
{ provide: PlatformLocation, useClass: FakeNavigationPlatformLocation },
];
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZV9mYWtlX3BsYXRmb3JtX25hdmlnYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vdGVzdGluZy9zcmMvbmF2aWdhdGlvbi9wcm92aWRlX2Zha2VfcGxhdGZvcm1fbmF2aWdhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFFSCxPQUFPLEVBQUMsUUFBUSxFQUFFLGdCQUFnQixFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDM0QsT0FBTyxFQUFDLE1BQU0sRUFBVyxNQUFNLGVBQWUsQ0FBQztBQUUvQyx3Q0FBd0M7QUFDeEMsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sNkNBQTZDLENBQUM7QUFDL0UsT0FBTyxFQUNMLDhCQUE4QixFQUM5Qiw2QkFBNkIsR0FDOUIsTUFBTSwyQkFBMkIsQ0FBQztBQUVuQyxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFFakQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsNkJBQTZCO0lBQzNDLE9BQU87UUFDTDtZQUNFLE9BQU8sRUFBRSxrQkFBa0I7WUFDM0IsVUFBVSxFQUFFLEdBQUcsRUFBRTtnQkFDZixNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsNkJBQTZCLEVBQUUsRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQztnQkFDdkUsT0FBTyxJQUFJLGNBQWMsQ0FDdkIsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFdBQVksRUFDNUIsTUFBTSxFQUFFLFFBQTRCLElBQUksaUJBQWlCLENBQzNELENBQUM7WUFDSixDQUFDO1NBQ0Y7UUFDRCxFQUFDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsOEJBQThCLEVBQUM7S0FDdEUsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHtET0NVTUVOVCwgUGxhdGZvcm1Mb2NhdGlvbn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7aW5qZWN0LCBQcm92aWRlcn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8vIEBuZ19wYWNrYWdlOiBpZ25vcmUtY3Jvc3MtcmVwby1pbXBvcnRcbmltcG9ydCB7UGxhdGZvcm1OYXZpZ2F0aW9ufSBmcm9tICcuLi8uLi8uLi9zcmMvbmF2aWdhdGlvbi9wbGF0Zm9ybV9uYXZpZ2F0aW9uJztcbmltcG9ydCB7XG4gIEZha2VOYXZpZ2F0aW9uUGxhdGZvcm1Mb2NhdGlvbixcbiAgTU9DS19QTEFURk9STV9MT0NBVElPTl9DT05GSUcsXG59IGZyb20gJy4uL21vY2tfcGxhdGZvcm1fbG9jYXRpb24nO1xuXG5pbXBvcnQge0Zha2VOYXZpZ2F0aW9ufSBmcm9tICcuL2Zha2VfbmF2aWdhdGlvbic7XG5cbi8qKlxuICogUmV0dXJuIGEgcHJvdmlkZXIgZm9yIHRoZSBgRmFrZU5hdmlnYXRpb25gIGluIHBsYWNlIG9mIHRoZSByZWFsIE5hdmlnYXRpb24gQVBJLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZUZha2VQbGF0Zm9ybU5hdmlnYXRpb24oKTogUHJvdmlkZXJbXSB7XG4gIHJldHVybiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogUGxhdGZvcm1OYXZpZ2F0aW9uLFxuICAgICAgdXNlRmFjdG9yeTogKCkgPT4ge1xuICAgICAgICBjb25zdCBjb25maWcgPSBpbmplY3QoTU9DS19QTEFURk9STV9MT0NBVElPTl9DT05GSUcsIHtvcHRpb25hbDogdHJ1ZX0pO1xuICAgICAgICByZXR1cm4gbmV3IEZha2VOYXZpZ2F0aW9uKFxuICAgICAgICAgIGluamVjdChET0NVTUVOVCkuZGVmYXVsdFZpZXchLFxuICAgICAgICAgIChjb25maWc/LnN0YXJ0VXJsIGFzIGBodHRwJHtzdHJpbmd9YCkgPz8gJ2h0dHA6Ly9fZW1wdHlfLycsXG4gICAgICAgICk7XG4gICAgICB9LFxuICAgIH0sXG4gICAge3Byb3ZpZGU6IFBsYXRmb3JtTG9jYXRpb24sIHVzZUNsYXNzOiBGYWtlTmF2aWdhdGlvblBsYXRmb3JtTG9jYXRpb259LFxuICBdO1xufVxuIl19