moh-common-lib
Version:
A library of Angular components, services, and styles for B.C. Government Ministry of Health (MoH).
225 lines • 15.4 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Injectable } from '@angular/core';
import { Router } from '@angular/router';
import * as i0 from "@angular/core";
import * as i1 from "@angular/router";
/**
* @record
*/
export function PageList() { }
if (false) {
/** @type {?} */
PageList.prototype.index;
/** @type {?} */
PageList.prototype.path;
/** @type {?} */
PageList.prototype.isComplete;
/* Skipping unhandled member: [key: string]: any;*/
}
export class PageStateService {
/**
* @param {?} router
*/
constructor(router) {
this.router = router;
this.pageList = [];
}
/**
* @param {?} arr
* @param {?} routeListConst
* @param {?=} fn
* @return {?}
*/
setPages(arr, routeListConst, fn) {
if (this.pageList && !this.pageList.length) {
/** @type {?} */
const routeConst = Object.keys(routeListConst).map((/**
* @param {?} x
* @return {?}
*/
x => routeListConst[x]));
/** @type {?} */
let cnt = 0;
this.pageList = arr.filter((/**
* @param {?} itm
* @return {?}
*/
(itm) => !itm.redirectTo))
.map((/**
* @param {?} itm
* @return {?}
*/
(itm) => {
/** @type {?} */
const val = routeConst.find((/**
* @param {?} x
* @return {?}
*/
x => x.path === itm.path));
cnt = cnt + 1; // count for indices
// count for indices
// Page List to be returned
/** @type {?} */
let obj = {
index: cnt,
path: val.path,
isComplete: false,
};
if (fn) {
obj = Object.assign(obj, fn(val));
}
return obj;
}));
}
return this.pageList;
}
// Returns index parameter value
/**
* @param {?=} url
* @return {?}
*/
findIndex(url = null) {
/** @type {?} */
let idx = 0;
if (this.pageList) {
/** @type {?} */
const obj = this._find(url ? url : this.router.url);
if (obj) {
idx = obj.index;
}
}
return idx;
}
/**
* @param {?} idx
* @return {?}
*/
getPageAtIndex(idx) {
/** @type {?} */
const index = idx - 1;
if (this.pageList && index >= 0 && this.pageList.length > index) {
return this.pageList[index];
}
return null;
}
/**
* @param {?=} url
* @return {?}
*/
setPageIncomplete(url = null) {
/** @type {?} */
const obj = this._find(url ? url : this.router.url);
if (obj) {
obj.isComplete = false;
// Set future pages to not complete
this.pageList.map((/**
* @param {?} x
* @return {?}
*/
x => {
if (obj.index < x.index && x.isComplete) {
x.isComplete = false;
}
}));
}
}
/**
* @param {?=} path
* @return {?}
*/
setPageComplete(path = null) {
/** @type {?} */
const obj = this._find(path ? path : this.router.url);
if (obj) {
obj.isComplete = true;
}
}
/**
* @param {?=} path
* @return {?}
*/
canNavigateToPage(path = null) {
/** @type {?} */
let complete = false;
/** @type {?} */
const obj = this._find(path ? path : this.router.url);
if (obj) {
// Can navigate to first play whether complete or not
/** @type {?} */
const prevIdx = obj.index - 1;
complete = (prevIdx === 0 ? true : this.pageList[prevIdx - 1].isComplete);
}
return complete;
}
/**
* @return {?}
*/
clearCompletePages() {
this.pageList.map((/**
* @param {?} x
* @return {?}
*/
x => {
x.isComplete = false;
}));
}
/**
* @return {?}
*/
pageListIsClear() {
/** @type {?} */
let isClear = true;
if (this.pageList.length > 0) {
isClear = this.pageList.every((/**
* @param {?} x
* @return {?}
*/
x => x.isComplete === false));
}
return isClear;
}
// Redirect
/**
* @param {?} path
* @return {?}
*/
navigateByUrl(path) {
this.router.navigateByUrl(path);
}
// Find item in list
/**
* @private
* @param {?} path
* @return {?}
*/
_find(path) {
return this.pageList.find((/**
* @param {?} x
* @return {?}
*/
x => path.includes(x.path) || path.endsWith(x.path)));
}
}
PageStateService.decorators = [
{ type: Injectable, args: [{
providedIn: 'root'
},] }
];
/** @nocollapse */
PageStateService.ctorParameters = () => [
{ type: Router }
];
/** @nocollapse */ PageStateService.ngInjectableDef = i0.defineInjectable({ factory: function PageStateService_Factory() { return new PageStateService(i0.inject(i1.Router)); }, token: PageStateService, providedIn: "root" });
if (false) {
/** @type {?} */
PageStateService.prototype.pageList;
/**
* @type {?}
* @protected
*/
PageStateService.prototype.router;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS1zdGF0ZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vbW9oLWNvbW1vbi1saWIvIiwic291cmNlcyI6WyJsaWIvc2VydmljZXMvcGFnZS1zdGF0ZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBUyxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7O0FBRWhELDhCQUtDOzs7SUFKQyx5QkFBYzs7SUFDZCx3QkFBYTs7SUFDYiw4QkFBb0I7OztBQU90QixNQUFNLE9BQU8sZ0JBQWdCOzs7O0lBSTNCLFlBQXVCLE1BQWM7UUFBZCxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBRnJDLGFBQVEsR0FBZSxFQUFFLENBQUM7SUFFZ0IsQ0FBQzs7Ozs7OztJQUUzQyxRQUFRLENBQUUsR0FBWSxFQUNaLGNBQW1CLEVBQ25CLEVBQXFDO1FBRTdDLElBQUssSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFHOztrQkFFdEMsVUFBVSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUUsY0FBYyxDQUFFLENBQUMsR0FBRzs7OztZQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxFQUFFOztnQkFFMUUsR0FBRyxHQUFHLENBQUM7WUFDWCxJQUFJLENBQUMsUUFBUSxHQUFHLEdBQUcsQ0FBQyxNQUFNOzs7O1lBQUMsQ0FBQyxHQUFRLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBQztpQkFDdEQsR0FBRzs7OztZQUFDLENBQUMsR0FBUSxFQUFFLEVBQUU7O3NCQUNWLEdBQUcsR0FBRyxVQUFVLENBQUMsSUFBSTs7OztnQkFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssR0FBRyxDQUFDLElBQUksRUFBRTtnQkFFdkQsR0FB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LENBQUMsVUFBVSxDQUFFLENBQUM7U0FDNUU7UUFDRCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDOzs7O0lBRUQsa0JBQWtCO1FBQ2hCLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRzs7OztRQUFFLENBQUMsQ0FBQyxFQUFFO1lBQ25CLENBQUMsQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLENBQUMsRUFBQyxDQUFDO0lBQ0wsQ0FBQzs7OztJQUdELGVBQWU7O1lBQ1QsT0FBTyxHQUFHLElBQUk7UUFDbEIsSUFBSyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUc7WUFDOUIsT0FBTyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSzs7OztZQUFFLENBQUMsQ0FBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsS0FBSyxLQUFLLEVBQUUsQ0FBQztTQUMvRDtRQUNELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7Ozs7OztJQUlELGFBQWEsQ0FBRSxJQUFZO1FBQ3pCLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFFLElBQUksQ0FBRSxDQUFDO0lBQ3BDLENBQUM7Ozs7Ozs7SUFHTyxLQUFLLENBQUUsSUFBWTtRQUN6QixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSTs7OztRQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUMsQ0FBQztJQUNsRixDQUFDOzs7WUFuSEYsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COzs7O1lBWGUsTUFBTTs7Ozs7SUFjcEIsb0NBQTBCOzs7OztJQUViLGtDQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFBhZ2VMaXN0IHtcclxuICBpbmRleDogbnVtYmVyO1xyXG4gIHBhdGg6IHN0cmluZztcclxuICBpc0NvbXBsZXRlOiBib29sZWFuO1xyXG4gIFtrZXk6IHN0cmluZ106IGFueTtcclxufVxyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgUGFnZVN0YXRlU2VydmljZSB7XHJcblxyXG4gIHBhZ2VMaXN0OiBQYWdlTGlzdFtdID0gW107XHJcblxyXG4gIGNvbnN0cnVjdG9yKCBwcm90ZWN0ZWQgcm91dGVyOiBSb3V0ZXIgKSB7IH1cclxuXHJcbiAgc2V0UGFnZXMoIGFycjogUm91dGVbXSxcclxuICAgICAgICAgICAgcm91dGVMaXN0Q29uc3Q6IGFueSxcclxuICAgICAgICAgICAgZm4/OiAoeDogYW55KSA9PiB7W2tleTogc3RyaW5nXTogYW55fSApOiBQYWdlTGlzdFtdIHtcclxuXHJcbiAgICBpZiAoIHRoaXMucGFnZUxpc3QgJiYgIXRoaXMucGFnZUxpc3QubGVuZ3RoICkge1xyXG5cclxuICAgICAgY29uc3Qgcm91dGVDb25zdCA9IE9iamVjdC5rZXlzKCByb3V0ZUxpc3RDb25zdCApLm1hcCggeCA9PiByb3V0ZUxpc3RDb25zdFt4XSApO1xyXG5cclxuICAgICAgbGV0IGNudCA9IDA7XHJcbiAgICAgIHRoaXMucGFnZUxpc3QgPSBhcnIuZmlsdGVyKChpdG06IGFueSkgPT4gIWl0bS5yZWRpcmVjdFRvKVxyXG4gICAgICAgIC5tYXAoKGl0bTogYW55KSA9PiB7XHJcbiAgICAgICAgICBjb25zdCB2YWwgPSByb3V0ZUNvbnN0LmZpbmQoIHggPT4geC5wYXRoID09PSBpdG0ucGF0aCApO1xyXG5cclxuICAgICAgICAgIGNudCA9IGNudCArIDE7IC8vIGNvdW50IGZvciBpbmRpY2VzXHJcblxyXG4gICAgICAgICAgLy8gUGFnZSBMaXN0IHRvIGJlIHJldHVybmVkXHJcbiAgICAgICAgICBsZXQgb2JqID0ge1xyXG4gICAgICAgICAgICBpbmRleDogY250LFxyXG4gICAgICAgICAgICBwYXRoOiB2YWwucGF0aCxcclxuICAgICAgICAgICAgaXNDb21wbGV0ZTogZmFsc2UsXHJcbiAgICAgICAgICB9O1xyXG5cclxuICAgICAgICAgIGlmICggZm4gKSB7XHJcbiAgICAgICAgICAgIG9iaiA9IE9iamVjdC5hc3NpZ24oIG9iaiwgZm4oIHZhbCApICk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICByZXR1cm4gb2JqO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMucGFnZUxpc3Q7XHJcbiAgfVxyXG5cclxuICAvLyBSZXR1cm5zIGluZGV4IHBhcmFtZXRlciB2YWx1ZVxyXG4gIGZpbmRJbmRleCggdXJsOiBzdHJpbmcgPSBudWxsICk6IG51bWJlciB7XHJcbiAgICBsZXQgaWR4ID0gMDtcclxuICAgIGlmICggdGhpcy5wYWdlTGlzdCApIHtcclxuICAgICAgY29uc3Qgb2JqID0gdGhpcy5fZmluZCh1cmwgPyB1cmwgOiB0aGlzLnJvdXRlci51cmwpO1xyXG4gICAgICBpZiAoIG9iaiApIHtcclxuICAgICAgICBpZHggPSBvYmouaW5kZXg7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBpZHg7XHJcbiAgfVxyXG5cclxuICBnZXRQYWdlQXRJbmRleCggaWR4OiBudW1iZXIgKTogUGFnZUxpc3QgIHwgbnVsbCB7XHJcbiAgICBjb25zdCBpbmRleCA9IGlkeCAtIDE7XHJcbiAgICBpZiAoIHRoaXMucGFnZUxpc3QgJiYgaW5kZXggPj0gMCAmJiB0aGlzLnBhZ2VMaXN0Lmxlbmd0aCA+IGluZGV4ICkge1xyXG4gICAgICByZXR1cm4gdGhpcy5wYWdlTGlzdFtpbmRleF07XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcblxyXG4gIHNldFBhZ2VJbmNvbXBsZXRlKCB1cmw6IHN0cmluZyA9IG51bGwgKSB7XHJcbiAgICBjb25zdCBvYmogPSB0aGlzLl9maW5kKHVybCA/IHVybCA6IHRoaXMucm91dGVyLnVybCk7XHJcbiAgICBpZiAoIG9iaiApIHtcclxuICAgICAgb2JqLmlzQ29tcGxldGUgPSBmYWxzZTtcclxuICAgICAgLy8gU2V0IGZ1dHVyZSBwYWdlcyB0byBub3QgY29tcGxldGVcclxuICAgICAgdGhpcy5wYWdlTGlzdC5tYXAoIHggPT4ge1xyXG4gICAgICAgIGlmICggb2JqLmluZGV4IDwgeC5pbmRleCAmJiB4LmlzQ29tcGxldGUgKSB7XHJcbiAgICAgICAgICB4LmlzQ29tcGxldGUgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0UGFnZUNvbXBsZXRlKCBwYXRoOiBzdHJpbmcgPSBudWxsICkge1xyXG4gICAgY29uc3Qgb2JqID0gIHRoaXMuX2ZpbmQocGF0aCA/IHBhdGggOiB0aGlzLnJvdXRlci51cmwpO1xyXG4gICAgaWYgKCBvYmogKSB7XHJcbiAgICAgIG9iai5pc0NvbXBsZXRlID0gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNhbk5hdmlnYXRlVG9QYWdlKCBwYXRoOiBzdHJpbmcgID0gbnVsbCApOiBib29sZWFuIHtcclxuICAgIGxldCBjb21wbGV0ZSA9IGZhbHNlO1xyXG4gICAgY29uc3Qgb2JqID0gIHRoaXMuX2ZpbmQocGF0aCA/IHBhdGggOiB0aGlzLnJvdXRlci51cmwpO1xyXG4gICAgaWYgKCBvYmogKSB7XHJcbiAgICAgIC8vIENhbiBuYXZpZ2F0ZSB0byBmaXJzdCBwbGF5IHdoZXRoZXIgY29tcGxldGUgb3Igbm90XHJcbiAgICAgIGNvbnN0IHByZXZJZHggPSBvYmouaW5kZXggLSAxO1xyXG4gICAgICBjb21wbGV0ZSA9IChwcmV2SWR4ID09PSAwID8gdHJ1ZSA6IHRoaXMucGFnZUxpc3RbcHJldklkeCAtIDFdLmlzQ29tcGxldGUgKTtcclxuICAgIH1cclxuICAgIHJldHVybiBjb21wbGV0ZTtcclxuICB9XHJcblxyXG4gIGNsZWFyQ29tcGxldGVQYWdlcygpIHtcclxuICAgIHRoaXMucGFnZUxpc3QubWFwKCB4ID0+IHtcclxuICAgICAgICB4LmlzQ29tcGxldGUgPSBmYWxzZTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcblxyXG4gIHBhZ2VMaXN0SXNDbGVhcigpOiBib29sZWFuIHtcclxuICAgIGxldCBpc0NsZWFyID0gdHJ1ZTtcclxuICAgIGlmICggdGhpcy5wYWdlTGlzdC5sZW5ndGggPiAwICkge1xyXG4gICAgICBpc0NsZWFyID0gdGhpcy5wYWdlTGlzdC5ldmVyeSggeCAgPT4geC5pc0NvbXBsZXRlID09PSBmYWxzZSApO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGlzQ2xlYXI7XHJcbiAgfVxyXG5cclxuXHJcbiAgLy8gUmVkaXJlY3RcclxuICBuYXZpZ2F0ZUJ5VXJsKCBwYXRoOiBzdHJpbmcgKSB7XHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKCBwYXRoICk7XHJcbiAgfVxyXG5cclxuICAvLyBGaW5kIGl0ZW0gaW4gbGlzdFxyXG4gIHByaXZhdGUgX2ZpbmQoIHBhdGg6IHN0cmluZyApIHtcclxuICAgIHJldHVybiB0aGlzLnBhZ2VMaXN0LmZpbmQoIHggPT4gcGF0aC5pbmNsdWRlcyh4LnBhdGgpIHx8IHBhdGguZW5kc1dpdGgoeC5wYXRoKSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==