@w11k/ngx-present
Version:
Angular based Presentation Tool
95 lines • 7.76 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 { __read, __spread } from "tslib";
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";
var SlidesGuardService = /** @class */ (function () {
function SlidesGuardService(service, router) {
this.service = service;
this.router = router;
}
/**
* @param {?} route
* @return {?}
*/
SlidesGuardService.prototype.canActivate = /**
* @param {?} route
* @return {?}
*/
function (route) {
var _this = this;
/** @type {?} */
var coordinates = routeParamsToCoordinate(route.params);
/** @type {?} */
var isValid = this.service.isValidCoordinate(coordinates)
.pipe(take(1));
isValid
.pipe(filter((/**
* @param {?} x
* @return {?}
*/
function (x) { return !x; })), switchMap((/**
* @return {?}
*/
function () {
if (_this.service.state.currentSlide) {
return of(_this.service.state.currentSlide);
}
else {
return _this.service.firstSlide().pipe(take(1));
}
})))
.subscribe((/**
* @param {?} x
* @return {?}
*/
function (x) {
console.info("slide with coordinate " + JSON.stringify(coordinates) + " does not exist, going to navigate to first slide");
/** @type {?} */
var prefix = 'slide';
/** @type {?} */
var firstSegment = route.url[0];
if (firstSegment !== undefined && firstSegment.path !== undefined) {
prefix = firstSegment.path;
}
_this.router.navigate(__spread([prefix], x.coordinates), { queryParamsHandling: 'merge' });
}));
return isValid;
};
SlidesGuardService.decorators = [
{ type: Injectable, args: [{
providedIn: 'root'
},] }
];
/** @nocollapse */
SlidesGuardService.ctorParameters = function () { return [
{ 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" });
return SlidesGuardService;
}());
export { SlidesGuardService };
if (false) {
/**
* @type {?}
* @private
*/
SlidesGuardService.prototype.service;
/**
* @type {?}
* @private
*/
SlidesGuardService.prototype.router;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpZGVzLWd1YXJkLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdzExay9uZ3gtcHJlc2VudC8iLCJzb3VyY2VzIjpbImxpYi9zbGlkZS1ieS1zbGlkZS9zbGlkZXMtZ3VhcmQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBd0QsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0YsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDckUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDL0QsT0FBTyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQUV6RDtJQUtFLDRCQUE2QixPQUE0QixFQUM1QixNQUFjO1FBRGQsWUFBTyxHQUFQLE9BQU8sQ0FBcUI7UUFDNUIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtJQUFJLENBQUM7Ozs7O0lBRWhELHdDQUFXOzs7O0lBQVgsVUFBWSxLQUE2QjtRQUF6QyxpQkFnQ0M7O1lBL0JPLFdBQVcsR0FBRyx1QkFBdUIsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDOztZQUVuRCxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUM7YUFDeEQsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVoQixPQUFPO2FBQ0osSUFBSSxDQUNILE1BQU07Ozs7UUFBQyxVQUFBLENBQUMsSUFBSSxPQUFBLENBQUMsQ0FBQyxFQUFGLENBQUUsRUFBQyxFQUNmLFNBQVM7OztRQUFDO1lBQ1IsSUFBSSxLQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQUU7Z0JBQ25DLE9BQU8sRUFBRSxDQUFDLEtBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO2FBQzVDO2lCQUFNO2dCQUNMLE9BQU8sS0FBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDaEQ7UUFDSCxDQUFDLEVBQUMsQ0FDSDthQUNBLFNBQVM7Ozs7UUFBQyxVQUFBLENBQUM7WUFDUixPQUFPLENBQUMsSUFBSSxDQUFDLDJCQUF5QixJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxzREFBbUQsQ0FBQyxDQUFDOztnQkFFbEgsTUFBTSxHQUFHLE9BQU87O2dCQUVkLFlBQVksR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUNqQyxJQUFJLFlBQVksS0FBSyxTQUFTLElBQUksWUFBWSxDQUFDLElBQUksS0FBSyxTQUFTLEVBQUU7Z0JBQ2pFLE1BQU0sR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDO2FBQzVCO1lBRUQsS0FBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLFdBQUUsTUFBTSxHQUFLLENBQUMsQ0FBQyxXQUFXLEdBQUcsRUFBRSxtQkFBbUIsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZGLENBQUMsRUFBQyxDQUFDO1FBR0wsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQzs7Z0JBeENGLFVBQVUsU0FBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7Ozs7Z0JBTlEsbUJBQW1CO2dCQUZtQyxNQUFNOzs7NkJBRHJFO0NBZ0RDLEFBekNELElBeUNDO1NBdENZLGtCQUFrQjs7Ozs7O0lBRWpCLHFDQUE2Qzs7Ozs7SUFDN0Msb0NBQStCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgQ2FuQWN0aXZhdGUsIE5hdmlnYXRpb25TdGFydCwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IHJvdXRlUGFyYW1zVG9Db29yZGluYXRlIH0gZnJvbSAnLi9zbGlkZS1ieS1zbGlkZS5mdW5jdGlvbnMnO1xuaW1wb3J0IHsgU2xpZGVCeVNsaWRlU2VydmljZSB9IGZyb20gJy4vc2xpZGUtYnktc2xpZGUuc2VydmljZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCBzd2l0Y2hNYXAsIHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFNsaWRlc0d1YXJkU2VydmljZSBpbXBsZW1lbnRzIENhbkFjdGl2YXRlIHtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHNlcnZpY2U6IFNsaWRlQnlTbGlkZVNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyOiBSb3V0ZXIpIHsgfVxuXG4gIGNhbkFjdGl2YXRlKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90KTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgY29uc3QgY29vcmRpbmF0ZXMgPSByb3V0ZVBhcmFtc1RvQ29vcmRpbmF0ZShyb3V0ZS5wYXJhbXMpO1xuXG4gICAgY29uc3QgaXNWYWxpZCA9IHRoaXMuc2VydmljZS5pc1ZhbGlkQ29vcmRpbmF0ZShjb29yZGluYXRlcylcbiAgICAgIC5waXBlKHRha2UoMSkpO1xuXG4gICAgaXNWYWxpZFxuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbHRlcih4ID0+ICF4KSxcbiAgICAgICAgc3dpdGNoTWFwKCgpID0+IHtcbiAgICAgICAgICBpZiAodGhpcy5zZXJ2aWNlLnN0YXRlLmN1cnJlbnRTbGlkZSkge1xuICAgICAgICAgICAgcmV0dXJuIG9mKHRoaXMuc2VydmljZS5zdGF0ZS5jdXJyZW50U2xpZGUpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zZXJ2aWNlLmZpcnN0U2xpZGUoKS5waXBlKHRha2UoMSkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoeCA9PiB7XG4gICAgICAgICAgY29uc29sZS5pbmZvKGBzbGlkZSB3aXRoIGNvb3JkaW5hdGUgJHtKU09OLnN0cmluZ2lmeShjb29yZGluYXRlcyl9IGRvZXMgbm90IGV4aXN0LCBnb2luZyB0byBuYXZpZ2F0ZSB0byBmaXJzdCBzbGlkZWApO1xuXG4gICAgICAgICAgbGV0IHByZWZpeCA9ICdzbGlkZSc7XG5cbiAgICAgICAgICBjb25zdCBmaXJzdFNlZ21lbnQgPSByb3V0ZS51cmxbMF07XG4gICAgICAgICAgaWYgKGZpcnN0U2VnbWVudCAhPT0gdW5kZWZpbmVkICYmIGZpcnN0U2VnbWVudC5wYXRoICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHByZWZpeCA9IGZpcnN0U2VnbWVudC5wYXRoO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtwcmVmaXgsIC4uLnguY29vcmRpbmF0ZXNdLCB7IHF1ZXJ5UGFyYW1zSGFuZGxpbmc6ICdtZXJnZScgfSk7XG4gICAgICB9KTtcblxuXG4gICAgcmV0dXJuIGlzVmFsaWQ7XG4gIH1cbn1cbiJdfQ==