@csmart/ngc-smart-core 0.7.91 → 0.7.95
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/csmart-ngc-smart-core.umd.js +8 -14
- package/bundles/csmart-ngc-smart-core.umd.js.map +1 -1
- package/bundles/csmart-ngc-smart-core.umd.min.js +1 -1
- package/bundles/csmart-ngc-smart-core.umd.min.js.map +1 -1
- package/esm2015/lib/smart-auth/smart-auth.service.js +6 -5
- package/esm2015/lib/smart-offender-header/smart-offender-header.component.js +3 -2
- package/esm2015/lib/smart-storage/xdm.service.js +2 -6
- package/esm5/lib/smart-auth/smart-auth.service.js +6 -5
- package/esm5/lib/smart-offender-header/smart-offender-header.component.js +3 -2
- package/esm5/lib/smart-storage/xdm.service.js +2 -8
- package/fesm2015/csmart-ngc-smart-core.js +8 -10
- package/fesm2015/csmart-ngc-smart-core.js.map +1 -1
- package/fesm5/csmart-ngc-smart-core.js +8 -12
- package/fesm5/csmart-ngc-smart-core.js.map +1 -1
- package/lib/smart-storage/xdm.service.d.ts +1 -1
- package/package.json +1 -1
|
@@ -284,7 +284,6 @@
|
|
|
284
284
|
* Offender
|
|
285
285
|
* ************************************
|
|
286
286
|
* @param {?} selectedOffender
|
|
287
|
-
* @param {?=} redirectFunction
|
|
288
287
|
* @return {?}
|
|
289
288
|
*/
|
|
290
289
|
XdmService.prototype.setSelectedOffender = /**
|
|
@@ -292,23 +291,16 @@
|
|
|
292
291
|
* Offender
|
|
293
292
|
* ************************************
|
|
294
293
|
* @param {?} selectedOffender
|
|
295
|
-
* @param {?=} redirectFunction
|
|
296
294
|
* @return {?}
|
|
297
295
|
*/
|
|
298
|
-
function (selectedOffender
|
|
296
|
+
function (selectedOffender) {
|
|
299
297
|
var _this = this;
|
|
300
|
-
if (redirectFunction === void 0) {
|
|
301
|
-
redirectFunction = null;
|
|
302
|
-
}
|
|
303
298
|
this.connection.promise.then(( /**
|
|
304
299
|
* @param {?} child
|
|
305
300
|
* @return {?}
|
|
306
301
|
*/function (child) {
|
|
307
302
|
child.setSelectedOffender(selectedOffender);
|
|
308
303
|
_this.offenderSubject.next(selectedOffender);
|
|
309
|
-
if (redirectFunction) {
|
|
310
|
-
redirectFunction();
|
|
311
|
-
}
|
|
312
304
|
}));
|
|
313
305
|
};
|
|
314
306
|
/**
|
|
@@ -678,7 +670,8 @@
|
|
|
678
670
|
// : false,
|
|
679
671
|
// } as SelectedOffender;
|
|
680
672
|
this.selectedOffender = offender;
|
|
681
|
-
this.xdmService.setSelectedOffender(this.selectedOffender
|
|
673
|
+
this.xdmService.setSelectedOffender(this.selectedOffender);
|
|
674
|
+
this.reloadCurrentRoute();
|
|
682
675
|
}
|
|
683
676
|
};
|
|
684
677
|
/**
|
|
@@ -1863,10 +1856,11 @@
|
|
|
1863
1856
|
* @param {?} p
|
|
1864
1857
|
* @return {?}
|
|
1865
1858
|
*/function (p) {
|
|
1866
|
-
return (p.appModuleId === accessControlConfig.appModuleId
|
|
1867
|
-
p.resource === resource
|
|
1868
|
-
(!roleId || p.roleId === roleId)
|
|
1869
|
-
p.assignmentStaffRelationId ===
|
|
1859
|
+
return (p.appModuleId === accessControlConfig.appModuleId
|
|
1860
|
+
&& p.resource === resource
|
|
1861
|
+
&& (!roleId || p.roleId === roleId)
|
|
1862
|
+
&& (p.assignmentStaffRelationId === 'N/A' ||
|
|
1863
|
+
p.assignmentStaffRelationId === assignmentStaffRelationId));
|
|
1870
1864
|
}));
|
|
1871
1865
|
if (permission) {
|
|
1872
1866
|
if (accessType === 'read') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"csmart-ngc-smart-core.umd.js.map","sources":["node_modules/tslib/tslib.es6.js","ng://@csmart/ngc-smart-core/lib/smart-storage/smart-storage-model.ts","ng://@csmart/ngc-smart-core/lib/smart-storage/xdm.service.ts","ng://@csmart/ngc-smart-core/lib/smart-offender-header/smart-offender-header.service.ts","ng://@csmart/ngc-smart-core/lib/smart-offender-header/smart-offender-header.component.ts","ng://@csmart/ngc-smart-core/lib/smart-navbar/smart-navbar.service.ts","ng://@csmart/ngc-smart-core/lib/smart-navbar/smart-navbar.component.ts","ng://@csmart/ngc-smart-core/lib/smart-auth/smart-error.component.ts","ng://@csmart/ngc-smart-core/lib/smart-staff-offender-options/smart-staff-offender-options.service.ts","ng://@csmart/ngc-smart-core/lib/smart-staff-offender-options/smart-staff-offender-options.component.ts","ng://@csmart/ngc-smart-core/lib/smart-auth/smart-auth.service.ts","ng://@csmart/ngc-smart-core/lib/smart-auth/smart-access-control.directive.ts","ng://@csmart/ngc-smart-core/lib/smart-auth/smart-authorization-guard.service.ts","ng://@csmart/ngc-smart-core/lib/ngc-smart-core.module.ts","ng://@csmart/ngc-smart-core/lib/smart-auth/smart-login-staff-resolver.service.ts","ng://@csmart/ngc-smart-core/lib/smart-auth/smart-selected-offender-resolver.service.ts","ng://@csmart/ngc-smart-core/lib/smart-staff-offender-options/smart-staff-offender-options-resolver.service.ts","ng://@csmart/ngc-smart-core/lib/smart-auth/smart-access-control-config.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\n\r\nexport class Permission {\r\n roleId: string;\r\n appModuleId: string;\r\n resource: string;\r\n assignmentStaffRelationId: string;\r\n readFlag: boolean;\r\n createFlag: boolean;\r\n updateFlag: boolean;\r\n deleteFlag: boolean;\r\n assignFlag: boolean;\r\n reopenFlag: boolean;\r\n closeFlag: boolean;\r\n expungeFlag: boolean;\r\n}\r\n\r\nexport class Role {\r\n roleId: string;\r\n role: string;\r\n}\r\n\r\nexport class Option {\r\n offenderOptionListId: string;\r\n name: string;\r\n serviceApiFieldName: string;\r\n selectedFlag: boolean;\r\n}\r\n\r\nexport class LoginStaff {\r\n staffId: number;\r\n userName: string;\r\n firstName: string;\r\n lastName: string;\r\n phone: string;\r\n email: string;\r\n selectedRole: string = '*';\r\n roles?: Role[];\r\n permissions?: Permission[];\r\n options?: Option[];\r\n}\r\n\r\nexport class SelectedOffender {\r\n offenderId: number;\r\n name: string;\r\n pdId: string;\r\n birthDate: Date;\r\n gender: string;\r\n assignmentStaffRelationId?: string;\r\n intakeFlag?: boolean = false;\r\n}\r\n\r\nexport class OffenderQuery {\r\n offenders: SelectedOffender[];\r\n}\r\n\r\nexport class StorageKey {\r\n static selectedOffender = 'smart-selected-offender';\r\n static loginStaff = 'smart-login-staff';\r\n static offenderQuery = 'smart-offender-query';\r\n}\r\n\r\nexport const SMART_WEB_STORAGE_LISTENER_URL = new InjectionToken<string>(\r\n 'SMART Web Storage Listener URL',\r\n);\r\nexport const SMART_WEB_PORTAL_URL = new InjectionToken<string>(\r\n 'SMART Web Portal URL',\r\n);\r\nexport const SMART_DATA_SERVICE_URL = new InjectionToken<string>(\r\n 'SMART Data Service URL',\r\n);\r\n\r\n//exception for redirection\r\nexport const SMART_DOMAIN_FORMAT = new InjectionToken<string>(\r\n 'SMART Domain Format URL',\r\n);\r\n\r\n","import { Injectable, Inject, isDevMode } from '@angular/core';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport { Subject, Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport {\r\n SelectedOffender,\r\n LoginStaff,\r\n OffenderQuery,\r\n StorageKey,\r\n SMART_WEB_STORAGE_LISTENER_URL,\r\n SMART_DATA_SERVICE_URL,\r\n Option,\r\n} from './smart-storage-model';\r\n\r\n// import connectToChild from \"penpal/lib/connectToChild\";\r\nimport { connectToChild } from 'penpal';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class XdmService {\r\n private offenderSubject = new Subject<SelectedOffender>();\r\n private staffSubject = new Subject<LoginStaff>();\r\n private offenderQuerySubject = new Subject<OffenderQuery>();\r\n private connection: any;\r\n\r\n constructor(\r\n @Inject(DOCUMENT) private document: any,\r\n @Inject(SMART_WEB_STORAGE_LISTENER_URL)\r\n private smartStorageListenerUrl: string,\r\n private httpClient: HttpClient,\r\n @Inject(SMART_DATA_SERVICE_URL) private smartDataServiceUrl,\r\n ) {\r\n if (isDevMode) {\r\n console.log('SmartStorage XdmService (Client) - constructor()');\r\n }\r\n this.init();\r\n }\r\n\r\n private init(): void {\r\n const frame = this.document.createElement('iframe');\r\n frame.src = this.smartStorageListenerUrl;\r\n frame.id = 'childframe';\r\n frame.name = Math.random().toString();\r\n frame.onload = null;\r\n frame.style.visibility = 'hidden';\r\n this.document.body.appendChild(frame);\r\n\r\n this.connection = connectToChild({\r\n iframe: frame,\r\n debug: false,\r\n });\r\n }\r\n\r\n private getStaffOffenderListOptions(\r\n staffId: number,\r\n ): Observable<Array<Option>> {\r\n const queryString = `{findvStaffOffenderListOptions(input:{\r\n where:{\r\n staffId: ${staffId}\r\n }\r\n }){\r\n data{\r\n offenderListOptionId\r\n name\r\n serviceApiFieldName\r\n selectedFlag\r\n }\r\n } }`;\r\n return this.httpClient\r\n .post<any>(this.smartDataServiceUrl, { query: queryString })\r\n .pipe(\r\n map(({ data }) => {\r\n data.findvStaffOffenderListOptions.data['offenderOptionListId'] =\r\n data.findvStaffOffenderListOptions.data['offenderListOptionId'];\r\n return data.findvStaffOffenderListOptions.data;\r\n }),\r\n );\r\n /*return of([\r\n { offenderListOptionId: 'genderCode', name: '', selectedFlag: true }]);*/\r\n }\r\n\r\n public clearAll(): void {\r\n this.connection.promise.then((child) => {\r\n child.clearAll();\r\n this.offenderSubject.next();\r\n this.staffSubject.next();\r\n });\r\n }\r\n\r\n /*************************************\r\n * Offender\r\n **************************************/\r\n public setSelectedOffender(selectedOffender: SelectedOffender, redirectFunction: any = null): void {\r\n this.connection.promise.then((child) => {\r\n child.setSelectedOffender(selectedOffender);\r\n this.offenderSubject.next(selectedOffender);\r\n if(redirectFunction) {\r\n redirectFunction();\r\n }\r\n });\r\n }\r\n\r\n public getSelectedOffender(): Promise<SelectedOffender> {\r\n return this.connection.promise.then((child) =>\r\n child.getSelectedOffender(StorageKey.selectedOffender),\r\n );\r\n }\r\n\r\n public clearSelectedOffender(): void {\r\n this.connection.promise.then((child) => {\r\n child.clearSelectedOffender();\r\n this.offenderSubject.next();\r\n });\r\n }\r\n\r\n public getOffenderUpdate(): Observable<SelectedOffender> {\r\n return this.offenderSubject.asObservable();\r\n }\r\n\r\n /************************************************************************\r\n * Staff\r\n ************************************************************************/\r\n public setLoginStaff(loginStaff: LoginStaff) {\r\n this.connection.promise.then((child) => {\r\n child.setLoginStaff(loginStaff);\r\n this.staffSubject.next(loginStaff);\r\n });\r\n }\r\n\r\n public getLoginStaff(): Promise<LoginStaff> {\r\n return this.connection.promise.then((child) =>\r\n child.getLoginStaff(StorageKey.loginStaff),\r\n );\r\n }\r\n\r\n public clearLoginStaff(): void {\r\n this.connection.promise.then((child) => {\r\n child.clearLoginStaff();\r\n this.staffSubject.next();\r\n });\r\n }\r\n\r\n public getStaffUpdate(): Observable<LoginStaff> {\r\n return this.staffSubject.asObservable();\r\n }\r\n\r\n public refreshLoginStaffOptions() {\r\n this.getLoginStaff().then((oldLoginStaff) => {\r\n this.getStaffOffenderListOptions(oldLoginStaff.staffId).subscribe(\r\n (optionData) => {\r\n console.log(optionData);\r\n oldLoginStaff.options = optionData;\r\n this.setLoginStaff(oldLoginStaff);\r\n },\r\n );\r\n });\r\n }\r\n\r\n /************************************************************************\r\n * Offender Query\r\n ************************************************************************/\r\n public setOffenderQuery(offenderQuery: OffenderQuery) {\r\n this.connection.promise.then((child) => {\r\n child.setOffenderQuery(offenderQuery);\r\n this.offenderQuerySubject.next(offenderQuery);\r\n });\r\n }\r\n\r\n public getOffenderQuery(): Promise<OffenderQuery> {\r\n return this.connection.promise.then((child) =>\r\n child.getOffenderQuery(StorageKey.offenderQuery),\r\n );\r\n }\r\n\r\n public clearOffenderQuery(): void {\r\n this.connection.promise.then((child) => {\r\n child.clearOffenderQuery();\r\n this.offenderQuerySubject.next();\r\n });\r\n }\r\n\r\n public getOffenderQueryUpdate(): Observable<OffenderQuery> {\r\n return this.offenderQuerySubject.asObservable();\r\n }\r\n}\r\n","import { Injectable, Inject } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, from, of } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport {\r\n SMART_DATA_SERVICE_URL,\r\n} from '../smart-storage/smart-storage-model';\r\n\r\n\r\n@Injectable()\r\nexport class SmartOffenderHeaderService {\r\n constructor(\r\n @Inject(SMART_DATA_SERVICE_URL) private smartDataServiceUrl,\r\n private http: HttpClient,\r\n ) {}\r\n\r\n getStaffOffenders(staffId: number): Observable<AssignedOffender[]> {\r\n const queryString = `\r\n query getStaffOffenderList{\r\n filterOffenderList(input: {staffId: ${staffId}}) {\r\n data {\r\n offenderId\r\n offenderName\r\n pdId\r\n birthDate\r\n gender\r\n }\r\n }\r\n }\r\n `;\r\n return this.http\r\n .post<any>(this.smartDataServiceUrl, { query: queryString })\r\n .pipe(\r\n map(({ data }) => {\r\n return data.filterOffenderList.data;\r\n }),\r\n );\r\n }\r\n}\r\n\r\nexport interface AssignedOffender {\r\n offenderId: number;\r\n offenderName: string;\r\n pdId: string;\r\n birthDate: Date;\r\n gender: string;\r\n}\r\n","import { Component, OnInit, OnDestroy, NgZone, Output, EventEmitter } from '@angular/core';\r\nimport { XdmService } from '../smart-storage/xdm.service';\r\nimport { SelectedOffender, LoginStaff, Role, OffenderQuery } from '../smart-storage/smart-storage-model';\r\nimport { Subscription, Observable, from, of } from 'rxjs';\r\nimport { MsalService } from '@azure/msal-angular';\r\nimport { FormControl } from '@angular/forms';\r\nimport { map, switchMap } from 'rxjs/operators';\r\nimport { SmartOffenderHeaderService, AssignedOffender } from './smart-offender-header.service';\r\nimport { Router } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'app-smart-offender-header',\r\n templateUrl: './smart-offender-header.component.html',\r\n styleUrls: ['./smart-offender-header.component.css'],\r\n})\r\nexport class SmartOffenderHeaderComponent implements OnInit, OnDestroy {\r\n public selectedOffender: SelectedOffender;\r\n loginStaff: LoginStaff;\r\n subscription: Subscription;\r\n selectedOffenderControl$ = new FormControl();\r\n // assignedOffenders: AssignedOffender[];\r\n offenderQueryList: SelectedOffender[];\r\n offenderQuerySubscription: Subscription;\r\n public isAuthenticated: boolean;\r\n\r\n constructor(\r\n private xdmService: XdmService,\r\n private authnService: MsalService,\r\n private smartOffenderHeaderService: SmartOffenderHeaderService,\r\n private router: Router,\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.isAuthenticated = this.authnService.getAccount() ? true : false;\r\n this.xdmService.getLoginStaff().then((loginStaff) => {\r\n this.loginStaff = loginStaff ? loginStaff : null;\r\n });\r\n this.xdmService.getSelectedOffender().then((selectedOffender) => {\r\n this.selectedOffender =\r\n selectedOffender && selectedOffender.offenderId\r\n ? selectedOffender\r\n : null;\r\n });\r\n\r\n this.subscription = this.xdmService\r\n .getOffenderUpdate()\r\n .subscribe((selectedOffender) => {\r\n this.selectedOffender = selectedOffender;\r\n this.setSelectedOffenderControl();\r\n });\r\n\r\n this.xdmService.getOffenderQuery().then((offenderQuery: OffenderQuery) => {\r\n if (offenderQuery) {\r\n this.offenderQueryList = offenderQuery.offenders;\r\n this.setSelectedOffenderControl();\r\n }\r\n });\r\n\r\n this.offenderQuerySubscription = this.xdmService.getOffenderQueryUpdate()\r\n .subscribe((offenderList) => {\r\n if (offenderList && offenderList.offenders) {\r\n this.offenderQueryList = [...offenderList.offenders];\r\n }\r\n });\r\n\r\n\r\n this.selectedOffenderControl$.valueChanges.subscribe((o) =>\r\n this.onOffenderSelected(o),\r\n );\r\n\r\n this.router.routeReuseStrategy.shouldReuseRoute = () => {\r\n return false;\r\n };\r\n\r\n\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n private onOffenderSelected(offender): void {\r\n if (offender) {\r\n // const o = offender.offenderName.split(',');\r\n // if (o.length === 2) {\r\n // const offenderName = `${o[1]} ${o[0]}`;\r\n // this.selectedOffender = {\r\n // offenderId: offender.offenderId,\r\n // name: offenderName,\r\n // pdId: offender.pdId,\r\n // birthDate: offender.birthDate,\r\n // gender: offender.genderCode,\r\n // assignmentStaffRelationId: '',\r\n // intakeFlag: this.loginStaff\r\n // ? this.hasIntakeRole(this.loginStaff.roles)\r\n // : false,\r\n // } as SelectedOffender;\r\n this.selectedOffender = offender;\r\n this.xdmService.setSelectedOffender(this.selectedOffender, this.reloadCurrentRoute);\r\n }\r\n }\r\n\r\n private setSelectedOffenderControl() {\r\n if (\r\n this.selectedOffender &&\r\n this.offenderQueryList &&\r\n this.offenderQueryList.length > 0\r\n ) {\r\n const o = this.offenderQueryList.find(\r\n (x) => x.offenderId === this.selectedOffender.offenderId,\r\n );\r\n if (o) {\r\n this.selectedOffenderControl$.setValue(o, { emitEvent: false });\r\n }\r\n\r\n if (!o && this.offenderQueryList.length > 0) {\r\n this.selectedOffenderControl$.setValue(this.offenderQueryList[0], {\r\n emitEvent: false,\r\n });\r\n }\r\n }\r\n }\r\n\r\n private reloadCurrentRoute() {\r\n try {\r\n const urlTree = this.router.parseUrl(this.router.url);\r\n if (urlTree\r\n && urlTree.root\r\n && urlTree.root.segments\r\n && urlTree.root.segments.length > 1) {\r\n this.router.navigate([urlTree.root.segments[0].path]);\r\n } else if (urlTree\r\n && urlTree.root\r\n && urlTree.root.children\r\n && urlTree.root.children.primary\r\n && urlTree.root.children.primary.segments\r\n && urlTree.root.children.primary.segments.length > 1) {\r\n this.router.navigate([urlTree.root.children.primary.segments[0].path]);\r\n } else {\r\n this.router.navigate([this.router.url]);\r\n }\r\n } catch {\r\n this.router.navigateByUrl('/');\r\n }\r\n }\r\n\r\n private hasIntakeRole(roles: Role[]) {\r\n if (roles && roles.length > 0) {\r\n return roles.findIndex(this.isIntakeRole) > -1;\r\n }\r\n return false;\r\n }\r\n\r\n private isIntakeRole(role: Role) {\r\n switch (role.roleId) {\r\n case 'OPA':\r\n case 'OPS':\r\n case 'SOPS':\r\n return true;\r\n default:\r\n return false;\r\n }\r\n }\r\n}\r\n","import { Injectable, isDevMode } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\n\r\nimport { SmartNavbarConfig } from './smart-navbar-config';\r\n\r\n@Injectable()\r\nexport class SmartNavbarService {\r\n configs: SmartNavbarConfig[];\r\n constructor(private http: HttpClient) {}\r\n\r\n /*\r\n public getNavbarConfigs(): SmartNavbarConfig[] {\r\n this.configs = [\r\n {appModuleId: 'SMART', name: 'SMART', url: 'http://localhost:4200', offenderSpecific: false, displayOrder: 1 },\r\n {appModuleId: 'OFFENDER', name: 'Offender', url: 'http://localhost:4200', offenderSpecific: true, displayOrder: 2 },\r\n {appModuleId: 'SPRVSN', name: 'Supervision', url: 'http://localhost:4200', offenderSpecific: true, displayOrder: 3 },\r\n ];\r\n\r\n return this.configs;\r\n }\r\n */\r\n /*\r\n public getNavbarConfigs(serviceApiUrl: string): Observable<SmartNavbarConfig[]> {\r\n return this.http.get<SmartNavbarConfig[]>(serviceApiUrl + '/AppModules');\r\n }\r\n */\r\n\r\n public getNavbarConfigs(\r\n serviceApiUrl: string,\r\n ): Observable<SmartNavbarConfig[]> {\r\n const queryString = `\r\n {\r\n findAppModules {\r\n data {\r\n appModuleId\r\n name\r\n url\r\n offenderSpecificFlag\r\n displayOrder\r\n }\r\n }\r\n }`;\r\n\r\n /*\r\n const httpHeaders = new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n 'Cache-Control': 'no-cache'\r\n });\r\n const options = {\r\n headers: httpHeaders\r\n };\r\n */\r\n\r\n return this.http\r\n .post<any>(serviceApiUrl, { query: queryString })\r\n .pipe(\r\n map(({ data }) => {\r\n if (isDevMode()) {\r\n console.log(data);\r\n }\r\n return data.findAppModules.data;\r\n }),\r\n );\r\n }\r\n}\r\n","import {\r\n Component,\r\n OnInit,\r\n OnChanges,\r\n OnDestroy,\r\n Input,\r\n NgZone,\r\n ViewChild,\r\n isDevMode,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\nimport { MatTabGroup } from '@angular/material';\r\nimport { MsalService } from '@azure/msal-angular';\r\nimport { SmartNavbarConfig } from './smart-navbar-config';\r\nimport { SmartNavbarService } from './smart-navbar.service';\r\nimport { XdmService } from '../smart-storage/xdm.service';\r\nimport {\r\n SelectedOffender,\r\n LoginStaff,\r\n Role,\r\n} from '../smart-storage/smart-storage-model';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-smart-navbar',\r\n templateUrl: './smart-navbar.component.html',\r\n styleUrls: ['./smart-navbar.component.css'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class SmartNavbarComponent implements OnInit, OnChanges, OnDestroy {\r\n @Input() serviceApiUrl: string;\r\n @Input() appModuleId = 'SMART';\r\n @ViewChild('tabs') tabGroup: MatTabGroup;\r\n selectedOffender: SelectedOffender;\r\n loginStaff: LoginStaff;\r\n offenderSubscription: Subscription;\r\n staffSubscription: Subscription;\r\n isAuthenticated = false;\r\n\r\n navbarConfigs: SmartNavbarConfig[];\r\n\r\n constructor(\r\n private navbarConfigService: SmartNavbarService,\r\n private xdmService: XdmService,\r\n // private zone: NgZone,\r\n private authnService: MsalService,\r\n ) {}\r\n\r\n ngOnChanges() {\r\n /*\r\n console.log(this.selectedTab);\r\n setTimeout(() => {\r\n this.tabGroup.selectedIndex = this.selectedTab;\r\n }, 1000);\r\n */\r\n }\r\n\r\n ngOnInit() {\r\n this.xdmService.getSelectedOffender().then((selectedOffender) => {\r\n this.selectedOffender =\r\n selectedOffender && selectedOffender.offenderId\r\n ? selectedOffender\r\n : null;\r\n });\r\n\r\n this.xdmService.getLoginStaff().then((loginStaff) => {\r\n // this.zone.run(() => {\r\n this.loginStaff = loginStaff ? loginStaff : null;\r\n // });\r\n });\r\n\r\n this.offenderSubscription = this.xdmService\r\n .getOffenderUpdate()\r\n .subscribe((selectedOffender) => {\r\n // this.zone.run(() => {\r\n this.selectedOffender = selectedOffender;\r\n // });\r\n });\r\n\r\n this.staffSubscription = this.xdmService\r\n .getStaffUpdate()\r\n .subscribe((loginStaff) => {\r\n // this.zone.run(() => {\r\n this.loginStaff = loginStaff;\r\n // });\r\n });\r\n\r\n this.navbarConfigService\r\n .getNavbarConfigs(this.serviceApiUrl)\r\n .subscribe((configs) => {\r\n this.navbarConfigs = configs.sort((a, b) => {\r\n if (a.displayOrder < b.displayOrder) {\r\n return -1;\r\n } else if (a.displayOrder > b.displayOrder) {\r\n return 1;\r\n }\r\n return 0;\r\n });\r\n });\r\n\r\n this.isAuthenticated = this.authnService.getAccount() ? true : false;\r\n }\r\n\r\n ngOnDestroy() {\r\n this.offenderSubscription.unsubscribe();\r\n this.staffSubscription.unsubscribe();\r\n }\r\n\r\n public logout(): void {\r\n this.xdmService.clearAll();\r\n this.authnService.logout();\r\n }\r\n\r\n public getAppModuleUrl(config: SmartNavbarConfig) {\r\n return (config && this.selectedOffender && config.appModuleId === 'PPMAS') ?\r\n `${config.url}?skipAppMetadata=true&OffenderId=${this.selectedOffender.offenderId}` : config.url;\r\n }\r\n\r\n public hasAppModulePermission(appModuleId) {\r\n if (this.loginStaff && this.loginStaff.permissions && this.loginStaff.permissions.length > 0) {\r\n return this.loginStaff.permissions.findIndex(p => p.appModuleId === appModuleId) > -1;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public get hasExternalUserRole() {\r\n if (this.loginStaff && this.loginStaff.roles && this.loginStaff.roles.length > 0) {\r\n return this.loginStaff.roles.findIndex(this.isExternalRole) > -1;\r\n }\r\n return false;\r\n }\r\n\r\n private isExternalRole(role: Role) {\r\n switch (role.roleId) {\r\n case 'EUDTL':\r\n case 'EUDUSM':\r\n case 'EUJDG':\r\n case 'EUMPD':\r\n case 'EUSOTV':\r\n case 'EUUSA2':\r\n case 'EUUSAO':\r\n case 'EUUSPC':\r\n return true;\r\n default:\r\n return false;\r\n }\r\n }\r\n}\r\n\r\n// EUDTL\r\n// EUDUSM\r\n// EUJDG\r\n\r\n// EUMPD\r\n// EUSOTV\r\n// EUUSA2\r\n\r\n// EUUSAO\r\n// EUUSPC\r\n","import { Component, OnInit, Inject } from '@angular/core';\r\n// import { SmartAuthService } from './smart-auth.service';\r\nimport { MsalService } from '@azure/msal-angular';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { SMART_WEB_PORTAL_URL } from '../smart-storage/smart-storage-model';\r\n\r\n@Component({\r\n selector: 'app-smart-error',\r\n templateUrl: './smart-error.component.html',\r\n styleUrls: ['./smart-error.component.css'],\r\n})\r\nexport class SmartErrorComponent implements OnInit {\r\n type: string;\r\n message: string;\r\n\r\n constructor(\r\n private authnService: MsalService,\r\n private route: ActivatedRoute,\r\n @Inject(SMART_WEB_PORTAL_URL) private smartWebPortalUrl: string,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.type = this.route.snapshot.queryParamMap.get('type') || 'staff';\r\n this.message =\r\n this.route.snapshot.queryParamMap.get('message') || 'Error occured.';\r\n }\r\n\r\n logout() {\r\n this.authnService.logout();\r\n }\r\n\r\n portal() {\r\n window.location.href = this.smartWebPortalUrl;\r\n }\r\n}\r\n","import { Injectable, Inject } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, from, of } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { MatSnackBar } from '@angular/material';\r\nimport {\r\n SMART_DATA_SERVICE_URL,\r\n} from '../smart-storage/smart-storage-model';\r\n\r\n@Injectable()\r\nexport class SmartStaffOffenderOptionsService {\r\n constructor(\r\n @Inject(SMART_DATA_SERVICE_URL) private serviceApiUrl,\r\n private http: HttpClient, private matSnackBar: MatSnackBar\r\n ) { }\r\n\r\n public showMessage(message) {\r\n this.matSnackBar.open(message, null, {\r\n duration: 2000,\r\n });\r\n }\r\n\r\n private convertEmptyToNull(jsonObject: JSON) {\r\n if (!jsonObject) {\r\n return;\r\n }\r\n\r\n if (jsonObject instanceof Array) {\r\n jsonObject.forEach(obj => {\r\n this.convertEmptyToNull(obj);\r\n });\r\n }\r\n\r\n const keys = Object.keys(jsonObject);\r\n keys.forEach(key => {\r\n if (typeof jsonObject[key] === 'object') {\r\n this.convertEmptyToNull(jsonObject[key]);\r\n } else if (typeof jsonObject[key] === 'string' && jsonObject[key].trim() === '') {\r\n jsonObject[key] = null;\r\n }\r\n });\r\n }\r\n\r\n private getGraphQueryData(queryName: string, queryString: string): Observable<any> {\r\n return this.http\r\n .post<any>(this.serviceApiUrl, { query: queryString })\r\n .pipe(\r\n map(({ data }) => {\r\n return data[queryName];\r\n }));\r\n }\r\n \r\n getOffenderListOptions(): Observable<any> {\r\n const queryName = 'findOffenderListOptions';\r\n const queryString = `{\r\n ${queryName} {\r\n data {\r\n offenderListOptionId\r\n name\r\n serviceApiFieldName\r\n }\r\n message\r\n }\r\n }`;\r\n\r\n return this.getGraphQueryData(queryName, queryString);\r\n }\r\n\r\n public getStaffOffenderListOptions(\r\n staffId: number,\r\n ): Observable<Array<any>> {\r\n const queryString = `{findStaffOffenderListOptions(input:{\r\n where:{\r\n staffId: ${staffId}\r\n }\r\n }){\r\n data{\r\n offenderListOptionId\r\n }\r\n } }`;\r\n return this.http\r\n .post<any>(this.serviceApiUrl, { query: queryString })\r\n .pipe(\r\n map(({ data }) => {\r\n return data.findStaffOffenderListOptions.data;\r\n }),\r\n );\r\n }\r\n\r\n saveStaffOffenderListOptionsData(dataToSave: any) { //}: Observable<any> {\r\n\r\n // this.convertEmptyToNull(dataToSave);\r\n const queryName = 'upsertStaffOffenderListOption';\r\n const query = `mutation {\r\n upsertStaffOffenderListOption(input: ${this.convertToString(dataToSave)}) {\r\n message\r\n }\r\n }`;\r\n\r\n;\r\n return this.http\r\n .post<any>(this.serviceApiUrl, { query });\r\n /*.pipe(\r\n map(({ data }) => {\r\n return data[queryName];\r\n }));*/\r\n\r\n\r\n }\r\n\r\n convertToString(obj): string {\r\n let result = '';\r\n\r\n if (!obj) {\r\n return result;\r\n }\r\n\r\n if (obj instanceof Array) {\r\n result += ' [';\r\n obj.forEach(eObj => {\r\n result += this.convertToString(eObj);\r\n });\r\n result += '],';\r\n } else {\r\n result += '{';\r\n const keys = Object.keys(obj);\r\n keys.forEach((key) => {\r\n if (typeof obj[key] === 'object') {\r\n result += key + ':' + this.convertToString(obj[key]);\r\n } else {\r\n if (isNaN(obj[key])) {\r\n result += key + ':\"' + obj[key] + '\",';\r\n } else {\r\n result += key + ':' + obj[key] + ',';\r\n }\r\n }\r\n });\r\n result = result.substring(0, result.length - 1);\r\n result += '},';\r\n }\r\n return result;\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { SmartStaffOffenderOptionsService} from './smart-staff-offender-options.service';\r\nimport { FormBuilder,\r\n FormGroup,\r\n FormControl,\r\n Validators,\r\n ValidatorFn,\r\n AbstractControl,\r\n} from '@angular/forms';\r\nimport { LoginStaff } from '../smart-storage/smart-storage-model';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { XdmService} from '../smart-storage/xdm.service';\r\n\r\n@Component({\r\n selector: 'lib-smart-staff-offender-options',\r\n templateUrl: './smart-staff-offender-options.component.html',\r\n styleUrls: ['./smart-staff-offender-options.component.css']\r\n})\r\nexport class SmartStaffOffenderOptionsComponent implements OnInit {\r\n loginStaff: LoginStaff;\r\n offenderListOptions: Array<any> = [];\r\n frmGroup: FormGroup;\r\n constructor(\r\n private route: ActivatedRoute,\r\n private offenderService: SmartStaffOffenderOptionsService,\r\n private xdmService: XdmService\r\n ) { }\r\n\r\n ngOnInit() {\r\n const routData = this.route.snapshot.data;\r\n this.loginStaff = routData.loginStaff;\r\n this.offenderListOptions = routData.selectedOffenderResolverService;\r\n this.frmGroup = this.createForm();\r\n this.offenderService.getStaffOffenderListOptions(this.loginStaff.staffId).subscribe(data => {\r\n this.fillForm(data);\r\n });\r\n }\r\n\r\n private fillForm(data) {\r\n if (data) {\r\n const offenderListOptionsFg = this.frmGroup.get('offenderListOptions');\r\n data.forEach(element => {\r\n offenderListOptionsFg.get(element.offenderListOptionId).setValue(true);\r\n });\r\n }\r\n\r\n }\r\n private createForm() {\r\n const offenderListOptionsFg = new FormGroup({\r\n });\r\n\r\n this.offenderListOptions.forEach( (dt, i) => {\r\n offenderListOptionsFg.addControl(dt.offenderListOptionId, new FormControl(false));\r\n });\r\n\r\n return new FormGroup({\r\n offenderListOptions: offenderListOptionsFg,\r\n });\r\n }\r\n\r\n onSave() {\r\n const data = {\r\n options: [],\r\n staffId: this.loginStaff.staffId,\r\n modifiedBy: this.loginStaff.staffId\r\n };\r\n\r\n const offenderListOptionsVal = this.frmGroup.get('offenderListOptions').value;\r\n const keys = Object.keys(offenderListOptionsVal);\r\n keys.forEach(key => {\r\n if (offenderListOptionsVal[key]) {\r\n data.options.push({'offenderListOptionId': key});\r\n }\r\n });\r\n\r\n this.offenderService.saveStaffOffenderListOptionsData(data).subscribe(rtrDatea=>{\r\n if (rtrDatea.message) {\r\n this.offenderService.showMessage(rtrDatea.message);\r\n } else {\r\n this.offenderService.showMessage('Saved successfully');\r\n this.xdmService.refreshLoginStaffOptions();\r\n }\r\n });\r\n }\r\n\r\n}\r\n","import { Injectable, Inject, isDevMode } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, of, from, throwError } from 'rxjs';\r\nimport { map, switchMap, take, catchError} from 'rxjs/operators';\r\nimport { MsalService } from '@azure/msal-angular';\r\nimport { ActivatedRouteSnapshot } from '@angular/router';\r\n\r\nimport {\r\n LoginStaff,\r\n SelectedOffender,\r\n SMART_DATA_SERVICE_URL,\r\n SMART_DOMAIN_FORMAT,\r\n Role,\r\n Permission,\r\n} from '../smart-storage/smart-storage-model';\r\nimport { XdmService } from '../smart-storage/xdm.service';\r\nimport { SmartAccessControlConfig } from './smart-access-control-config';\r\nimport { nullSafeIsEquivalent } from '@angular/compiler/src/output/output_ast';\r\n// import { stringify } from 'querystring';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SmartAuthService {\r\n loginStaff: LoginStaff;\r\n selectedOffender: SelectedOffender;\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private authnService: MsalService,\r\n private xdmService: XdmService,\r\n @Inject(SMART_DATA_SERVICE_URL) private smartDataServiceUrl,\r\n @Inject(SMART_DOMAIN_FORMAT) private smartDomainFormatUrl: string,\r\n ) {}\r\n\r\n public getLoginStaff(): Observable<LoginStaff> {\r\n if (isDevMode) {\r\n console.log('SmartAuthService - getLoginStaff()');\r\n }\r\n if (!isDevMode && this.loginStaff) {\r\n if (this.loginStaff.staffId) {\r\n if (isDevMode) {\r\n console.log(\r\n '##### getLoginStaff(): get internal instance in service',\r\n this.loginStaff,\r\n );\r\n }\r\n return of(this.loginStaff);\r\n } else if (this.loginStaff.userName) {\r\n if (isDevMode) {\r\n console.log(\r\n '##### getLoginStaff(): get using preset user name',\r\n this.loginStaff,\r\n );\r\n }\r\n return this.getStaff(this.loginStaff.userName);\r\n }\r\n }\r\n return from(this.xdmService.getLoginStaff()).pipe(\r\n switchMap((storedResult) => {\r\n if (storedResult && storedResult.staffId) {\r\n if (isDevMode) {\r\n console.log(\r\n '##### getLoginStaff(): get from session.',\r\n storedResult,\r\n );\r\n }\r\n this.loginStaff = storedResult;\r\n return of(storedResult);\r\n } else if (storedResult && storedResult.userName) {\r\n if (isDevMode) {\r\n console.log(\r\n '##### getLoginStaff(): get using preset user name',\r\n this.loginStaff,\r\n );\r\n }\r\n return this.getStaff(storedResult.userName);\r\n } else {\r\n const userName = this.authnService.getAccount().userName;\r\n const staffName = userName.substring(0, userName.indexOf('@'));\r\n if (isDevMode) {\r\n console.log(\r\n '##### loginLoginStaff(): get using login staff name ',\r\n staffName,\r\n );\r\n }\r\n return this.getStaff(staffName);\r\n }\r\n }),\r\n );\r\n }\r\n\r\n private getTeamUrl(app: string, afterHash: string): string {\r\n return this.smartDomainFormatUrl.replace('${APP}', app) + afterHash;\r\n }\r\n private isSameHost(url, app) {\r\n return this.smartDomainFormatUrl.replace('${APP}', app) === url;\r\n }\r\n\r\n public redirectToTeam(loginStaff: LoginStaff) {\r\n if (loginStaff.roles.findIndex((role) => role.roleId === 'EUUSPC') > -1) {\r\n if (!this.isSameHost(window.location.origin, 'investigation')) {\r\n window.location.href = this.getTeamUrl('investigation', '/assignment');\r\n }\r\n } else if (\r\n loginStaff.roles.findIndex(\r\n (role) => role.roleId.substring(0, 3) === 'RSC',\r\n ) > -1\r\n ) {\r\n if (!this.isSameHost(window.location.origin, 'rsc')) {\r\n window.location.href = this.getTeamUrl('rsc', '/offender-list');\r\n }\r\n }\r\n }\r\n\r\n public async setSelectedOffender(selectedOffender: SelectedOffender) {\r\n if (selectedOffender) {\r\n // if (!selectedOffender.assignmentStaffRelationId) {\r\n const relation = await this.getStaffOffenderRelation(\r\n this.loginStaff.staffId,\r\n selectedOffender.offenderId,\r\n ).toPromise();\r\n if (relation) {\r\n selectedOffender.assignmentStaffRelationId = relation;\r\n } else {\r\n selectedOffender.assignmentStaffRelationId = 'NOASSIGN';\r\n }\r\n // }\r\n }\r\n this.xdmService.setSelectedOffender(selectedOffender);\r\n this.selectedOffender = selectedOffender;\r\n }\r\n\r\n\r\n public logout(): void {\r\n this.xdmService.clearAll();\r\n this.authnService.logout();\r\n }\r\n\r\n public async setPermission(\r\n appModuleId: string,\r\n route: ActivatedRouteSnapshot,\r\n ) {\r\n if (!this.loginStaff) {\r\n this.loginStaff = await this.xdmService.getLoginStaff();\r\n }\r\n const permissions = this.loginStaff.permissions;\r\n const resource = route.url[0].path;\r\n\r\n if (!this.selectedOffender) {\r\n this.selectedOffender = await this.xdmService.getSelectedOffender();\r\n }\r\n\r\n if (this.selectedOffender) {\r\n // if (!this.selectedOffender.assignmentStaffRelationId) {\r\n const relation = await this.getStaffOffenderRelation(\r\n this.loginStaff.staffId,\r\n this.selectedOffender.offenderId,\r\n ).toPromise();\r\n if (relation) {\r\n this.selectedOffender.assignmentStaffRelationId = relation;\r\n } else {\r\n this.selectedOffender.assignmentStaffRelationId = 'NOASSIGN';\r\n }\r\n this.xdmService.setSelectedOffender(this.selectedOffender);\r\n // }\r\n }\r\n\r\n const assignmentStaffRelationId = this.selectedOffender\r\n .assignmentStaffRelationId;\r\n\r\n const elements = document.querySelectorAll('[class^=\"sac-\"]');\r\n const pattern = /^sac-(\\S+)-(\\S+)$/i;\r\n\r\n Array.from(elements).forEach((element) => {\r\n let hide;\r\n let disable;\r\n element.classList.forEach((c) => {\r\n const results = c.match(pattern);\r\n // console.log(results);\r\n if (results && results.length > 2) {\r\n const roleId = results[1] ? results[1].toUpperCase() : null;\r\n const right = results[2];\r\n // console.log(results[0]);\r\n // console.log(results[1]);\r\n // console.log(results[2]);\r\n const permission = permissions.find(function (p) {\r\n return (\r\n p.appModuleId === appModuleId &&\r\n p.resource === resource &&\r\n p.roleId === roleId &&\r\n p.assignmentStaffRelationId === assignmentStaffRelationId\r\n );\r\n });\r\n /*\r\n console.log('##### setPermission() resource: ', resource);\r\n console.log('##### setPermission() appModuleId: ', appModuleId);\r\n console.log('##### setPermission() roleId: ', roleId);\r\n console.log(\r\n '##### setPermission() assignment relation: ',\r\n assignmentStaffRelationId,\r\n );\r\n */\r\n console.log('##### Matched permission: ', permission);\r\n\r\n if (permission) {\r\n if (right === 'read') {\r\n if (!permission.readFlag) {\r\n if (hide !== false) {\r\n hide = true;\r\n }\r\n } else {\r\n hide = false;\r\n }\r\n } else if (\r\n (right === 'create' && !permission.createFlag) ||\r\n (right === 'update' && !permission.updateFlag) ||\r\n (right === 'delete' && !permission.deleteFlag) ||\r\n (right === 'assign' && !permission.assignFlag) ||\r\n (right === 'close' && !permission.closeFlag) ||\r\n (right === 'expunge' && !permission.expungeFlag) ||\r\n (right === 'reopen' && !permission.reopenFlag)\r\n ) {\r\n if (element.nodeName === 'BUTTON') {\r\n if (hide !== false) {\r\n hide = true;\r\n }\r\n } else {\r\n if (disable !== false) {\r\n disable = true;\r\n }\r\n }\r\n } else {\r\n if (element.nodeName === 'BUTTON') {\r\n hide = false;\r\n } else {\r\n disable = false;\r\n }\r\n }\r\n } else {\r\n if (right === 'read') {\r\n if (hide !== false) {\r\n hide = true;\r\n }\r\n } else if (element.nodeName === 'BUTTON') {\r\n if (hide !== false) {\r\n hide = true;\r\n }\r\n } else if (disable !== false) {\r\n disable = true;\r\n }\r\n }\r\n }\r\n });\r\n console.log('hide: ', hide);\r\n console.log('disable: ', disable);\r\n if (hide === true) {\r\n this.hideHtmlElement(element);\r\n } else if (disable === true) {\r\n this.disableHtmlElement(element);\r\n }\r\n });\r\n }\r\n\r\n public checkPermission(accessControlConfig: SmartAccessControlConfig) {\r\n const selData = accessControlConfig.route.data;\r\n this.loginStaff = selData.loginStaff;\r\n this.selectedOffender = selData.selectedOffender;\r\n\r\n const permissions = this.loginStaff.permissions;\r\n const resource = accessControlConfig.route.url[0].path;\r\n const roleId = accessControlConfig.roleId\r\n ? accessControlConfig.roleId.toUpperCase()\r\n : null;\r\n const accessType = accessControlConfig.accessType;\r\n const assignmentStaffRelationId = !this.selectedOffender\r\n .assignmentStaffRelationId\r\n ? 'N/A'\r\n : this.selectedOffender.assignmentStaffRelationId;\r\n\r\n const permission = permissions.find((p) => {\r\n return (\r\n p.appModuleId === accessControlConfig.appModuleId &&\r\n p.resource === resource &&\r\n (!roleId || p.roleId === roleId) &&\r\n p.assignmentStaffRelationId === assignmentStaffRelationId\r\n );\r\n });\r\n\r\n if (permission) {\r\n if (accessType === 'read') {\r\n if (!permission.readFlag) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n } else if (\r\n (accessType === 'create' && !permission.createFlag) ||\r\n (accessType === 'update' && !permission.updateFlag) ||\r\n (accessType === 'delete' && !permission.deleteFlag) ||\r\n (accessType === 'assign' && !permission.assignFlag) ||\r\n (accessType === 'close' && !permission.closeFlag) ||\r\n (accessType === 'expunge' && !permission.expungeFlag) ||\r\n (accessType === 'reopen' && !permission.reopenFlag)\r\n ) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n } else {\r\n if (accessType === 'read') {\r\n return false;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n public canAppFeatureActivate(\r\n loginStaff: LoginStaff,\r\n feature: string,\r\n appModuleId = null,\r\n ) {\r\n // if (!this.isAuthEnable(loginStaff.roles, appModuleId)) {\r\n // return true;\r\n // }\r\n return this.hasAppFeaturePermission(\r\n loginStaff.permissions,\r\n feature,\r\n appModuleId,\r\n );\r\n }\r\n\r\n // public isAuthEnable(roles: Role[], appModuleId: string) {\r\n // if (roles && roles.length > 0) {\r\n // return roles.map(r => r.roleId).findIndex(this.isExternalRole) > -1 || appModuleId === 'RR';\r\n // }\r\n // return false;\r\n // }\r\n\r\n public hasIntakeRole(roles: Role[]) {\r\n if (roles && roles.length > 0) {\r\n return roles.findIndex(this.isIntakeRole) > -1;\r\n }\r\n return false;\r\n }\r\n\r\n private hasAppFeaturePermission(\r\n permissions: Permission[],\r\n feature: string,\r\n appModuleId: string,\r\n ) {\r\n if (permissions && permissions.length > 0) {\r\n if (appModuleId) {\r\n return (\r\n permissions.findIndex(\r\n (p) => p.resource === feature && p.appModuleId === appModuleId,\r\n ) > -1\r\n );\r\n } else {\r\n return permissions.findIndex((p) => p.resource === feature) > -1;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n private isExternalRole(roleId) {\r\n switch (roleId) {\r\n case 'EUDTL':\r\n case 'EUDUSM':\r\n case 'EUJDG':\r\n case 'EUMPD':\r\n case 'EUSOTV':\r\n case 'EUUSA2':\r\n case 'EUUSAO':\r\n case 'EUUSPC':\r\n return true;\r\n default:\r\n return false;\r\n }\r\n }\r\n\r\n private isIntakeRole(role: Role) {\r\n switch (role.roleId) {\r\n case 'OPA':\r\n case 'OPS':\r\n case 'SOPS':\r\n return true;\r\n default:\r\n return false;\r\n }\r\n }\r\n\r\n private disableHtmlElement(element: Element): void {\r\n // console.log(element);\r\n switch (element.nodeName) {\r\n case 'A':\r\n element.setAttribute(\r\n 'style',\r\n 'pointer-events: none;cursor: not-allowed;',\r\n );\r\n element.setAttribute('tabIndex', '-1');\r\n break;\r\n default:\r\n element.setAttribute('disabled', 'disabled');\r\n break;\r\n }\r\n }\r\n\r\n private hideHtmlElement(element: Element): void {\r\n // element.setAttribute('hidden', 'hidden');\r\n element.setAttribute('style', 'display: none;');\r\n }\r\n\r\n private getStaff(userName: string): Observable<LoginStaff> {\r\n const queryString = `\r\n {\r\n findvStaffs(input: {where: {userName: \"${userName}\", activeFlag: true}}) {\r\n totalCount\r\n message\r\n data {\r\n staffId\r\n userName\r\n lastName\r\n firstName\r\n phone\r\n email\r\n roles {\r\n roleId\r\n role\r\n }\r\n permissions {\r\n roleId\r\n appModuleId\r\n resource\r\n assignmentStaffRelationId\r\n readFlag\r\n createFlag\r\n updateFlag\r\n deleteFlag\r\n assignFlag\r\n reopenFlag\r\n closeFlag\r\n expungeFlag\r\n }\r\n options {\r\n offenderListOptionId\r\n name\r\n serviceApiFieldName\r\n selectedFlag\r\n }\r\n }\r\n }\r\n }`;\r\n\r\n return this.http\r\n .post<any>(this.smartDataServiceUrl, { query: queryString })\r\n .pipe(\r\n take(1),\r\n map((result) => {\r\n if (isDevMode) {\r\n console.log('##### getStaff() from service ', result);\r\n }\r\n if (result.data.findvStaffs.data.length > 0) {\r\n const data = result.data.findvStaffs.data[0];\r\n this.xdmService.setLoginStaff(data);\r\n this.loginStaff = data;\r\n return data;\r\n } else {\r\n return null;\r\n // return throwError('No access right.');\r\n }\r\n }),\r\n catchError((error) => {\r\n console.log('error ' + error);\r\n return null;\r\n }),\r\n );\r\n }\r\n\r\n private getStaffOffenderRelation(\r\n staffId: number,\r\n offenderId: number,\r\n ): Observable<string> {\r\n const queryString = `\r\n {\r\n findvStaffOffenderRelations(input: {where: {staffId: ${staffId}, offenderId: ${offenderId}}}) {\r\n data {\r\n assignmentStaffRelationId\r\n }\r\n }\r\n }`;\r\n\r\n return this.http\r\n .post<any>(this.smartDataServiceUrl, { query: queryString })\r\n .pipe(\r\n take(1),\r\n map((result) => {\r\n if (isDevMode) {\r\n console.log(\r\n '##### getStaffOffenderRelation() from service ',\r\n result,\r\n );\r\n }\r\n if (result.data.findvStaffOffenderRelations.data.length > 0) {\r\n const data = result.data.findvStaffOffenderRelations.data[0];\r\n return data.assignmentStaffRelationId;\r\n } else {\r\n return null;\r\n // return throwError('No access right.');\r\n }\r\n }),\r\n catchError((error) => {\r\n console.log('error ' + error);\r\n return null;\r\n }),\r\n );\r\n }\r\n\r\n private getRolePermissions(\r\n appModuleId: string,\r\n resource: string,\r\n ): Observable<boolean> {\r\n const queryString = `\r\n query findvRolePermissionPivots{\r\n findvRolePermissionPivots(input: {where: {appModuleId: ${appModuleId}, resource: ${resource}}}){\r\n totalCount\r\n message\r\n }\r\n }`;\r\n\r\n return this.http\r\n .post<any>(this.smartDataServiceUrl, { query: queryString })\r\n .pipe(\r\n take(1),\r\n map((result) => {\r\n if (isDevMode) {\r\n console.log(\r\n '##### findvRolePermissionPivots() from service ',\r\n result,\r\n );\r\n }\r\n if (result.data.findvRolePermissionPivots.totalCount > 0) {\r\n return true;\r\n } else {\r\n return false;\r\n // return throwError('No access right.');\r\n }\r\n }),\r\n catchError((error: any) => {\r\n console.log('error ' + error);\r\n return throwError(error);\r\n }),\r\n );\r\n }\r\n}\r\n","import { Directive, Input, OnInit, ElementRef } from '@angular/core';\r\nimport { SmartAuthService } from './smart-auth.service';\r\nimport { SmartAccessControlConfig } from './smart-access-control-config';\r\nimport { ActivatedRoute } from '@angular/router';\r\n\r\n\r\n@Directive({\r\n selector: '[accessControl]',\r\n})\r\nexport class SmartAccessControlDirective implements OnInit {\r\n @Input() accessControlConfig: SmartAccessControlConfig;\r\n constructor(\r\n private elementRef: ElementRef,\r\n private auth: SmartAuthService,\r\n ) {}\r\n\r\n public ngOnInit() {\r\n this.checkAccess();\r\n }\r\n\r\n checkAccess() {\r\n if (\r\n !this.accessControlConfig ||\r\n !this.accessControlConfig.route ||\r\n !this.accessControlConfig.route.data ||\r\n !this.accessControlConfig.route.data.loginStaff ||\r\n !this.accessControlConfig.route.data.selectedOffender\r\n ) {\r\n return;\r\n }\r\n\r\n // const loginStaff = this.accessControlConfig.route.data.loginStaff;\r\n // if (!this.auth.isAuthEnable(loginStaff.roles, this.accessControlConfig.appModuleId)) {\r\n // return;\r\n // }\r\n this.elementRef.nativeElement.style.display = this.auth.checkPermission(\r\n this.accessControlConfig\r\n )\r\n ? 'block'\r\n : 'none';\r\n }\r\n}\r\n","// smart-authorization.service\r\nimport { Injectable } from '@angular/core';\r\nimport {\r\n CanActivate,\r\n ActivatedRouteSnapshot,\r\n RouterStateSnapshot,\r\n} from '@angular/router';\r\nimport { Router } from '@angular/router';\r\nimport { take, mergeMap, catchError } from 'rxjs/operators';\r\nimport { of, Observable } from 'rxjs';\r\nimport { LoginStaff } from '../smart-storage/smart-storage-model';\r\nimport { SmartAuthService } from './smart-auth.service';\r\n\r\n@Injectable()\r\nexport class SmartAuthorizationGuard implements CanActivate {\r\n loginStaff: LoginStaff;\r\n\r\n constructor(public authnService: SmartAuthService) { }\r\n\r\n canActivate(route: ActivatedRouteSnapshot) {\r\n return this.authnService.getLoginStaff().pipe(\r\n take(1),\r\n mergeMap((loginStaff) => {\r\n if (!loginStaff || !route || !route.routeConfig) {\r\n return of(false);\r\n }\r\n // if (!this.authnService.isAuthEnable(loginStaff.roles, null)) {\r\n // return of(true);\r\n // }\r\n const resource = route.routeConfig.path\r\n ? route.routeConfig.path.split('/')[0]\r\n : '';\r\n const isFeatureValid = this.authnService.canAppFeatureActivate(\r\n loginStaff,\r\n resource,\r\n );\r\n return of(isFeatureValid);\r\n }),\r\n catchError((error) => {\r\n return of(false);\r\n }),\r\n );\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport {\r\n MatButtonModule,\r\n MatMenuModule,\r\n MatTabsModule,\r\n MatSelectModule,\r\n MatCard,\r\n MatCheckbox,\r\n MatCheckboxModule,\r\n MatCardModule,\r\n MatSnackBar,\r\n} from '@angular/material';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { SmartOffenderHeaderComponent } from './smart-offender-header/smart-offender-header.component';\r\nimport { SmartNavbarComponent } from './smart-navbar/smart-navbar.component';\r\nimport { SmartNavbarService } from './smart-navbar/smart-navbar.service';\r\nimport { SmartErrorComponent } from './smart-auth/smart-error.component';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { SmartOffenderHeaderService } from './smart-offender-header/smart-offender-header.service';\r\nimport { SmartStaffOffenderOptionsComponent } from './smart-staff-offender-options/smart-staff-offender-options.component';\r\n// import { SmartStaffOffenderOptionsComponent } from './smart-staff-offender-options/smart-staff-offender-options.component';\r\nimport { SmartStaffOffenderOptionsService } from './smart-staff-offender-options/smart-staff-offender-options.service';\r\nimport { SmartAccessControlDirective } from './smart-auth/smart-access-control.directive';\r\nimport { SmartAuthorizationGuard } from './smart-auth/smart-authorization-guard.service';\r\n\r\n@NgModule({\r\n declarations: [\r\n SmartOffenderHeaderComponent,\r\n SmartNavbarComponent,\r\n SmartErrorComponent,\r\n SmartStaffOffenderOptionsComponent,\r\n SmartAccessControlDirective,\r\n ],\r\n imports: [\r\n CommonModule,\r\n HttpClientModule,\r\n MatButtonModule,\r\n MatMenuModule,\r\n MatTabsModule,\r\n MatSelectModule,\r\n MatCardModule,\r\n MatCheckboxModule,\r\n ReactiveFormsModule,\r\n ],\r\n exports: [\r\n SmartOffenderHeaderComponent,\r\n SmartNavbarComponent,\r\n SmartErrorComponent,\r\n SmartStaffOffenderOptionsComponent,\r\n SmartAccessControlDirective,\r\n ],\r\n providers: [\r\n SmartNavbarService,\r\n SmartOffenderHeaderService,\r\n SmartStaffOffenderOptionsService,\r\n SmartAuthorizationGuard,\r\n MatSnackBar,\r\n ],\r\n})\r\nexport class NgcSmartCoreModule {}\r\n","import { Injectable, NgZone, isDevMode } from '@angular/core';\r\nimport {\r\n Resolve,\r\n ActivatedRouteSnapshot,\r\n RouterStateSnapshot,\r\n Router,\r\n} from '@angular/router';\r\nimport { Observable, EMPTY, of, throwError } from 'rxjs';\r\nimport { mergeMap, catchError, take } from 'rxjs/operators';\r\nimport { SmartAuthService } from './smart-auth.service';\r\nimport { LoginStaff } from '../smart-storage/smart-storage-model';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class LoginStaffResolverService implements Resolve<LoginStaff> {\r\n constructor(\r\n private authnService: SmartAuthService,\r\n // private zone: NgZone,\r\n private router: Router,\r\n ) {}\r\n\r\n resolve(\r\n route: ActivatedRouteSnapshot,\r\n state: RouterStateSnapshot,\r\n ): Observable<LoginStaff> | Observable<never> {\r\n return this.authnService.getLoginStaff().pipe(\r\n take(1),\r\n mergeMap((loginStaff) => {\r\n if (isDevMode) {\r\n console.log('LoginStaffResolverService: ', loginStaff);\r\n }\r\n if (loginStaff) {\r\n return of(loginStaff);\r\n } else {\r\n return throwError('Not authorized to access SMART.');\r\n // return EMPTY;\r\n /*\r\n this.zone.run(() => {\r\n this.router.navigate(['/smart-error'], {\r\n queryParams: {\r\n type: 'staff',\r\n message: 'Not authorized to access SMART.'\r\n }\r\n });\r\n });\r\n return EMPTY;\r\n */\r\n }\r\n }),\r\n catchError((error) => {\r\n console.log('LoginStaffResolverService: ' + error);\r\n this.router.navigate(['/smart-error'], {\r\n queryParams: {\r\n type: 'staff',\r\n message: 'SMART Authentication: ' + error,\r\n },\r\n });\r\n return EMPTY;\r\n }),\r\n );\r\n }\r\n}\r\n","import { Injectable, NgZone, isDevMode } from '@angular/core';\r\nimport {\r\n Resolve,\r\n ActivatedRouteSnapshot,\r\n RouterStateSnapshot,\r\n Router,\r\n} from '@angular/router';\r\nimport { Observable, from, of, EMPTY, throwError, concat } from 'rxjs';\r\nimport {\r\n catchError,\r\n mergeMap,\r\n map,\r\n take,\r\n retryWhen,\r\n tap,\r\n delay,\r\n} from 'rxjs/operators';\r\nimport { SelectedOffender } from '../smart-storage/smart-storage-model';\r\nimport { XdmService } from '../smart-storage/xdm.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SelectedOffenderResolverService\r\n implements Resolve<SelectedOffender> {\r\n constructor(\r\n private service: XdmService,\r\n private zone: NgZone,\r\n private router: Router,\r\n ) {}\r\n\r\n resolve(\r\n route: ActivatedRouteSnapshot,\r\n state: RouterStateSnapshot,\r\n ): Observable<SelectedOffender> | Observable<never> {\r\n return from(this.service.getSelectedOffender()).pipe(\r\n mergeMap((selectedOffender) => {\r\n if (isDevMode) {\r\n console.log(selectedOffender);\r\n }\r\n if (!selectedOffender) {\r\n return throwError('No offender selected.');\r\n }\r\n return of(selectedOffender);\r\n }),\r\n retryWhen((errors) =>\r\n errors.pipe(\r\n // tap(() => console.log('Retry getting selected offender.')),\r\n delay(1000),\r\n take(5),\r\n (o) =>\r\n concat(\r\n o,\r\n throwError('No offender selected (failed after retries).'),\r\n ),\r\n ),\r\n ),\r\n catchError((error) => {\r\n /*\r\n this.zone.run(() => {\r\n this.router.navigate(['/smart-error'], {\r\n queryParams: { type: 'offender', message: error }\r\n });\r\n });\r\n */\r\n this.router.navigate(['/smart-error'], {\r\n queryParams: { type: 'offender', message: error },\r\n });\r\n return EMPTY;\r\n }),\r\n );\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Resolve } from '@angular/router';\r\nimport { SmartStaffOffenderOptionsService} from './smart-staff-offender-options.service';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SmartStaffOffenderOptionsResolverService implements Resolve<Observable<any>> {\r\n constructor(private offenderService: SmartStaffOffenderOptionsService) {}\r\n resolve() {\r\n return this.offenderService.getOffenderListOptions()\r\n .pipe(\r\n map(({ data }) => {\r\n return data;\r\n }),\r\n );\r\n }\r\n }\r\n","import { ActivatedRouteSnapshot } from '@angular/router';\r\n\r\nexport interface SmartAccessControlConfig {\r\n appModuleId: string;\r\n route: ActivatedRouteSnapshot;\r\n accessType: AccessType;\r\n roleId: string;\r\n}\r\n\r\nexport enum AccessType {\r\n READ = 'read',\r\n CREATE = 'create',\r\n UPDATE = 'update',\r\n DELETE = 'delete',\r\n EXPUNGE = 'expunge',\r\n ASSIGN = 'assign',\r\n REOPEN = 'reopen',\r\n CLOSE = 'close'\r\n}\r\n"],"names":["InjectionToken","Subject","isDevMode","connectToChild","map","Injectable","Inject","DOCUMENT","HttpClient","FormControl","Component","MsalService","Router","ViewEncapsulation","Input","ViewChild","ActivatedRoute","MatSnackBar","FormGroup","of","from","switchMap","take","catchError","throwError","Directive","ElementRef","mergeMap","NgModule","CommonModule","HttpClientModule","MatButtonModule","MatMenuModule","MatTabsModule","MatSelectModule","MatCardModule","MatCheckboxModule","ReactiveFormsModule","EMPTY","retryWhen","delay","concat","NgZone"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"csmart-ngc-smart-core.umd.js.map","sources":["node_modules/tslib/tslib.es6.js","ng://@csmart/ngc-smart-core/lib/smart-storage/smart-storage-model.ts","ng://@csmart/ngc-smart-core/lib/smart-storage/xdm.service.ts","ng://@csmart/ngc-smart-core/lib/smart-offender-header/smart-offender-header.service.ts","ng://@csmart/ngc-smart-core/lib/smart-offender-header/smart-offender-header.component.ts","ng://@csmart/ngc-smart-core/lib/smart-navbar/smart-navbar.service.ts","ng://@csmart/ngc-smart-core/lib/smart-navbar/smart-navbar.component.ts","ng://@csmart/ngc-smart-core/lib/smart-auth/smart-error.component.ts","ng://@csmart/ngc-smart-core/lib/smart-staff-offender-options/smart-staff-offender-options.service.ts","ng://@csmart/ngc-smart-core/lib/smart-staff-offender-options/smart-staff-offender-options.component.ts","ng://@csmart/ngc-smart-core/lib/smart-auth/smart-auth.service.ts","ng://@csmart/ngc-smart-core/lib/smart-auth/smart-access-control.directive.ts","ng://@csmart/ngc-smart-core/lib/smart-auth/smart-authorization-guard.service.ts","ng://@csmart/ngc-smart-core/lib/ngc-smart-core.module.ts","ng://@csmart/ngc-smart-core/lib/smart-auth/smart-login-staff-resolver.service.ts","ng://@csmart/ngc-smart-core/lib/smart-auth/smart-selected-offender-resolver.service.ts","ng://@csmart/ngc-smart-core/lib/smart-staff-offender-options/smart-staff-offender-options-resolver.service.ts","ng://@csmart/ngc-smart-core/lib/smart-auth/smart-access-control-config.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\n\r\nexport class Permission {\r\n roleId: string;\r\n appModuleId: string;\r\n resource: string;\r\n assignmentStaffRelationId: string;\r\n readFlag: boolean;\r\n createFlag: boolean;\r\n updateFlag: boolean;\r\n deleteFlag: boolean;\r\n assignFlag: boolean;\r\n reopenFlag: boolean;\r\n closeFlag: boolean;\r\n expungeFlag: boolean;\r\n}\r\n\r\nexport class Role {\r\n roleId: string;\r\n role: string;\r\n}\r\n\r\nexport class Option {\r\n offenderOptionListId: string;\r\n name: string;\r\n serviceApiFieldName: string;\r\n selectedFlag: boolean;\r\n}\r\n\r\nexport class LoginStaff {\r\n staffId: number;\r\n userName: string;\r\n firstName: string;\r\n lastName: string;\r\n phone: string;\r\n email: string;\r\n selectedRole: string = '*';\r\n roles?: Role[];\r\n permissions?: Permission[];\r\n options?: Option[];\r\n}\r\n\r\nexport class SelectedOffender {\r\n offenderId: number;\r\n name: string;\r\n pdId: string;\r\n birthDate: Date;\r\n gender: string;\r\n assignmentStaffRelationId?: string;\r\n intakeFlag?: boolean = false;\r\n}\r\n\r\nexport class OffenderQuery {\r\n offenders: SelectedOffender[];\r\n}\r\n\r\nexport class StorageKey {\r\n static selectedOffender = 'smart-selected-offender';\r\n static loginStaff = 'smart-login-staff';\r\n static offenderQuery = 'smart-offender-query';\r\n}\r\n\r\nexport const SMART_WEB_STORAGE_LISTENER_URL = new InjectionToken<string>(\r\n 'SMART Web Storage Listener URL',\r\n);\r\nexport const SMART_WEB_PORTAL_URL = new InjectionToken<string>(\r\n 'SMART Web Portal URL',\r\n);\r\nexport const SMART_DATA_SERVICE_URL = new InjectionToken<string>(\r\n 'SMART Data Service URL',\r\n);\r\n\r\n//exception for redirection\r\nexport const SMART_DOMAIN_FORMAT = new InjectionToken<string>(\r\n 'SMART Domain Format URL',\r\n);\r\n\r\n","import { Injectable, Inject, isDevMode } from '@angular/core';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport { Subject, Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport {\r\n SelectedOffender,\r\n LoginStaff,\r\n OffenderQuery,\r\n StorageKey,\r\n SMART_WEB_STORAGE_LISTENER_URL,\r\n SMART_DATA_SERVICE_URL,\r\n Option,\r\n} from './smart-storage-model';\r\n\r\n// import connectToChild from \"penpal/lib/connectToChild\";\r\nimport { connectToChild } from 'penpal';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class XdmService {\r\n private offenderSubject = new Subject<SelectedOffender>();\r\n private staffSubject = new Subject<LoginStaff>();\r\n private offenderQuerySubject = new Subject<OffenderQuery>();\r\n private connection: any;\r\n\r\n constructor(\r\n @Inject(DOCUMENT) private document: any,\r\n @Inject(SMART_WEB_STORAGE_LISTENER_URL)\r\n private smartStorageListenerUrl: string,\r\n private httpClient: HttpClient,\r\n @Inject(SMART_DATA_SERVICE_URL) private smartDataServiceUrl,\r\n ) {\r\n if (isDevMode) {\r\n console.log('SmartStorage XdmService (Client) - constructor()');\r\n }\r\n this.init();\r\n }\r\n\r\n private init(): void {\r\n const frame = this.document.createElement('iframe');\r\n frame.src = this.smartStorageListenerUrl;\r\n frame.id = 'childframe';\r\n frame.name = Math.random().toString();\r\n frame.onload = null;\r\n frame.style.visibility = 'hidden';\r\n this.document.body.appendChild(frame);\r\n\r\n this.connection = connectToChild({\r\n iframe: frame,\r\n debug: false,\r\n });\r\n }\r\n\r\n private getStaffOffenderListOptions(\r\n staffId: number,\r\n ): Observable<Array<Option>> {\r\n const queryString = `{findvStaffOffenderListOptions(input:{\r\n where:{\r\n staffId: ${staffId}\r\n }\r\n }){\r\n data{\r\n offenderListOptionId\r\n name\r\n serviceApiFieldName\r\n selectedFlag\r\n }\r\n } }`;\r\n return this.httpClient\r\n .post<any>(this.smartDataServiceUrl, { query: queryString })\r\n .pipe(\r\n map(({ data }) => {\r\n data.findvStaffOffenderListOptions.data['offenderOptionListId'] =\r\n data.findvStaffOffenderListOptions.data['offenderListOptionId'];\r\n return data.findvStaffOffenderListOptions.data;\r\n }),\r\n );\r\n /*return of([\r\n { offenderListOptionId: 'genderCode', name: '', selectedFlag: true }]);*/\r\n }\r\n\r\n public clearAll(): void {\r\n this.connection.promise.then((child) => {\r\n child.clearAll();\r\n this.offenderSubject.next();\r\n this.staffSubject.next();\r\n });\r\n }\r\n\r\n /*************************************\r\n * Offender\r\n **************************************/\r\n public setSelectedOffender(selectedOffender: SelectedOffender): void {\r\n this.connection.promise.then((child) => {\r\n child.setSelectedOffender(selectedOffender);\r\n this.offenderSubject.next(selectedOffender);\r\n });\r\n }\r\n\r\n public getSelectedOffender(): Promise<SelectedOffender> {\r\n return this.connection.promise.then((child) =>\r\n child.getSelectedOffender(StorageKey.selectedOffender),\r\n );\r\n }\r\n\r\n public clearSelectedOffender(): void {\r\n this.connection.promise.then((child) => {\r\n child.clearSelectedOffender();\r\n this.offenderSubject.next();\r\n });\r\n }\r\n\r\n public getOffenderUpdate(): Observable<SelectedOffender> {\r\n return this.offenderSubject.asObservable();\r\n }\r\n\r\n /************************************************************************\r\n * Staff\r\n ************************************************************************/\r\n public setLoginStaff(loginStaff: LoginStaff) {\r\n this.connection.promise.then((child) => {\r\n child.setLoginStaff(loginStaff);\r\n this.staffSubject.next(loginStaff);\r\n });\r\n }\r\n\r\n public getLoginStaff(): Promise<LoginStaff> {\r\n return this.connection.promise.then((child) =>\r\n child.getLoginStaff(StorageKey.loginStaff),\r\n );\r\n }\r\n\r\n public clearLoginStaff(): void {\r\n this.connection.promise.then((child) => {\r\n child.clearLoginStaff();\r\n this.staffSubject.next();\r\n });\r\n }\r\n\r\n public getStaffUpdate(): Observable<LoginStaff> {\r\n return this.staffSubject.asObservable();\r\n }\r\n\r\n public refreshLoginStaffOptions() {\r\n this.getLoginStaff().then((oldLoginStaff) => {\r\n this.getStaffOffenderListOptions(oldLoginStaff.staffId).subscribe(\r\n (optionData) => {\r\n console.log(optionData);\r\n oldLoginStaff.options = optionData;\r\n this.setLoginStaff(oldLoginStaff);\r\n },\r\n );\r\n });\r\n }\r\n\r\n /************************************************************************\r\n * Offender Query\r\n ************************************************************************/\r\n public setOffenderQuery(offenderQuery: OffenderQuery) {\r\n this.connection.promise.then((child) => {\r\n child.setOffenderQuery(offenderQuery);\r\n this.offenderQuerySubject.next(offenderQuery);\r\n });\r\n }\r\n\r\n public getOffenderQuery(): Promise<OffenderQuery> {\r\n return this.connection.promise.then((child) =>\r\n child.getOffenderQuery(StorageKey.offenderQuery),\r\n );\r\n }\r\n\r\n public clearOffenderQuery(): void {\r\n this.connection.promise.then((child) => {\r\n child.clearOffenderQuery();\r\n this.offenderQuerySubject.next();\r\n });\r\n }\r\n\r\n public getOffenderQueryUpdate(): Observable<OffenderQuery> {\r\n return this.offenderQuerySubject.asObservable();\r\n }\r\n}\r\n","import { Injectable, Inject } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, from, of } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport {\r\n SMART_DATA_SERVICE_URL,\r\n} from '../smart-storage/smart-storage-model';\r\n\r\n\r\n@Injectable()\r\nexport class SmartOffenderHeaderService {\r\n constructor(\r\n @Inject(SMART_DATA_SERVICE_URL) private smartDataServiceUrl,\r\n private http: HttpClient,\r\n ) {}\r\n\r\n getStaffOffenders(staffId: number): Observable<AssignedOffender[]> {\r\n const queryString = `\r\n query getStaffOffenderList{\r\n filterOffenderList(input: {staffId: ${staffId}}) {\r\n data {\r\n offenderId\r\n offenderName\r\n pdId\r\n birthDate\r\n gender\r\n }\r\n }\r\n }\r\n `;\r\n return this.http\r\n .post<any>(this.smartDataServiceUrl, { query: queryString })\r\n .pipe(\r\n map(({ data }) => {\r\n return data.filterOffenderList.data;\r\n }),\r\n );\r\n }\r\n}\r\n\r\nexport interface AssignedOffender {\r\n offenderId: number;\r\n offenderName: string;\r\n pdId: string;\r\n birthDate: Date;\r\n gender: string;\r\n}\r\n","import { Component, OnInit, OnDestroy, NgZone, Output, EventEmitter } from '@angular/core';\r\nimport { XdmService } from '../smart-storage/xdm.service';\r\nimport { SelectedOffender, LoginStaff, Role, OffenderQuery } from '../smart-storage/smart-storage-model';\r\nimport { Subscription, Observable, from, of } from 'rxjs';\r\nimport { MsalService } from '@azure/msal-angular';\r\nimport { FormControl } from '@angular/forms';\r\nimport { map, switchMap } from 'rxjs/operators';\r\nimport { SmartOffenderHeaderService, AssignedOffender } from './smart-offender-header.service';\r\nimport { Router } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'app-smart-offender-header',\r\n templateUrl: './smart-offender-header.component.html',\r\n styleUrls: ['./smart-offender-header.component.css'],\r\n})\r\nexport class SmartOffenderHeaderComponent implements OnInit, OnDestroy {\r\n public selectedOffender: SelectedOffender;\r\n loginStaff: LoginStaff;\r\n subscription: Subscription;\r\n selectedOffenderControl$ = new FormControl();\r\n // assignedOffenders: AssignedOffender[];\r\n offenderQueryList: SelectedOffender[];\r\n offenderQuerySubscription: Subscription;\r\n public isAuthenticated: boolean;\r\n\r\n constructor(\r\n private xdmService: XdmService,\r\n private authnService: MsalService,\r\n private smartOffenderHeaderService: SmartOffenderHeaderService,\r\n private router: Router,\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.isAuthenticated = this.authnService.getAccount() ? true : false;\r\n this.xdmService.getLoginStaff().then((loginStaff) => {\r\n this.loginStaff = loginStaff ? loginStaff : null;\r\n });\r\n this.xdmService.getSelectedOffender().then((selectedOffender) => {\r\n this.selectedOffender =\r\n selectedOffender && selectedOffender.offenderId\r\n ? selectedOffender\r\n : null;\r\n });\r\n\r\n this.subscription = this.xdmService\r\n .getOffenderUpdate()\r\n .subscribe((selectedOffender) => {\r\n this.selectedOffender = selectedOffender;\r\n this.setSelectedOffenderControl();\r\n });\r\n\r\n this.xdmService.getOffenderQuery().then((offenderQuery: OffenderQuery) => {\r\n if (offenderQuery) {\r\n this.offenderQueryList = offenderQuery.offenders;\r\n this.setSelectedOffenderControl();\r\n }\r\n });\r\n\r\n this.offenderQuerySubscription = this.xdmService.getOffenderQueryUpdate()\r\n .subscribe((offenderList) => {\r\n if (offenderList && offenderList.offenders) {\r\n this.offenderQueryList = [...offenderList.offenders];\r\n }\r\n });\r\n\r\n\r\n this.selectedOffenderControl$.valueChanges.subscribe((o) =>\r\n this.onOffenderSelected(o),\r\n );\r\n\r\n this.router.routeReuseStrategy.shouldReuseRoute = () => {\r\n return false;\r\n };\r\n\r\n\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n private onOffenderSelected(offender): void {\r\n if (offender) {\r\n // const o = offender.offenderName.split(',');\r\n // if (o.length === 2) {\r\n // const offenderName = `${o[1]} ${o[0]}`;\r\n // this.selectedOffender = {\r\n // offenderId: offender.offenderId,\r\n // name: offenderName,\r\n // pdId: offender.pdId,\r\n // birthDate: offender.birthDate,\r\n // gender: offender.genderCode,\r\n // assignmentStaffRelationId: '',\r\n // intakeFlag: this.loginStaff\r\n // ? this.hasIntakeRole(this.loginStaff.roles)\r\n // : false,\r\n // } as SelectedOffender;\r\n this.selectedOffender = offender;\r\n this.xdmService.setSelectedOffender(this.selectedOffender);\r\n this.reloadCurrentRoute();\r\n }\r\n }\r\n\r\n private setSelectedOffenderControl() {\r\n if (\r\n this.selectedOffender &&\r\n this.offenderQueryList &&\r\n this.offenderQueryList.length > 0\r\n ) {\r\n const o = this.offenderQueryList.find(\r\n (x) => x.offenderId === this.selectedOffender.offenderId,\r\n );\r\n if (o) {\r\n this.selectedOffenderControl$.setValue(o, { emitEvent: false });\r\n }\r\n\r\n if (!o && this.offenderQueryList.length > 0) {\r\n this.selectedOffenderControl$.setValue(this.offenderQueryList[0], {\r\n emitEvent: false,\r\n });\r\n }\r\n }\r\n }\r\n\r\n private reloadCurrentRoute() {\r\n try {\r\n const urlTree = this.router.parseUrl(this.router.url);\r\n if (urlTree\r\n && urlTree.root\r\n && urlTree.root.segments\r\n && urlTree.root.segments.length > 1) {\r\n this.router.navigate([urlTree.root.segments[0].path]);\r\n } else if (urlTree\r\n && urlTree.root\r\n && urlTree.root.children\r\n && urlTree.root.children.primary\r\n && urlTree.root.children.primary.segments\r\n && urlTree.root.children.primary.segments.length > 1) {\r\n this.router.navigate([urlTree.root.children.primary.segments[0].path]);\r\n } else {\r\n this.router.navigate([this.router.url]);\r\n }\r\n } catch {\r\n this.router.navigateByUrl('/');\r\n }\r\n }\r\n\r\n private hasIntakeRole(roles: Role[]) {\r\n if (roles && roles.length > 0) {\r\n return roles.findIndex(this.isIntakeRole) > -1;\r\n }\r\n return false;\r\n }\r\n\r\n private isIntakeRole(role: Role) {\r\n switch (role.roleId) {\r\n case 'OPA':\r\n case 'OPS':\r\n case 'SOPS':\r\n return true;\r\n default:\r\n return false;\r\n }\r\n }\r\n}\r\n","import { Injectable, isDevMode } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\n\r\nimport { SmartNavbarConfig } from './smart-navbar-config';\r\n\r\n@Injectable()\r\nexport class SmartNavbarService {\r\n configs: SmartNavbarConfig[];\r\n constructor(private http: HttpClient) {}\r\n\r\n /*\r\n public getNavbarConfigs(): SmartNavbarConfig[] {\r\n this.configs = [\r\n {appModuleId: 'SMART', name: 'SMART', url: 'http://localhost:4200', offenderSpecific: false, displayOrder: 1 },\r\n {appModuleId: 'OFFENDER', name: 'Offender', url: 'http://localhost:4200', offenderSpecific: true, displayOrder: 2 },\r\n {appModuleId: 'SPRVSN', name: 'Supervision', url: 'http://localhost:4200', offenderSpecific: true, displayOrder: 3 },\r\n ];\r\n\r\n return this.configs;\r\n }\r\n */\r\n /*\r\n public getNavbarConfigs(serviceApiUrl: string): Observable<SmartNavbarConfig[]> {\r\n return this.http.get<SmartNavbarConfig[]>(serviceApiUrl + '/AppModules');\r\n }\r\n */\r\n\r\n public getNavbarConfigs(\r\n serviceApiUrl: string,\r\n ): Observable<SmartNavbarConfig[]> {\r\n const queryString = `\r\n {\r\n findAppModules {\r\n data {\r\n appModuleId\r\n name\r\n url\r\n offenderSpecificFlag\r\n displayOrder\r\n }\r\n }\r\n }`;\r\n\r\n /*\r\n const httpHeaders = new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n 'Cache-Control': 'no-cache'\r\n });\r\n const options = {\r\n headers: httpHeaders\r\n };\r\n */\r\n\r\n return this.http\r\n .post<any>(serviceApiUrl, { query: queryString })\r\n .pipe(\r\n map(({ data }) => {\r\n if (isDevMode()) {\r\n console.log(data);\r\n }\r\n return data.findAppModules.data;\r\n }),\r\n );\r\n }\r\n}\r\n","import {\r\n Component,\r\n OnInit,\r\n OnChanges,\r\n OnDestroy,\r\n Input,\r\n NgZone,\r\n ViewChild,\r\n isDevMode,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\nimport { MatTabGroup } from '@angular/material';\r\nimport { MsalService } from '@azure/msal-angular';\r\nimport { SmartNavbarConfig } from './smart-navbar-config';\r\nimport { SmartNavbarService } from './smart-navbar.service';\r\nimport { XdmService } from '../smart-storage/xdm.service';\r\nimport {\r\n SelectedOffender,\r\n LoginStaff,\r\n Role,\r\n} from '../smart-storage/smart-storage-model';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-smart-navbar',\r\n templateUrl: './smart-navbar.component.html',\r\n styleUrls: ['./smart-navbar.component.css'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class SmartNavbarComponent implements OnInit, OnChanges, OnDestroy {\r\n @Input() serviceApiUrl: string;\r\n @Input() appModuleId = 'SMART';\r\n @ViewChild('tabs') tabGroup: MatTabGroup;\r\n selectedOffender: SelectedOffender;\r\n loginStaff: LoginStaff;\r\n offenderSubscription: Subscription;\r\n staffSubscription: Subscription;\r\n isAuthenticated = false;\r\n\r\n navbarConfigs: SmartNavbarConfig[];\r\n\r\n constructor(\r\n private navbarConfigService: SmartNavbarService,\r\n private xdmService: XdmService,\r\n // private zone: NgZone,\r\n private authnService: MsalService,\r\n ) {}\r\n\r\n ngOnChanges() {\r\n /*\r\n console.log(this.selectedTab);\r\n setTimeout(() => {\r\n this.tabGroup.selectedIndex = this.selectedTab;\r\n }, 1000);\r\n */\r\n }\r\n\r\n ngOnInit() {\r\n this.xdmService.getSelectedOffender().then((selectedOffender) => {\r\n this.selectedOffender =\r\n selectedOffender && selectedOffender.offenderId\r\n ? selectedOffender\r\n : null;\r\n });\r\n\r\n this.xdmService.getLoginStaff().then((loginStaff) => {\r\n // this.zone.run(() => {\r\n this.loginStaff = loginStaff ? loginStaff : null;\r\n // });\r\n });\r\n\r\n this.offenderSubscription = this.xdmService\r\n .getOffenderUpdate()\r\n .subscribe((selectedOffender) => {\r\n // this.zone.run(() => {\r\n this.selectedOffender = selectedOffender;\r\n // });\r\n });\r\n\r\n this.staffSubscription = this.xdmService\r\n .getStaffUpdate()\r\n .subscribe((loginStaff) => {\r\n // this.zone.run(() => {\r\n this.loginStaff = loginStaff;\r\n // });\r\n });\r\n\r\n this.navbarConfigService\r\n .getNavbarConfigs(this.serviceApiUrl)\r\n .subscribe((configs) => {\r\n this.navbarConfigs = configs.sort((a, b) => {\r\n if (a.displayOrder < b.displayOrder) {\r\n return -1;\r\n } else if (a.displayOrder > b.displayOrder) {\r\n return 1;\r\n }\r\n return 0;\r\n });\r\n });\r\n\r\n this.isAuthenticated = this.authnService.getAccount() ? true : false;\r\n }\r\n\r\n ngOnDestroy() {\r\n this.offenderSubscription.unsubscribe();\r\n this.staffSubscription.unsubscribe();\r\n }\r\n\r\n public logout(): void {\r\n this.xdmService.clearAll();\r\n this.authnService.logout();\r\n }\r\n\r\n public getAppModuleUrl(config: SmartNavbarConfig) {\r\n return (config && this.selectedOffender && config.appModuleId === 'PPMAS') ?\r\n `${config.url}?skipAppMetadata=true&OffenderId=${this.selectedOffender.offenderId}` : config.url;\r\n }\r\n\r\n public hasAppModulePermission(appModuleId) {\r\n if (this.loginStaff && this.loginStaff.permissions && this.loginStaff.permissions.length > 0) {\r\n return this.loginStaff.permissions.findIndex(p => p.appModuleId === appModuleId) > -1;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public get hasExternalUserRole() {\r\n if (this.loginStaff && this.loginStaff.roles && this.loginStaff.roles.length > 0) {\r\n return this.loginStaff.roles.findIndex(this.isExternalRole) > -1;\r\n }\r\n return false;\r\n }\r\n\r\n private isExternalRole(role: Role) {\r\n switch (role.roleId) {\r\n case 'EUDTL':\r\n case 'EUDUSM':\r\n case 'EUJDG':\r\n case 'EUMPD':\r\n case 'EUSOTV':\r\n case 'EUUSA2':\r\n case 'EUUSAO':\r\n case 'EUUSPC':\r\n return true;\r\n default:\r\n return false;\r\n }\r\n }\r\n}\r\n\r\n// EUDTL\r\n// EUDUSM\r\n// EUJDG\r\n\r\n// EUMPD\r\n// EUSOTV\r\n// EUUSA2\r\n\r\n// EUUSAO\r\n// EUUSPC\r\n","import { Component, OnInit, Inject } from '@angular/core';\r\n// import { SmartAuthService } from './smart-auth.service';\r\nimport { MsalService } from '@azure/msal-angular';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { SMART_WEB_PORTAL_URL } from '../smart-storage/smart-storage-model';\r\n\r\n@Component({\r\n selector: 'app-smart-error',\r\n templateUrl: './smart-error.component.html',\r\n styleUrls: ['./smart-error.component.css'],\r\n})\r\nexport class SmartErrorComponent implements OnInit {\r\n type: string;\r\n message: string;\r\n\r\n constructor(\r\n private authnService: MsalService,\r\n private route: ActivatedRoute,\r\n @Inject(SMART_WEB_PORTAL_URL) private smartWebPortalUrl: string,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.type = this.route.snapshot.queryParamMap.get('type') || 'staff';\r\n this.message =\r\n this.route.snapshot.queryParamMap.get('message') || 'Error occured.';\r\n }\r\n\r\n logout() {\r\n this.authnService.logout();\r\n }\r\n\r\n portal() {\r\n window.location.href = this.smartWebPortalUrl;\r\n }\r\n}\r\n","import { Injectable, Inject } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, from, of } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { MatSnackBar } from '@angular/material';\r\nimport {\r\n SMART_DATA_SERVICE_URL,\r\n} from '../smart-storage/smart-storage-model';\r\n\r\n@Injectable()\r\nexport class SmartStaffOffenderOptionsService {\r\n constructor(\r\n @Inject(SMART_DATA_SERVICE_URL) private serviceApiUrl,\r\n private http: HttpClient, private matSnackBar: MatSnackBar\r\n ) { }\r\n\r\n public showMessage(message) {\r\n this.matSnackBar.open(message, null, {\r\n duration: 2000,\r\n });\r\n }\r\n\r\n private convertEmptyToNull(jsonObject: JSON) {\r\n if (!jsonObject) {\r\n return;\r\n }\r\n\r\n if (jsonObject instanceof Array) {\r\n jsonObject.forEach(obj => {\r\n this.convertEmptyToNull(obj);\r\n });\r\n }\r\n\r\n const keys = Object.keys(jsonObject);\r\n keys.forEach(key => {\r\n if (typeof jsonObject[key] === 'object') {\r\n this.convertEmptyToNull(jsonObject[key]);\r\n } else if (typeof jsonObject[key] === 'string' && jsonObject[key].trim() === '') {\r\n jsonObject[key] = null;\r\n }\r\n });\r\n }\r\n\r\n private getGraphQueryData(queryName: string, queryString: string): Observable<any> {\r\n return this.http\r\n .post<any>(this.serviceApiUrl, { query: queryString })\r\n .pipe(\r\n map(({ data }) => {\r\n return data[queryName];\r\n }));\r\n }\r\n \r\n getOffenderListOptions(): Observable<any> {\r\n const queryName = 'findOffenderListOptions';\r\n const queryString = `{\r\n ${queryName} {\r\n data {\r\n offenderListOptionId\r\n name\r\n serviceApiFieldName\r\n }\r\n message\r\n }\r\n }`;\r\n\r\n return this.getGraphQueryData(queryName, queryString);\r\n }\r\n\r\n public getStaffOffenderListOptions(\r\n staffId: number,\r\n ): Observable<Array<any>> {\r\n const queryString = `{findStaffOffenderListOptions(input:{\r\n where:{\r\n staffId: ${staffId}\r\n }\r\n }){\r\n data{\r\n offenderListOptionId\r\n }\r\n } }`;\r\n return this.http\r\n .post<any>(this.serviceApiUrl, { query: queryString })\r\n .pipe(\r\n map(({ data }) => {\r\n return data.findStaffOffenderListOptions.data;\r\n }),\r\n );\r\n }\r\n\r\n saveStaffOffenderListOptionsData(dataToSave: any) { //}: Observable<any> {\r\n\r\n // this.convertEmptyToNull(dataToSave);\r\n const queryName = 'upsertStaffOffenderListOption';\r\n const query = `mutation {\r\n upsertStaffOffenderListOption(input: ${this.convertToString(dataToSave)}) {\r\n message\r\n }\r\n }`;\r\n\r\n;\r\n return this.http\r\n .post<any>(this.serviceApiUrl, { query });\r\n /*.pipe(\r\n map(({ data }) => {\r\n return data[queryName];\r\n }));*/\r\n\r\n\r\n }\r\n\r\n convertToString(obj): string {\r\n let result = '';\r\n\r\n if (!obj) {\r\n return result;\r\n }\r\n\r\n if (obj instanceof Array) {\r\n result += ' [';\r\n obj.forEach(eObj => {\r\n result += this.convertToString(eObj);\r\n });\r\n result += '],';\r\n } else {\r\n result += '{';\r\n const keys = Object.keys(obj);\r\n keys.forEach((key) => {\r\n if (typeof obj[key] === 'object') {\r\n result += key + ':' + this.convertToString(obj[key]);\r\n } else {\r\n if (isNaN(obj[key])) {\r\n result += key + ':\"' + obj[key] + '\",';\r\n } else {\r\n result += key + ':' + obj[key] + ',';\r\n }\r\n }\r\n });\r\n result = result.substring(0, result.length - 1);\r\n result += '},';\r\n }\r\n return result;\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { SmartStaffOffenderOptionsService} from './smart-staff-offender-options.service';\r\nimport { FormBuilder,\r\n FormGroup,\r\n FormControl,\r\n Validators,\r\n ValidatorFn,\r\n AbstractControl,\r\n} from '@angular/forms';\r\nimport { LoginStaff } from '../smart-storage/smart-storage-model';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { XdmService} from '../smart-storage/xdm.service';\r\n\r\n@Component({\r\n selector: 'lib-smart-staff-offender-options',\r\n templateUrl: './smart-staff-offender-options.component.html',\r\n styleUrls: ['./smart-staff-offender-options.component.css']\r\n})\r\nexport class SmartStaffOffenderOptionsComponent implements OnInit {\r\n loginStaff: LoginStaff;\r\n offenderListOptions: Array<any> = [];\r\n frmGroup: FormGroup;\r\n constructor(\r\n private route: ActivatedRoute,\r\n private offenderService: SmartStaffOffenderOptionsService,\r\n private xdmService: XdmService\r\n ) { }\r\n\r\n ngOnInit() {\r\n const routData = this.route.snapshot.data;\r\n this.loginStaff = routData.loginStaff;\r\n this.offenderListOptions = routData.selectedOffenderResolverService;\r\n this.frmGroup = this.createForm();\r\n this.offenderService.getStaffOffenderListOptions(this.loginStaff.staffId).subscribe(data => {\r\n this.fillForm(data);\r\n });\r\n }\r\n\r\n private fillForm(data) {\r\n if (data) {\r\n const offenderListOptionsFg = this.frmGroup.get('offenderListOptions');\r\n data.forEach(element => {\r\n offenderListOptionsFg.get(element.offenderListOptionId).setValue(true);\r\n });\r\n }\r\n\r\n }\r\n private createForm() {\r\n const offenderListOptionsFg = new FormGroup({\r\n });\r\n\r\n this.offenderListOptions.forEach( (dt, i) => {\r\n offenderListOptionsFg.addControl(dt.offenderListOptionId, new FormControl(false));\r\n });\r\n\r\n return new FormGroup({\r\n offenderListOptions: offenderListOptionsFg,\r\n });\r\n }\r\n\r\n onSave() {\r\n const data = {\r\n options: [],\r\n staffId: this.loginStaff.staffId,\r\n modifiedBy: this.loginStaff.staffId\r\n };\r\n\r\n const offenderListOptionsVal = this.frmGroup.get('offenderListOptions').value;\r\n const keys = Object.keys(offenderListOptionsVal);\r\n keys.forEach(key => {\r\n if (offenderListOptionsVal[key]) {\r\n data.options.push({'offenderListOptionId': key});\r\n }\r\n });\r\n\r\n this.offenderService.saveStaffOffenderListOptionsData(data).subscribe(rtrDatea=>{\r\n if (rtrDatea.message) {\r\n this.offenderService.showMessage(rtrDatea.message);\r\n } else {\r\n this.offenderService.showMessage('Saved successfully');\r\n this.xdmService.refreshLoginStaffOptions();\r\n }\r\n });\r\n }\r\n\r\n}\r\n","import { Injectable, Inject, isDevMode } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, of, from, throwError } from 'rxjs';\r\nimport { map, switchMap, take, catchError} from 'rxjs/operators';\r\nimport { MsalService } from '@azure/msal-angular';\r\nimport { ActivatedRouteSnapshot } from '@angular/router';\r\n\r\nimport {\r\n LoginStaff,\r\n SelectedOffender,\r\n SMART_DATA_SERVICE_URL,\r\n SMART_DOMAIN_FORMAT,\r\n Role,\r\n Permission,\r\n} from '../smart-storage/smart-storage-model';\r\nimport { XdmService } from '../smart-storage/xdm.service';\r\nimport { SmartAccessControlConfig } from './smart-access-control-config';\r\nimport { nullSafeIsEquivalent } from '@angular/compiler/src/output/output_ast';\r\n// import { stringify } from 'querystring';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SmartAuthService {\r\n loginStaff: LoginStaff;\r\n selectedOffender: SelectedOffender;\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private authnService: MsalService,\r\n private xdmService: XdmService,\r\n @Inject(SMART_DATA_SERVICE_URL) private smartDataServiceUrl,\r\n @Inject(SMART_DOMAIN_FORMAT) private smartDomainFormatUrl: string,\r\n ) {}\r\n\r\n public getLoginStaff(): Observable<LoginStaff> {\r\n if (isDevMode) {\r\n console.log('SmartAuthService - getLoginStaff()');\r\n }\r\n if (!isDevMode && this.loginStaff) {\r\n if (this.loginStaff.staffId) {\r\n if (isDevMode) {\r\n console.log(\r\n '##### getLoginStaff(): get internal instance in service',\r\n this.loginStaff,\r\n );\r\n }\r\n return of(this.loginStaff);\r\n } else if (this.loginStaff.userName) {\r\n if (isDevMode) {\r\n console.log(\r\n '##### getLoginStaff(): get using preset user name',\r\n this.loginStaff,\r\n );\r\n }\r\n return this.getStaff(this.loginStaff.userName);\r\n }\r\n }\r\n return from(this.xdmService.getLoginStaff()).pipe(\r\n switchMap((storedResult) => {\r\n if (storedResult && storedResult.staffId) {\r\n if (isDevMode) {\r\n console.log(\r\n '##### getLoginStaff(): get from session.',\r\n storedResult,\r\n );\r\n }\r\n this.loginStaff = storedResult;\r\n return of(storedResult);\r\n } else if (storedResult && storedResult.userName) {\r\n if (isDevMode) {\r\n console.log(\r\n '##### getLoginStaff(): get using preset user name',\r\n this.loginStaff,\r\n );\r\n }\r\n return this.getStaff(storedResult.userName);\r\n } else {\r\n const userName = this.authnService.getAccount().userName;\r\n const staffName = userName.substring(0, userName.indexOf('@'));\r\n if (isDevMode) {\r\n console.log(\r\n '##### loginLoginStaff(): get using login staff name ',\r\n staffName,\r\n );\r\n }\r\n return this.getStaff(staffName);\r\n }\r\n }),\r\n );\r\n }\r\n\r\n private getTeamUrl(app: string, afterHash: string): string {\r\n return this.smartDomainFormatUrl.replace('${APP}', app) + afterHash;\r\n }\r\n private isSameHost(url, app) {\r\n return this.smartDomainFormatUrl.replace('${APP}', app) === url;\r\n }\r\n\r\n public redirectToTeam(loginStaff: LoginStaff) {\r\n if (loginStaff.roles.findIndex((role) => role.roleId === 'EUUSPC') > -1) {\r\n if (!this.isSameHost(window.location.origin, 'investigation')) {\r\n window.location.href = this.getTeamUrl('investigation', '/assignment');\r\n }\r\n } else if (\r\n loginStaff.roles.findIndex(\r\n (role) => role.roleId.substring(0, 3) === 'RSC',\r\n ) > -1\r\n ) {\r\n if (!this.isSameHost(window.location.origin, 'rsc')) {\r\n window.location.href = this.getTeamUrl('rsc', '/offender-list');\r\n }\r\n }\r\n }\r\n\r\n public async setSelectedOffender(selectedOffender: SelectedOffender) {\r\n if (selectedOffender) {\r\n // if (!selectedOffender.assignmentStaffRelationId) {\r\n const relation = await this.getStaffOffenderRelation(\r\n this.loginStaff.staffId,\r\n selectedOffender.offenderId,\r\n ).toPromise();\r\n if (relation) {\r\n selectedOffender.assignmentStaffRelationId = relation;\r\n } else {\r\n selectedOffender.assignmentStaffRelationId = 'NOASSIGN';\r\n }\r\n // }\r\n }\r\n this.xdmService.setSelectedOffender(selectedOffender);\r\n this.selectedOffender = selectedOffender;\r\n }\r\n\r\n public logout(): void {\r\n this.xdmService.clearAll();\r\n this.authnService.logout();\r\n }\r\n\r\n public async setPermission(\r\n appModuleId: string,\r\n route: ActivatedRouteSnapshot,\r\n ) {\r\n if (!this.loginStaff) {\r\n this.loginStaff = await this.xdmService.getLoginStaff();\r\n }\r\n const permissions = this.loginStaff.permissions;\r\n const resource = route.url[0].path;\r\n\r\n if (!this.selectedOffender) {\r\n this.selectedOffender = await this.xdmService.getSelectedOffender();\r\n }\r\n\r\n if (this.selectedOffender) {\r\n // if (!this.selectedOffender.assignmentStaffRelationId) {\r\n const relation = await this.getStaffOffenderRelation(\r\n this.loginStaff.staffId,\r\n this.selectedOffender.offenderId,\r\n ).toPromise();\r\n if (relation) {\r\n this.selectedOffender.assignmentStaffRelationId = relation;\r\n } else {\r\n this.selectedOffender.assignmentStaffRelationId = 'NOASSIGN';\r\n }\r\n this.xdmService.setSelectedOffender(this.selectedOffender);\r\n // }\r\n }\r\n\r\n const assignmentStaffRelationId = this.selectedOffender\r\n .assignmentStaffRelationId;\r\n\r\n const elements = document.querySelectorAll('[class^=\"sac-\"]');\r\n const pattern = /^sac-(\\S+)-(\\S+)$/i;\r\n\r\n Array.from(elements).forEach((element) => {\r\n let hide;\r\n let disable;\r\n element.classList.forEach((c) => {\r\n const results = c.match(pattern);\r\n // console.log(results);\r\n if (results && results.length > 2) {\r\n const roleId = results[1] ? results[1].toUpperCase() : null;\r\n const right = results[2];\r\n // console.log(results[0]);\r\n // console.log(results[1]);\r\n // console.log(results[2]);\r\n const permission = permissions.find(function (p) {\r\n return (\r\n p.appModuleId === appModuleId &&\r\n p.resource === resource &&\r\n p.roleId === roleId &&\r\n p.assignmentStaffRelationId === assignmentStaffRelationId\r\n );\r\n });\r\n /*\r\n console.log('##### setPermission() resource: ', resource);\r\n console.log('##### setPermission() appModuleId: ', appModuleId);\r\n console.log('##### setPermission() roleId: ', roleId);\r\n console.log(\r\n '##### setPermission() assignment relation: ',\r\n assignmentStaffRelationId,\r\n );\r\n */\r\n console.log('##### Matched permission: ', permission);\r\n\r\n if (permission) {\r\n if (right === 'read') {\r\n if (!permission.readFlag) {\r\n if (hide !== false) {\r\n hide = true;\r\n }\r\n } else {\r\n hide = false;\r\n }\r\n } else if (\r\n (right === 'create' && !permission.createFlag) ||\r\n (right === 'update' && !permission.updateFlag) ||\r\n (right === 'delete' && !permission.deleteFlag) ||\r\n (right === 'assign' && !permission.assignFlag) ||\r\n (right === 'close' && !permission.closeFlag) ||\r\n (right === 'expunge' && !permission.expungeFlag) ||\r\n (right === 'reopen' && !permission.reopenFlag)\r\n ) {\r\n if (element.nodeName === 'BUTTON') {\r\n if (hide !== false) {\r\n hide = true;\r\n }\r\n } else {\r\n if (disable !== false) {\r\n disable = true;\r\n }\r\n }\r\n } else {\r\n if (element.nodeName === 'BUTTON') {\r\n hide = false;\r\n } else {\r\n disable = false;\r\n }\r\n }\r\n } else {\r\n if (right === 'read') {\r\n if (hide !== false) {\r\n hide = true;\r\n }\r\n } else if (element.nodeName === 'BUTTON') {\r\n if (hide !== false) {\r\n hide = true;\r\n }\r\n } else if (disable !== false) {\r\n disable = true;\r\n }\r\n }\r\n }\r\n });\r\n console.log('hide: ', hide);\r\n console.log('disable: ', disable);\r\n if (hide === true) {\r\n this.hideHtmlElement(element);\r\n } else if (disable === true) {\r\n this.disableHtmlElement(element);\r\n }\r\n });\r\n }\r\n\r\n public checkPermission(accessControlConfig: SmartAccessControlConfig) {\r\n const selData = accessControlConfig.route.data;\r\n this.loginStaff = selData.loginStaff;\r\n this.selectedOffender = selData.selectedOffender;\r\n\r\n const permissions = this.loginStaff.permissions;\r\n const resource = accessControlConfig.route.url[0].path;\r\n const roleId = accessControlConfig.roleId\r\n ? accessControlConfig.roleId.toUpperCase()\r\n : null;\r\n const accessType = accessControlConfig.accessType;\r\n const assignmentStaffRelationId = !this.selectedOffender\r\n .assignmentStaffRelationId\r\n ? 'N/A'\r\n : this.selectedOffender.assignmentStaffRelationId;\r\n\r\n const permission = permissions.find((p) => {\r\n return (\r\n p.appModuleId === accessControlConfig.appModuleId\r\n && p.resource === resource\r\n && (!roleId || p.roleId === roleId)\r\n && (p.assignmentStaffRelationId === 'N/A' ||\r\n p.assignmentStaffRelationId === assignmentStaffRelationId)\r\n );\r\n });\r\n\r\n if (permission) {\r\n if (accessType === 'read') {\r\n if (!permission.readFlag) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n } else if (\r\n (accessType === 'create' && !permission.createFlag) ||\r\n (accessType === 'update' && !permission.updateFlag) ||\r\n (accessType === 'delete' && !permission.deleteFlag) ||\r\n (accessType === 'assign' && !permission.assignFlag) ||\r\n (accessType === 'close' && !permission.closeFlag) ||\r\n (accessType === 'expunge' && !permission.expungeFlag) ||\r\n (accessType === 'reopen' && !permission.reopenFlag)\r\n ) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n } else {\r\n if (accessType === 'read') {\r\n return false;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n public canAppFeatureActivate(\r\n loginStaff: LoginStaff,\r\n feature: string,\r\n appModuleId = null,\r\n ) {\r\n // if (!this.isAuthEnable(loginStaff.roles, appModuleId)) {\r\n // return true;\r\n // }\r\n return this.hasAppFeaturePermission(\r\n loginStaff.permissions,\r\n feature,\r\n appModuleId,\r\n );\r\n }\r\n\r\n // public isAuthEnable(roles: Role[], appModuleId: string) {\r\n // if (roles && roles.length > 0) {\r\n // return roles.map(r => r.roleId).findIndex(this.isExternalRole) > -1 || appModuleId === 'RR';\r\n // }\r\n // return false;\r\n // }\r\n\r\n public hasIntakeRole(roles: Role[]) {\r\n if (roles && roles.length > 0) {\r\n return roles.findIndex(this.isIntakeRole) > -1;\r\n }\r\n return false;\r\n }\r\n\r\n private hasAppFeaturePermission(\r\n permissions: Permission[],\r\n feature: string,\r\n appModuleId: string,\r\n ) {\r\n if (permissions && permissions.length > 0) {\r\n if (appModuleId) {\r\n return (\r\n permissions.findIndex(\r\n (p) => p.resource === feature && p.appModuleId === appModuleId,\r\n ) > -1\r\n );\r\n } else {\r\n return permissions.findIndex((p) => p.resource === feature) > -1;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n private isExternalRole(roleId) {\r\n switch (roleId) {\r\n case 'EUDTL':\r\n case 'EUDUSM':\r\n case 'EUJDG':\r\n case 'EUMPD':\r\n case 'EUSOTV':\r\n case 'EUUSA2':\r\n case 'EUUSAO':\r\n case 'EUUSPC':\r\n return true;\r\n default:\r\n return false;\r\n }\r\n }\r\n\r\n private isIntakeRole(role: Role) {\r\n switch (role.roleId) {\r\n case 'OPA':\r\n case 'OPS':\r\n case 'SOPS':\r\n return true;\r\n default:\r\n return false;\r\n }\r\n }\r\n\r\n private disableHtmlElement(element: Element): void {\r\n // console.log(element);\r\n switch (element.nodeName) {\r\n case 'A':\r\n element.setAttribute(\r\n 'style',\r\n 'pointer-events: none;cursor: not-allowed;',\r\n );\r\n element.setAttribute('tabIndex', '-1');\r\n break;\r\n default:\r\n element.setAttribute('disabled', 'disabled');\r\n break;\r\n }\r\n }\r\n\r\n private hideHtmlElement(element: Element): void {\r\n // element.setAttribute('hidden', 'hidden');\r\n element.setAttribute('style', 'display: none;');\r\n }\r\n\r\n private getStaff(userName: string): Observable<LoginStaff> {\r\n const queryString = `\r\n {\r\n findvStaffs(input: {where: {userName: \"${userName}\", activeFlag: true}}) {\r\n totalCount\r\n message\r\n data {\r\n staffId\r\n userName\r\n lastName\r\n firstName\r\n phone\r\n email\r\n roles {\r\n roleId\r\n role\r\n }\r\n permissions {\r\n roleId\r\n appModuleId\r\n resource\r\n assignmentStaffRelationId\r\n readFlag\r\n createFlag\r\n updateFlag\r\n deleteFlag\r\n assignFlag\r\n reopenFlag\r\n closeFlag\r\n expungeFlag\r\n }\r\n options {\r\n offenderListOptionId\r\n name\r\n serviceApiFieldName\r\n selectedFlag\r\n }\r\n }\r\n }\r\n }`;\r\n\r\n return this.http\r\n .post<any>(this.smartDataServiceUrl, { query: queryString })\r\n .pipe(\r\n take(1),\r\n map((result) => {\r\n if (isDevMode) {\r\n console.log('##### getStaff() from service ', result);\r\n }\r\n if (result.data.findvStaffs.data.length > 0) {\r\n const data = result.data.findvStaffs.data[0];\r\n this.xdmService.setLoginStaff(data);\r\n this.loginStaff = data;\r\n return data;\r\n } else {\r\n return null;\r\n // return throwError('No access right.');\r\n }\r\n }),\r\n catchError((error) => {\r\n console.log('error ' + error);\r\n return null;\r\n }),\r\n );\r\n }\r\n\r\n private getStaffOffenderRelation(\r\n staffId: number,\r\n offenderId: number,\r\n ): Observable<string> {\r\n const queryString = `\r\n {\r\n findvStaffOffenderRelations(input: {where: {staffId: ${staffId}, offenderId: ${offenderId}}}) {\r\n data {\r\n assignmentStaffRelationId\r\n }\r\n }\r\n }`;\r\n\r\n return this.http\r\n .post<any>(this.smartDataServiceUrl, { query: queryString })\r\n .pipe(\r\n take(1),\r\n map((result) => {\r\n if (isDevMode) {\r\n console.log(\r\n '##### getStaffOffenderRelation() from service ',\r\n result,\r\n );\r\n }\r\n if (result.data.findvStaffOffenderRelations.data.length > 0) {\r\n const data = result.data.findvStaffOffenderRelations.data[0];\r\n return data.assignmentStaffRelationId;\r\n } else {\r\n return null;\r\n // return throwError('No access right.');\r\n }\r\n }),\r\n catchError((error) => {\r\n console.log('error ' + error);\r\n return null;\r\n }),\r\n );\r\n }\r\n\r\n private getRolePermissions(\r\n appModuleId: string,\r\n resource: string,\r\n ): Observable<boolean> {\r\n const queryString = `\r\n query findvRolePermissionPivots{\r\n findvRolePermissionPivots(input: {where: {appModuleId: ${appModuleId}, resource: ${resource}}}){\r\n totalCount\r\n message\r\n }\r\n }`;\r\n\r\n return this.http\r\n .post<any>(this.smartDataServiceUrl, { query: queryString })\r\n .pipe(\r\n take(1),\r\n map((result) => {\r\n if (isDevMode) {\r\n console.log(\r\n '##### findvRolePermissionPivots() from service ',\r\n result,\r\n );\r\n }\r\n if (result.data.findvRolePermissionPivots.totalCount > 0) {\r\n return true;\r\n } else {\r\n return false;\r\n // return throwError('No access right.');\r\n }\r\n }),\r\n catchError((error: any) => {\r\n console.log('error ' + error);\r\n return throwError(error);\r\n }),\r\n );\r\n }\r\n}\r\n","import { Directive, Input, OnInit, ElementRef } from '@angular/core';\r\nimport { SmartAuthService } from './smart-auth.service';\r\nimport { SmartAccessControlConfig } from './smart-access-control-config';\r\nimport { ActivatedRoute } from '@angular/router';\r\n\r\n\r\n@Directive({\r\n selector: '[accessControl]',\r\n})\r\nexport class SmartAccessControlDirective implements OnInit {\r\n @Input() accessControlConfig: SmartAccessControlConfig;\r\n constructor(\r\n private elementRef: ElementRef,\r\n private auth: SmartAuthService,\r\n ) {}\r\n\r\n public ngOnInit() {\r\n this.checkAccess();\r\n }\r\n\r\n checkAccess() {\r\n if (\r\n !this.accessControlConfig ||\r\n !this.accessControlConfig.route ||\r\n !this.accessControlConfig.route.data ||\r\n !this.accessControlConfig.route.data.loginStaff ||\r\n !this.accessControlConfig.route.data.selectedOffender\r\n ) {\r\n return;\r\n }\r\n\r\n // const loginStaff = this.accessControlConfig.route.data.loginStaff;\r\n // if (!this.auth.isAuthEnable(loginStaff.roles, this.accessControlConfig.appModuleId)) {\r\n // return;\r\n // }\r\n this.elementRef.nativeElement.style.display = this.auth.checkPermission(\r\n this.accessControlConfig\r\n )\r\n ? 'block'\r\n : 'none';\r\n }\r\n}\r\n","// smart-authorization.service\r\nimport { Injectable } from '@angular/core';\r\nimport {\r\n CanActivate,\r\n ActivatedRouteSnapshot,\r\n RouterStateSnapshot,\r\n} from '@angular/router';\r\nimport { Router } from '@angular/router';\r\nimport { take, mergeMap, catchError } from 'rxjs/operators';\r\nimport { of, Observable } from 'rxjs';\r\nimport { LoginStaff } from '../smart-storage/smart-storage-model';\r\nimport { SmartAuthService } from './smart-auth.service';\r\n\r\n@Injectable()\r\nexport class SmartAuthorizationGuard implements CanActivate {\r\n loginStaff: LoginStaff;\r\n\r\n constructor(public authnService: SmartAuthService) { }\r\n\r\n canActivate(route: ActivatedRouteSnapshot) {\r\n return this.authnService.getLoginStaff().pipe(\r\n take(1),\r\n mergeMap((loginStaff) => {\r\n if (!loginStaff || !route || !route.routeConfig) {\r\n return of(false);\r\n }\r\n // if (!this.authnService.isAuthEnable(loginStaff.roles, null)) {\r\n // return of(true);\r\n // }\r\n const resource = route.routeConfig.path\r\n ? route.routeConfig.path.split('/')[0]\r\n : '';\r\n const isFeatureValid = this.authnService.canAppFeatureActivate(\r\n loginStaff,\r\n resource,\r\n );\r\n return of(isFeatureValid);\r\n }),\r\n catchError((error) => {\r\n return of(false);\r\n }),\r\n );\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport {\r\n MatButtonModule,\r\n MatMenuModule,\r\n MatTabsModule,\r\n MatSelectModule,\r\n MatCard,\r\n MatCheckbox,\r\n MatCheckboxModule,\r\n MatCardModule,\r\n MatSnackBar,\r\n} from '@angular/material';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { SmartOffenderHeaderComponent } from './smart-offender-header/smart-offender-header.component';\r\nimport { SmartNavbarComponent } from './smart-navbar/smart-navbar.component';\r\nimport { SmartNavbarService } from './smart-navbar/smart-navbar.service';\r\nimport { SmartErrorComponent } from './smart-auth/smart-error.component';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { SmartOffenderHeaderService } from './smart-offender-header/smart-offender-header.service';\r\nimport { SmartStaffOffenderOptionsComponent } from './smart-staff-offender-options/smart-staff-offender-options.component';\r\n// import { SmartStaffOffenderOptionsComponent } from './smart-staff-offender-options/smart-staff-offender-options.component';\r\nimport { SmartStaffOffenderOptionsService } from './smart-staff-offender-options/smart-staff-offender-options.service';\r\nimport { SmartAccessControlDirective } from './smart-auth/smart-access-control.directive';\r\nimport { SmartAuthorizationGuard } from './smart-auth/smart-authorization-guard.service';\r\n\r\n@NgModule({\r\n declarations: [\r\n SmartOffenderHeaderComponent,\r\n SmartNavbarComponent,\r\n SmartErrorComponent,\r\n SmartStaffOffenderOptionsComponent,\r\n SmartAccessControlDirective,\r\n ],\r\n imports: [\r\n CommonModule,\r\n HttpClientModule,\r\n MatButtonModule,\r\n MatMenuModule,\r\n MatTabsModule,\r\n MatSelectModule,\r\n MatCardModule,\r\n MatCheckboxModule,\r\n ReactiveFormsModule,\r\n ],\r\n exports: [\r\n SmartOffenderHeaderComponent,\r\n SmartNavbarComponent,\r\n SmartErrorComponent,\r\n SmartStaffOffenderOptionsComponent,\r\n SmartAccessControlDirective,\r\n ],\r\n providers: [\r\n SmartNavbarService,\r\n SmartOffenderHeaderService,\r\n SmartStaffOffenderOptionsService,\r\n SmartAuthorizationGuard,\r\n MatSnackBar,\r\n ],\r\n})\r\nexport class NgcSmartCoreModule {}\r\n","import { Injectable, NgZone, isDevMode } from '@angular/core';\r\nimport {\r\n Resolve,\r\n ActivatedRouteSnapshot,\r\n RouterStateSnapshot,\r\n Router,\r\n} from '@angular/router';\r\nimport { Observable, EMPTY, of, throwError } from 'rxjs';\r\nimport { mergeMap, catchError, take } from 'rxjs/operators';\r\nimport { SmartAuthService } from './smart-auth.service';\r\nimport { LoginStaff } from '../smart-storage/smart-storage-model';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class LoginStaffResolverService implements Resolve<LoginStaff> {\r\n constructor(\r\n private authnService: SmartAuthService,\r\n // private zone: NgZone,\r\n private router: Router,\r\n ) {}\r\n\r\n resolve(\r\n route: ActivatedRouteSnapshot,\r\n state: RouterStateSnapshot,\r\n ): Observable<LoginStaff> | Observable<never> {\r\n return this.authnService.getLoginStaff().pipe(\r\n take(1),\r\n mergeMap((loginStaff) => {\r\n if (isDevMode) {\r\n console.log('LoginStaffResolverService: ', loginStaff);\r\n }\r\n if (loginStaff) {\r\n return of(loginStaff);\r\n } else {\r\n return throwError('Not authorized to access SMART.');\r\n // return EMPTY;\r\n /*\r\n this.zone.run(() => {\r\n this.router.navigate(['/smart-error'], {\r\n queryParams: {\r\n type: 'staff',\r\n message: 'Not authorized to access SMART.'\r\n }\r\n });\r\n });\r\n return EMPTY;\r\n */\r\n }\r\n }),\r\n catchError((error) => {\r\n console.log('LoginStaffResolverService: ' + error);\r\n this.router.navigate(['/smart-error'], {\r\n queryParams: {\r\n type: 'staff',\r\n message: 'SMART Authentication: ' + error,\r\n },\r\n });\r\n return EMPTY;\r\n }),\r\n );\r\n }\r\n}\r\n","import { Injectable, NgZone, isDevMode } from '@angular/core';\r\nimport {\r\n Resolve,\r\n ActivatedRouteSnapshot,\r\n RouterStateSnapshot,\r\n Router,\r\n} from '@angular/router';\r\nimport { Observable, from, of, EMPTY, throwError, concat } from 'rxjs';\r\nimport {\r\n catchError,\r\n mergeMap,\r\n map,\r\n take,\r\n retryWhen,\r\n tap,\r\n delay,\r\n} from 'rxjs/operators';\r\nimport { SelectedOffender } from '../smart-storage/smart-storage-model';\r\nimport { XdmService } from '../smart-storage/xdm.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SelectedOffenderResolverService\r\n implements Resolve<SelectedOffender> {\r\n constructor(\r\n private service: XdmService,\r\n private zone: NgZone,\r\n private router: Router,\r\n ) {}\r\n\r\n resolve(\r\n route: ActivatedRouteSnapshot,\r\n state: RouterStateSnapshot,\r\n ): Observable<SelectedOffender> | Observable<never> {\r\n return from(this.service.getSelectedOffender()).pipe(\r\n mergeMap((selectedOffender) => {\r\n if (isDevMode) {\r\n console.log(selectedOffender);\r\n }\r\n if (!selectedOffender) {\r\n return throwError('No offender selected.');\r\n }\r\n return of(selectedOffender);\r\n }),\r\n retryWhen((errors) =>\r\n errors.pipe(\r\n // tap(() => console.log('Retry getting selected offender.')),\r\n delay(1000),\r\n take(5),\r\n (o) =>\r\n concat(\r\n o,\r\n throwError('No offender selected (failed after retries).'),\r\n ),\r\n ),\r\n ),\r\n catchError((error) => {\r\n /*\r\n this.zone.run(() => {\r\n this.router.navigate(['/smart-error'], {\r\n queryParams: { type: 'offender', message: error }\r\n });\r\n });\r\n */\r\n this.router.navigate(['/smart-error'], {\r\n queryParams: { type: 'offender', message: error },\r\n });\r\n return EMPTY;\r\n }),\r\n );\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Resolve } from '@angular/router';\r\nimport { SmartStaffOffenderOptionsService} from './smart-staff-offender-options.service';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SmartStaffOffenderOptionsResolverService implements Resolve<Observable<any>> {\r\n constructor(private offenderService: SmartStaffOffenderOptionsService) {}\r\n resolve() {\r\n return this.offenderService.getOffenderListOptions()\r\n .pipe(\r\n map(({ data }) => {\r\n return data;\r\n }),\r\n );\r\n }\r\n }\r\n","import { ActivatedRouteSnapshot } from '@angular/router';\r\n\r\nexport interface SmartAccessControlConfig {\r\n appModuleId: string;\r\n route: ActivatedRouteSnapshot;\r\n accessType: AccessType;\r\n roleId: string;\r\n}\r\n\r\nexport enum AccessType {\r\n READ = 'read',\r\n CREATE = 'create',\r\n UPDATE = 'update',\r\n DELETE = 'delete',\r\n EXPUNGE = 'expunge',\r\n ASSIGN = 'assign',\r\n REOPEN = 'reopen',\r\n CLOSE = 'close'\r\n}\r\n"],"names":["InjectionToken","Subject","isDevMode","connectToChild","map","Injectable","Inject","DOCUMENT","HttpClient","FormControl","Component","MsalService","Router","ViewEncapsulation","Input","ViewChild","ActivatedRoute","MatSnackBar","FormGroup","of","from","switchMap","take","catchError","throwError","Directive","ElementRef","mergeMap","NgModule","CommonModule","HttpClientModule","MatButtonModule","MatMenuModule","MatTabsModule","MatSelectModule","MatCardModule","MatCheckboxModule","ReactiveFormsModule","EMPTY","retryWhen","delay","concat","NgZone"],"mappings":";;;;;;IAAA;;;;;;;;;;;;;;AAcA,aAqDgB,SAAS,CAAC,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS;QACvD,SAAS,KAAK,CAAC,KAAK,IAAI,OAAO,KAAK,YAAY,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC,UAAU,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;QAC5G,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,EAAE,UAAU,OAAO,EAAE,MAAM;YACrD,SAAS,SAAS,CAAC,KAAK,IAAI,IAAI;gBAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;aAAE;YAAC,OAAO,CAAC,EAAE;gBAAE,MAAM,CAAC,CAAC,CAAC,CAAC;aAAE,EAAE;YAC3F,SAAS,QAAQ,CAAC,KAAK,IAAI,IAAI;gBAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;aAAE;YAAC,OAAO,CAAC,EAAE;gBAAE,MAAM,CAAC,CAAC,CAAC,CAAC;aAAE,EAAE;YAC9F,SAAS,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,EAAE;YAC9G,IAAI,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;SACzE,CAAC,CAAC;IACP,CAAC;AAED,aAAgB,WAAW,CAAC,OAAO,EAAE,IAAI;QACrC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,cAAa,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;gBAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACjH,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,MAAM,KAAK,UAAU,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,cAAa,OAAO,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACzJ,SAAS,IAAI,CAAC,CAAC,IAAI,OAAO,UAAU,CAAC,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;QAClE,SAAS,IAAI,CAAC,EAAE;YACZ,IAAI,CAAC;gBAAE,MAAM,IAAI,SAAS,CAAC,iCAAiC,CAAC,CAAC;YAC9D,OAAO,CAAC;gBAAE,IAAI;oBACV,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI;wBAAE,OAAO,CAAC,CAAC;oBAC7J,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;wBAAE,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;oBACxC,QAAQ,EAAE,CAAC,CAAC,CAAC;wBACT,KAAK,CAAC,CAAC;wBAAC,KAAK,CAAC;4BAAE,CAAC,GAAG,EAAE,CAAC;4BAAC,MAAM;wBAC9B,KAAK,CAAC;4BAAE,CAAC,CAAC,KAAK,EAAE,CAAC;4BAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;wBACxD,KAAK,CAAC;4BAAE,CAAC,CAAC,KAAK,EAAE,CAAC;4BAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;4BAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;4BAAC,SAAS;wBACjD,KAAK,CAAC;4BAAE,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;4BAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;4BAAC,SAAS;wBACjD;4BACI,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE;gCAAE,CAAC,GAAG,CAAC,CAAC;gCAAC,SAAS;6BAAE;4BAC5G,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;gCAAE,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;gCAAC,MAAM;6BAAE;4BACtF,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;gCAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gCAAC,CAAC,GAAG,EAAE,CAAC;gCAAC,MAAM;6BAAE;4BACrE,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;gCAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gCAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gCAAC,MAAM;6BAAE;4BACnE,IAAI,CAAC,CAAC,CAAC,CAAC;gCAAE,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;4BACtB,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;4BAAC,SAAS;qBAC9B;oBACD,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;iBAC9B;gBAAC,OAAO,CAAC,EAAE;oBAAE,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;oBAAC,CAAC,GAAG,CAAC,CAAC;iBAAE;wBAAS;oBAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;iBAAE;YAC1D,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;gBAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;YAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;SACpF;IACL,CAAC;AAED,aAgBgB,MAAM,CAAC,CAAC,EAAE,CAAC;QACvB,IAAI,CAAC,GAAG,OAAO,MAAM,KAAK,UAAU,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC3D,IAAI,CAAC,CAAC;YAAE,OAAO,CAAC,CAAC;QACjB,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;QACjC,IAAI;YACA,OAAO,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI;gBAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;SAC9E;QACD,OAAO,KAAK,EAAE;YAAE,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;SAAE;gBAC/B;YACJ,IAAI;gBACA,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;oBAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aACpD;oBACO;gBAAE,IAAI,CAAC;oBAAE,MAAM,CAAC,CAAC,KAAK,CAAC;aAAE;SACpC;QACD,OAAO,EAAE,CAAC;IACd,CAAC;AAED,aAAgB,QAAQ;QACpB,KAAK,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE;YAC9C,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzC,OAAO,EAAE,CAAC;IACd,CAAC;;;;;;;AC9ID;QAEA;SAaC;QAAD,iBAAC;IAAD,CAAC,IAAA;;QAED;SAGC;QAAD,WAAC;IAAD,CAAC,IAAA;;QAED;SAKC;QAAD,aAAC;IAAD,CAAC,IAAA;;QAED;YAOE,iBAAY,GAAW,GAAG,CAAC;SAI5B;QAAD,iBAAC;IAAD,CAAC,IAAA;;QAED;YAOE,eAAU,GAAa,KAAK,CAAC;SAC9B;QAAD,uBAAC;IAAD,CAAC,IAAA;;QAED;SAEC;QAAD,oBAAC;IAAD,CAAC,IAAA;;QAED;SAIC;QAHQ,2BAAgB,GAAG,yBAAyB,CAAC;QAC7C,qBAAU,GAAG,mBAAmB,CAAC;QACjC,wBAAa,GAAG,sBAAsB,CAAC;QAChD,iBAAC;KAJD,IAIC;;AAED,QAAa,8BAA8B,GAAG,IAAIA,iBAAc,CAC9D,gCAAgC,CACjC;;AACD,QAAa,oBAAoB,GAAG,IAAIA,iBAAc,CACpD,sBAAsB,CACvB;;AACD,QAAa,sBAAsB,GAAG,IAAIA,iBAAc,CACtD,wBAAwB,CACzB;;;AAGD,QAAa,mBAAmB,GAAG,IAAIA,iBAAc,CACnD,yBAAyB,CAC1B;;;;;;;AC3ED;QA2BE,oBAC4B,QAAa,EAE/B,uBAA+B,EAC/B,UAAsB,EACU,mBAAmB;YAJjC,aAAQ,GAAR,QAAQ,CAAK;YAE/B,4BAAuB,GAAvB,uBAAuB,CAAQ;YAC/B,eAAU,GAAV,UAAU,CAAY;YACU,wBAAmB,GAAnB,mBAAmB,CAAA;YAVrD,oBAAe,GAAG,IAAIC,YAAO,EAAoB,CAAC;YAClD,iBAAY,GAAG,IAAIA,YAAO,EAAc,CAAC;YACzC,yBAAoB,GAAG,IAAIA,YAAO,EAAiB,CAAC;YAU1D,IAAIC,YAAS,EAAE;gBACb,OAAO,CAAC,GAAG,CAAC,kDAAkD,CAAC,CAAC;aACjE;YACD,IAAI,CAAC,IAAI,EAAE,CAAC;SACb;;;;;QAEO,yBAAI;;;;YAAZ;;oBACQ,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC;gBACnD,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,uBAAuB,CAAC;gBACzC,KAAK,CAAC,EAAE,GAAG,YAAY,CAAC;gBACxB,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC;gBACtC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;gBACpB,KAAK,CAAC,KAAK,CAAC,UAAU,GAAG,QAAQ,CAAC;gBAClC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;gBAEtC,IAAI,CAAC,UAAU,GAAGC,qBAAc,CAAC;oBAC/B,MAAM,EAAE,KAAK;oBACb,KAAK,EAAE,KAAK;iBACb,CAAC,CAAC;aACJ;;;;;;QAEO,gDAA2B;;;;;YAAnC,UACE,OAAe;;oBAET,WAAW,GAAG,iFAEH,OAAO,qKASpB;gBACJ,OAAO,IAAI,CAAC,UAAU;qBACnB,IAAI,CAAM,IAAI,CAAC,mBAAmB,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;qBAC3D,IAAI,CACHC,aAAG;;;eAAC,UAAC,EAAQ;wBAAN,cAAI;oBACT,IAAI,CAAC,6BAA6B,CAAC,IAAI,CAAC,sBAAsB,CAAC;wBAC7D,IAAI,CAAC,6BAA6B,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;oBAClE,OAAO,IAAI,CAAC,6BAA6B,CAAC,IAAI,CAAC;iBAChD,EAAC,CACH,CAAC;;;aAGL;;;;QAEM,6BAAQ;;;YAAf;gBAAA,iBAMC;gBALC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI;;;mBAAC,UAAC,KAAK;oBACjC,KAAK,CAAC,QAAQ,EAAE,CAAC;oBACjB,KAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;oBAC5B,KAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;iBAC1B,EAAC,CAAC;aACJ;;;;;;;;;;;QAKM,wCAAmB;;;;;;;YAA1B,UAA2B,gBAAkC;gBAA7D,iBAKC;gBAJC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI;;;mBAAC,UAAC,KAAK;oBACjC,KAAK,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;oBAC5C,KAAI,CAAC,eAAe,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;iBAC7C,EAAC,CAAC;aACJ;;;;QAEM,wCAAmB;;;YAA1B;gBACE,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI;;;mBAAC,UAAC,KAAK;oBACxC,OAAA,KAAK,CAAC,mBAAmB,CAAC,UAAU,CAAC,gBAAgB,CAAC;iBAAA,EACvD,CAAC;aACH;;;;QAEM,0CAAqB;;;YAA5B;gBAAA,iBAKC;gBAJC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI;;;mBAAC,UAAC,KAAK;oBACjC,KAAK,CAAC,qBAAqB,EAAE,CAAC;oBAC9B,KAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;iBAC7B,EAAC,CAAC;aACJ;;;;QAEM,sCAAiB;;;YAAxB;gBACE,OAAO,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE,CAAC;aAC5C;;;;;;;;;;;QAKM,kCAAa;;;;;;;YAApB,UAAqB,UAAsB;gBAA3C,iBAKC;gBAJC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI;;;mBAAC,UAAC,KAAK;oBACjC,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;oBAChC,KAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;iBACpC,EAAC,CAAC;aACJ;;;;QAEM,kCAAa;;;YAApB;gBACE,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI;;;mBAAC,UAAC,KAAK;oBACxC,OAAA,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC,UAAU,CAAC;iBAAA,EAC3C,CAAC;aACH;;;;QAEM,oCAAe;;;YAAtB;gBAAA,iBAKC;gBAJC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI;;;mBAAC,UAAC,KAAK;oBACjC,KAAK,CAAC,eAAe,EAAE,CAAC;oBACxB,KAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;iBAC1B,EAAC,CAAC;aACJ;;;;QAEM,mCAAc;;;YAArB;gBACE,OAAO,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC;aACzC;;;;QAEM,6CAAwB;;;YAA/B;gBAAA,iBAUC;gBATC,IAAI,CAAC,aAAa,EAAE,CAAC,IAAI;;;mBAAC,UAAC,aAAa;oBACtC,KAAI,CAAC,2BAA2B,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,SAAS;;;uBAC/D,UAAC,UAAU;wBACT,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;wBACxB,aAAa,CAAC,OAAO,GAAG,UAAU,CAAC;wBACnC,KAAI,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;qBACnC,EACF,CAAC;iBACH,EAAC,CAAC;aACJ;;;;;;;;;;;QAKM,qCAAgB;;;;;;;YAAvB,UAAwB,aAA4B;gBAApD,iBAKC;gBAJC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI;;;mBAAC,UAAC,KAAK;oBACjC,KAAK,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;oBACtC,KAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;iBAC/C,EAAC,CAAC;aACJ;;;;QAEM,qCAAgB;;;YAAvB;gBACE,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI;;;mBAAC,UAAC,KAAK;oBACxC,OAAA,KAAK,CAAC,gBAAgB,CAAC,UAAU,CAAC,aAAa,CAAC;iBAAA,EACjD,CAAC;aACH;;;;QAEM,uCAAkB;;;YAAzB;gBAAA,iBAKC;gBAJC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI;;;mBAAC,UAAC,KAAK;oBACjC,KAAK,CAAC,kBAAkB,EAAE,CAAC;oBAC3B,KAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC;iBAClC,EAAC,CAAC;aACJ;;;;QAEM,2CAAsB;;;YAA7B;gBACE,OAAO,IAAI,CAAC,oBAAoB,CAAC,YAAY,EAAE,CAAC;aACjD;;oBApKFC,aAAU,SAAC;wBACV,UAAU,EAAE,MAAM;qBACnB;;;;;wDAQIC,SAAM,SAACC,WAAQ;qDACfD,SAAM,SAAC,8BAA8B;wBAbjCE,eAAU;wDAgBdF,SAAM,SAAC,sBAAsB;;;;yBAhClC;KAkBA;;;;;;;AClBA;QAWE,oCAC0C,mBAAmB,EACnD,IAAgB;YADgB,wBAAmB,GAAnB,mBAAmB,CAAA;YACnD,SAAI,GAAJ,IAAI,CAAY;SACtB;;;;;QAEJ,sDAAiB;;;;YAAjB,UAAkB,OAAe;;oBACzB,WAAW,GAAG,4FAE0B,OAAO,2OAUpD;gBACD,OAAO,IAAI,CAAC,IAAI;qBACb,IAAI,CAAM,IAAI,CAAC,mBAAmB,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;qBAC3D,IAAI,CACHF,aAAG;;;eAAC,UAAC,EAAQ;wBAAN,cAAI;oBACT,OAAO,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC;iBACrC,EAAC,CACH,CAAC;aACL;;oBA5BFC,aAAU;;;;;wDAGNC,SAAM,SAAC,sBAAsB;wBAXzBE,eAAU;;;QAqCnB,iCAAC;KA7BD;;;;;;;;QCgBE,sCACU,UAAsB,EACtB,YAAyB,EACzB,0BAAsD,EACtD,MAAc;YAHd,eAAU,GAAV,UAAU,CAAY;YACtB,iBAAY,GAAZ,YAAY,CAAa;YACzB,+BAA0B,GAA1B,0BAA0B,CAA4B;YACtD,WAAM,GAAN,MAAM,CAAQ;YAVxB,6BAAwB,GAAG,IAAIC,iBAAW,EAAE,CAAC;SAWzC;;;;QAEJ,+CAAQ;;;YAAR;gBAAA,iBA2CC;gBA1CC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,GAAG,IAAI,GAAG,KAAK,CAAC;gBACrE,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC,IAAI;;;mBAAC,UAAC,UAAU;oBAC9C,KAAI,CAAC,UAAU,GAAG,UAAU,GAAG,UAAU,GAAG,IAAI,CAAC;iBAClD,EAAC,CAAC;gBACH,IAAI,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC,IAAI;;;mBAAC,UAAC,gBAAgB;oBAC1D,KAAI,CAAC,gBAAgB;wBACnB,gBAAgB,IAAI,gBAAgB,CAAC,UAAU;8BAC3C,gBAAgB;8BAChB,IAAI,CAAC;iBACZ,EAAC,CAAC;gBAEH,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,UAAU;qBAChC,iBAAiB,EAAE;qBACnB,SAAS;;;eAAC,UAAC,gBAAgB;oBAC1B,KAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;oBACzC,KAAI,CAAC,0BAA0B,EAAE,CAAC;iBACnC,EAAC,CAAC;gBAEL,IAAI,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC,IAAI;;;mBAAC,UAAC,aAA4B;oBACnE,IAAI,aAAa,EAAE;wBACjB,KAAI,CAAC,iBAAiB,GAAG,aAAa,CAAC,SAAS,CAAC;wBACjD,KAAI,CAAC,0BAA0B,EAAE,CAAC;qBACnC;iBACF,EAAC,CAAC;gBAEH,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC,UAAU,CAAC,sBAAsB,EAAE;qBACtE,SAAS;;;eAAC,UAAC,YAAY;oBACtB,IAAI,YAAY,IAAI,YAAY,CAAC,SAAS,EAAE;wBAC1C,KAAI,CAAC,iBAAiB,YAAO,YAAY,CAAC,SAAS,CAAC,CAAC;qBACtD;iBACJ,EAAC,CAAC;gBAGH,IAAI,CAAC,wBAAwB,CAAC,YAAY,CAAC,SAAS;;;mBAAC,UAAC,CAAC;oBACrD,OAAA,KAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;iBAAA,EAC3B,CAAC;gBAEF,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,gBAAgB;;mBAAG;oBAChD,OAAO,KAAK,CAAC;iBACd,CAAA,CAAC;aAGH;;;;QAED,kDAAW;;;YAAX;gBACE,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;aACjC;;;;;;QAEO,yDAAkB;;;;;YAA1B,UAA2B,QAAQ;gBACjC,IAAI,QAAQ,EAAE;;;;;;;;;;;;;;;oBAeZ,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC;oBACjC,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;oBAC3D,IAAI,CAAC,kBAAkB,EAAE,CAAC;iBACzB;aACF;;;;;QAEK,iEAA0B;;;;YAAlC;gBAAA,iBAmBC;gBAlBC,IACE,IAAI,CAAC,gBAAgB;oBACrB,IAAI,CAAC,iBAAiB;oBACtB,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,EACjC;;wBACM,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI;;;uBACnC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,UAAU,KAAK,KAAI,CAAC,gBAAgB,CAAC,UAAU,GAAA,EACzD;oBACD,IAAI,CAAC,EAAE;wBACL,IAAI,CAAC,wBAAwB,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;qBACjE;oBAED,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE;wBAC3C,IAAI,CAAC,wBAAwB,CAAC,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE;4BAChE,SAAS,EAAE,KAAK;yBACjB,CAAC,CAAC;qBACJ;iBACF;aACF;;;;;QAEO,yDAAkB;;;;YAA1B;gBACE,IAAI;;wBACI,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;oBACrD,IAAI,OAAO;2BACN,OAAO,CAAC,IAAI;2BACZ,OAAO,CAAC,IAAI,CAAC,QAAQ;2BACrB,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;wBACrC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;qBACvD;yBAAM,IAAI,OAAO;2BACb,OAAO,CAAC,IAAI;2BACZ,OAAO,CAAC,IAAI,CAAC,QAAQ;2BACrB,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO;2BAC7B,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ;2BACtC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;wBACtD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;qBACxE;yBAAM;wBACL,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;qBACzC;iBACF;gBAAC,WAAM;oBACN,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;iBAChC;aACF;;;;;;QAEO,oDAAa;;;;;YAArB,UAAsB,KAAa;gBACjC,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC7B,OAAO,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;iBAChD;gBACD,OAAO,KAAK,CAAC;aACd;;;;;;QAEO,mDAAY;;;;;YAApB,UAAqB,IAAU;gBAC7B,QAAQ,IAAI,CAAC,MAAM;oBACjB,KAAK,KAAK,CAAC;oBACX,KAAK,KAAK,CAAC;oBACX,KAAK,MAAM;wBACT,OAAO,IAAI,CAAC;oBACd;wBACE,OAAO,KAAK,CAAC;iBAChB;aACF;;oBAzJFC,YAAS,SAAC;wBACT,QAAQ,EAAE,2BAA2B;wBACrC,68BAAqD;;qBAEtD;;;;;wBAbQ,UAAU;wBAGVC,cAAW;wBAGX,0BAA0B;wBAC1BC,WAAM;;;QA4Jf,mCAAC;KA1JD;;;;;;;ACVA;QAUE,4BAAoB,IAAgB;YAAhB,SAAI,GAAJ,IAAI,CAAY;SAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAmBjC,6CAAgB;;;;;;;;;;;;;;;;;;;;YAAvB,UACE,aAAqB;;oBAEf,WAAW,GAAG,sOAWd;;;;;;;;;;gBAYN,OAAO,IAAI,CAAC,IAAI;qBACb,IAAI,CAAM,aAAa,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;qBAChD,IAAI,CACHR,aAAG;;;eAAC,UAAC,EAAQ;wBAAN,cAAI;oBACT,IAAIF,YAAS,EAAE,EAAE;wBACf,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;qBACnB;oBACD,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;iBACjC,EAAC,CACH,CAAC;aACL;;oBA1DFG,aAAU;;;;;wBANFG,eAAU;;;QAiEnB,yBAAC;KA3DD;;;;;;;ACPA;QAyCE,8BACU,mBAAuC,EACvC,UAAsB,EAEtB,YAAyB;YAHzB,wBAAmB,GAAnB,mBAAmB,CAAoB;YACvC,eAAU,GAAV,UAAU,CAAY;YAEtB,iBAAY,GAAZ,YAAY,CAAa;YAd1B,gBAAW,GAAG,OAAO,CAAC;YAM/B,oBAAe,GAAG,KAAK,CAAC;SASpB;;;;QAEJ,0CAAW;;;YAAX;;;;;;;aAOC;;;;QAED,uCAAQ;;;YAAR;gBAAA,iBA4CC;gBA3CC,IAAI,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC,IAAI;;;mBAAC,UAAC,gBAAgB;oBAC1D,KAAI,CAAC,gBAAgB;wBACnB,gBAAgB,IAAI,gBAAgB,CAAC,UAAU;8BAC3C,gBAAgB;8BAChB,IAAI,CAAC;iBACZ,EAAC,CAAC;gBAEH,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC,IAAI;;;mBAAC,UAAC,UAAU;;oBAE9C,KAAI,CAAC,UAAU,GAAG,UAAU,GAAG,UAAU,GAAG,IAAI,CAAC;;iBAElD,EAAC,CAAC;gBAEH,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,UAAU;qBACxC,iBAAiB,EAAE;qBACnB,SAAS;;;eAAC,UAAC,gBAAgB;;oBAE1B,KAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;;iBAE1C,EAAC,CAAC;gBAEL,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,UAAU;qBACrC,cAAc,EAAE;qBAChB,SAAS;;;eAAC,UAAC,UAAU;;oBAEpB,KAAI,CAAC,UAAU,GAAG,UAAU,CAAC;;iBAE9B,EAAC,CAAC;gBAEL,IAAI,CAAC,mBAAmB;qBACrB,gBAAgB,CAAC,IAAI,CAAC,aAAa,CAAC;qBACpC,SAAS;;;eAAC,UAAC,OAAO;oBACjB,KAAI,CAAC,aAAa,GAAG,OAAO,CAAC,IAAI;;;;uBAAC,UAAC,CAAC,EAAE,CAAC;wBACrC,IAAI,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,YAAY,EAAE;4BACnC,OAAO,CAAC,CAAC,CAAC;yBACX;6BAAM,IAAI,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,YAAY,EAAE;4BAC1C,OAAO,CAAC,CAAC;yBACV;wBACD,OAAO,CAAC,CAAC;qBACV,EAAC,CAAC;iBACJ,EAAC,CAAC;gBAEL,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,GAAG,IAAI,GAAG,KAAK,CAAC;aACtE;;;;QAED,0CAAW;;;YAAX;gBACE,IAAI,CAAC,oBAAoB,CAAC,WAAW,EAAE,CAAC;gBACxC,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,CAAC;aACtC;;;;QAEM,qCAAM;;;YAAb;gBACE,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;gBAC3B,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;aAC5B;;;;;QAEM,8CAAe;;;;YAAtB,UAAuB,MAAyB;gBAC9C,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,gBAAgB,IAAI,MAAM,CAAC,WAAW,KAAK,OAAO;oBACpE,MAAM,CAAC,GAAG,yCAAoC,IAAI,CAAC,gBAAgB,CAAC,UAAY,GAAG,MAAM,CAAC,GAAG,CAAC;aACpG;;;;;QAEM,qDAAsB;;;;YAA7B,UAA8B,WAAW;gBACvC,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC5F,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,SAAS;;;uBAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,WAAW,KAAK,WAAW,GAAA,EAAC,GAAG,CAAC,CAAC,CAAC;iBACvF;gBAED,OAAO,KAAK,CAAC;aACd;QAED,sBAAW,qDAAmB;;;gBAA9B;gBACE,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;oBAChF,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;iBAClE;gBACD,OAAO,KAAK,CAAC;aACd;;;WAAA;;;;;;QAEO,6CAAc;;;;;YAAtB,UAAuB,IAAU;gBAC9B,QAAQ,IAAI,CAAC,MAAM;oBAClB,KAAK,OAAO,CAAC;oBACb,KAAK,QAAQ,CAAC;oBACd,KAAK,OAAO,CAAC;oBACb,KAAK,OAAO,CAAC;oBACb,KAAK,QAAQ,CAAC;oBACd,KAAK,QAAQ,CAAC;oBACd,KAAK,QAAQ,CAAC;oBACd,KAAK,QAAQ;wBACX,OAAO,IAAI,CAAC;oBACd;wBACE,OAAO,KAAK,CAAC;iBAChB;aACF;;oBA5HFE,YAAS,SAAC;wBACT,QAAQ,EAAE,kBAAkB;wBAC5B,i2EAA4C;wBAE5C,aAAa,EAAEG,oBAAiB,CAAC,IAAI;;qBACtC;;;;;wBAdQ,kBAAkB;wBAClB,UAAU;wBAHVF,cAAW;;;;oCAkBjBG,QAAK;kCACLA,QAAK;+BACLC,YAAS,SAAC,MAAM;;QAoHnB,2BAAC;KA7HD;;;;;;;ACvBA;QAeE,6BACU,YAAyB,EACzB,KAAqB,EACS,iBAAyB;YAFvD,iBAAY,GAAZ,YAAY,CAAa;YACzB,UAAK,GAAL,KAAK,CAAgB;YACS,sBAAiB,GAAjB,iBAAiB,CAAQ;SAC7D;;;;QAEJ,sCAAQ;;;YAAR;gBACE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC;gBACrE,IAAI,CAAC,OAAO;oBACV,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,gBAAgB,CAAC;aACxE;;;;QAED,oCAAM;;;YAAN;gBACE,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;aAC5B;;;;QAED,oCAAM;;;YAAN;gBACE,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC;aAC/C;;oBA3BFL,YAAS,SAAC;wBACT,QAAQ,EAAE,iBAAiB;wBAC3B,uTAA2C;;qBAE5C;;;;;wBARQC,cAAW;wBACXK,mBAAc;qDAelBV,SAAM,SAAC,oBAAoB;;;QAgBhC,0BAAC;KA5BD;;;;;;;ACNA;QAWE,0CAC0C,aAAa,EAC7C,IAAgB,EAAU,WAAwB;YADlB,kBAAa,GAAb,aAAa,CAAA;YAC7C,SAAI,GAAJ,IAAI,CAAY;YAAU,gBAAW,GAAX,WAAW,CAAa;SACvD;;;;;QAEE,sDAAW;;;;YAAlB,UAAmB,OAAO;gBACxB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE;oBACnC,QAAQ,EAAE,IAAI;iBACf,CAAC,CAAC;aACJ;;;;;;QAEO,6DAAkB;;;;;YAA1B,UAA2B,UAAgB;gBAA3C,iBAmBC;gBAlBC,IAAI,CAAC,UAAU,EAAE;oBACf,OAAO;iBACR;gBAED,IAAI,UAAU,YAAY,KAAK,EAAE;oBAC/B,UAAU,CAAC,OAAO;;;uBAAC,UAAA,GAAG;wBACpB,KAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;qBAC9B,EAAC,CAAC;iBACJ;;oBAEK,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;gBACpC,IAAI,CAAC,OAAO;;;mBAAC,UAAA,GAAG;oBACd,IAAI,OAAO,UAAU,CAAC,GAAG,CAAC,KAAK,QAAQ,EAAE;wBACvC,KAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;qBAC1C;yBAAM,IAAI,OAAO,UAAU,CAAC,GAAG,CAAC,KAAK,QAAQ,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;wBAC/E,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;qBACxB;iBACF,EAAC,CAAC;aACJ;;;;;;;QAEO,4DAAiB;;;;;;YAAzB,UAA0B,SAAiB,EAAE,WAAmB;gBAC9D,OAAO,IAAI,CAAC,IAAI;qBACb,IAAI,CAAM,IAAI,CAAC,aAAa,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;qBACrD,IAAI,CACHF,aAAG;;;eAAC,UAAC,EAAQ;wBAAN,cAAI;oBACT,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC;iBACxB,EAAC,CAAC,CAAC;aACT;;;;QAED,iEAAsB;;;YAAtB;;oBACQ,SAAS,GAAG,yBAAyB;;oBACrC,WAAW,GAAG,cAChB,SAAS,kJAQX;gBAEF,OAAO,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;aACvD;;;;;QAEM,sEAA2B;;;;YAAlC,UACE,OAAe;;oBAET,WAAW,GAAG,4EAEL,OAAO,kFAMpB;gBACF,OAAO,IAAI,CAAC,IAAI;qBACb,IAAI,CAAM,IAAI,CAAC,aAAa,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;qBACrD,IAAI,CACHA,aAAG;;;eAAC,UAAC,EAAQ;wBAAN,cAAI;oBACT,OAAO,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC;iBAC/C,EAAC,CACH,CAAC;aACL;;;;;QAED,2EAAgC;;;;YAAhC,UAAiC,UAAe;;oBAIxC,KAAK,GAAG,mEACiC,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,qDAGzE;gBAGN,OAAO,IAAI,CAAC,IAAI;qBACb,IAAI,CAAM,IAAI,CAAC,aAAa,EAAE,EAAE,KAAK,OAAA,EAAE,CAAC,CAAC;;;;;aAO7C;;;;;QAED,0DAAe;;;;YAAf,UAAgB,GAAG;gBAAnB,iBA+BC;;oBA9BK,MAAM,GAAG,EAAE;gBAEf,IAAI,CAAC,GAAG,EAAE;oBACR,OAAO,MAAM,CAAC;iBACf;gBAED,IAAI,GAAG,YAAY,KAAK,EAAE;oBACxB,MAAM,IAAI,IAAI,CAAC;oBACf,GAAG,CAAC,OAAO;;;uBAAC,UAAA,IAAI;wBACd,MAAM,IAAI,KAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;qBACtC,EAAC,CAAC;oBACH,MAAM,IAAI,IAAI,CAAC;iBAChB;qBAAM;oBACL,MAAM,IAAI,GAAG,CAAC;;wBACR,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;oBAC7B,IAAI,CAAC,OAAO;;;uBAAC,UAAC,GAAG;wBACf,IAAI,OAAO,GAAG,CAAC,GAAG,CAAC,KAAK,QAAQ,EAAE;4BAChC,MAAM,IAAI,GAAG,GAAG,GAAG,GAAG,KAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;yBACtD;6BAAM;4BACL,IAAI,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE;gCACnB,MAAM,IAAI,GAAG,GAAG,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;6BACxC;iCAAM;gCACL,MAAM,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;6BACtC;yBACF;qBACF,EAAC,CAAC;oBACH,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;oBAChD,MAAM,IAAI,IAAI,CAAC;iBAChB;gBACD,OAAO,MAAM,CAAC;aACf;;oBApIFC,aAAU;;;;;wDAGNC,SAAM,SAAC,sBAAsB;wBAXzBE,eAAU;wBAGVS,oBAAW;;;QA2IpB,uCAAC;KAtID;;;;;;;ACTA;QAsBE,4CACU,KAAqB,EACrB,eAAiD,EACjD,UAAsB;YAFtB,UAAK,GAAL,KAAK,CAAgB;YACrB,oBAAe,GAAf,eAAe,CAAkC;YACjD,eAAU,GAAV,UAAU,CAAY;YALhC,wBAAmB,GAAe,EAAE,CAAC;SAMhC;;;;QAEL,qDAAQ;;;YAAR;gBAAA,iBAQC;;oBAPO,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI;gBACzC,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC;gBACtC,IAAI,CAAC,mBAAmB,GAAG,QAAQ,CAAC,+BAA+B,CAAC;gBACpE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;gBAClC,IAAI,CAAC,eAAe,CAAC,2BAA2B,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS;;;mBAAC,UAAA,IAAI;oBACtF,KAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;iBACrB,EAAC,CAAC;aACJ;;;;;;QAEO,qDAAQ;;;;;YAAhB,UAAiB,IAAI;gBACnB,IAAI,IAAI,EAAE;;wBACF,uBAAqB,GAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,qBAAqB,CAAC;oBACvE,IAAI,CAAC,OAAO;;;uBAAC,UAAA,OAAO;wBAClB,uBAAqB,CAAC,GAAG,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;qBACxE,EAAC,CAAC;iBACJ;aAEF;;;;;QACO,uDAAU;;;;YAAlB;;oBACQ,qBAAqB,GAAG,IAAIC,eAAS,CAAC,EAC3C,CAAC;gBAEF,IAAI,CAAC,mBAAmB,CAAC,OAAO;;;;mBAAE,UAAC,EAAE,EAAE,CAAC;oBACtC,qBAAqB,CAAC,UAAU,CAAC,EAAE,CAAC,oBAAoB,EAAE,IAAIT,iBAAW,CAAC,KAAK,CAAC,CAAC,CAAC;iBACnF,EAAC,CAAC;gBAEH,OAAO,IAAIS,eAAS,CAAC;oBACnB,mBAAmB,EAAE,qBAAqB;iBAC3C,CAAC,CAAC;aACJ;;;;QAED,mDAAM;;;YAAN;gBAAA,iBAuBC;;oBAtBO,IAAI,GAAG;oBACX,OAAO,EAAE,EAAE;oBACX,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO;oBAChC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO;iBACpC;;oBAEK,sBAAsB,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,KAAK;;oBACvE,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC;gBAChD,IAAI,CAAC,OAAO;;;mBAAC,UAAA,GAAG;oBACd,IAAI,sBAAsB,CAAC,GAAG,CAAC,EAAE;wBAC/B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAC,sBAAsB,EAAE,GAAG,EAAC,CAAC,CAAC;qBAClD;iBACF,EAAC,CAAC;gBAEH,IAAI,CAAC,eAAe,CAAC,gCAAgC,CAAC,IAAI,CAAC,CAAC,SAAS;;;mBAAC,UAAA,QAAQ;oBAC5E,IAAI,QAAQ,CAAC,OAAO,EAAE;wBACpB,KAAI,CAAC,eAAe,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;qBACpD;yBAAM;wBACL,KAAI,CAAC,eAAe,CAAC,WAAW,CAAC,oBAAoB,CAAC,CAAC;wBACvD,KAAI,CAAC,UAAU,CAAC,wBAAwB,EAAE,CAAC;qBAC5C;iBACF,EAAC,CAAC;aACJ;;oBAtEFR,YAAS,SAAC;wBACT,QAAQ,EAAE,kCAAkC;wBAC5C,ujCAA4D;;qBAE7D;;;;;wBAPQM,mBAAc;wBATd,gCAAgC;wBAUhC,UAAU;;;QA0EnB,yCAAC;KAxED;;;;;;;;ACOA;QAOE,0BACU,IAAgB,EAChB,YAAyB,EACzB,UAAsB,EACU,mBAAmB,EACtB,oBAA4B;YAJzD,SAAI,GAAJ,IAAI,CAAY;YAChB,iBAAY,GAAZ,YAAY,CAAa;YACzB,eAAU,GAAV,UAAU,CAAY;YACU,wBAAmB,GAAnB,mBAAmB,CAAA;YACtB,yBAAoB,GAApB,oBAAoB,CAAQ;SAC/D;;;;QAEG,wCAAa;;;YAApB;gBAAA,iBAuDC;gBAtDC,IAAId,YAAS,EAAE;oBACb,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;iBACnD;gBACD,IAAI,CAACA,YAAS,IAAI,IAAI,CAAC,UAAU,EAAE;oBACjC,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE;wBAC3B,IAAIA,YAAS,EAAE;4BACb,OAAO,CAAC,GAAG,CACT,yDAAyD,EACzD,IAAI,CAAC,UAAU,CAChB,CAAC;yBACH;wBACD,OAAOiB,OAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;qBAC5B;yBAAM,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE;wBACnC,IAAIjB,YAAS,EAAE;4BACb,OAAO,CAAC,GAAG,CACT,mDAAmD,EACnD,IAAI,CAAC,UAAU,CAChB,CAAC;yBACH;wBACD,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;qBAChD;iBACF;gBACD,OAAOkB,SAAI,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC,CAAC,IAAI,CAC/CC,mBAAS;;;mBAAC,UAAC,YAAY;oBACrB,IAAI,YAAY,IAAI,YAAY,CAAC,OAAO,EAAE;wBACxC,IAAInB,YAAS,EAAE;4BACb,OAAO,CAAC,GAAG,CACT,0CAA0C,EAC1C,YAAY,CACb,CAAC;yBACH;wBACD,KAAI,CAAC,UAAU,GAAG,YAAY,CAAC;wBAC/B,OAAOiB,OAAE,CAAC,YAAY,CAAC,CAAC;qBACzB;yBAAM,IAAI,YAAY,IAAI,YAAY,CAAC,QAAQ,EAAE;wBAChD,IAAIjB,YAAS,EAAE;4BACb,OAAO,CAAC,GAAG,CACT,mDAAmD,EACnD,KAAI,CAAC,UAAU,CAChB,CAAC;yBACH;wBACD,OAAO,KAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;qBAC7C;yBAAM;;4BACC,QAAQ,GAAG,KAAI,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC,QAAQ;;4BAClD,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;wBAC9D,IAAIA,YAAS,EAAE;4BACb,OAAO,CAAC,GAAG,CACT,sDAAsD,EACtD,SAAS,CACV,CAAC;yBACH;wBACD,OAAO,KAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;qBACjC;iBACF,EAAC,CACH,CAAC;aACH;;;;;;;QAEO,qCAAU;;;;;;YAAlB,UAAmB,GAAW,EAAE,SAAiB;gBAC/C,OAAO,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,GAAG,SAAS,CAAC;aACrE;;;;;;;QACO,qCAAU;;;;;;YAAlB,UAAmB,GAAG,EAAE,GAAG;gBACzB,OAAO,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,KAAK,GAAG,CAAC;aACjE;;;;;QAEM,yCAAc;;;;YAArB,UAAsB,UAAsB;gBAC1C,IAAI,UAAU,CAAC,KAAK,CAAC,SAAS;;;mBAAC,UAAC,IAAI,IAAK,OAAA,IAAI,CAAC,MAAM,KAAK,QAAQ,GAAA,EAAC,GAAG,CAAC,CAAC,EAAE;oBACvE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC,EAAE;wBAC7D,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;qBACxE;iBACF;qBAAM,IACL,UAAU,CAAC,KAAK,CAAC,SAAS;;;mBACxB,UAAC,IAAI,IAAK,OAAA,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,KAAK,GAAA,EAChD,GAAG,CAAC,CAAC,EACN;oBACA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE;wBACnD,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;qBACjE;iBACF;aACF;;;;;QAEY,8CAAmB;;;;YAAhC,UAAiC,gBAAkC;;;;;;qCAC7D,gBAAgB;oCAAhB,wBAAgB;;gCAED,qBAAM,IAAI,CAAC,wBAAwB,CAClD,IAAI,CAAC,UAAU,CAAC,OAAO,EACvB,gBAAgB,CAAC,UAAU,CAC5B,CAAC,SAAS,EAAE,EAAA;;gCAHP,QAAQ,GAAG,SAGJ;gCACb,IAAI,QAAQ,EAAE;oCACZ,gBAAgB,CAAC,yBAAyB,GAAG,QAAQ,CAAC;iCACvD;qCAAM;oCACL,gBAAgB,CAAC,yBAAyB,GAAG,UAAU,CAAC;iCACzD;;;gCAGH,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;gCACtD,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;;;;;aAC1C;;;;QAEM,iCAAM;;;YAAb;gBACE,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;gBAC3B,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;aAC5B;;;;;;QAEY,wCAAa;;;;;YAA1B,UACE,WAAmB,EACnB,KAA6B;;;;;;;qCAEzB,CAAC,IAAI,CAAC,UAAU;oCAAhB,wBAAgB;gCAClB,KAAA,IAAI,CAAA;gCAAc,qBAAM,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,EAAA;;gCAAvD,GAAK,UAAU,GAAG,SAAqC,CAAC;;;gCAEpD,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW;gCACzC,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI;qCAE9B,CAAC,IAAI,CAAC,gBAAgB;oCAAtB,wBAAsB;gCACxB,KAAA,IAAI,CAAA;gCAAoB,qBAAM,IAAI,CAAC,UAAU,CAAC,mBAAmB,EAAE,EAAA;;gCAAnE,GAAK,gBAAgB,GAAG,SAA2C,CAAC;;;qCAGlE,IAAI,CAAC,gBAAgB;oCAArB,wBAAqB;;gCAEN,qBAAM,IAAI,CAAC,wBAAwB,CAClD,IAAI,CAAC,UAAU,CAAC,OAAO,EACvB,IAAI,CAAC,gBAAgB,CAAC,UAAU,CACjC,CAAC,SAAS,EAAE,EAAA;;gCAHP,QAAQ,GAAG,SAGJ;gCACb,IAAI,QAAQ,EAAE;oCACZ,IAAI,CAAC,gBAAgB,CAAC,yBAAyB,GAAG,QAAQ,CAAC;iCAC5D;qCAAM;oCACL,IAAI,CAAC,gBAAgB,CAAC,yBAAyB,GAAG,UAAU,CAAC;iCAC9D;gCACD,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;;;gCAIvD,yBAAyB,GAAG,IAAI,CAAC,gBAAgB;qCACpD,yBAAyB;gCAEtB,QAAQ,GAAG,QAAQ,CAAC,gBAAgB,CAAC,iBAAiB,CAAC;gCACvD,OAAO,GAAG,oBAAoB;gCAEpC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO;;;mCAAC,UAAC,OAAO;;wCAC/B,IAAI;;wCACJ,OAAO;oCACX,OAAO,CAAC,SAAS,CAAC,OAAO;;;uCAAC,UAAC,CAAC;;4CACpB,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC;;wCAEhC,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;;gDAC3B,QAAM,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI;;gDACrD,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC;;;;;gDAIlB,UAAU,GAAG,WAAW,CAAC,IAAI;;;+CAAC,UAAU,CAAC;gDAC7C,QACE,CAAC,CAAC,WAAW,KAAK,WAAW;oDAC7B,CAAC,CAAC,QAAQ,KAAK,QAAQ;oDACvB,CAAC,CAAC,MAAM,KAAK,QAAM;oDACnB,CAAC,CAAC,yBAAyB,KAAK,yBAAyB,EACzD;6CACH,EAAC;;;;;;;;;;4CAUF,OAAO,CAAC,GAAG,CAAC,4BAA4B,EAAE,UAAU,CAAC,CAAC;4CAEtD,IAAI,UAAU,EAAE;gDACd,IAAI,KAAK,KAAK,MAAM,EAAE;oDACpB,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE;wDACxB,IAAI,IAAI,KAAK,KAAK,EAAE;4DAClB,IAAI,GAAG,IAAI,CAAC;yDACb;qDACF;yDAAM;wDACL,IAAI,GAAG,KAAK,CAAC;qDACd;iDACF;qDAAM,IACL,CAAC,KAAK,KAAK,QAAQ,IAAI,CAAC,UAAU,CAAC,UAAU;qDAC5C,KAAK,KAAK,QAAQ,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;qDAC7C,KAAK,KAAK,QAAQ,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;qDAC7C,KAAK,KAAK,QAAQ,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;qDAC7C,KAAK,KAAK,OAAO,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;qDAC3C,KAAK,KAAK,SAAS,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;qDAC/C,KAAK,KAAK,QAAQ,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAC9C;oDACA,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE;wDACjC,IAAI,IAAI,KAAK,KAAK,EAAE;4DAClB,IAAI,GAAG,IAAI,CAAC;yDACb;qDACF;yDAAM;wDACL,IAAI,OAAO,KAAK,KAAK,EAAE;4DACrB,OAAO,GAAG,IAAI,CAAC;yDAChB;qDACF;iDACF;qDAAM;oDACL,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE;wDACjC,IAAI,GAAG,KAAK,CAAC;qDACd;yDAAM;wDACL,OAAO,GAAG,KAAK,CAAC;qDACjB;iDACF;6CACF;iDAAM;gDACL,IAAI,KAAK,KAAK,MAAM,EAAE;oDACpB,IAAI,IAAI,KAAK,KAAK,EAAE;wDAClB,IAAI,GAAG,IAAI,CAAC;qDACb;iDACF;qDAAM,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE;oDACxC,IAAI,IAAI,KAAK,KAAK,EAAE;wDAClB,IAAI,GAAG,IAAI,CAAC;qDACb;iDACF;qDAAM,IAAI,OAAO,KAAK,KAAK,EAAE;oDAC5B,OAAO,GAAG,IAAI,CAAC;iDAChB;6CACF;yCACF;qCACF,EAAC,CAAC;oCACH,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;oCAC5B,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;oCAClC,IAAI,IAAI,KAAK,IAAI,EAAE;wCACjB,KAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;qCAC/B;yCAAM,IAAI,OAAO,KAAK,IAAI,EAAE;wCAC3B,KAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;qCAClC;iCACF,EAAC,CAAC;;;;;aACJ;;;;;QAEM,0CAAe;;;;YAAtB,UAAuB,mBAA6C;;oBAC5D,OAAO,GAAG,mBAAmB,CAAC,KAAK,CAAC,IAAI;gBAC9C,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;gBACrC,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;;oBAE3C,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW;;oBACzC,QAAQ,GAAG,mBAAmB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI;;oBAChD,MAAM,GAAG,mBAAmB,CAAC,MAAM;sBACrC,mBAAmB,CAAC,MAAM,CAAC,WAAW,EAAE;sBACxC,IAAI;;oBACF,UAAU,GAAG,mBAAmB,CAAC,UAAU;;oBAC3C,yBAAyB,GAAG,CAAC,IAAI,CAAC,gBAAgB;qBACrD,yBAAyB;sBACxB,KAAK;sBACL,IAAI,CAAC,gBAAgB,CAAC,yBAAyB;;oBAE7C,UAAU,GAAG,WAAW,CAAC,IAAI;;;mBAAC,UAAC,CAAC;oBACpC,QACO,CAAC,CAAC,WAAW,KAAK,mBAAmB,CAAC,WAAW;2BACjD,CAAC,CAAC,QAAQ,KAAK,QAAQ;4BACtB,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC;4BAC/B,CAAC,CAAC,yBAAyB,KAAK,KAAK;4BAC3C,CAAC,CAAC,yBAAyB,KAAK,yBAAyB,CAAC,EAC1D;iBACH,EAAC;gBAEF,IAAI,UAAU,EAAE;oBACd,IAAI,UAAU,KAAK,MAAM,EAAE;wBACzB,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE;4BACxB,OAAO,KAAK,CAAC;yBACd;6BAAM;4BACL,OAAO,IAAI,CAAC;yBACb;qBACF;yBAAM,IACL,CAAC,UAAU,KAAK,QAAQ,IAAI,CAAC,UAAU,CAAC,UAAU;yBACjD,UAAU,KAAK,QAAQ,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;yBAClD,UAAU,KAAK,QAAQ,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;yBAClD,UAAU,KAAK,QAAQ,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;yBAClD,UAAU,KAAK,OAAO,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;yBAChD,UAAU,KAAK,SAAS,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;yBACpD,UAAU,KAAK,QAAQ,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EACnD;wBACA,OAAO,KAAK,CAAC;qBACd;yBAAM;wBACL,OAAO,IAAI,CAAC;qBACb;iBACF;qBAAM;oBACL,IAAI,UAAU,KAAK,MAAM,EAAE;wBACzB,OAAO,KAAK,CAAC;qBACd;iBACF;gBACD,OAAO,KAAK,CAAC;aACd;;;;;;;QAEM,gDAAqB;;;;;;YAA5B,UACE,UAAsB,EACtB,OAAe,EACf,WAAkB;gBAAlB,4BAAA;oBAAA,kBAAkB;;;;;gBAKlB,OAAO,IAAI,CAAC,uBAAuB,CACjC,UAAU,CAAC,WAAW,EACtB,OAAO,EACP,WAAW,CACZ,CAAC;aACH;;;;;;;;;;;;;;;;;QASM,wCAAa;;;;;;;;;;;YAApB,UAAqB,KAAa;gBAChC,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC7B,OAAO,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;iBAChD;gBACD,OAAO,KAAK,CAAC;aACd;;;;;;;;QAEO,kDAAuB;;;;;;;YAA/B,UACE,WAAyB,EACzB,OAAe,EACf,WAAmB;gBAEnB,IAAI,WAAW,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;oBACzC,IAAI,WAAW,EAAE;wBACf,QACE,WAAW,CAAC,SAAS;;;2BACnB,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,QAAQ,KAAK,OAAO,IAAI,CAAC,CAAC,WAAW,KAAK,WAAW,GAAA,EAC/D,GAAG,CAAC,CAAC,EACN;qBACH;yBAAM;wBACL,OAAO,WAAW,CAAC,SAAS;;;2BAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,QAAQ,KAAK,OAAO,GAAA,EAAC,GAAG,CAAC,CAAC,CAAC;qBAClE;iBACF;gBAED,OAAO,KAAK,CAAC;aACd;;;;;;QAEO,yCAAc;;;;;YAAtB,UAAuB,MAAM;gBAC3B,QAAQ,MAAM;oBACZ,KAAK,OAAO,CAAC;oBACb,KAAK,QAAQ,CAAC;oBACd,KAAK,OAAO,CAAC;oBACb,KAAK,OAAO,CAAC;oBACb,KAAK,QAAQ,CAAC;oBACd,KAAK,QAAQ,CAAC;oBACd,KAAK,QAAQ,CAAC;oBACd,KAAK,QAAQ;wBACX,OAAO,IAAI,CAAC;oBACd;wBACE,OAAO,KAAK,CAAC;iBAChB;aACF;;;;;;QAEO,uCAAY;;;;;YAApB,UAAqB,IAAU;gBAC7B,QAAQ,IAAI,CAAC,MAAM;oBACjB,KAAK,KAAK,CAAC;oBACX,KAAK,KAAK,CAAC;oBACX,KAAK,MAAM;wBACT,OAAO,IAAI,CAAC;oBACd;wBACE,OAAO,KAAK,CAAC;iBAChB;aACF;;;;;;QAEO,6CAAkB;;;;;YAA1B,UAA2B,OAAgB;;gBAEzC,QAAQ,OAAO,CAAC,QAAQ;oBACtB,KAAK,GAAG;wBACN,OAAO,CAAC,YAAY,CAClB,OAAO,EACP,2CAA2C,CAC5C,CAAC;wBACF,OAAO,CAAC,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;wBACvC,MAAM;oBACR;wBACE,OAAO,CAAC,YAAY,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;wBAC7C,MAAM;iBACT;aACF;;;;;;QAEO,0CAAe;;;;;YAAvB,UAAwB,OAAgB;;gBAEtC,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;aACjD;;;;;;QAEO,mCAAQ;;;;;YAAhB,UAAiB,QAAgB;gBAAjC,iBAgEC;;oBA/DO,WAAW,GAAG,4EAE+B,QAAQ,qiCAoCjD;gBAEV,OAAO,IAAI,CAAC,IAAI;qBACb,IAAI,CAAM,IAAI,CAAC,mBAAmB,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;qBAC3D,IAAI,CACHoB,cAAI,CAAC,CAAC,CAAC,EACPlB,aAAG;;;eAAC,UAAC,MAAM;oBACT,IAAIF,YAAS,EAAE;wBACb,OAAO,CAAC,GAAG,CAAC,gCAAgC,EAAE,MAAM,CAAC,CAAC;qBACvD;oBACD,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;;4BACrC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;wBAC5C,KAAI,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;wBACpC,KAAI,CAAC,UAAU,GAAG,IAAI,CAAC;wBACvB,OAAO,IAAI,CAAC;qBACb;yBAAM;wBACL,OAAO,IAAI,CAAC;;qBAEb;iBACF,EAAC,EACFqB,oBAAU;;;mBAAC,UAAC,KAAK;oBACf,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAC;oBAC9B,OAAO,IAAI,CAAC;iBACb,EAAC,CACH,CAAC;aACL;;;;;;;QAEO,mDAAwB;;;;;;YAAhC,UACE,OAAe,EACf,UAAkB;;oBAEZ,WAAW,GAAG,yFAE6C,OAAO,sBAAiB,UAAU,kIAKzF;gBAEV,OAAO,IAAI,CAAC,IAAI;qBACb,IAAI,CAAM,IAAI,CAAC,mBAAmB,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;qBAC3D,IAAI,CACHD,cAAI,CAAC,CAAC,CAAC,EACPlB,aAAG;;;eAAC,UAAC,MAAM;oBACT,IAAIF,YAAS,EAAE;wBACb,OAAO,CAAC,GAAG,CACT,gDAAgD,EAChD,MAAM,CACP,CAAC;qBACH;oBACD,IAAI,MAAM,CAAC,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;;4BACrD,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,CAAC,CAAC;wBAC5D,OAAO,IAAI,CAAC,yBAAyB,CAAC;qBACvC;yBAAM;wBACL,OAAO,IAAI,CAAC;;qBAEb;iBACF,EAAC,EACFqB,oBAAU;;;mBAAC,UAAC,KAAK;oBACf,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAC;oBAC9B,OAAO,IAAI,CAAC;iBACb,EAAC,CACH,CAAC;aACL;;;;;;;QAEO,6CAAkB;;;;;;YAA1B,UACE,WAAmB,EACnB,QAAgB;;oBAEV,WAAW,GAAG,uHAE6C,WAAW,oBAAe,QAAQ,sFAI3F;gBAER,OAAO,IAAI,CAAC,IAAI;qBACb,IAAI,CAAM,IAAI,CAAC,mBAAmB,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;qBAC3D,IAAI,CACHD,cAAI,CAAC,CAAC,CAAC,EACPlB,aAAG;;;eAAC,UAAC,MAAM;oBACT,IAAIF,YAAS,EAAE;wBACb,OAAO,CAAC,GAAG,CACT,iDAAiD,EACjD,MAAM,CACP,CAAC;qBACH;oBACD,IAAI,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,UAAU,GAAG,CAAC,EAAE;wBACxD,OAAO,IAAI,CAAC;qBACb;yBAAM;wBACL,OAAO,KAAK,CAAC;;qBAEd;iBACF,EAAC,EACFqB,oBAAU;;;mBAAC,UAAC,KAAU;oBACpB,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAC;oBAC9B,OAAOC,eAAU,CAAC,KAAK,CAAC,CAAC;iBAC1B,EAAC,CACH,CAAC;aACL;;oBAthBFnB,aAAU,SAAC;wBACV,UAAU,EAAE,MAAM;qBACnB;;;;;wBArBQG,eAAU;wBAGVG,cAAW;wBAWX,UAAU;wDAgBdL,SAAM,SAAC,sBAAsB;qDAC7BA,SAAM,SAAC,mBAAmB;;;;+BAhC/B;KAoBA;;;;;;;ACpBA;QAWE,qCACU,UAAsB,EACtB,IAAsB;YADtB,eAAU,GAAV,UAAU,CAAY;YACtB,SAAI,GAAJ,IAAI,CAAkB;SAC5B;;;;QAEG,8CAAQ;;;YAAf;gBACE,IAAI,CAAC,WAAW,EAAE,CAAC;aACpB;;;;QAED,iDAAW;;;YAAX;gBACE,IACE,CAAC,IAAI,CAAC,mBAAmB;oBACzB,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK;oBAC/B,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,IAAI;oBACpC,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU;oBAC/C,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,EACrD;oBACA,OAAO;iBACR;;;;;gBAMD,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,CACrE,IAAI,CAAC,mBAAmB,CACzB;sBACG,OAAO;sBACP,MAAM,CAAC;aACZ;;oBAlCFmB,YAAS,SAAC;wBACT,QAAQ,EAAE,iBAAiB;qBAC5B;;;;;wBARkCC,aAAU;wBACpC,gBAAgB;;;;0CAStBZ,QAAK;;QA+BR,kCAAC;KAnCD;;;;;;;;QCWE,iCAAmB,YAA8B;YAA9B,iBAAY,GAAZ,YAAY,CAAkB;SAAK;;;;;QAEtD,6CAAW;;;;YAAX,UAAY,KAA6B;gBAAzC,iBAuBC;gBAtBC,OAAO,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,CAAC,IAAI,CAC3CQ,cAAI,CAAC,CAAC,CAAC,EACPK,kBAAQ;;;mBAAC,UAAC,UAAU;oBAClB,IAAI,CAAC,UAAU,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;wBAC/C,OAAOR,OAAE,CAAC,KAAK,CAAC,CAAC;qBAClB;;;;;wBAIK,QAAQ,GAAG,KAAK,CAAC,WAAW,CAAC,IAAI;0BACnC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;0BACpC,EAAE;;wBACA,cAAc,GAAG,KAAI,CAAC,YAAY,CAAC,qBAAqB,CAC5D,UAAU,EACV,QAAQ,CACT;oBACD,OAAOA,OAAE,CAAC,cAAc,CAAC,CAAC;iBAC3B,EAAC,EACFI,oBAAU;;;mBAAC,UAAC,KAAK;oBACf,OAAOJ,OAAE,CAAC,KAAK,CAAC,CAAC;iBAClB,EAAC,CACH,CAAC;aACH;;oBA7BFd,aAAU;;;;;wBAFF,gBAAgB;;;QAgCzB,8BAAC;KA9BD;;;;;;;ACbA;QA0BA;SAkCkC;;oBAlCjCuB,WAAQ,SAAC;wBACR,YAAY,EAAE;4BACZ,4BAA4B;4BAC5B,oBAAoB;4BACpB,mBAAmB;4BACnB,kCAAkC;4BAClC,2BAA2B;yBAC5B;wBACD,OAAO,EAAE;4BACPC,eAAY;4BACZC,qBAAgB;4BAChBC,wBAAe;4BACfC,sBAAa;4BACbC,sBAAa;4BACbC,wBAAe;4BACfC,sBAAa;4BACbC,0BAAiB;4BACjBC,yBAAmB;yBACpB;wBACD,OAAO,EAAE;4BACP,4BAA4B;4BAC5B,oBAAoB;4BACpB,mBAAmB;4BACnB,kCAAkC;4BAClC,2BAA2B;yBAC5B;wBACD,SAAS,EAAE;4BACT,kBAAkB;4BAClB,0BAA0B;4BAC1B,gCAAgC;4BAChC,uBAAuB;4BACvBpB,oBAAW;yBACZ;qBACF;;QACgC,yBAAC;KAlClC;;;;;;;AC1BA;QAgBE,mCACU,YAA8B,EAE9B,MAAc;YAFd,iBAAY,GAAZ,YAAY,CAAkB;YAE9B,WAAM,GAAN,MAAM,CAAQ;SACpB;;;;;;QAEJ,2CAAO;;;;;YAAP,UACE,KAA6B,EAC7B,KAA0B;gBAF5B,iBAuCC;gBAnCC,OAAO,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,CAAC,IAAI,CAC3CK,cAAI,CAAC,CAAC,CAAC,EACPK,kBAAQ;;;mBAAC,UAAC,UAAU;oBAClB,IAAIzB,YAAS,EAAE;wBACb,OAAO,CAAC,GAAG,CAAC,6BAA6B,EAAE,UAAU,CAAC,CAAC;qBACxD;oBACD,IAAI,UAAU,EAAE;wBACd,OAAOiB,OAAE,CAAC,UAAU,CAAC,CAAC;qBACvB;yBAAM;wBACL,OAAOK,eAAU,CAAC,iCAAiC,CAAC,CAAC;;;;;;;;;;;;;qBAatD;iBACF,EAAC,EACFD,oBAAU;;;mBAAC,UAAC,KAAK;oBACf,OAAO,CAAC,GAAG,CAAC,6BAA6B,GAAG,KAAK,CAAC,CAAC;oBACnD,KAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,cAAc,CAAC,EAAE;wBACrC,WAAW,EAAE;4BACX,IAAI,EAAE,OAAO;4BACb,OAAO,EAAE,wBAAwB,GAAG,KAAK;yBAC1C;qBACF,CAAC,CAAC;oBACH,OAAOe,UAAK,CAAC;iBACd,EAAC,CACH,CAAC;aACH;;oBAjDFjC,aAAU,SAAC;wBACV,UAAU,EAAE,MAAM;qBACnB;;;;;wBALQ,gBAAgB;wBAJvBO,WAAM;;;;wCALR;KAYA;;;;;;;ACZA;QAyBE,yCACU,OAAmB,EACnB,IAAY,EACZ,MAAc;YAFd,YAAO,GAAP,OAAO,CAAY;YACnB,SAAI,GAAJ,IAAI,CAAQ;YACZ,WAAM,GAAN,MAAM,CAAQ;SACpB;;;;;;QAEJ,iDAAO;;;;;YAAP,UACE,KAA6B,EAC7B,KAA0B;gBAF5B,iBAwCC;gBApCC,OAAOQ,SAAI,CAAC,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAAC,IAAI,CAClDO,kBAAQ;;;mBAAC,UAAC,gBAAgB;oBACxB,IAAIzB,YAAS,EAAE;wBACb,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;qBAC/B;oBACD,IAAI,CAAC,gBAAgB,EAAE;wBACrB,OAAOsB,eAAU,CAAC,uBAAuB,CAAC,CAAC;qBAC5C;oBACD,OAAOL,OAAE,CAAC,gBAAgB,CAAC,CAAC;iBAC7B,EAAC,EACFoB,mBAAS;;;mBAAC,UAAC,MAAM;oBACf,OAAA,MAAM,CAAC,IAAI;;oBAETC,eAAK,CAAC,IAAI,CAAC,EACXlB,cAAI,CAAC,CAAC,CAAC;;;uBACP,UAAC,CAAC;wBACA,OAAAmB,WAAM,CACJ,CAAC,EACDjB,eAAU,CAAC,8CAA8C,CAAC,CAC3D;qBAAA,EACJ;iBAAA,EACF,EACDD,oBAAU;;;mBAAC,UAAC,KAAK;;;;;;;;oBAQf,KAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,cAAc,CAAC,EAAE;wBACrC,WAAW,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE;qBAClD,CAAC,CAAC;oBACH,OAAOe,UAAK,CAAC;iBACd,EAAC,CACH,CAAC;aACH;;oBAnDFjC,aAAU,SAAC;wBACV,UAAU,EAAE,MAAM;qBACnB;;;;;wBAJQ,UAAU;wBAlBEqC,SAAM;wBAKzB9B,WAAM;;;;8CALR;KAoBA;;;;;;;ACpBA;QAUI,kDAAoB,eAAiD;YAAjD,oBAAe,GAAf,eAAe,CAAkC;SAAI;;;;QACzE,0DAAO;;;YAAP;gBACE,OAAO,IAAI,CAAC,eAAe,CAAC,sBAAsB,EAAE;qBACnD,IAAI,CACHR,aAAG;;;eAAC,UAAC,EAAQ;wBAAN,cAAI;oBACT,OAAO,IAAI,CAAC;iBACb,EAAC,CACH,CAAC;aACH;;oBAZJC,aAAU,SAAC;wBACV,UAAU,EAAE,MAAM;qBACnB;;;;;wBANQ,gCAAgC;;;;uDAFzC;KAMA;;;;;;;;ACGA,QAAY,UAAU;QACpB,IAAI,QAAS;QACb,MAAM,UAAW;QACjB,MAAM,UAAW;QACjB,MAAM,UAAW;QACjB,OAAO,WAAY;QACnB,MAAM,UAAW;QACjB,MAAM,UAAW;QACjB,KAAK,SAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|