@spartacus/core
Version:
Spartacus - the core framework
38 lines • 4.47 kB
JavaScript
import { isPlatformBrowser } from '@angular/common';
import { Inject, Injectable, PLATFORM_ID } from '@angular/core';
import * as i0 from "@angular/core";
import * as i1 from "../../window/window-ref";
export class ExternalRoutesGuard {
constructor(winRef, platformId) {
this.winRef = winRef;
this.platformId = platformId;
}
/**
* Redirects to different storefront system for anticipated URL
*/
canActivate(route, state) {
if (isPlatformBrowser(this.platformId)) {
this.redirect(route, state);
}
return false;
}
/**
* Redirects to anticipated URL using full page reload, not Angular routing
*/
redirect(_, state) {
const window = this.winRef.nativeWindow;
if (window && window.location) {
window.location.href = state.url;
}
}
}
ExternalRoutesGuard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: ExternalRoutesGuard, deps: [{ token: i1.WindowRef }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Injectable });
ExternalRoutesGuard.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: ExternalRoutesGuard, providedIn: 'root' });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: ExternalRoutesGuard, decorators: [{
type: Injectable,
args: [{ providedIn: 'root' }]
}], ctorParameters: function () { return [{ type: i1.WindowRef }, { type: Object, decorators: [{
type: Inject,
args: [PLATFORM_ID]
}] }]; } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZXJuYWwtcm91dGVzLmd1YXJkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvcm91dGluZy9leHRlcm5hbC1yb3V0ZXMvZXh0ZXJuYWwtcm91dGVzLmd1YXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBU2hFLE1BQU0sT0FBTyxtQkFBbUI7SUFDOUIsWUFDWSxNQUFpQixFQUNJLFVBQWtCO1FBRHZDLFdBQU0sR0FBTixNQUFNLENBQVc7UUFDSSxlQUFVLEdBQVYsVUFBVSxDQUFRO0lBQ2hELENBQUM7SUFFSjs7T0FFRztJQUNILFdBQVcsQ0FDVCxLQUE2QixFQUM3QixLQUEwQjtRQUUxQixJQUFJLGlCQUFpQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUN0QyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztTQUM3QjtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVEOztPQUVHO0lBQ08sUUFBUSxDQUFDLENBQXlCLEVBQUUsS0FBMEI7UUFDdEUsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUM7UUFFeEMsSUFBSSxNQUFNLElBQUksTUFBTSxDQUFDLFFBQVEsRUFBRTtZQUM3QixNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDO1NBQ2xDO0lBQ0gsQ0FBQzs7Z0hBNUJVLG1CQUFtQiwyQ0FHcEIsV0FBVztvSEFIVixtQkFBbUIsY0FETixNQUFNOzJGQUNuQixtQkFBbUI7a0JBRC9CLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFO2tGQUlhLE1BQU07MEJBQWhELE1BQU07MkJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgUExBVEZPUk1fSUQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEFjdGl2YXRlZFJvdXRlU25hcHNob3QsXG4gIENhbkFjdGl2YXRlLFxuICBSb3V0ZXJTdGF0ZVNuYXBzaG90LFxufSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgV2luZG93UmVmIH0gZnJvbSAnLi4vLi4vd2luZG93L3dpbmRvdy1yZWYnO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEV4dGVybmFsUm91dGVzR3VhcmQgaW1wbGVtZW50cyBDYW5BY3RpdmF0ZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCB3aW5SZWY6IFdpbmRvd1JlZixcbiAgICBASW5qZWN0KFBMQVRGT1JNX0lEKSBwcm90ZWN0ZWQgcGxhdGZvcm1JZDogT2JqZWN0XG4gICkge31cblxuICAvKipcbiAgICogUmVkaXJlY3RzIHRvIGRpZmZlcmVudCBzdG9yZWZyb250IHN5c3RlbSBmb3IgYW50aWNpcGF0ZWQgVVJMXG4gICAqL1xuICBjYW5BY3RpdmF0ZShcbiAgICByb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCxcbiAgICBzdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdFxuICApOiBib29sZWFuIHtcbiAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xuICAgICAgdGhpcy5yZWRpcmVjdChyb3V0ZSwgc3RhdGUpO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogUmVkaXJlY3RzIHRvIGFudGljaXBhdGVkIFVSTCB1c2luZyBmdWxsIHBhZ2UgcmVsb2FkLCBub3QgQW5ndWxhciByb3V0aW5nXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVkaXJlY3QoXzogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgc3RhdGU6IFJvdXRlclN0YXRlU25hcHNob3QpIHtcbiAgICBjb25zdCB3aW5kb3cgPSB0aGlzLndpblJlZi5uYXRpdmVXaW5kb3c7XG5cbiAgICBpZiAod2luZG93ICYmIHdpbmRvdy5sb2NhdGlvbikge1xuICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSBzdGF0ZS51cmw7XG4gICAgfVxuICB9XG59XG4iXX0=