@w11k/ngx-present
Version:
Angular based Presentation Tool
91 lines • 7.42 kB
JavaScript
/**
* @fileoverview added by tsickle
* Generated from: lib/slide-by-slide/slides-guard.service.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Injectable } from '@angular/core';
import { Router } from '@angular/router';
import { routeParamsToCoordinate } from './slide-by-slide.functions';
import { SlideBySlideService } from './slide-by-slide.service';
import { of } from 'rxjs';
import { filter, switchMap, take } from 'rxjs/operators';
import * as i0 from "@angular/core";
import * as i1 from "./slide-by-slide.service";
import * as i2 from "@angular/router";
export class SlidesGuardService {
/**
* @param {?} service
* @param {?} router
*/
constructor(service, router) {
this.service = service;
this.router = router;
}
/**
* @param {?} route
* @return {?}
*/
canActivate(route) {
/** @type {?} */
const coordinates = routeParamsToCoordinate(route.params);
/** @type {?} */
const isValid = this.service.isValidCoordinate(coordinates)
.pipe(take(1));
isValid
.pipe(filter((/**
* @param {?} x
* @return {?}
*/
x => !x)), switchMap((/**
* @return {?}
*/
() => {
if (this.service.state.currentSlide) {
return of(this.service.state.currentSlide);
}
else {
return this.service.firstSlide().pipe(take(1));
}
})))
.subscribe((/**
* @param {?} x
* @return {?}
*/
x => {
console.info(`slide with coordinate ${JSON.stringify(coordinates)} does not exist, going to navigate to first slide`);
/** @type {?} */
let prefix = 'slide';
/** @type {?} */
const firstSegment = route.url[0];
if (firstSegment !== undefined && firstSegment.path !== undefined) {
prefix = firstSegment.path;
}
this.router.navigate([prefix, ...x.coordinates], { queryParamsHandling: 'merge' });
}));
return isValid;
}
}
SlidesGuardService.decorators = [
{ type: Injectable, args: [{
providedIn: 'root'
},] }
];
/** @nocollapse */
SlidesGuardService.ctorParameters = () => [
{ type: SlideBySlideService },
{ type: Router }
];
/** @nocollapse */ SlidesGuardService.ɵprov = i0.ɵɵdefineInjectable({ factory: function SlidesGuardService_Factory() { return new SlidesGuardService(i0.ɵɵinject(i1.SlideBySlideService), i0.ɵɵinject(i2.Router)); }, token: SlidesGuardService, providedIn: "root" });
if (false) {
/**
* @type {?}
* @private
*/
SlidesGuardService.prototype.service;
/**
* @type {?}
* @private
*/
SlidesGuardService.prototype.router;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpZGVzLWd1YXJkLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdzExay9uZ3gtcHJlc2VudC8iLCJzb3VyY2VzIjpbImxpYi9zbGlkZS1ieS1zbGlkZS9zbGlkZXMtZ3VhcmQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUF3RCxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRCxPQUFPLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7O0FBS3pELE1BQU0sT0FBTyxrQkFBa0I7Ozs7O0lBRTdCLFlBQTZCLE9BQTRCLEVBQzVCLE1BQWM7UUFEZCxZQUFPLEdBQVAsT0FBTyxDQUFxQjtRQUM1QixXQUFNLEdBQU4sTUFBTSxDQUFRO0lBQUksQ0FBQzs7Ozs7SUFFaEQsV0FBVyxDQUFDLEtBQTZCOztjQUNqQyxXQUFXLEdBQUcsdUJBQXVCLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQzs7Y0FFbkQsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUFDO2FBQ3hELElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFaEIsT0FBTzthQUNKLElBQUksQ0FDSCxNQUFNOzs7O1FBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBQyxFQUNmLFNBQVM7OztRQUFDLEdBQUcsRUFBRTtZQUNiLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFO2dCQUNuQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQzthQUM1QztpQkFBTTtnQkFDTCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ2hEO1FBQ0gsQ0FBQyxFQUFDLENBQ0g7YUFDQSxTQUFTOzs7O1FBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDWCxPQUFPLENBQUMsSUFBSSxDQUFDLHlCQUF5QixJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxtREFBbUQsQ0FBQyxDQUFDOztnQkFFbEgsTUFBTSxHQUFHLE9BQU87O2tCQUVkLFlBQVksR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUNqQyxJQUFJLFlBQVksS0FBSyxTQUFTLElBQUksWUFBWSxDQUFDLElBQUksS0FBSyxTQUFTLEVBQUU7Z0JBQ2pFLE1BQU0sR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDO2FBQzVCO1lBRUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUMsV0FBVyxDQUFDLEVBQUUsRUFBRSxtQkFBbUIsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZGLENBQUMsRUFBQyxDQUFDO1FBR0wsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQzs7O1lBeENGLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7OztZQU5RLG1CQUFtQjtZQUZtQyxNQUFNOzs7Ozs7OztJQVd2RCxxQ0FBNkM7Ozs7O0lBQzdDLG9DQUErQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIENhbkFjdGl2YXRlLCBOYXZpZ2F0aW9uU3RhcnQsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyByb3V0ZVBhcmFtc1RvQ29vcmRpbmF0ZSB9IGZyb20gJy4vc2xpZGUtYnktc2xpZGUuZnVuY3Rpb25zJztcbmltcG9ydCB7IFNsaWRlQnlTbGlkZVNlcnZpY2UgfSBmcm9tICcuL3NsaWRlLWJ5LXNsaWRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciwgc3dpdGNoTWFwLCB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBTbGlkZXNHdWFyZFNlcnZpY2UgaW1wbGVtZW50cyBDYW5BY3RpdmF0ZSB7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBzZXJ2aWNlOiBTbGlkZUJ5U2xpZGVTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlcjogUm91dGVyKSB7IH1cblxuICBjYW5BY3RpdmF0ZShyb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IGNvb3JkaW5hdGVzID0gcm91dGVQYXJhbXNUb0Nvb3JkaW5hdGUocm91dGUucGFyYW1zKTtcblxuICAgIGNvbnN0IGlzVmFsaWQgPSB0aGlzLnNlcnZpY2UuaXNWYWxpZENvb3JkaW5hdGUoY29vcmRpbmF0ZXMpXG4gICAgICAucGlwZSh0YWtlKDEpKTtcblxuICAgIGlzVmFsaWRcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoeCA9PiAheCksXG4gICAgICAgIHN3aXRjaE1hcCgoKSA9PiB7XG4gICAgICAgICAgaWYgKHRoaXMuc2VydmljZS5zdGF0ZS5jdXJyZW50U2xpZGUpIHtcbiAgICAgICAgICAgIHJldHVybiBvZih0aGlzLnNlcnZpY2Uuc3RhdGUuY3VycmVudFNsaWRlKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2VydmljZS5maXJzdFNsaWRlKCkucGlwZSh0YWtlKDEpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKHggPT4ge1xuICAgICAgICAgIGNvbnNvbGUuaW5mbyhgc2xpZGUgd2l0aCBjb29yZGluYXRlICR7SlNPTi5zdHJpbmdpZnkoY29vcmRpbmF0ZXMpfSBkb2VzIG5vdCBleGlzdCwgZ29pbmcgdG8gbmF2aWdhdGUgdG8gZmlyc3Qgc2xpZGVgKTtcblxuICAgICAgICAgIGxldCBwcmVmaXggPSAnc2xpZGUnO1xuXG4gICAgICAgICAgY29uc3QgZmlyc3RTZWdtZW50ID0gcm91dGUudXJsWzBdO1xuICAgICAgICAgIGlmIChmaXJzdFNlZ21lbnQgIT09IHVuZGVmaW5lZCAmJiBmaXJzdFNlZ21lbnQucGF0aCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBwcmVmaXggPSBmaXJzdFNlZ21lbnQucGF0aDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbcHJlZml4LCAuLi54LmNvb3JkaW5hdGVzXSwgeyBxdWVyeVBhcmFtc0hhbmRsaW5nOiAnbWVyZ2UnIH0pO1xuICAgICAgfSk7XG5cblxuICAgIHJldHVybiBpc1ZhbGlkO1xuICB9XG59XG4iXX0=