UNPKG

@w11k/ngx-present

Version:

Angular based Presentation Tool

95 lines 7.76 kB
/** * @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==