UNPKG

ems-web-app-page-viewer

Version:

This angular.io module is a simple page renderer for apps developed by Educational Media Solutions.

39 lines 6.65 kB
import { Injectable } from '@angular/core'; import { BehaviorSubject } from 'rxjs'; import { getparams } from "ems-web-app-utils"; import * as i0 from "@angular/core"; export class PageViewerService { constructor() { this.model = { currentPage: null, previousPage: null }; this.storeWebHistory = true; this.pageSource = new BehaviorSubject(null); this.page = this.pageSource.asObservable(); this.manifest = {}; this.title = document.title; } registerPage(id, template, title) { this.manifest[id] = { template, title }; } setCurrentPage(page, data, ignorePush = false) { const info = this.manifest[page ?? ""]; const pstring = page ? (page.toString().toUpperCase().substring(0, 1) + page.toString().substring(1)) : null; if (this.storeWebHistory && page && !ignorePush && !getparams().debug) { window.history.pushState({ page }, `${info?.title ?? pstring}`, `/?page=${page}`); } this.model["previousPageData"] = this.model["currentPageData"] ?? this.model["previousPageData"]; this.model["currentPageData"] = data; this.model["previousPage"] = this.model["currentPage"] ?? this.model["previousPage"]; this.model["currentPage"] = page; document.title = info?.title ?? this.title; this.pageSource.next(page); } } PageViewerService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: PageViewerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); PageViewerService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: PageViewerService, providedIn: 'root' }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: PageViewerService, decorators: [{ type: Injectable, args: [{ providedIn: 'root' }] }], ctorParameters: function () { return []; } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS12aWV3ZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvcGFnZS12aWV3ZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFlLE1BQU0sZUFBZSxDQUFDO0FBQ3hELE9BQU8sRUFBdUIsZUFBZSxFQUFrQixNQUFNLE1BQU0sQ0FBQztBQUM1RSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7O0FBSzlDLE1BQU0sT0FBTyxpQkFBaUI7SUFZNUI7UUFWTyxVQUFLLEdBQStCLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFDOUUsb0JBQWUsR0FBWSxJQUFJLENBQUM7UUFFL0IsZUFBVSxHQUFnQyxJQUFJLGVBQWUsQ0FBYyxJQUFJLENBQUMsQ0FBQztRQUNsRixTQUFJLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUV0QyxhQUFRLEdBQWlFLEVBQUUsQ0FBQztRQUUzRSxVQUFLLEdBQVcsUUFBUSxDQUFDLEtBQUssQ0FBQztJQUV2QixDQUFDO0lBRVYsWUFBWSxDQUFDLEVBQVUsRUFBRSxRQUEwQixFQUFFLEtBQWM7UUFDeEUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsQ0FBQztJQUMxQyxDQUFDO0lBRU0sY0FBYyxDQUFDLElBQW1CLEVBQUUsSUFBVSxFQUFFLGFBQXNCLEtBQUs7UUFDaEYsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUM7UUFFdkMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQzVHLElBQUcsSUFBSSxDQUFDLGVBQWUsSUFBSSxJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxLQUFLLEVBQUU7WUFDcEUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxHQUFHLElBQUksRUFBRSxLQUFLLElBQUksT0FBTyxFQUFFLEVBQUUsVUFBVSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1NBQ25GO1FBQ0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDakcsSUFBSSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLElBQUksQ0FBQztRQUNyQyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNyRixJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxHQUFHLElBQUksQ0FBQztRQUNqQyxRQUFRLENBQUMsS0FBSyxHQUFHLElBQUksRUFBRSxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQztRQUMzQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM3QixDQUFDOzs4R0EvQlUsaUJBQWlCO2tIQUFqQixpQkFBaUIsY0FGaEIsTUFBTTsyRkFFUCxpQkFBaUI7a0JBSDdCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QsIEJlaGF2aW9yU3ViamVjdCwgdGhyb3dFcnJvciwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGdldHBhcmFtcyB9IGZyb20gXCJlbXMtd2ViLWFwcC11dGlsc1wiO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBQYWdlVmlld2VyU2VydmljZSB7XG5cbiAgcHVibGljIG1vZGVsOiBSZWNvcmQ8c3RyaW5nLHN0cmluZ3xudWxsPiA9IHsgY3VycmVudFBhZ2U6IG51bGwsIHByZXZpb3VzUGFnZTogbnVsbCB9O1xuICBwdWJsaWMgc3RvcmVXZWJIaXN0b3J5OiBib29sZWFuID0gdHJ1ZTtcblxuICBwcml2YXRlIHBhZ2VTb3VyY2U6QmVoYXZpb3JTdWJqZWN0PHN0cmluZ3xudWxsPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nfG51bGw+KG51bGwpO1xuICBwdWJsaWMgcGFnZSA9IHRoaXMucGFnZVNvdXJjZS5hc09ic2VydmFibGUoKTtcblxuICBwdWJsaWMgbWFuaWZlc3Q6IFJlY29yZDxzdHJpbmcsIHt0aXRsZT86IHN0cmluZywgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT59PiA9IHt9O1xuXG4gIHByaXZhdGUgdGl0bGU6IHN0cmluZyA9IGRvY3VtZW50LnRpdGxlO1xuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG5cbiAgcHVibGljIHJlZ2lzdGVyUGFnZShpZDogc3RyaW5nLCB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiwgdGl0bGU/OiBzdHJpbmcpIHtcbiAgICB0aGlzLm1hbmlmZXN0W2lkXSA9IHsgdGVtcGxhdGUsIHRpdGxlIH07XG4gIH1cblxuICBwdWJsaWMgc2V0Q3VycmVudFBhZ2UocGFnZTogc3RyaW5nIHwgbnVsbCwgZGF0YT86IGFueSwgaWdub3JlUHVzaDogYm9vbGVhbiA9IGZhbHNlKSB7XG4gICAgY29uc3QgaW5mbyA9IHRoaXMubWFuaWZlc3RbcGFnZSA/PyBcIlwiXTtcbiAgICBcbiAgICBjb25zdCBwc3RyaW5nID0gcGFnZSA/IChwYWdlLnRvU3RyaW5nKCkudG9VcHBlckNhc2UoKS5zdWJzdHJpbmcoMCwxKSArIHBhZ2UudG9TdHJpbmcoKS5zdWJzdHJpbmcoMSkpIDogbnVsbDtcbiAgICBpZih0aGlzLnN0b3JlV2ViSGlzdG9yeSAmJiBwYWdlICYmICFpZ25vcmVQdXNoICYmICFnZXRwYXJhbXMoKS5kZWJ1Zykge1xuICAgICAgd2luZG93Lmhpc3RvcnkucHVzaFN0YXRlKHsgcGFnZSB9LCBgJHtpbmZvPy50aXRsZSA/PyBwc3RyaW5nfWAsIGAvP3BhZ2U9JHtwYWdlfWApO1xuICAgIH1cbiAgICB0aGlzLm1vZGVsW1wicHJldmlvdXNQYWdlRGF0YVwiXSA9IHRoaXMubW9kZWxbXCJjdXJyZW50UGFnZURhdGFcIl0gPz8gdGhpcy5tb2RlbFtcInByZXZpb3VzUGFnZURhdGFcIl07XG4gICAgdGhpcy5tb2RlbFtcImN1cnJlbnRQYWdlRGF0YVwiXSA9IGRhdGE7XG4gICAgdGhpcy5tb2RlbFtcInByZXZpb3VzUGFnZVwiXSA9IHRoaXMubW9kZWxbXCJjdXJyZW50UGFnZVwiXSA/PyB0aGlzLm1vZGVsW1wicHJldmlvdXNQYWdlXCJdO1xuICAgIHRoaXMubW9kZWxbXCJjdXJyZW50UGFnZVwiXSA9IHBhZ2U7XG4gICAgZG9jdW1lbnQudGl0bGUgPSBpbmZvPy50aXRsZSA/PyB0aGlzLnRpdGxlO1xuICAgIHRoaXMucGFnZVNvdXJjZS5uZXh0KHBhZ2UpO1xuICB9XG59XG4iXX0=