@softheon/armature 8.16.0 → 8.17.0

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.
@@ -1 +1 @@
1
- {"version":3,"file":"softheon-armature.umd.js","sources":["../../../../node_modules/tslib/tslib.es6.js","ng://@softheon/armature/lib/core/client-generated/variables.ts","ng://@softheon/armature/lib/core/client-generated/configuration.ts","ng://@softheon/armature/lib/core/client-generated/api/session.service.ts","ng://@softheon/armature/lib/shared/models/constants.ts","ng://@softheon/armature/lib/shared/models/http-verbs.ts","ng://@softheon/armature/lib/shared/models/session-config.ts","ng://@softheon/armature/lib/shared/models/data-store-config.ts","ng://@softheon/armature/lib/shared/models/user-entity-service-config.ts","ng://@softheon/armature/lib/shared/models/route-path.ts","ng://@softheon/armature/lib/shared/models/styles.ts","ng://@softheon/armature/lib/core/services/session.service.ts","ng://@softheon/armature/lib/footer/models/footer-config.ts","ng://@softheon/armature/lib/footer/components/footer/footer.component.ts","ng://@softheon/armature/lib/footer/components/site-map/site-map.component.ts","ng://@softheon/armature/lib/footer/footer.module.ts","ng://@softheon/armature/lib/forms/models/enums/states.ts","ng://@softheon/armature/lib/forms/components/sof-address/sof-address.component.ts","ng://@softheon/armature/lib/forms/directives/alphanumeric/alphanumeric.directive.ts","ng://@softheon/armature/lib/forms/directives/letters-only/letters-only.directive.ts","ng://@softheon/armature/lib/forms/directives/numbers-only/numbers-only.directive.ts","ng://@softheon/armature/lib/forms/forms.module.ts","ng://@softheon/armature/lib/oauth/models/constants.ts","ng://@softheon/armature/lib/rbac/models/access-token-claims.ts","ng://@softheon/armature/lib/rbac/models/decoded-access-token.ts","ng://@softheon/armature/lib/oauth/services/hybrid-saml-oauth.service.ts","ng://@softheon/armature/lib/oauth/models/generated/accountManagementAssertionModel.ts","ng://@softheon/armature/lib/oauth/models/generated/accountManagementResponseModel.ts","ng://@softheon/armature/lib/oauth/models/generated/coverageDetail.ts","ng://@softheon/armature/lib/oauth/models/generated/finance.ts","ng://@softheon/armature/lib/oauth/models/generated/iSsoResponseModel.ts","ng://@softheon/armature/lib/oauth/models/generated/accountManagementRefreshRequestModel.ts","ng://@softheon/armature/lib/oauth/models/generated/iSsoResponseModelAccountManagementAssertionModel.ts","ng://@softheon/armature/lib/oauth/models/generated/person.ts","ng://@softheon/armature/lib/oauth/models/generated/policy.ts","ng://@softheon/armature/lib/oauth/models/generated/refreshResponseModel.ts","ng://@softheon/armature/lib/oauth/oauth.module.ts","ng://@softheon/armature/lib/header/models/header-auth.settings.ts","ng://@softheon/armature/lib/header/components/header/header.component.ts","ng://@softheon/armature/lib/header/components/mobile-header-menu/mobile-header-menu.component.ts","ng://@softheon/armature/lib/header/header.module.ts","ng://@softheon/armature/lib/navigation/components/navigation/navigation.component.ts","ng://@softheon/armature/lib/navigation/navigation.module.ts","ng://@softheon/armature/lib/core/services/user-entity.service.ts","ng://@softheon/armature/lib/theming/directives/css-override.directive.ts","ng://@softheon/armature/lib/theming/services/theme.service.ts","ng://@softheon/armature/lib/theming/theme.module.ts","ng://@softheon/armature/lib/armature.module.ts","ng://@softheon/armature/lib/saml/models/redirect-saml-request.ts","ng://@softheon/armature/lib/saml/services/send-off/abstract-saml.service.ts","ng://@softheon/armature/lib/saml/components/redirect-saml/redirect-saml.component.ts","ng://@softheon/armature/lib/saml/models/i-saml-request.ts","ng://@softheon/armature/lib/saml/models/i-saml-response.ts","ng://@softheon/armature/lib/saml/models/sso-gateway-model.ts","ng://@softheon/armature/lib/saml/services/entry/abstract-saml-entry.service.ts","ng://@softheon/armature/lib/saml/services/entry/sso-gateway-entry.service.ts","ng://@softheon/armature/lib/saml/services/send-off/saml.service.ts","ng://@softheon/armature/lib/saml/saml.module.ts","ng://@softheon/armature/lib/navigation/models/navigation.ts","ng://@softheon/armature/lib/navigation/models/nav.settings.ts","ng://@softheon/armature/lib/navigation/models/nav-theme.settings.ts","ng://@softheon/armature/lib/header/models/header.settings.ts","ng://@softheon/armature/lib/header/models/header-theme.settings.ts","ng://@softheon/armature/lib/header/models/mobile-header-nav.settings.ts","ng://@softheon/armature/lib/rbac/models/constants.ts","ng://@softheon/armature/lib/rbac/models/rbac-config.ts","ng://@softheon/armature/lib/rbac/services/role-nav.service.ts","ng://@softheon/armature/lib/rbac/services/oauth2-role.service.ts","ng://@softheon/armature/lib/rbac/services/ar-role-nav.service.ts","ng://@softheon/armature/lib/rbac/directives/rbac-action.directive.ts","ng://@softheon/armature/lib/rbac/rbac.module.ts","ng://@softheon/armature/lib/rbac/models/role-access.ts","ng://@softheon/armature/lib/distributed-cache/client-generated/variables.ts","ng://@softheon/armature/lib/distributed-cache/client-generated/configuration.ts","ng://@softheon/armature/lib/distributed-cache/client-generated/api/cache.service.ts","ng://@softheon/armature/lib/distributed-cache/models/constants.ts","ng://@softheon/armature/lib/distributed-cache/client-generated/api/api.ts","ng://@softheon/armature/lib/distributed-cache/services/server-cache.service.ts","ng://@softheon/armature/lib/distributed-cache/distributed-cache.module.ts","ng://@softheon/armature/lib/distributed-cache/client-generated/model/cacheExpirationType.ts","ng://@softheon/armature/lib/distributed-cache/client-generated/model/createCacheEntryRequestModel.ts","ng://@softheon/armature/lib/distributed-cache/client-generated/model/retrieveCacheEntryResponseModel.ts","ng://@softheon/armature/lib/distributed-cache/client-generated/model/updateCacheEntryRequestModel.ts","ng://@softheon/armature/lib/distributed-cache/models/policy-person.ts","ng://@softheon/armature/lib/rum/services/rum.service.ts","ng://@softheon/armature/lib/rum/models/arm-error.ts","ng://@softheon/armature/lib/rum/services/shared-error.service.ts","ng://@softheon/armature/lib/rum/rum.module.ts","ng://@softheon/armature/lib/rum/models/rum-config.ts","ng://@softheon/armature/lib/rum/services/rum-error-handler.service.ts","ng://@softheon/armature/lib/rum/services/softheon-error-handler.service.ts","ng://@softheon/armature/lib/forms/models/address.ts","ng://@softheon/armature/lib/forms/models/county.ts","ng://@softheon/armature/lib/error/models/error-common-config.ts","ng://@softheon/armature/lib/error/components/error-common/error-common.component.ts","ng://@softheon/armature/lib/error/error.module.ts","ng://@softheon/armature/lib/faq/models/faq-config.ts","ng://@softheon/armature/lib/faq/components/faq/faq.component.ts","ng://@softheon/armature/lib/faq/faq.module.ts","ng://@softheon/armature/lib/faq/models/faq.ts","ng://@softheon/armature/lib/footer/models/site-map-models.ts","ng://@softheon/armature/lib/footer/models/enum/site-map-direction.ts","ng://@softheon/armature/lib/core/client-generated/model/brandingModel.ts","ng://@softheon/armature/lib/core/client-generated/model/errorModel.ts","ng://@softheon/armature/lib/core/client-generated/model/oAuthModel.ts","ng://@softheon/armature/lib/core/client-generated/model/sessionGetResponseModel.ts","ng://@softheon/armature/lib/core/client-generated/model/sessionPostRequestModel.ts","ng://@softheon/armature/lib/core/client-generated/model/sessionPostResponseModel.ts","ng://@softheon/armature/lib/core/client-generated/model/sessionPutRequestModel.ts","ng://@softheon/armature/lib/core/client-generated/model/sessionPutResponseModel.ts","ng://@softheon/armature/lib/core/client-generated/model/sessionResponseModel.ts","ng://@softheon/armature/lib/core/client-generated/model/themePaletteColorsModel.ts","ng://@softheon/armature/lib/core/client-generated/model/themePaletteModel.ts","ng://@softheon/armature/lib/core/client-generated/model/trackingModel.ts","ng://@softheon/armature/lib/core/client-generated/model/applicationUserModel.ts","ng://@softheon/armature/lib/core/client-generated/model/assertedUserModel.ts","ng://@softheon/armature/lib/core/client-generated/model/folderLink.ts","ng://@softheon/armature/lib/core/client-generated/model/identityProfile.ts","ng://@softheon/armature/lib/core/client-generated/model/preferencesRow.ts","ng://@softheon/armature/lib/core/client-generated/model/settingsProfile.ts","ng://@softheon/armature/lib/core/client-generated/model/validationRecordsRow.ts","ng://@softheon/armature/lib/shared/models/typed-session.ts","ng://@softheon/armature/lib/theming/models/css-override.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\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 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) : new P(function (resolve) { resolve(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 m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n 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}\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","import { InjectionToken } from '@angular/core';\r\n\r\nexport const BASE_PATH = new InjectionToken<string>('basePath');\r\nexport const COLLECTION_FORMATS = {\r\n 'csv': ',',\r\n 'tsv': ' ',\r\n 'ssv': ' ',\r\n 'pipes': '|'\r\n}\r\n","export interface ConfigurationParameters {\r\n apiKeys?: {[ key: string ]: string};\r\n username?: string;\r\n password?: string;\r\n accessToken?: string | (() => string);\r\n basePath?: string;\r\n withCredentials?: boolean;\r\n}\r\n\r\nexport class Configuration {\r\n apiKeys?: {[ key: string ]: string};\r\n username?: string;\r\n password?: string;\r\n accessToken?: string | (() => string);\r\n basePath?: string;\r\n withCredentials?: boolean;\r\n\r\n constructor(configurationParameters: ConfigurationParameters = {}) {\r\n this.apiKeys = configurationParameters.apiKeys;\r\n this.username = configurationParameters.username;\r\n this.password = configurationParameters.password;\r\n this.accessToken = configurationParameters.accessToken;\r\n this.basePath = configurationParameters.basePath;\r\n this.withCredentials = configurationParameters.withCredentials;\r\n }\r\n\r\n /**\r\n * Select the correct content-type to use for a request.\r\n * Uses {@link Configuration#isJsonMime} to determine the correct content-type.\r\n * If no content type is found return the first found type if the contentTypes is not empty\r\n * @param contentTypes - the array of content types that are available for selection\r\n * @returns the selected content-type or <code>undefined</code> if no selection could be made.\r\n */\r\n public selectHeaderContentType (contentTypes: string[]): string | undefined {\r\n if (contentTypes.length == 0) {\r\n return undefined;\r\n }\r\n\r\n let type = contentTypes.find(x => this.isJsonMime(x));\r\n if (type === undefined) {\r\n return contentTypes[0];\r\n }\r\n return type;\r\n }\r\n\r\n /**\r\n * Select the correct accept content-type to use for a request.\r\n * Uses {@link Configuration#isJsonMime} to determine the correct accept content-type.\r\n * If no content type is found return the first found type if the contentTypes is not empty\r\n * @param accepts - the array of content types that are available for selection.\r\n * @returns the selected content-type or <code>undefined</code> if no selection could be made.\r\n */\r\n public selectHeaderAccept(accepts: string[]): string | undefined {\r\n if (accepts.length == 0) {\r\n return undefined;\r\n }\r\n\r\n let type = accepts.find(x => this.isJsonMime(x));\r\n if (type === undefined) {\r\n return accepts[0];\r\n }\r\n return type;\r\n }\r\n\r\n /**\r\n * Check if the given MIME is a JSON MIME.\r\n * JSON MIME examples:\r\n * application/json\r\n * application/json; charset=UTF8\r\n * APPLICATION/JSON\r\n * application/vnd.company+json\r\n * @param mime - MIME (Multipurpose Internet Mail Extensions)\r\n * @return True if the given MIME is JSON, false otherwise.\r\n */\r\n public isJsonMime(mime: string): boolean {\r\n const jsonMime: RegExp = new RegExp('^(application\\/json|[^;/ \\t]+\\/[^;/ \\t]+[+]json)[ \\t]*(;.*)?$', 'i');\r\n return mime != null && (jsonMime.test(mime) || mime.toLowerCase() === 'application/json-patch+json');\r\n }\r\n}\r\n","/**\r\n * Distributed Cache API\r\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\r\n *\r\n * OpenAPI spec version: 1\r\n * \r\n *\r\n * NOTE: This class is auto generated by the swagger code generator program.\r\n * https://github.com/swagger-api/swagger-codegen.git\r\n * Do not edit the class manually.\r\n *//* tslint:disable:no-unused-variable member-ordering */\r\n\r\nimport { Inject, Injectable, Optional } from '@angular/core';\r\nimport { HttpClient, HttpHeaders, HttpParams,\r\n HttpResponse, HttpEvent } from '@angular/common/http';\r\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\r\n\r\nimport { Observable } from 'rxjs';\r\n\r\nimport { SessionGetResponseModel } from '../model/sessionGetResponseModel';\r\nimport { SessionPostRequestModel } from '../model/sessionPostRequestModel';\r\nimport { SessionPostResponseModel } from '../model/sessionPostResponseModel';\r\nimport { SessionPutRequestModel } from '../model/sessionPutRequestModel';\r\nimport { SessionPutResponseModel } from '../model/sessionPutResponseModel';\r\n\r\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\r\nimport { Configuration } from '../configuration';\r\n\r\n\r\n@Injectable()\r\nexport class SessionService {\r\n\r\n protected basePath = '/';\r\n public defaultHeaders = new HttpHeaders();\r\n public configuration = new Configuration();\r\n\r\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\r\n if (basePath) {\r\n this.basePath = basePath;\r\n }\r\n if (configuration) {\r\n this.configuration = configuration;\r\n this.basePath = basePath || configuration.basePath || this.basePath;\r\n }\r\n }\r\n\r\n /**\r\n * @param consumes string[] mime-types\r\n * @return true: consumes contains 'multipart/form-data', false: otherwise\r\n */\r\n private canConsumeForm(consumes: string[]): boolean {\r\n const form = 'multipart/form-data';\r\n for (const consume of consumes) {\r\n if (form === consume) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n\r\n /**\r\n * Gets the session by id\r\n * \r\n * @param sessionId The session Id\r\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\r\n * @param reportProgress flag to report request and response progress.\r\n */\r\n public getSessionById(sessionId: string, observe?: 'body', reportProgress?: boolean): Observable<SessionGetResponseModel>;\r\n public getSessionById(sessionId: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<SessionGetResponseModel>>;\r\n public getSessionById(sessionId: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<SessionGetResponseModel>>;\r\n public getSessionById(sessionId: string, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {\r\n\r\n if (sessionId === null || sessionId === undefined) {\r\n throw new Error('Required parameter sessionId was null or undefined when calling getSessionById.');\r\n }\r\n\r\n let headers = this.defaultHeaders;\r\n\r\n // to determine the Accept header\r\n let httpHeaderAccepts: string[] = [\r\n 'text/plain',\r\n 'application/json',\r\n 'text/json'\r\n ];\r\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\r\n if (httpHeaderAcceptSelected != undefined) {\r\n headers = headers.set('Accept', httpHeaderAcceptSelected);\r\n }\r\n\r\n // to determine the Content-Type header\r\n const consumes: string[] = [\r\n ];\r\n\r\n return this.httpClient.request<SessionGetResponseModel>('get',`${this.basePath}/v1/Session/${encodeURIComponent(String(sessionId))}`,\r\n {\r\n withCredentials: this.configuration.withCredentials,\r\n headers: headers,\r\n observe: observe,\r\n reportProgress: reportProgress\r\n }\r\n );\r\n }\r\n\r\n /**\r\n * Refreshes the session\r\n * \r\n * @param sessionId The session id\r\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\r\n * @param reportProgress flag to report request and response progress.\r\n */\r\n public refreshSessionById(sessionId: string, observe?: 'body', reportProgress?: boolean): Observable<any>;\r\n public refreshSessionById(sessionId: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<any>>;\r\n public refreshSessionById(sessionId: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<any>>;\r\n public refreshSessionById(sessionId: string, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {\r\n\r\n if (sessionId === null || sessionId === undefined) {\r\n throw new Error('Required parameter sessionId was null or undefined when calling refreshSessionById.');\r\n }\r\n\r\n let headers = this.defaultHeaders;\r\n\r\n // to determine the Accept header\r\n let httpHeaderAccepts: string[] = [\r\n ];\r\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\r\n if (httpHeaderAcceptSelected != undefined) {\r\n headers = headers.set('Accept', httpHeaderAcceptSelected);\r\n }\r\n\r\n // to determine the Content-Type header\r\n const consumes: string[] = [\r\n ];\r\n\r\n return this.httpClient.request<any>('get',`${this.basePath}/v1/Session/${encodeURIComponent(String(sessionId))}/refresh`,\r\n {\r\n withCredentials: this.configuration.withCredentials,\r\n headers: headers,\r\n observe: observe,\r\n reportProgress: reportProgress\r\n }\r\n );\r\n }\r\n\r\n /**\r\n * Registers a session\r\n * \r\n * @param body The request model\r\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\r\n * @param reportProgress flag to report request and response progress.\r\n */\r\n public registerSession(body?: SessionPostRequestModel, observe?: 'body', reportProgress?: boolean): Observable<SessionPostResponseModel>;\r\n public registerSession(body?: SessionPostRequestModel, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<SessionPostResponseModel>>;\r\n public registerSession(body?: SessionPostRequestModel, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<SessionPostResponseModel>>;\r\n public registerSession(body?: SessionPostRequestModel, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {\r\n\r\n\r\n let headers = this.defaultHeaders;\r\n\r\n // to determine the Accept header\r\n let httpHeaderAccepts: string[] = [\r\n 'text/plain',\r\n 'application/json',\r\n 'text/json'\r\n ];\r\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\r\n if (httpHeaderAcceptSelected != undefined) {\r\n headers = headers.set('Accept', httpHeaderAcceptSelected);\r\n }\r\n\r\n // to determine the Content-Type header\r\n const consumes: string[] = [\r\n 'application/json',\r\n 'text/json',\r\n 'application/_*+json'\r\n ];\r\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\r\n if (httpContentTypeSelected != undefined) {\r\n headers = headers.set('Content-Type', httpContentTypeSelected);\r\n }\r\n\r\n return this.httpClient.request<SessionPostResponseModel>('post',`${this.basePath}/v1/Session`,\r\n {\r\n body: body,\r\n withCredentials: this.configuration.withCredentials,\r\n headers: headers,\r\n observe: observe,\r\n reportProgress: reportProgress\r\n }\r\n );\r\n }\r\n\r\n /**\r\n * Creates the session with the given id\r\n * \r\n * @param sessionId The session id\r\n * @param body The model\r\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\r\n * @param reportProgress flag to report request and response progress.\r\n */\r\n public registerSessionById(sessionId: string, body?: SessionPostRequestModel, observe?: 'body', reportProgress?: boolean): Observable<any>;\r\n public registerSessionById(sessionId: string, body?: SessionPostRequestModel, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<any>>;\r\n public registerSessionById(sessionId: string, body?: SessionPostRequestModel, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<any>>;\r\n public registerSessionById(sessionId: string, body?: SessionPostRequestModel, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {\r\n\r\n if (sessionId === null || sessionId === undefined) {\r\n throw new Error('Required parameter sessionId was null or undefined when calling registerSessionById.');\r\n }\r\n\r\n\r\n let headers = this.defaultHeaders;\r\n\r\n // authentication (oauth2) required\r\n if (this.configuration.accessToken) {\r\n const accessToken = typeof this.configuration.accessToken === 'function'\r\n ? this.configuration.accessToken()\r\n : this.configuration.accessToken;\r\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\r\n }\r\n\r\n // to determine the Accept header\r\n let httpHeaderAccepts: string[] = [\r\n ];\r\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\r\n if (httpHeaderAcceptSelected != undefined) {\r\n headers = headers.set('Accept', httpHeaderAcceptSelected);\r\n }\r\n\r\n // to determine the Content-Type header\r\n const consumes: string[] = [\r\n 'application/json',\r\n 'text/json',\r\n 'application/_*+json'\r\n ];\r\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\r\n if (httpContentTypeSelected != undefined) {\r\n headers = headers.set('Content-Type', httpContentTypeSelected);\r\n }\r\n\r\n return this.httpClient.request<any>('post',`${this.basePath}/v1/Session/${encodeURIComponent(String(sessionId))}`,\r\n {\r\n body: body,\r\n withCredentials: this.configuration.withCredentials,\r\n headers: headers,\r\n observe: observe,\r\n reportProgress: reportProgress\r\n }\r\n );\r\n }\r\n\r\n /**\r\n * Deletes the session\r\n * \r\n * @param sessionId The session id\r\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\r\n * @param reportProgress flag to report request and response progress.\r\n */\r\n public removeSessionById(sessionId: string, observe?: 'body', reportProgress?: boolean): Observable<any>;\r\n public removeSessionById(sessionId: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<any>>;\r\n public removeSessionById(sessionId: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<any>>;\r\n public removeSessionById(sessionId: string, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {\r\n\r\n if (sessionId === null || sessionId === undefined) {\r\n throw new Error('Required parameter sessionId was null or undefined when calling removeSessionById.');\r\n }\r\n\r\n let headers = this.defaultHeaders;\r\n\r\n // to determine the Accept header\r\n let httpHeaderAccepts: string[] = [\r\n ];\r\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\r\n if (httpHeaderAcceptSelected != undefined) {\r\n headers = headers.set('Accept', httpHeaderAcceptSelected);\r\n }\r\n\r\n // to determine the Content-Type header\r\n const consumes: string[] = [\r\n ];\r\n\r\n return this.httpClient.request<any>('delete',`${this.basePath}/v1/Session/${encodeURIComponent(String(sessionId))}`,\r\n {\r\n withCredentials: this.configuration.withCredentials,\r\n headers: headers,\r\n observe: observe,\r\n reportProgress: reportProgress\r\n }\r\n );\r\n }\r\n\r\n /**\r\n * Syncs the session by id\r\n * \r\n * @param sessionId The session id\r\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\r\n * @param reportProgress flag to report request and response progress.\r\n */\r\n public syncSessionById(sessionId: string, observe?: 'body', reportProgress?: boolean): Observable<any>;\r\n public syncSessionById(sessionId: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<any>>;\r\n public syncSessionById(sessionId: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<any>>;\r\n public syncSessionById(sessionId: string, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {\r\n\r\n if (sessionId === null || sessionId === undefined) {\r\n throw new Error('Required parameter sessionId was null or undefined when calling syncSessionById.');\r\n }\r\n\r\n let headers = this.defaultHeaders;\r\n\r\n // to determine the Accept header\r\n let httpHeaderAccepts: string[] = [\r\n ];\r\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\r\n if (httpHeaderAcceptSelected != undefined) {\r\n headers = headers.set('Accept', httpHeaderAcceptSelected);\r\n }\r\n\r\n // to determine the Content-Type header\r\n const consumes: string[] = [\r\n ];\r\n\r\n return this.httpClient.request<any>('get',`${this.basePath}/v1/Session/${encodeURIComponent(String(sessionId))}/sync`,\r\n {\r\n withCredentials: this.configuration.withCredentials,\r\n headers: headers,\r\n observe: observe,\r\n reportProgress: reportProgress\r\n }\r\n );\r\n }\r\n\r\n /**\r\n * Updates the Session\r\n * \r\n * @param sessionId The session id\r\n * @param body The request model\r\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\r\n * @param reportProgress flag to report request and response progress.\r\n */\r\n public updateSessionById(sessionId: string, body?: SessionPutRequestModel, observe?: 'body', reportProgress?: boolean): Observable<any>;\r\n public updateSessionById(sessionId: string, body?: SessionPutRequestModel, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<any>>;\r\n public updateSessionById(sessionId: string, body?: SessionPutRequestModel, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<any>>;\r\n public updateSessionById(sessionId: string, body?: SessionPutRequestModel, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {\r\n\r\n if (sessionId === null || sessionId === undefined) {\r\n throw new Error('Required parameter sessionId was null or undefined when calling updateSessionById.');\r\n }\r\n\r\n\r\n let headers = this.defaultHeaders;\r\n\r\n // to determine the Accept header\r\n let httpHeaderAccepts: string[] = [\r\n 'text/plain',\r\n 'application/json',\r\n 'text/json'\r\n ];\r\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\r\n if (httpHeaderAcceptSelected != undefined) {\r\n headers = headers.set('Accept', httpHeaderAcceptSelected);\r\n }\r\n\r\n // to determine the Content-Type header\r\n const consumes: string[] = [\r\n 'application/json',\r\n 'text/json',\r\n 'application/_*+json'\r\n ];\r\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\r\n if (httpContentTypeSelected != undefined) {\r\n headers = headers.set('Content-Type', httpContentTypeSelected);\r\n }\r\n\r\n return this.httpClient.request<any>('put',`${this.basePath}/v1/Session/${encodeURIComponent(String(sessionId))}`,\r\n {\r\n body: body,\r\n withCredentials: this.configuration.withCredentials,\r\n headers: headers,\r\n observe: observe,\r\n reportProgress: reportProgress\r\n }\r\n );\r\n }\r\n\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\nimport { DataStoreConfig } from './data-store-config';\r\nimport { SessionConfig } from './session-config';\r\nimport { UserEntityServiceConfig } from './user-entity-service-config';\r\n\r\n/** Global injection tokens */\r\nexport class GlobalInjectionTokens {\r\n /** The token refresh time in minutes */\r\n public static tokenRefreshTimeMinutes: InjectionToken<number> = new InjectionToken<number>('TokenRefreshTimeMinutes');\r\n\r\n /** the user info endpoint injection token */\r\n public static userInfoEndpoint: InjectionToken<string> = new InjectionToken<string>('UserInfoEndpoint');\r\n\r\n /** The site base url */\r\n public static siteBaseUrl: InjectionToken<string> = new InjectionToken<string>('SiteBaseUrl');\r\n\r\n /** The browser storage implementation */\r\n public static browserStorageImplementation: InjectionToken<'local' | 'session'> = new InjectionToken<'local' | 'session'>('BrowserStorageImplementation');\r\n\r\n /** The session management implementation */\r\n public static sessionManagementImplementation: InjectionToken<'server' | 'client'> = new InjectionToken<'server' | 'client'>('SessionManagementImplementation');\r\n\r\n /** The session management base path */\r\n public static sessionManagementBasePath: InjectionToken<string> = new InjectionToken<string>('SessionManagementBasePath');\r\n\r\n /** The session refresh time in minutes */\r\n public static sessionRefreshTimeMinutes: InjectionToken<number> = new InjectionToken<number>('SessionRefreshTimeMinutes');\r\n\r\n /** The window interface */\r\n public static window: InjectionToken<Window> = new InjectionToken<Window>('Window');\r\n\r\n /** The data store configurations */\r\n public static dataStoreConfig: InjectionToken<DataStoreConfig> = new InjectionToken<DataStoreConfig>('DataStoreConfig');\r\n\r\n /** The user entity base url */\r\n public static userEntityBaseUrl: InjectionToken<string> = new InjectionToken<string>('UserEntityBaseUrl');\r\n\r\n /** The user entity service configs */\r\n public static userEntityServiceConfig: InjectionToken<UserEntityServiceConfig> = new InjectionToken<UserEntityServiceConfig>('UserEntityServiceConfig');\r\n\r\n /** The session configs */\r\n public static sessionConfig: InjectionToken<SessionConfig> = new InjectionToken<SessionConfig>('SessionConfig');\r\n}\r\n\r\n/** The pre sign in route storage key */\r\nexport const preSignInRouteStorageKey: string = 'preSignInRoute';\r\n","/** The http verb types */\r\nexport type HttpVerb = 'POST' | 'GET' | 'PUT' | 'PATCH' | 'DELETE';\r\n\r\n/** The http verb constants */\r\nexport const httpVerb = {\r\n POST: 'POST' as HttpVerb,\r\n GET: 'GET' as HttpVerb,\r\n PUT: 'PUT' as HttpVerb,\r\n PATCH: 'PATCH' as HttpVerb,\r\n DELETE: 'DELETE' as HttpVerb,\r\n}\r\n","/** The session configurations */\r\nexport class SessionConfig {\r\n public transferBasePath: string;\r\n public keyPath: string;\r\n}\r\n","import { HttpVerb } from './http-verbs';\r\nimport { TypedSession } from './typed-session';\r\n\r\n/** The data store configurations */\r\nexport class DataStoreConfig<T = any> {\r\n /** The data store base uri */\r\n public baseUri: string;\r\n\r\n /** The retrieve http verb */\r\n public retrieveVerb: HttpVerb;\r\n\r\n /** The retrieve request delegate */\r\n public retrieveRequestDelegate: (baseUri: string, data: TypedSession<T>) => { uri: string, body?: any };\r\n\r\n /** The retrieve response delegate */\r\n public retrieveResponseDelegate: (response: any, session: TypedSession<T>) => TypedSession<T>;\r\n\r\n /** The retrieve securable delegate */\r\n public retrieveSecurableDelegate: (response: any) => Array<(arg: any) => any> | ((arg: any) => any);\r\n\r\n /** The update http verb */\r\n public updateVerb: HttpVerb;\r\n\r\n /** The update request delegate */\r\n public updateRequestDelegate: (baseUri: string, data: T) => { uri: string, body?: any};\r\n\r\n /** Delegate for determining when to make a call to update the data store */\r\n public shouldUpdateDataStoreDelegate: (data: T) => boolean;\r\n}\r\n","import { AssertedUserModel } from '../../core/client-generated/model/assertedUserModel';\r\n\r\n/** The user entity service config */\r\nexport class UserEntityServiceConfig {\r\n /** true if getting user on start up */\r\n public getUserOnInit: boolean = true;\r\n\r\n /** True when including links */\r\n public includeLinks: boolean = true;\r\n\r\n /** The partial for the get user call */\r\n public getUserPartial: string;\r\n\r\n /** The validate function */\r\n public validate: (user: AssertedUserModel) => boolean = (user: AssertedUserModel): boolean => true;\r\n}\r\n","/** The route path enum */\r\nexport enum RoutePath {\r\n Internal = 'internal',\r\n External = 'external'\r\n}\r\n","/** The styles interface */\r\nexport interface Styles {\r\n /** The height in px */\r\n height?: number;\r\n\r\n /** The mobile height in px */\r\n heightMobile?: number;\r\n\r\n /** The width in px */\r\n width?: number;\r\n\r\n /** The mobile width in px */\r\n widthMobile?: number;\r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Inject, Injectable, Optional } from '@angular/core';\r\nimport { OAuthService } from 'angular-oauth2-oidc';\r\nimport { BehaviorSubject, Observable, of, throwError } from 'rxjs';\r\nimport { switchMap, take } from 'rxjs/operators';\r\nimport { GlobalInjectionTokens } from '../../shared/models/constants';\r\nimport { HttpVerb, httpVerb } from '../../shared/models/http-verbs';\r\nimport { SessionConfig } from '../../shared/models/session-config';\r\nimport { TypedSession } from '../../shared/models/typed-session';\r\nimport { DataStoreConfig } from '../../shared/shared-api';\r\nimport { SessionPostRequestModel, SessionPutRequestModel, SessionResponseModel } from '../client-generated/model/models';\r\n\r\n/** the data store retrieve complete session key */\r\nconst dataStoreRetrieveCompleteSessionKey = 'dataStoreRetrieve';\r\n\r\n/** The session service */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SessionService<T = any> {\r\n\r\n /** The session id */\r\n private _sessionId: string;\r\n\r\n /** True when the data store retrieve is complete */\r\n private isDataStoreRetrieveComplete: boolean = false;\r\n\r\n /** The local storage key */\r\n private readonly storageKey: string = 'Sof-Arm-Session-Id';\r\n\r\n /** Teh current update data store call */\r\n private readonly currentUpdateDataStoreCall: Observable<any> = of({});\r\n\r\n /** The session data behavior subject */\r\n private readonly sessionData: BehaviorSubject<TypedSession<T>> = new BehaviorSubject<TypedSession<T>>(undefined);\r\n\r\n /** True when the service has finished initializing */\r\n private readonly isInitializedBs: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\r\n\r\n /** True if the data store is initialized */\r\n private readonly isDataStoreInitBs: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\r\n\r\n /** True if client side session management */\r\n private get isClientSessionManagement(): boolean {\r\n return this.sessionManagementImplementation === 'client';\r\n }\r\n\r\n /** True if server side session management */\r\n private get isServerSessionManagement(): boolean {\r\n return this.sessionManagementImplementation === 'server';\r\n }\r\n\r\n /** True if using browser local storage */\r\n private get useBrowserLocalStorage(): boolean {\r\n return this.browserStorageImplementation === 'local';\r\n }\r\n\r\n /** True if using browser session storage */\r\n private get useBrowserSessionStorage(): boolean {\r\n return this.browserStorageImplementation === 'session';\r\n }\r\n\r\n /** The window */\r\n private readonly window: Window;\r\n\r\n /** True if data store is provided */\r\n private readonly isDataStoreProvided: boolean = false;\r\n\r\n /** The session id */\r\n public get sessionId(): string {\r\n if (!this._sessionId) {\r\n this.isClientSessionManagement ? this.initClientSessionId() : this.initServerSessionId();\r\n }\r\n\r\n return this._sessionId;\r\n }\r\n\r\n /** The session */\r\n public session$: Observable<TypedSession<T>>;\r\n\r\n /** The session refresh observable */\r\n public sessionRefresh$: Observable<any>;\r\n\r\n /** Indicates when the service has finished initializing */\r\n public isInitialized$: Observable<boolean>;\r\n\r\n /** True if the data store is initialized */\r\n public isDataStoreInit$: Observable<boolean>;\r\n\r\n /** gets the session */\r\n public get session(): TypedSession<T> {\r\n return this.sessionData.value;\r\n }\r\n\r\n /** sets the session */\r\n public set session(value: TypedSession<T>) {\r\n this.sessionData.next(value);\r\n this.window.sessionStorage.setItem(this.sessionConfig.keyPath, this.encode(value));\r\n }\r\n\r\n /**\r\n * Constructs the component\r\n * @param browserStorageImplementation The browser storage implementation\r\n */\r\n constructor(\r\n @Optional() @Inject(GlobalInjectionTokens.browserStorageImplementation) private readonly browserStorageImplementation: string,\r\n @Optional() @Inject(GlobalInjectionTokens.sessionManagementImplementation) private readonly sessionManagementImplementation: string,\r\n @Optional() @Inject(GlobalInjectionTokens.window) readonly _window: any,\r\n @Optional() @Inject(GlobalInjectionTokens.dataStoreConfig) readonly dataStoreConfig: DataStoreConfig<T>,\r\n @Optional() @Inject(GlobalInjectionTokens.sessionConfig) readonly sessionConfig: SessionConfig,\r\n @Optional() private readonly authService: OAuthService,\r\n private readonly httpClient: HttpClient\r\n ) {\r\n this.isInitialized$ = this.isInitializedBs.asObservable();\r\n this.isDataStoreInit$ = this.isDataStoreInitBs.asObservable();\r\n this.isDataStoreProvided = !!this.dataStoreConfig;\r\n this.window = _window;\r\n if (!this.window) {\r\n this.window = window;\r\n }\r\n const dataStoreLoadedValue = this.window.sessionStorage.getItem(dataStoreRetrieveCompleteSessionKey);\r\n this.isDataStoreRetrieveComplete = !!dataStoreLoadedValue ? dataStoreLoadedValue.toLowerCase() === 'true' : false;\r\n // if not using a data store, update the initialized to true for it\r\n if (!this.isDataStoreProvided) {\r\n this.isDataStoreInitBs.next(true);\r\n }\r\n if (!this.browserStorageImplementation) {\r\n this.browserStorageImplementation = 'session';\r\n }\r\n if (!this.sessionManagementImplementation) {\r\n this.sessionManagementImplementation = 'client';\r\n }\r\n if (this.isServerSessionManagement && !this.sessionConfig) {\r\n throw new Error('Cannot user server session management with null sessionConfig please provide: GlobalInjectionTokens.sessionConfig');\r\n }\r\n if (this.isClientSessionManagement) {\r\n this.initClientSessionManagement();\r\n\r\n return;\r\n }\r\n\r\n this.initServerSessionManagement();\r\n }\r\n\r\n /**\r\n * Redirects to a url with a ref to the existing session\r\n * @param uri The uri to redirect to\r\n * @param syncSession Sync session.\r\n * @param configs Redirect configs.\r\n */\r\n public redirect(uri: string, syncSession: boolean = false, configs: RedirectSessionConfigs = {}): void {\r\n // if the host name isn't in the uri, we are going to a different domain, so use the gateway on the other domain's server\r\n let formAction = `${this.sessionConfig.transferBasePath}/ssogateway/v2/sso/inbound-transfer/${this.sessionConfig.keyPath}`;\r\n if (uri.indexOf(window.location.hostname) === -1) {\r\n const uriParts = uri.split('/');\r\n // this results in ['https:', '', 'domain.host'], use 0 and 2 to get the base url of the redirect uri\r\n formAction = `${uriParts[0]}//${uriParts[2]}/ssogateway/v2/sso/inbound-transfer/${this.sessionConfig.keyPath}`;\r\n }\r\n const form = document.createElement('form');\r\n const input = document.createElement('input');\r\n const inputDestination = document.createElement('input');\r\n form.method = 'POST';\r\n form.action = formAction;\r\n if (configs.targetNewTab) {\r\n form.target = '_blank';\r\n }\r\n\r\n input.name = 'data';\r\n input.value = this.window.sessionStorage.getItem(this.sessionConfig.keyPath);\r\n inputDestination.name = 'destination';\r\n inputDestination.value = uri;\r\n form.appendChild(input);\r\n form.appendChild(inputDestination);\r\n document.body.appendChild(form);\r\n form.submit();\r\n }\r\n\r\n /**\r\n * Updates the session\r\n * @param body The session put request body\r\n */\r\n public updateSession(\r\n body: TypedSession<T>,\r\n securableDelegate: Array<(arg: any) => any> | ((arg: any) => any),\r\n skipDataStore?: boolean): Observable<any> {\r\n if (!this._sessionId) {\r\n console.error('No session has been initialized, skipping update call');\r\n\r\n return undefined;\r\n }\r\n if (!securableDelegate) {\r\n throw new Error('SessionService:updateSession -> Argument is null or undefined, arg: securableDelegate');\r\n }\r\n if (Array.isArray(body.sessionData) && !Array.isArray(securableDelegate)) {\r\n throw new Error(\r\n 'SessionService:updateSession -> Type miss match, arg: body.SessionData (type of Array) and arg: securableDelegate (type of (arg: any) => any) both must be array or non-array'\r\n );\r\n }\r\n if (!Array.isArray(body.sessionData) && Array.isArray(securableDelegate)) {\r\n throw new Error(\r\n 'SessionService:updateSession -> Type miss match, arg: body.SessionData (type of any) and arg: securableDelegate (type of Array) both must be array or non-array'\r\n );\r\n }\r\n // create response model and update observable to emit new session value\r\n const model: SessionResponseModel = {\r\n initializingOrigin: body.initializingOrigin,\r\n branding: body.branding,\r\n oAuth: body.oAuth,\r\n sessionId: this._sessionId,\r\n tracking: body.tracking,\r\n sessionData: body.sessionData\r\n };\r\n this.session = model;\r\n\r\n const putModel: SessionPutRequestModel = {\r\n initializingOrigin: body.initializingOrigin,\r\n sessionData:\r\n (Array.isArray(body.sessionData)\r\n ? body.sessionData.map((d, index) => securableDelegate[index](d)) : (securableDelegate as ((arg: any) => any))(body.sessionData)),\r\n branding: body.branding,\r\n tracking: body.tracking,\r\n oAuth: body.oAuth\r\n };\r\n\r\n // if data store is provided run the delegate to determine the body and the uri to use for the update\r\n if (this.isDataStoreProvided && !skipDataStore) {\r\n const updateTuple = this.dataStoreConfig.updateRequestDelegate(this.dataStoreConfig.baseUri, body.sessionData);\r\n // switch map to cancel existing calls with newer ones to avoid reverting data\r\n if (this.dataStoreConfig.shouldUpdateDataStoreDelegate(body.sessionData)) {\r\n this.currentUpdateDataStoreCall.pipe(switchMap(() => {\r\n switch (this.dataStoreConfig.updateVerb) {\r\n case httpVerb.POST:\r\n return this.httpClient.post(updateTuple.uri, updateTuple.body);\r\n case httpVerb.PUT:\r\n default:\r\n return this.httpClient.put(updateTuple.uri, updateTuple.body);\r\n }\r\n }))\r\n .subscribe(() => {\r\n this.isDataStoreRetrieveComplete = true;\r\n this.window.sessionStorage.setItem(dataStoreRetrieveCompleteSessionKey, 'true');\r\n });\r\n }\r\n }\r\n\r\n return this.session$;\r\n }\r\n\r\n /** Removes the session */\r\n public removeSession(): void {\r\n this.sessionData.next(undefined);\r\n this.window.sessionStorage.removeItem(dataStoreRetrieveCompleteSessionKey);\r\n this.window.sessionStorage.removeItem(this.sessionConfig.keyPath);\r\n }\r\n\r\n /**\r\n * @deprecated removing in the next version\r\n * Syncs the session\r\n * Returns the observable indicating when the session has been synced\r\n */\r\n public syncSession(): Observable<any> {\r\n return of(true);\r\n }\r\n\r\n /**\r\n * @deprecated removing in the next version\r\n * Refreshes the session\r\n */\r\n public refreshSession(): void {\r\n }\r\n\r\n /** Initialize server session management */\r\n private initServerSessionManagement(): void {\r\n this.session$ = this.sessionData.asObservable();\r\n\r\n const getFromDataStore = (): any => {\r\n if (!this.dataStoreConfig || !this.authService || this.isDataStoreRetrieveComplete) {\r\n return;\r\n }\r\n\r\n // load data from data store anon\r\n const loadDataStore = () =>\r\n this.determineDataStoreFunction(this.dataStoreConfig.retrieveVerb,\r\n this.dataStoreConfig.retrieveRequestDelegate,\r\n this.dataStoreConfig.baseUri,\r\n undefined)\r\n .subscribe(res => {\r\n this.isInitialized$.subscribe(isInit => {\r\n if (!isInit) {\r\n return;\r\n }\r\n this.session$.pipe(take(1))\r\n .subscribe(ses => {\r\n this.updateSession(this.dataStoreConfig.retrieveResponseDelegate(res, ses),\r\n this.dataStoreConfig.retrieveSecurableDelegate(res), true);\r\n this.isDataStoreInitBs.next(true);\r\n this.isDataStoreRetrieveComplete = true;\r\n this.window.sessionStorage.setItem(dataStoreRetrieveCompleteSessionKey, 'true');\r\n });\r\n });\r\n });\r\n\r\n if (!this.authService.hasValidAccessToken()) {\r\n // HACK: I couldn't do this based on an event so I had to get creative\r\n const interval = setInterval(() => {\r\n if (this.authService.hasValidAccessToken()) {\r\n loadDataStore();\r\n clearInterval(interval);\r\n }\r\n }, 250);\r\n }\r\n else {\r\n return loadDataStore();\r\n }\r\n };\r\n\r\n const body: SessionPostRequestModel = {\r\n sessionData: undefined,\r\n branding: undefined\r\n };\r\n\r\n const encodedSession = this.window.sessionStorage.getItem(this.sessionConfig.keyPath);\r\n this._sessionId = `Session-${this.newGuid()}`;\r\n if (!encodedSession) {\r\n this.session = body;\r\n this.isInitializedBs.next(true);\r\n getFromDataStore();\r\n }\r\n else {\r\n this.session = this.decode(encodedSession);\r\n this.isInitializedBs.next(true);\r\n getFromDataStore();\r\n }\r\n }\r\n\r\n /** Initializes the server side session id */\r\n private initServerSessionId(): void {\r\n if (!this._sessionId) {\r\n console.warn('Session Initializing, subscribe to session$ to get the session info. Session Id will be populated upon initialization');\r\n\r\n return;\r\n }\r\n }\r\n\r\n /** Initializes client side session management */\r\n private initClientSessionManagement(): void {\r\n if (this.useBrowserSessionStorage) {\r\n const sesId = this.window.sessionStorage.getItem(this.storageKey);\r\n this._sessionId = sesId || this.newGuid();\r\n this.setSessionStorage();\r\n }\r\n else if (this.useBrowserLocalStorage) {\r\n const sesId = this.window.localStorage.getItem(this.storageKey);\r\n this._sessionId = sesId || this.newGuid();\r\n this.setLocalStorage();\r\n }\r\n this.isInitializedBs.next(true);\r\n }\r\n\r\n private getSessionIdFromStorage(): string {\r\n if (this.useBrowserLocalStorage) {\r\n return this.window.localStorage.getItem(this.storageKey);\r\n }\r\n else if (this.useBrowserSessionStorage) {\r\n return this.window.sessionStorage.getItem(this.storageKey);\r\n }\r\n }\r\n\r\n /** Initialize the client side session id */\r\n private initClientSessionId(): void {\r\n this._sessionId = this.newGuid();\r\n if (this.useBrowserSessionStorage) {\r\n this.setSessionStorage();\r\n }\r\n else if (this.useBrowserLocalStorage) {\r\n this.setLocalStorage();\r\n }\r\n }\r\n\r\n /** Create new guid */\r\n private newGuid(): string {\r\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, c => {\r\n const r = Math.random() * 16 | 0;\r\n const v = (c == 'x') ? r : (r & 0x3 | 0x8);\r\n\r\n return v.toString(16);\r\n });\r\n }\r\n\r\n /** Sets session storage */\r\n private setSessionStorage(): void {\r\n this.window.sessionStorage.setItem(this.storageKey, this._sessionId);\r\n }\r\n\r\n /** Sets local storage */\r\n private setLocalStorage(): void {\r\n this.window.localStorage.setItem(this.storageKey, this._sessionId);\r\n }\r\n\r\n /**\r\n * Determines the type of http call to make for the data store\r\n * @param verb The verb\r\n * @param delegate The delegate\r\n * @param uri The uri\r\n */\r\n private determineDataStoreFunction(\r\n verb: HttpVerb,\r\n delegate: (baseUri: string, body: T) => { uri: string, body?: any },\r\n uri: string,\r\n body: any\r\n ): Observable<any> {\r\n const tuple = delegate(uri, body);\r\n const headers = new HttpHeaders({\r\n 'Content-Type': 'application/json'\r\n });\r\n switch (verb) {\r\n case httpVerb.PUT:\r\n return this.httpClient.put(tuple.uri, tuple.body, { headers });\r\n case httpVerb.POST:\r\n return this.httpClient.post(tuple.uri, tuple.body, { headers });\r\n case httpVerb.GET:\r\n return this.httpClient.get(tuple.uri, { headers });\r\n case httpVerb.PATCH:\r\n return this.httpClient.patch(tuple.uri, tuple.body, { headers });\r\n case httpVerb.DELETE:\r\n return this.httpClient.delete(tuple.uri, { headers });\r\n default:\r\n throw new Error('Http verb must be one of: PATCH, PUT, POST, DELETE, GET');\r\n }\r\n }\r\n\r\n /**\r\n * Encodes the object\r\n * @param value The object\r\n */\r\n private encode(value: any): string {\r\n return window.btoa(unescape(encodeURIComponent(JSON.stringify(value))));\r\n }\r\n\r\n /**\r\n * Decodes the string\r\n * @param str The string\r\n */\r\n private decode(str: string): any {\r\n return JSON.parse(decodeURIComponent(escape(window.atob(str))));\r\n }\r\n}\r\n\r\n/**\r\n * Redirect Session Configs.\r\n */\r\nexport class RedirectSessionConfigs {\r\n /** If session should be synced. */\r\n syncSession?: boolean;\r\n\r\n /** If new tab should be targeted. */\r\n targetNewTab?: boolean;\r\n}\r\n","/** The footer configurations */\r\nexport class FooterConfig {\r\n /** True if showing pre content 1 */\r\n public showPreContent1: boolean;\r\n\r\n /** True if showing pre content 2 */\r\n public showPreContent2: boolean;\r\n}\r\n","import { Component, OnInit, Input } from '@angular/core';\r\nimport { FooterConfig } from '../../models/footer-config';\r\n\r\n/** The Armature Footer Component */\r\n@Component({\r\n selector: 'sof-ar-footer',\r\n templateUrl: './footer.component.html',\r\n styleUrls: ['./footer.component.scss']\r\n})\r\nexport class ArmatureFooterComponent implements OnInit {\r\n\r\n /** The footer config */\r\n @Input() public footerConfig: FooterConfig = new FooterConfig();\r\n\r\n /** the constructor */\r\n constructor() { }\r\n\r\n /** On Init */\r\n public ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { Component, OnInit, Input } from '@angular/core';\r\n\r\nimport { SiteMapConfig } from '../../models/site-map-models';\r\n\r\n@Component({\r\n selector: 'sof-ar-site-map',\r\n templateUrl: './site-map.component.html',\r\n styleUrls: ['./site-map.component.scss']\r\n})\r\nexport class SiteMapComponent implements OnInit {\r\n\r\n /** Site map config */\r\n @Input() public config: SiteMapConfig;\r\n \r\n /** Creates an instance of SiteMapComponent. */\r\n public constructor() { }\r\n\r\n /** Init */\r\n public ngOnInit(): void { \r\n if (!this.config) {\r\n throw new Error('sof-ar-site-map: [config] input is required');\r\n }\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FlexLayoutModule } from '@angular/flex-layout';\r\nimport { MatButtonModule } from '@angular/material';\r\nimport { RouterModule } from '@angular/router';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\n\r\nimport { ArmatureFooterComponent } from './components/footer/footer.component';\r\nimport { SiteMapComponent } from './components/site-map/site-map.component';\r\n\r\n/** The components */\r\nconst components = [\r\n ArmatureFooterComponent,\r\n SiteMapComponent\r\n];\r\n\r\n/** The Footer Module */\r\n@NgModule({\r\n declarations: [...components],\r\n imports: [\r\n RouterModule,\r\n CommonModule,\r\n FlexLayoutModule,\r\n TranslateModule,\r\n MatButtonModule\r\n ],\r\n exports: [...components]\r\n})\r\nexport class ArmatureFooterModule { }\r\n","/**\r\n * The States enum\r\n */\r\nexport enum States {\r\n AL = 'Alabama',\r\n AK = 'Alaska',\r\n AZ = 'Arizona',\r\n AR = 'Arkansas',\r\n CA = 'California',\r\n CO = 'Colorado',\r\n CT = 'Connecticut',\r\n DE = 'Delaware',\r\n DC = 'District of Columbia',\r\n FL = 'Florida',\r\n GA = 'Georgia',\r\n HI = 'Hawaii',\r\n ID = 'Idaho',\r\n IL = 'Illinois',\r\n IN = 'Indiana',\r\n IA = 'Iowa',\r\n KS = 'Kansas',\r\n KY = 'Kentucky',\r\n LA = 'Louisiana',\r\n ME = 'Maine',\r\n MD = 'Maryland',\r\n MA = 'Massachusetts',\r\n MI = 'Michigan',\r\n MN = 'Minnesota',\r\n MS = 'Mississippi',\r\n MO = 'Missouri',\r\n MT = 'Montana',\r\n NE = 'Nebraska',\r\n NV = 'Nevada',\r\n NH = 'New Hampshire',\r\n NJ = 'New Jersey',\r\n NM = 'New Mexico',\r\n NY = 'New York',\r\n NC = 'North Carolina',\r\n ND = 'North Dakota',\r\n OH = 'Ohio',\r\n OK = 'Oklahoma',\r\n OR = 'Oregon',\r\n PA = 'Pennsylvania',\r\n RI = 'Rhode Island',\r\n SC = 'South Carolina',\r\n SD = 'South Dakota',\r\n TN = 'Tennessee',\r\n TX = 'Texas',\r\n UT = 'Utah',\r\n VT = 'Vermont',\r\n VA = 'Virginia',\r\n WA = 'Washington',\r\n WV = 'West Virginia',\r\n WI = 'Wisconsin',\r\n WY = 'Wyoming'\r\n}\r\n","import { Component, OnInit, Input } from '@angular/core';\r\nimport { FormControl, Validators, FormGroup, FormBuilder } from '@angular/forms';\r\n\r\nimport { States } from '../../models/enums/states';\r\nimport { Address } from '../../models/address';\r\nimport { County } from '../../models/county';\r\n\r\n/** Address component */\r\n@Component({\r\n selector: 'sof-ar-address',\r\n templateUrl: './sof-address.component.html',\r\n styleUrls: ['./sof-address.component.scss']\r\n})\r\nexport class SofAddressComponent implements OnInit {\r\n\r\n /** Identifier for this address component */\r\n @Input() public id: string = '';\r\n\r\n /** Verbiage for street 1 */\r\n @Input() public street1Verbiage: string = 'Street 1';\r\n\r\n /** Verbiage for street 2 */\r\n @Input() public street2Verbiage: string = 'Street 2';\r\n\r\n /** Verbiage for city */\r\n @Input() public cityVerbiage: string = 'City';\r\n\r\n /** Verbiage for ZIP Code */\r\n @Input() public zipCodeVerbiage: string = 'Zip Code';\r\n\r\n /** Verbiage for the state input */\r\n @Input() public stateVerbiage: string = 'State';\r\n\r\n /** Verbiage for the title */\r\n @Input() public titleVerbiage: string;\r\n\r\n /** Address Form group */\r\n public addressFG: FormGroup;\r\n\r\n /** The state options */\r\n public readonly states: Array<string> = Object.keys(States);\r\n\r\n /** Form control for street 1 */\r\n private readonly street1FC: FormControl = new FormControl(undefined, Validators.required);\r\n\r\n /** Form control for street 2 */\r\n private readonly street2FC: FormControl = new FormControl();\r\n\r\n /** Form control for city */\r\n private readonly cityFC: FormControl = new FormControl(undefined, Validators.required);\r\n\r\n /** Form control for state */\r\n private readonly stateFC: FormControl = new FormControl(undefined, Validators.required);\r\n\r\n /** Form control for zip code */\r\n private readonly zipCodeFC: FormControl = new FormControl(\r\n undefined,\r\n [Validators.required, Validators.maxLength(5), Validators.minLength(5)]\r\n );\r\n\r\n /**\r\n * Constructor for the component\r\n * @param formBuilder The form builder\r\n */\r\n constructor(private readonly formBuilder: FormBuilder) { }\r\n\r\n /** Actions to take upon initialization */\r\n public ngOnInit(): void {\r\n this.createAddressGroup();\r\n }\r\n\r\n /** Creates the address form group */\r\n public createAddressGroup(): FormGroup {\r\n if (this.addressFG) {\r\n return this.addressFG;\r\n }\r\n\r\n this.addressFG = this.formBuilder.group({\r\n street1: this.street1FC,\r\n street2: this.street2FC,\r\n city: this.cityFC,\r\n state: this.stateFC,\r\n zipCode: this.zipCodeFC\r\n });\r\n\r\n return this.addressFG;\r\n }\r\n\r\n /** Maps and returns the address */\r\n public getAddress(): Address {\r\n if (!this.addressFG.valid) {\r\n return undefined;\r\n }\r\n\r\n const county: County = {\r\n zipCode: this.zipCodeFC.value,\r\n state: this.stateFC.value\r\n };\r\n const address: Address = {\r\n street1: this.street1FC.value,\r\n street2: this.street2FC.value,\r\n city: this.cityFC.value,\r\n county\r\n };\r\n\r\n return address;\r\n }\r\n\r\n /** Checks if the form is valid */\r\n public isValid(): boolean {\r\n return this.addressFG && this.addressFG.valid;\r\n }\r\n\r\n}\r\n","import { Directive, ElementRef, HostListener } from '@angular/core';\r\n\r\n/**\r\n * The alphanumeric directive\r\n */\r\n@Directive({\r\n selector: '[alphanumeric]'\r\n})\r\nexport class AlphaNumericDirective {\r\n\r\n /** The array of allowed keys */\r\n private allowedKeys: Array<string> = ['backspace', 'delete', 'escape', 'enter', 'tab'];\r\n\r\n /** Whether or not the entered value is a letter */\r\n private isLetter: boolean;\r\n\r\n /** Whether or not the entered value is a number */\r\n private isNumber: boolean;\r\n\r\n /**\r\n * Constructs the directive\r\n * @param el The element\r\n */\r\n constructor(private el: ElementRef) { }\r\n\r\n /**\r\n * Only allows alphanumeric inputs\r\n * @param event Key Event\r\n */\r\n @HostListener('keydown', ['$event']) onKeyDown(event: KeyboardEvent): void {\r\n const e = event as KeyboardEvent;\r\n\r\n // Reset values each time\r\n this.isNumber = false;\r\n this.isLetter = false;\r\n\r\n if (this.allowedKeys.indexOf(e.code.toLowerCase()) !== -1 ||\r\n // Allow: Ctrl+A\r\n (e.code.toLowerCase() === 'keya' && e.ctrlKey) ||\r\n // Allow: Ctrl+C\r\n (e.code.toLowerCase() === 'keyc' && e.ctrlKey) ||\r\n // Allow: Ctrl+X\r\n (e.code.toLowerCase() === 'keyx' && e.ctrlKey)) {\r\n // let it happen, don't do anything\r\n return;\r\n }\r\n // Ensure that it is a letter and stop the keypress if its not a letter\r\n if (e.code.toLowerCase().includes('digit') || e.code.toLowerCase().includes('numpad')) {\r\n this.isLetter = false;\r\n this.isNumber = true;\r\n }\r\n // Ensure that it is a number and stop the keypress\r\n let letterRegexMatch = e.code.toLowerCase().match(/key[a-zA-Z]/g);\r\n if (letterRegexMatch) {\r\n this.isNumber = false;\r\n this.isLetter = true;\r\n }\r\n // If the event is shift key and its not with a letter, its going to be a special character we want to prevent\r\n if (e.shiftKey && !letterRegexMatch) {\r\n this.isNumber = false;\r\n this.isLetter = false;\r\n }\r\n // Ensure that it is either a letter or a number\r\n if (!this.isLetter && !this.isNumber) {\r\n e.preventDefault();\r\n }\r\n }\r\n\r\n /**\r\n * Prevent copy pasted inputs\r\n * @param event the event\r\n */\r\n @HostListener('paste', ['$event']) blockPaste(event: KeyboardEvent): void {\r\n event.preventDefault();\r\n }\r\n\r\n}\r\n","import { Directive, ElementRef, HostListener, Input } from '@angular/core';\r\n\r\n/**\r\n * The letters only directive\r\n */\r\n@Directive({\r\n selector: '[sofArLettersOnly]'\r\n})\r\nexport class LettersOnlyDirective {\r\n\r\n /** True if only letters allowed */\r\n @Input() public sofArLettersOnly: boolean = true;\r\n\r\n /** The array of allowed keys */\r\n private readonly allowedKeys: Array<string> = ['backspace', 'delete', 'tab', 'escape', 'enter', 'period', 'numpaddecimal'];\r\n\r\n /**\r\n * Constructs the directive\r\n * @param el The element\r\n */\r\n constructor(private readonly el: ElementRef) { }\r\n\r\n /**\r\n * Only allows letter inputs\r\n * @param event Key Event\r\n */\r\n @HostListener('keydown', ['$event']) onKeyDown(event): void {\r\n const e = event as KeyboardEvent;\r\n if (this.sofArLettersOnly && e.code) {\r\n if (this.allowedKeys.indexOf(e.code.toLowerCase()) !== -1 ||\r\n // Allow: Ctrl+A\r\n (e.code.toLowerCase() === 'keya' && e.ctrlKey) ||\r\n // Allow: Ctrl+C\r\n (e.code.toLowerCase() === 'keyc' && e.ctrlKey) ||\r\n // Allow: Ctrl+X\r\n (e.code.toLowerCase() === 'keyx' && e.ctrlKey) ||\r\n // Allow: spaces\r\n (e.code.toLowerCase() === 'space') ||\r\n // Allow: - (minus sign) on numpad or alphabet keyboard key\r\n (e.code.toLowerCase() === 'minus' || e.code.toLowerCase() === 'numpadsubtract')) {\r\n // let it happen, don't do anything\r\n return;\r\n }\r\n // Ensure that it is a letter and stop the keypress if its not a letter\r\n if (e.code.toLowerCase()\r\n .includes('digit')\r\n || e.code.toLowerCase()\r\n .includes('numpad')) {\r\n e.preventDefault();\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Prevent copy pasted inputs\r\n * @param event the event\r\n */\r\n @HostListener('paste', ['$event']) blockPaste(event: KeyboardEvent): void {\r\n event.preventDefault();\r\n }\r\n\r\n}\r\n","import { Directive, ElementRef, HostListener, Input } from '@angular/core';\r\n\r\n/**\r\n * Numbers only directive\r\n */\r\n@Directive({\r\n selector: '[sofArNumbersOnly]'\r\n})\r\nexport class NumbersOnlyDirective {\r\n\r\n /** True if only numbers allowed */\r\n @Input() public sofArNumbersOnly: boolean = true;\r\n\r\n /** The array of allowed keys */\r\n private readonly allowedKeys: Array<string> = ['backspace', 'delete', 'tab', 'escape', 'enter', 'period', 'numpaddecimal'];\r\n\r\n /**\r\n * Constructs the directive\r\n * @param el The element\r\n */\r\n constructor(private readonly el: ElementRef) { }\r\n\r\n /**\r\n * Only allows number inputs\r\n * @param event Key Event\r\n */\r\n @HostListener('keydown', ['$event']) onKeyDown(event): any {\r\n const e: KeyboardEvent = event;\r\n\r\n if (this.sofArNumbersOnly) {\r\n if (this.allowedKeys.indexOf(e.code.toLowerCase()) !== -1 ||\r\n // Allow: Ctrl+A\r\n (e.code.toLowerCase() === 'keya' && e.ctrlKey) ||\r\n // Allow: Ctrl+C\r\n (e.code.toLowerCase() === 'keyc' && e.ctrlKey) ||\r\n // Allow: Ctrl+X\r\n (e.code.toLowerCase() === 'keyx' && e.ctrlKey) ||\r\n // Allow: spaces\r\n (e.code.toLowerCase() === 'space') ||\r\n // Allow: - (minus sign) on numpad or alphabet keyboard key\r\n (e.code.toLowerCase() === 'minus' || e.code.toLowerCase() === 'numpadsubtract')) {\r\n // let it happen, don't do anything\r\n return;\r\n }\r\n\r\n // Ensure that it is a number and stop the keypress\r\n if ((e.shiftKey || e.code.toLowerCase()\r\n .match(/key[a-zA-Z]/g))) {\r\n e.preventDefault();\r\n }\r\n }\r\n }\r\n\r\n}","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FlexLayoutModule } from '@angular/flex-layout';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { MatFormFieldModule, MatInputModule, MatSelectModule } from '@angular/material';\r\n\r\nimport { SofAddressComponent } from './components/sof-address/sof-address.component';\r\nimport { AlphaNumericDirective } from './directives/alphanumeric/alphanumeric.directive';\r\nimport { LettersOnlyDirective } from './directives/letters-only/letters-only.directive';\r\nimport { NumbersOnlyDirective } from './directives/numbers-only/numbers-only.directive';\r\n\r\n/** The components */\r\nconst components = [\r\n SofAddressComponent\r\n];\r\n\r\n/** The directives */\r\nconst directives = [\r\n NumbersOnlyDirective,\r\n LettersOnlyDirective,\r\n AlphaNumericDirective\r\n];\r\n\r\n/** The material modules */\r\nconst materialModules = [\r\n MatInputModule,\r\n MatFormFieldModule,\r\n MatSelectModule\r\n];\r\n\r\n/** Armature forms module */\r\n@NgModule({\r\n declarations: [\r\n ...components,\r\n ...directives\r\n ],\r\n imports: [\r\n CommonModule,\r\n FlexLayoutModule,\r\n ReactiveFormsModule,\r\n ...materialModules\r\n ],\r\n exports: [\r\n ...components,\r\n ...directives\r\n ]\r\n})\r\nexport class FormsModule { }\r\n","import { InjectionToken } from '@angular/core';\r\n\r\nimport { Observable } from 'rxjs';\r\n\r\n/** Injection tokens */\r\nexport class InjectionTokens {\r\n /** The key path suffix injection token */\r\n public static keyPathSuffix: InjectionToken<string> = new InjectionToken<string>('KeyPathSuffix');\r\n\r\n /** The window injection token */\r\n public static window: InjectionToken<Window> = new InjectionToken<Window>('Window');\r\n\r\n /** The token endpoint injection token for the hybrid SAML OAuth Service */\r\n public static tokenEndpoint$: InjectionToken<Observable<string>> = new InjectionToken<Observable<string>>('HybridSamlOauthTokenEndpoint');\r\n\r\n /** The data format injection token */\r\n public static dataFormat: InjectionToken<'camelCase' | 'PascalCase'> = new InjectionToken<'camelCase' | 'PascalCase'>('DataFormat');\r\n}\r\n\r\n/** The key path prefix */\r\nexport const keyPathPrefix: string = 'SsoGateway-';\r\n","// tslint:disable: variable-name\r\n/** The access token claims */\r\nexport class AccessTokenClaims {\r\n\r\n private role: string | Array<string>;\r\n\r\n /** The given name of the user */\r\n public given_name: string;\r\n\r\n /** The name of the user */\r\n public name: string;\r\n\r\n /** The preferred username of the user */\r\n public preferred_username: string;\r\n\r\n /** The roles of the user */\r\n public get getRole(): Array<string> {\r\n if (typeof this.role === 'string') {\r\n this.role = [this.role];\r\n }\r\n\r\n return this.role;\r\n }\r\n\r\n /** constructs the claims from an existing claims object */\r\n constructor(claims?: AccessTokenClaims) {\r\n if (claims) {\r\n this.role = claims.role;\r\n this.given_name = claims.given_name;\r\n this.name = claims.name;\r\n this.preferred_username = claims.preferred_username;\r\n }\r\n }\r\n}\r\n","import { AccessTokenClaims } from './access-token-claims';\r\n\r\n// tslint:disable: variable-name no-unused-expression\r\n/** The access token claims class */\r\nexport class DecodedAccessToken {\r\n\r\n private aud: string | Array<string>;\r\n private scope: string | Array<string>;\r\n private _claims: AccessTokenClaims;\r\n\r\n /** The authentication methods array */\r\n public amr: Array<string>;\r\n\r\n /** Time when authentication occurred */\r\n public auth_time: number;\r\n\r\n /** The client used to get the token */\r\n public client_id: string;\r\n\r\n /** Expiration time, seconds since Unix epoch */\r\n public exp: number;\r\n\r\n /** The identity provider */\r\n public idp: string;\r\n\r\n /** Issuer, who created and signed this token */\r\n public iss: string;\r\n\r\n /** Not valid before, seconds since Unix epoch */\r\n public nbf: number;\r\n\r\n /** Subject, whom the token refers to */\r\n public sub: string;\r\n\r\n /** The scopes the token was requested with */\r\n public get getScope(): Array<string> {\r\n if (typeof this.scope === 'string') {\r\n this.scope = [this.scope];\r\n }\r\n\r\n return this.scope;\r\n }\r\n\r\n /** The audience, who or what the token is intended for */\r\n public get getAud(): Array<string> {\r\n if (typeof this.aud === 'string') {\r\n this.aud = [this.aud];\r\n }\r\n\r\n return this.aud;\r\n }\r\n\r\n /** Gets claims for the user associated with the access token */\r\n public get claims(): AccessTokenClaims {\r\n return this._claims;\r\n }\r\n\r\n /** Sets claims for the user associate with the access token */\r\n public set claims(value: AccessTokenClaims) {\r\n this._claims = new AccessTokenClaims(value);\r\n }\r\n\r\n /**\r\n * Constructs the access Token\r\n * @param encodedToken The encoded Auth Token\r\n */\r\n constructor(encodedToken: string) {\r\n const base64Url = encodedToken.split('.')[1];\r\n const base64 = base64Url.replace(/-/g, '+')\r\n .replace(/_/g, '/');\r\n const jsonPayload = decodeURIComponent(atob(base64)\r\n .split('')\r\n .map(c =>\r\n // tslint:disable-next-line: restrict-plus-operands prefer-template\r\n '%' + ('00' + c.charCodeAt(0)\r\n .toString(16))\r\n .slice(-2))\r\n .join(''));\r\n const decodedToken: DecodedAccessToken = JSON.parse(jsonPayload);\r\n this.setAllProps(decodedToken);\r\n this.convertAllDualTypes();\r\n }\r\n\r\n /** Converts all the dual types to single types */\r\n private convertAllDualTypes(): void {\r\n this.getAud;\r\n this.getScope;\r\n }\r\n\r\n /**\r\n * Sets all the properties from an existing object\r\n * @param decodedToken The decoded token object\r\n */\r\n private setAllProps(decodedToken: DecodedAccessToken): void {\r\n this.amr = decodedToken.amr;\r\n this.aud = decodedToken.aud;\r\n this.auth_time = decodedToken.auth_time;\r\n this.client_id = decodedToken.client_id;\r\n this.exp = decodedToken.exp;\r\n this.idp = decodedToken.idp;\r\n this.iss = decodedToken.iss;\r\n this.nbf = decodedToken.nbf;\r\n this.scope = decodedToken.scope;\r\n this.sub = decodedToken.sub;\r\n }\r\n\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Inject, Injectable, Optional } from '@angular/core';\r\nimport { BehaviorSubject, Observable, of } from 'rxjs';\r\nimport { catchError, map } from 'rxjs/operators';\r\nimport { GlobalInjectionTokens } from '../../shared/models/constants';\r\nimport { InjectionTokens, keyPathPrefix } from '../models/constants';\r\nimport { ISsoResponseModel } from '../models/generated/iSsoResponseModel';\r\nimport { AccountManagementRefreshRequestModel, RefreshResponseModel } from '../models/generated/models';\r\nimport { DecodedAccessToken } from '../../rbac/models/decoded-access-token';\r\n\r\n/** The hybrid SAML Oauth Service */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class HybridSamlOauthService {\r\n\r\n /** The key path used for getting values from local storage */\r\n public readonly keyPath: string;\r\n\r\n /** The oauth access token */\r\n public get accessToken(): string {\r\n return this._accessToken;\r\n }\r\n\r\n /** The access token observable */\r\n public accessToken$: Observable<string>;\r\n\r\n /** Gets the hash */\r\n public get hash(): string {\r\n if (this.dataFormat === 'PascalCase') {\r\n return (this.rawData as any).Hash\r\n }\r\n\r\n return this.rawData.hash;\r\n }\r\n\r\n /** The raw data from local storage */\r\n private rawData: ISsoResponseModel;\r\n\r\n /** The access token */\r\n private _accessToken: string;\r\n\r\n /** The window */\r\n private readonly window: Window;\r\n\r\n /** The behavior subject for the access token */\r\n private readonly accessTokenBs: BehaviorSubject<string>;\r\n\r\n /** The armature access token key */\r\n private readonly accessTokenSessionStorageKey: string = 'Sof-Arm-Access-Token';\r\n\r\n /** The token endpoint */\r\n private tokenEndpoint: string;\r\n\r\n /**\r\n * Constructs the service\r\n * @param window The window\r\n * @param tokenEndpoint The full token endpoint URI\r\n * @param keyPathSuffix The key path suffix\r\n * @param tokenRefreshTimeMinutes The token refresh timer\r\n * @param browserStorageImplementation The browser storage implementation\r\n * @param httpClient The http client\r\n */\r\n constructor(\r\n // injection tokens\r\n @Optional() @Inject(InjectionTokens.window) private readonly windowGeneric: any,\r\n @Optional() @Inject(InjectionTokens.tokenEndpoint$) private readonly tokenEndpoint$: Observable<string>,\r\n @Optional() @Inject(InjectionTokens.keyPathSuffix) private readonly keyPathSuffix: string,\r\n @Optional() @Inject(GlobalInjectionTokens.browserStorageImplementation) private readonly browserStorageImplementation: string = 'local',\r\n @Optional() @Inject(GlobalInjectionTokens.tokenRefreshTimeMinutes) private readonly tokenRefreshTimeMinutes: number,\r\n @Optional() @Inject(InjectionTokens.dataFormat) private readonly dataFormat: string = 'camelCase',\r\n // services\r\n private readonly httpClient: HttpClient\r\n ) {\r\n const refreshTimeMinutes = this.tokenRefreshTimeMinutes || 20; // use 20 min token refresh time if non provided\r\n\r\n // set the token endpoint\r\n if (this.tokenEndpoint$) {\r\n this.tokenEndpoint$.subscribe(endpoint => this.tokenEndpoint = endpoint);\r\n }\r\n else {\r\n console.warn('InjectionTokens.tokenEndpoint$ is not provided');\r\n }\r\n\r\n // set the window to be strongly typed, compile error makes it so it can't be done in the constructor\r\n this.window = this.windowGeneric || window;\r\n\r\n // set the key path from the key path prefix and suffix\r\n this.keyPath = `${keyPathPrefix}${this.keyPathSuffix}`;\r\n\r\n // read values from local storage based on the key path\r\n const rawData = this.getRawData();\r\n if (!rawData) {\r\n const token = this.window.sessionStorage.getItem(this.accessTokenSessionStorageKey);\r\n this._accessToken = token;\r\n }\r\n else {\r\n if (this.dataFormat === 'PascalCase') {\r\n this.rawData = JSON.parse(rawData);\r\n this._accessToken = (this.rawData as any).AccessToken;\r\n }\r\n else {\r\n this.rawData = this.toCamel(JSON.parse(rawData));\r\n this._accessToken = this.rawData.accessToken;\r\n }\r\n // populate the access token\r\n this.window.sessionStorage.setItem(this.accessTokenSessionStorageKey, this._accessToken);\r\n }\r\n\r\n // set up the observable and behavior subject\r\n this.accessTokenBs = new BehaviorSubject(this._accessToken);\r\n this.accessToken$ = this.accessTokenBs.asObservable();\r\n\r\n try {\r\n if (this.accessToken) {\r\n const decoded = new DecodedAccessToken(this.accessToken);\r\n const currentDateMiliS = new Date().getTime();\r\n if ((decoded.exp * 1000) <= currentDateMiliS + (refreshTimeMinutes * 60000)) {\r\n this.refreshToken(this.tokenEndpoint);\r\n }\r\n }\r\n else {\r\n console.warn('Starting HybridSamlOAuthService without token');\r\n }\r\n }\r\n catch (e) {\r\n console.warn('starting HybridSamlOAuthService without token or malformed token', this.accessToken, e);\r\n }\r\n setInterval(() => {\r\n this.refreshToken(this.tokenEndpoint);\r\n }, refreshTimeMinutes * 60000); // x minutes times number of milliseconds in a minute\r\n }\r\n\r\n /** Returns the raw data casted to the provided type */\r\n public getAssertionData<T>(): T {\r\n if (this.dataFormat === 'PascalCase') {\r\n if (!this.rawData || !((this.rawData as any).Assertions)) {\r\n return undefined;\r\n }\r\n\r\n return (this.rawData as any).Assertions as T;\r\n }\r\n else {\r\n if (!this.rawData || !this.rawData.assertions) {\r\n return undefined;\r\n }\r\n\r\n return this.rawData.assertions as T;\r\n }\r\n }\r\n\r\n /**\r\n * Expires the session by clearing the service and local storage\r\n * @param shouldExpireBoth True if the both session and local storage should be expired\r\n */\r\n public expireSession(shouldExpireBoth: boolean = false): void {\r\n if (shouldExpireBoth) {\r\n this.window.localStorage.removeItem(this.keyPath);\r\n this.window.sessionStorage.removeItem(this.keyPath);\r\n this.window.sessionStorage.removeItem(this.accessTokenSessionStorageKey);\r\n this.rawData = undefined;\r\n\r\n return;\r\n }\r\n\r\n if (this.browserStorageImplementation === 'session') {\r\n this.window.sessionStorage.removeItem(this.keyPath);\r\n }\r\n else {\r\n this.window.localStorage.removeItem(this.keyPath);\r\n }\r\n this.window.sessionStorage.removeItem(this.accessTokenSessionStorageKey);\r\n\r\n this.rawData = undefined;\r\n }\r\n\r\n /**\r\n * Refreshes the access token using the provided endpoint\r\n * @param tokenEndpoint The full token endpoint\r\n */\r\n private refreshToken(tokenEndpoint: string): void {\r\n if (!this.rawData) {\r\n console.warn('No sso response model');\r\n return;\r\n }\r\n // make api call to get a token, uses assertions, hash, and assertion provider implementation string\r\n const req: AccountManagementRefreshRequestModel = {\r\n ssoResponseModel: this.rawData\r\n };\r\n this.httpClient.post<RefreshResponseModel>(tokenEndpoint, req)\r\n .pipe(\r\n map(res => {\r\n if (this.dataFormat === 'PascalCase') {\r\n (this.rawData as any).AccessToken = res.accessToken;\r\n }\r\n else {\r\n this.rawData.accessToken = res.accessToken;\r\n }\r\n this._accessToken = res.accessToken;\r\n this.window.localStorage.setItem(this.keyPath, JSON.stringify(this.rawData));\r\n this.window.sessionStorage.setItem(this.accessTokenSessionStorageKey, res.accessToken);\r\n this.accessTokenBs.next(this._accessToken);\r\n }),\r\n catchError(error => {\r\n console.error(error);\r\n\r\n return of(error);\r\n }))\r\n .subscribe(() => { });\r\n }\r\n\r\n /** gets the raw data */\r\n private getRawData(): any {\r\n const lsData = this.window.localStorage.getItem(this.keyPath);\r\n if (this.browserStorageImplementation === 'session') {\r\n // first move local storage data if there is any\r\n if (lsData) {\r\n this.window.sessionStorage.setItem(this.keyPath, lsData);\r\n this.window.localStorage.removeItem(this.keyPath);\r\n }\r\n\r\n // return the session storage data\r\n return this.window.sessionStorage.getItem(this.keyPath);\r\n }\r\n\r\n // otherwise return local storage data\r\n return lsData;\r\n }\r\n\r\n /**\r\n * converts object keys to camel case\r\n * https://stackoverflow.com/questions/12931828/convert-returned-json-object-properties-to-lower-first-camelcase\r\n * @param o The object\r\n */\r\n private toCamel(o: any): any {\r\n let newO;\r\n let origKey;\r\n let newKey;\r\n let value;\r\n if (o instanceof Array) {\r\n return o.map((value: any) => {\r\n if (typeof value === 'object') {\r\n value = this.toCamel(value);\r\n }\r\n\r\n return value;\r\n });\r\n }\r\n newO = {};\r\n // tslint:disable-next-line: no-for-in\r\n for (origKey in o) {\r\n if (o.hasOwnProperty(origKey)) {\r\n newKey = (`${origKey.charAt(0).toLowerCase()}${origKey.slice(1) || origKey}`).toString();\r\n value = o[origKey];\r\n if (value instanceof Array || (value !== null && value.constructor === Object)) {\r\n value = this.toCamel(value);\r\n }\r\n newO[newKey] = value;\r\n }\r\n }\r\n\r\n return newO;\r\n }\r\n}\r\n","/**\r\n * SSO Gateway\r\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\r\n *\r\n * OpenAPI spec version: 2\r\n * \r\n *\r\n * NOTE: This class is auto generated by the swagger code generator program.\r\n * https://github.com/swagger-api/swagger-codegen.git\r\n * Do not edit the class manually.\r\n */\r\nimport { Policy } from './policy';\r\n\r\n\r\n/**\r\n * The account management assertion model\r\n */\r\nexport interface AccountManagementAssertionModel { \r\n /**\r\n * Gets or sets the policies.\r\n */\r\n policies?: Array<Policy>;\r\n /**\r\n * Gets or sets the role.\r\n */\r\n role?: string;\r\n /**\r\n * Gets or sets the user identifier.\r\n */\r\n userId?: string;\r\n /**\r\n * Gets or sets the transaction identifier.\r\n */\r\n transactionId?: string;\r\n /**\r\n * Gets or sets the language preference.\r\n */\r\n languagePreference?: string;\r\n /**\r\n * Gets or sets the broker id.\r\n */\r\n brokerId?: string;\r\n}\r\n","/**\r\n * SSO Gateway\r\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\r\n *\r\n * OpenAPI spec version: 2\r\n * \r\n *\r\n * NOTE: This class is auto generated by the swagger code generator program.\r\n * https://github.com/swagger-api/swagger-codegen.git\r\n * Do not edit the class manually.\r\n */\r\nimport { AccountManagementAssertionModel } from './accountManagementAssertionModel';\r\n\r\n\r\n/**\r\n * The Account Management Response model\r\n */\r\nexport interface AccountManagementResponseModel { \r\n /**\r\n * Gets or sets the assertions.\r\n */\r\n assertions?: AccountManagementAssertionModel;\r\n /**\r\n * Gets or sets the issuer.\r\n */\r\n issuer?: string;\r\n /**\r\n * Gets or sets the audience.\r\n */\r\n audience?: string;\r\n /**\r\n * Gets or sets the destination.\r\n */\r\n destination?: string;\r\n /**\r\n * Gets or sets the hash.\r\n */\r\n hash?: string;\r\n /**\r\n * Gets or sets the key path.\r\n */\r\n keyPath?: string;\r\n /**\r\n * Gets or sets the access token.\r\n */\r\n accessToken?: string;\r\n}\r\n","/**\r\n * SSO Gateway\r\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\r\n *\r\n * OpenAPI spec version: 2\r\n * \r\n *\r\n * NOTE: This class is auto generated by the swagger code generator program.\r\n * https://github.com/swagger-api/swagger-codegen.git\r\n * Do not edit the class manually.\r\n */\r\n\r\n\r\n/**\r\n * The coverage detail model\r\n */\r\nexport interface CoverageDetail { \r\n /**\r\n * Gets or sets the start date.\r\n */\r\n startDate?: Date;\r\n /**\r\n * Gets or sets the end date.\r\n */\r\n endDate?: Date;\r\n /**\r\n * Gets or sets the premium amount.\r\n */\r\n premiumAmount?: number;\r\n /**\r\n * Gets or sets the tax credit amount.\r\n */\r\n taxCreditAmount?: number;\r\n /**\r\n * Gets or sets the CSR amount.\r\n */\r\n csrAmount?: number;\r\n /**\r\n * Gets or sets the status.\r\n */\r\n status?: CoverageDetail.StatusEnum;\r\n /**\r\n * Gets or sets the name of the plan.\r\n */\r\n planName?: string;\r\n /**\r\n * Gets or sets the name of the issuer.\r\n */\r\n issuerName?: string;\r\n /**\r\n * Gets or sets the plan identifier.\r\n */\r\n planId?: string;\r\n /**\r\n * Gets or sets the insurance line.\r\n */\r\n insuranceLine?: string;\r\n}\r\nexport namespace CoverageDetail {\r\n export type StatusEnum = 'Effectuated' | 'NotEffectuated';\r\n export const StatusEnum = {\r\n Effectuated: 'Effectuated' as StatusEnum,\r\n NotEffectuated: 'NotEffectuated' as StatusEnum\r\n };\r\n}\r\n","/**\r\n * SSO Gateway\r\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\r\n *\r\n * OpenAPI spec version: 2\r\n * \r\n *\r\n * NOTE: This class is auto generated by the swagger code generator program.\r\n * https://github.com/swagger-api/swagger-codegen.git\r\n * Do not edit the class manually.\r\n */\r\n\r\n\r\n/**\r\n * The finance model\r\n */\r\nexport interface Finance { \r\n /**\r\n * Gets or sets the status.\r\n */\r\n status?: string;\r\n /**\r\n * Gets or sets the premium amount due.\r\n */\r\n premiumAmountDue?: number;\r\n /**\r\n * Gets or sets the current amount due.\r\n */\r\n currentAmountDue?: number;\r\n /**\r\n * Gets or sets the payment due date.\r\n */\r\n paymentDueDate?: Date;\r\n /**\r\n * Gets or sets a value indicating whether this instance has automatic pay.\r\n */\r\n hasAutoPay?: boolean;\r\n}\r\n","/**\r\n * SSO Gateway\r\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\r\n *\r\n * OpenAPI spec version: 1\r\n * \r\n *\r\n * NOTE: This class is auto generated by the swagger code generator program.\r\n * https://github.com/swagger-api/swagger-codegen.git\r\n * Do not edit the class manually.\r\n */\r\n\r\n\r\n/**\r\n * The SSO response model\r\n */\r\nexport interface ISsoResponseModel { \r\n /**\r\n * Gets or sets the assertions.\r\n */\r\n assertions?: any;\r\n /**\r\n * Gets or sets the issuer.\r\n */\r\n issuer?: string;\r\n /**\r\n * Gets or sets the audience.\r\n */\r\n audience?: string;\r\n /**\r\n * Gets or sets the destination.\r\n */\r\n destination?: string;\r\n /**\r\n * Gets or sets the hash.\r\n */\r\n hash?: string;\r\n /**\r\n * Gets or sets the key path.\r\n */\r\n keyPath?: string;\r\n /**\r\n * Gets or sets the access token.\r\n */\r\n accessToken?: string;\r\n}\r\n","/**\r\n * SSO Gateway\r\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\r\n *\r\n * OpenAPI spec version: 2\r\n * \r\n *\r\n * NOTE: This class is auto generated by the swagger code generator program.\r\n * https://github.com/swagger-api/swagger-codegen.git\r\n * Do not edit the class manually.\r\n */\r\nimport { ISsoResponseModelAccountManagementAssertionModel } from './iSsoResponseModelAccountManagementAssertionModel';\r\n\r\n\r\n/**\r\n * The refresh request model\r\n */\r\nexport interface AccountManagementRefreshRequestModel { \r\n /**\r\n * Gets or sets the SSO response model.\r\n */\r\n ssoResponseModel: ISsoResponseModelAccountManagementAssertionModel;\r\n}\r\n","/**\r\n * SSO Gateway\r\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\r\n *\r\n * OpenAPI spec version: 2\r\n * \r\n *\r\n * NOTE: This class is auto generated by the swagger code generator program.\r\n * https://github.com/swagger-api/swagger-codegen.git\r\n * Do not edit the class manually.\r\n */\r\nimport { AccountManagementAssertionModel } from './accountManagementAssertionModel';\r\n\r\n\r\n/**\r\n * The SSo Response Model Interface\r\n */\r\nexport interface ISsoResponseModelAccountManagementAssertionModel { \r\n /**\r\n * Gets or sets the assertions.\r\n */\r\n assertions?: AccountManagementAssertionModel;\r\n /**\r\n * Gets or sets the issuer.\r\n */\r\n issuer?: string;\r\n /**\r\n * Gets or sets the audience.\r\n */\r\n audience?: string;\r\n /**\r\n * Gets or sets the destination.\r\n */\r\n destination?: string;\r\n /**\r\n * Gets or sets the hash.\r\n */\r\n hash?: string;\r\n /**\r\n * Gets or sets the key path.\r\n */\r\n keyPath?: string;\r\n /**\r\n * Gets or sets the access token.\r\n */\r\n accessToken?: string;\r\n}\r\n","/**\r\n * SSO Gateway\r\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\r\n *\r\n * OpenAPI spec version: 2\r\n * \r\n *\r\n * NOTE: This class is auto generated by the swagger code generator program.\r\n * https://github.com/swagger-api/swagger-codegen.git\r\n * Do not edit the class manually.\r\n */\r\n\r\nimport { Address } from \"../../../forms/forms-api\";\r\n\r\n\r\n/**\r\n * The person model\r\n */\r\nexport interface Person { \r\n /**\r\n * Gets or sets the exchange identifier.\r\n */\r\n exchangeId?: string;\r\n /**\r\n * Gets or sets the issuer id\r\n */\r\n issuerId?: string;\r\n /**\r\n * Gets or sets the dob.\r\n */\r\n dob?: Date;\r\n /**\r\n * Gets or sets the gender.\r\n */\r\n gender?: string;\r\n /**\r\n * Gets or sets the first name.\r\n */\r\n firstName?: string;\r\n /**\r\n * Gets or sets the last name.\r\n */\r\n lastName?: string;\r\n /**\r\n * Gets or sets the relationship.\r\n */\r\n relationship?: string;\r\n /**\r\n * Gets or sets the address.\r\n */\r\n address?: Address;\r\n /**\r\n * Gets or sets the SSN.\r\n */\r\n ssn?: string;\r\n}\r\n","/**\r\n * SSO Gateway\r\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\r\n *\r\n * OpenAPI spec version: 2\r\n * \r\n *\r\n * NOTE: This class is auto generated by the swagger code generator program.\r\n * https://github.com/swagger-api/swagger-codegen.git\r\n * Do not edit the class manually.\r\n */\r\nimport { CoverageDetail } from './coverageDetail';\r\nimport { Finance } from './finance';\r\nimport { Person } from './person';\r\n\r\n\r\n/**\r\n * The policy model\r\n */\r\nexport interface Policy { \r\n /**\r\n * Gets or sets the identifier.\r\n */\r\n id?: number;\r\n /**\r\n * Gets or sets the exchange identifier.\r\n */\r\n exchangeId?: string;\r\n /**\r\n * Gets or sets the issuer identifier\r\n */\r\n issuerId?: string;\r\n /**\r\n * Gets or sets the name.\r\n */\r\n name?: string;\r\n /**\r\n * Gets or sets the status.\r\n */\r\n status?: string;\r\n /**\r\n * Gets or sets the finance.\r\n */\r\n finance?: Finance;\r\n /**\r\n * Gets or sets the coverage details.\r\n */\r\n coverageDetails?: Array<CoverageDetail>;\r\n /**\r\n * Gets or sets the members.\r\n */\r\n members?: Array<Person>;\r\n}\r\n","/**\r\n * SSO Gateway\r\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\r\n *\r\n * OpenAPI spec version: 2\r\n * \r\n *\r\n * NOTE: This class is auto generated by the swagger code generator program.\r\n * https://github.com/swagger-api/swagger-codegen.git\r\n * Do not edit the class manually.\r\n */\r\n\r\n\r\n/**\r\n * The refresh response model\r\n */\r\nexport interface RefreshResponseModel { \r\n /**\r\n * Gets or sets the access token.\r\n */\r\n accessToken?: string;\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { HttpClientModule } from '@angular/common/http';\r\n\r\nimport { HybridSamlOauthService } from './services/hybrid-saml-oauth.service';\r\n\r\n/** The OAuth Module */\r\n@NgModule({\r\n declarations: [],\r\n imports: [\r\n CommonModule,\r\n HttpClientModule\r\n ],\r\n providers: [\r\n HybridSamlOauthService\r\n ]\r\n})\r\nexport class OauthModule { }\r\n","/**\r\n * Header authorization settings.\r\n */\r\nexport class HeaderAuthSettings {\r\n /**\r\n * Constructor.\r\n * @param clientId Client ID. \r\n * @param redirectUri Redirect URI.\r\n * @param issuer Issuer.\r\n * @param scope Scope.\r\n * @param skipIssuerCheck Skip issuer check flag.\r\n * @param logInText Log In Text.\r\n * @param logOutText Log Out Text.\r\n */\r\n constructor(\r\n public clientId: string = '',\r\n public redirectUri: string = '',\r\n public issuer: string = '',\r\n public scope: string = '',\r\n public skipIssuerCheck: boolean = true,\r\n public logInText: string = 'SIGN IN',\r\n public logOutText: string = 'SIGN OUT',\r\n public timeoutFactor: number = 9,\r\n public returnRoute: string = '',\r\n public postLogOutUrl: string = '',\r\n public loginUrl: string = ''\r\n ) { }\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output, Optional } from '@angular/core';\r\nimport { AuthConfig, JwksValidationHandler, OAuthService, OAuthStorage } from 'angular-oauth2-oidc/';\r\nimport { HybridSamlOauthService } from '../../../oauth/oauth-api';\r\nimport { preSignInRouteStorageKey } from '../../../shared/models/constants';\r\nimport { HeaderAuthSettings } from '../../models/header-auth.settings';\r\nimport { HeaderSettings, HeaderThemeSettings } from '../../models/header-models-api';\r\n\r\n/** The Header Component */\r\n@Component({\r\n selector: 'sof-ar-header',\r\n templateUrl: './header.component.html',\r\n styleUrls: ['./header.component.scss']\r\n})\r\nexport class ArmatureHeaderComponent implements OnInit {\r\n\r\n /** Component Input - the header settings */\r\n @Input() public settings: HeaderSettings = {};\r\n\r\n /** Component Input - the header theme settings */\r\n @Input() public themeSettings: HeaderThemeSettings = {};\r\n\r\n /** Authorization settings.*/\r\n @Input() public authSettings: HeaderAuthSettings;\r\n\r\n /** Event Emitter for if user is logged in. */\r\n @Output() public isLoggedInEE: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n /** SETTINGS */\r\n\r\n /** if the header is being paired with the armature navigation. this will auto create the room on mobile for the navigation icon */\r\n public armatureNavigation: boolean;\r\n\r\n /**\r\n * Whether to use the armature header overlay, does not mix with armature navigation\r\n * This instead will hide the right header content and display what's passed to it within the side nav.\r\n */\r\n public armatureHeaderOverlay: boolean;\r\n\r\n /** whether or not to display the logo */\r\n public displayLogo: boolean;\r\n\r\n /** the logo url */\r\n public logoUrl: string;\r\n\r\n /** the logo alt text */\r\n public logoAltText: string;\r\n\r\n /** whether or not to show the logo text, default false */\r\n public displayLogoText: boolean;\r\n\r\n /** the header logo text */\r\n public headerLogoText: string;\r\n\r\n /** whether or not to show the built in drop down menu, default false */\r\n public displayDropDownMenu: boolean;\r\n\r\n /** the drop down menu screen reader text */\r\n public dropDownMenuSRText: string;\r\n\r\n /** the drop down menu aria text */\r\n public dropDownAriaText: string;\r\n\r\n /** the header menu drop down icon */\r\n public headerDropDownIcon: string;\r\n\r\n /** whether or not to show the super header, default false */\r\n public displaySuperHeader: boolean;\r\n\r\n /** THEME SETTINGS */\r\n\r\n /** the header color */\r\n public headerColor: string;\r\n\r\n /** using color string icon color, overrides iconMatColor */\r\n public iconColor: string;\r\n\r\n /** Whether or not to add a drop shadow to the header, default true */\r\n public headerDropShadow: boolean;\r\n\r\n /** The color of the super header */\r\n public superHeaderColor: string;\r\n\r\n /** AUTH SETTINGS */\r\n\r\n /** Flag if user is logged in. */\r\n public isLoggedIn: boolean = false;\r\n\r\n /** Authorization Button Text. */\r\n public get authBtnText(): string {\r\n if (!this.authService) {\r\n return 'SIGN IN';\r\n }\r\n\r\n return this.isLoggedIn ? this.authSettings.logOutText : this.authSettings.logInText;\r\n }\r\n /**\r\n * Constructor.\r\n * @param authService OAuth Service.\r\n * @param authStorage OAuth Storage.\r\n * @param hybridAuthService Hybrid SAML Oauth service.\r\n */\r\n constructor(\r\n private readonly authService: OAuthService,\r\n private readonly authStorage: OAuthStorage,\r\n @Optional() private readonly hybridAuthService: HybridSamlOauthService\r\n ) { }\r\n\r\n /** On Init */\r\n public ngOnInit(): void {\r\n // basic settings\r\n this.settings.armatureNavigation != undefined ? this.armatureNavigation = this.settings.armatureNavigation : this.armatureNavigation = true;\r\n this.settings.armatureHeaderOverlay ? this.armatureHeaderOverlay = this.settings.armatureHeaderOverlay : this.armatureHeaderOverlay = false;\r\n\r\n this.settings.displayLogo ? this.displayLogo = this.settings.displayLogo : this.displayLogo = false;\r\n this.settings.logoUrl ? this.logoUrl = this.settings.logoUrl : this.logoUrl = './assets/logos/logo.svg';\r\n this.settings.logoAltText ? this.logoAltText = this.settings.logoAltText : this.logoAltText = 'the header logo';\r\n\r\n this.settings.displayLogoText ? this.displayLogoText = this.settings.displayLogoText : this.displayLogoText = false;\r\n this.settings.headerLogoText ? this.headerLogoText = this.settings.headerLogoText : this.headerLogoText = 'Softheon';\r\n\r\n this.settings.displayDropDownMenu ? this.displayDropDownMenu = this.settings.displayDropDownMenu : this.displayDropDownMenu = false;\r\n this.settings.dropDownMenuSRText ? this.dropDownMenuSRText = this.settings.dropDownMenuSRText : this.dropDownMenuSRText = 'Header Dropdown Menu';\r\n this.settings.dropDownAriaText ? this.dropDownAriaText = this.settings.dropDownAriaText : this.dropDownAriaText = 'Header Dropdown Menu button icon';\r\n this.settings.headerDropDownIcon ? this.headerDropDownIcon = this.settings.headerDropDownIcon : this.headerDropDownIcon = 'fad fa-user-circle';\r\n\r\n this.setHeaderThemeSettings();\r\n\r\n // set up oauth only when configs and issuer are provided\r\n if (this.authSettings && this.authSettings.issuer) {\r\n this.initializeAuthSettings();\r\n }\r\n }\r\n\r\n /**\r\n * Authorize User.\r\n */\r\n public authorizeUser(): void {\r\n if (this.authSettings) {\r\n if (!this.isLoggedIn) {\r\n if (this.authService.issuer !== this.authSettings.issuer) {\r\n this.authService.issuer = this.authSettings.issuer;\r\n }\r\n window.sessionStorage.setItem(preSignInRouteStorageKey, window.location.pathname.toLowerCase());\r\n this.authService.loadDiscoveryDocumentAndLogin()\r\n .then(logInSuccess => {\r\n if (logInSuccess) {\r\n this.isLoggedIn = true;\r\n }\r\n })\r\n .catch(e => {\r\n console.error(e);\r\n });\r\n } else {\r\n if (this.hybridAuthService) {\r\n this.hybridAuthService.expireSession(true);\r\n }\r\n this.authService.logOut();\r\n this.authStorage.removeItem('access_token');\r\n this.isLoggedIn = false;\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Initialize Authorization Settings.\r\n */\r\n private initializeAuthSettings(): void {\r\n const authConfig = new AuthConfig({\r\n clientId: this.authSettings.clientId,\r\n redirectUri: this.authSettings.redirectUri,\r\n issuer: this.authSettings.issuer,\r\n scope: this.authSettings.scope,\r\n skipIssuerCheck: this.authSettings.skipIssuerCheck,\r\n timeoutFactor: this.authSettings.timeoutFactor || 9,\r\n postLogoutRedirectUri: this.authSettings.postLogOutUrl,\r\n loginUrl: this.authSettings.loginUrl\r\n });\r\n\r\n this.authService.configure(authConfig);\r\n this.authService.issuer = this.authSettings.issuer;\r\n this.authService.strictDiscoveryDocumentValidation = false;\r\n this.authService.skipIssuerCheck = true;\r\n this.authService.tokenValidationHandler = new JwksValidationHandler();\r\n this.authService.setupAutomaticSilentRefresh();\r\n\r\n this.authService.loadDiscoveryDocumentAndTryLogin()\r\n .then(() => {\r\n const token = this.authService.getAccessToken();\r\n const isValid = !!token;\r\n this.isLoggedIn = isValid;\r\n this.isLoggedInEE.emit(this.isLoggedIn);\r\n })\r\n .catch(e => {\r\n console.error(e);\r\n });\r\n }\r\n\r\n /** Sets the header theme settings */\r\n private setHeaderThemeSettings(): void {\r\n // Super Header Settings\r\n this.settings.displaySuperHeader ? this.displaySuperHeader = this.settings.displaySuperHeader : this.displaySuperHeader = false;\r\n this.themeSettings && this.themeSettings.superHeaderColor\r\n ? this.superHeaderColor = this.themeSettings.superHeaderColor : this.superHeaderColor = '#000';\r\n\r\n // Header Theme Settings\r\n this.themeSettings && this.themeSettings.superHeaderColor ? this.headerColor = this.themeSettings.headerColor : this.headerColor = '';\r\n this.themeSettings && this.themeSettings.superHeaderColor ? this.iconColor = this.themeSettings.iconColor : this.iconColor = '#4DB6AC';\r\n this.themeSettings && this.themeSettings.superHeaderColor ?\r\n this.headerDropShadow = this.themeSettings.headerDropShadow : this.headerDropShadow = true;\r\n }\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { MobileHeaderNavSettings } from '../../models/mobile-header-nav.settings';\r\n\r\n/** The mobile header navigation component */\r\n@Component({\r\n selector: 'sof-ar-mobile-header-menu',\r\n templateUrl: './mobile-header-menu.component.html',\r\n styleUrls: ['./mobile-header-menu.component.scss']\r\n})\r\nexport class MobileHeaderMenuComponent implements OnInit {\r\n /** Component Input - the mobile header nav settings */\r\n @Input() public settings: MobileHeaderNavSettings = {};\r\n\r\n /** The menu icon */\r\n public menuIcon: string;\r\n\r\n /** The icon to close the menu */\r\n public closeMenuIcon: string;\r\n\r\n /** The icon color for the menu open/close */\r\n public iconColor: string;\r\n\r\n /** The current icon that should be displayed */\r\n public currentIcon: string;\r\n\r\n /** The mobile header height */\r\n public mobileHeaderHeight: number;\r\n\r\n /** Initializes the component */\r\n public ngOnInit(): void {\r\n this.settings.menuIcon ? this.menuIcon = this.settings.menuIcon : this.menuIcon = 'fas fa-bars';\r\n this.settings.closeMenuIcon ? this.closeMenuIcon = this.settings.closeMenuIcon : this.closeMenuIcon = 'fas fa-times';\r\n this.settings.iconColor ? this.iconColor = this.settings.iconColor : this.iconColor = '#808080';\r\n this.settings.mobileHeaderHeight ? this.mobileHeaderHeight = this.settings.mobileHeaderHeight : this.mobileHeaderHeight = 56;\r\n this.currentIcon = this.menuIcon;\r\n }\r\n\r\n /** Change the icon to the close menu icon */\r\n public changeToCloseIcon(): void {\r\n this.currentIcon = this.closeMenuIcon;\r\n document.body.style.overflow = 'hidden';\r\n }\r\n\r\n /** Change the icon to the menu icon */\r\n public changeToMenuIcon(): void {\r\n this.currentIcon = this.menuIcon;\r\n document.body.style.overflow = 'auto';\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FlexLayoutModule } from '@angular/flex-layout';\r\nimport { MatButtonModule, MatButtonToggleModule, MatIconModule, MatListModule, MatMenuModule, MatSidenavModule, MatToolbarModule } from '@angular/material';\r\nimport { RouterModule } from '@angular/router';\r\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\r\nimport { OAuthModule, OAuthService } from 'angular-oauth2-oidc';\r\nimport { ArmatureHeaderComponent } from './components/header/header.component';\r\nimport { MobileHeaderMenuComponent } from './components/mobile-header-menu/mobile-header-menu.component';\r\n\r\n/** The components */\r\nconst components = [\r\n ArmatureHeaderComponent,\r\n MobileHeaderMenuComponent\r\n];\r\n\r\n/** The material modules */\r\nconst materialModules = [\r\n MatToolbarModule,\r\n MatMenuModule,\r\n MatButtonToggleModule,\r\n MatButtonModule,\r\n MatIconModule,\r\n MatListModule,\r\n MatSidenavModule\r\n];\r\n\r\n@NgModule({\r\n declarations: [...components],\r\n imports: [\r\n CommonModule,\r\n RouterModule,\r\n TranslateModule,\r\n FlexLayoutModule,\r\n OAuthModule,\r\n ...materialModules\r\n ],\r\n exports: [\r\n ...components,\r\n ...materialModules\r\n ],\r\n providers: [TranslateService, OAuthService]\r\n})\r\nexport class ArmatureHeaderModule { }\r\n","import { MediaMatcher } from '@angular/cdk/layout';\r\nimport { ChangeDetectorRef, Component, Input, OnDestroy, OnInit, ViewChild } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\nimport { MatSidenav } from '@angular/material';\r\nimport { NavigationAdvancedSettings, NavigationSettings, NavigationThemeSettings, NavNode } from '../../models/nav-models-api';\r\n\r\n/**\r\n * The Navigation Component\r\n */\r\n@Component({\r\n selector: 'sof-ar-navigation',\r\n templateUrl: './navigation.component.html',\r\n styleUrls: ['./navigation.component.scss']\r\n})\r\nexport class ArmatureNavigationComponent implements OnInit, OnDestroy {\r\n /** The side mobile nav */\r\n @ViewChild('snav', { static: false }) public sidenav: MatSidenav;\r\n\r\n /** Component Input - the navigation data */\r\n @Input() public navigationData: NavNode[];\r\n\r\n /** Component Input - the navigation settings */\r\n @Input() public settings: NavigationSettings = {};\r\n\r\n /** Component Input - the navigation settings */\r\n @Input() public advancedSettings: NavigationAdvancedSettings = {};\r\n\r\n /** Component Input - the navigation settings */\r\n @Input() public themeSettings: NavigationThemeSettings = {};\r\n\r\n /** Mobile SubNav - whether or not the mobile SubNav is open */\r\n public isMobileSubNavOpen: boolean = false;\r\n\r\n /** Mobile SubNav -the data to be passed to the mobile SubNav */\r\n public currentMobileNav: NavNode;\r\n\r\n /** Settings - the font awesome menu icon */\r\n public fontAwesomeMenuIcon: string;\r\n\r\n /** Settings - the top gap on desktop screens for the MD component */\r\n public topGapDesktop: number;\r\n\r\n /** Settings - the top gap on mobile screens for the MD component */\r\n public topGapMobile: number;\r\n\r\n /** Settings - the margin on desktop screens for the MD component */\r\n public marginTopDesktop: number;\r\n\r\n /** Settings - the margin on mobile screens for the MD component */\r\n public marginTopMobile: number;\r\n\r\n /** Settings - the main menu text that appears in the mobile SubNav */\r\n public mainMenuText: string;\r\n\r\n /** Settings - the header height */\r\n public headerHeight: number;\r\n\r\n /** Settings - the menu button screen reader text */\r\n public menuButtonSRText: string;\r\n\r\n /** the mobile query */\r\n public mobileQuery: MediaQueryList;\r\n\r\n /** the mobile query listener */\r\n private readonly _mobileQueryListener: () => void;\r\n\r\n /**\r\n * the constructor\r\n * @param changeDetectorRef the change detector reference\r\n * @param media the media matcher\r\n * @param translate the translate service\r\n */\r\n constructor(\r\n private changeDetectorRef: ChangeDetectorRef,\r\n private media: MediaMatcher,\r\n private translate: TranslateService) {\r\n this.mobileQuery = media.matchMedia('(max-width: 959px)');\r\n this._mobileQueryListener = () => {\r\n changeDetectorRef.detectChanges();\r\n };\r\n // below if statement is for edge support since addEventListener doesn't exist for MediaQueryLists\r\n if (this.mobileQuery.addEventListener) {\r\n this.mobileQuery.addEventListener('change', this._mobileQueryListener);\r\n }\r\n else {\r\n this.mobileQuery.addListener(this._mobileQueryListener);\r\n }\r\n }\r\n\r\n /** On Init - configure the settings */\r\n public ngOnInit(): void {\r\n // basic settings\r\n this.settings.fontAwesomeMenuIcon ? this.fontAwesomeMenuIcon = this.settings.fontAwesomeMenuIcon : this.fontAwesomeMenuIcon = 'fas fa-bars';\r\n this.settings.mainMenuText ? this.mainMenuText = this.settings.mainMenuText : this.mainMenuText = 'Main Menu';\r\n this.settings.headerHeight ? this.headerHeight = this.settings.headerHeight : this.headerHeight = 60;\r\n this.settings.menuButtonSRText ? this.menuButtonSRText = this.settings.menuButtonSRText : this.menuButtonSRText = 'Menu Button';\r\n\r\n // advanced settings\r\n this.advancedSettings.topGapDesktop ? this.topGapDesktop = this.advancedSettings.topGapDesktop : this.topGapDesktop = 0;\r\n this.advancedSettings.topGapMobile ? this.topGapMobile = this.advancedSettings.topGapMobile : this.topGapMobile = this.headerHeight;\r\n this.advancedSettings.marginTopDesktop ? this.marginTopDesktop = this.advancedSettings.marginTopDesktop : this.marginTopDesktop = 0;\r\n this.advancedSettings.marginTopMobile ? this.marginTopMobile = this.advancedSettings.marginTopMobile : this.marginTopMobile = 0;\r\n\r\n // theme settings\r\n this.themeSettings.contentBgColor ? this.setThemeColor('content-bg-color', this.themeSettings.contentBgColor) : undefined;\r\n this.themeSettings.fontColor ? this.setThemeColor('font-color', this.themeSettings.fontColor) : undefined;\r\n this.themeSettings.bgGradientColor1 ? this.setThemeColor('bg-gradient-color-1', this.themeSettings.bgGradientColor1) : undefined;\r\n this.themeSettings.bgGradientColor2 ? this.setThemeColor('bg-gradient-color-2', this.themeSettings.bgGradientColor2) : undefined;\r\n this.themeSettings.borderRightColor ? this.setThemeColor('border-right-color', this.themeSettings.borderRightColor) : undefined;\r\n this.themeSettings.listBorderColor ? this.setThemeColor('list-border-color', this.themeSettings.listBorderColor) : undefined;\r\n this.themeSettings.highlightGradient1 ? this.setThemeColor('highlight-gradient-1', this.themeSettings.highlightGradient1) : undefined;\r\n this.themeSettings.highlightGradient2 ? this.setThemeColor('highlight-gradient-2', this.themeSettings.highlightGradient2) : undefined;\r\n this.themeSettings.subHighlightBorderColor ?\r\n this.setThemeColor('sub-highlight-border-color', this.themeSettings.subHighlightBorderColor) : undefined;\r\n this.themeSettings.subHighlightBgColor ?\r\n this.setThemeColor('sub-highlight-bg-color', this.themeSettings.subHighlightBgColor) : undefined;\r\n }\r\n\r\n /** On Destroy */\r\n public ngOnDestroy(): void {\r\n this.mobileQuery.removeEventListener('change', this._mobileQueryListener);\r\n }\r\n\r\n /**\r\n * Mobile SubNav - open the SubNav\r\n * @param nav the nav data to be passed to the SubNav\r\n */\r\n public openMobileSubNav(nav: NavNode): void {\r\n this.isMobileSubNavOpen = true;\r\n this.currentMobileNav = nav;\r\n this.sidenav.open();\r\n }\r\n\r\n /**\r\n * Mobile SubNav - closes the SubNav\r\n */\r\n public closeMobileSubNav(): void {\r\n this.isMobileSubNavOpen = false;\r\n this.sidenav.close();\r\n }\r\n\r\n /**\r\n * Sets the theme color\r\n * @param variable the css variable name\r\n * @param color the color\r\n */\r\n public setThemeColor(variable: string, color: string): void {\r\n document.documentElement.style.setProperty(`--sof-nav-${variable}`, color);\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { MatButtonModule, MatButtonToggleModule, MatIconModule, MatListModule, MatSidenavModule, MatSliderModule, MatSlideToggleModule } from '@angular/material';\r\nimport { RouterModule } from '@angular/router';\r\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\r\nimport { ArmatureNavigationComponent } from './components/navigation/navigation.component';\r\n\r\n/** The components */\r\nconst components = [\r\n ArmatureNavigationComponent\r\n];\r\n\r\n/** The material modules */\r\nconst materialModules = [\r\n MatSidenavModule,\r\n MatSliderModule,\r\n MatSlideToggleModule,\r\n MatButtonModule,\r\n MatButtonToggleModule,\r\n MatButtonModule,\r\n MatIconModule,\r\n MatListModule\r\n];\r\n\r\n/** The Navigation Module */\r\n@NgModule({\r\n declarations: [\r\n ...components\r\n ],\r\n imports: [\r\n CommonModule,\r\n RouterModule,\r\n TranslateModule,\r\n ...materialModules\r\n ],\r\n exports: [\r\n ...components,\r\n ...materialModules\r\n ],\r\n providers: [TranslateService]\r\n})\r\nexport class NavigationModule { }\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Inject, Injectable, Optional } from '@angular/core';\r\nimport { OAuthService } from 'angular-oauth2-oidc';\r\nimport { BehaviorSubject, Observable, of } from 'rxjs';\r\nimport { catchError, filter, share, take } from 'rxjs/operators';\r\nimport { GlobalInjectionTokens } from '../../shared/models/constants';\r\nimport { UserEntityServiceConfig } from '../../shared/models/user-entity-service-config';\r\nimport { AssertedUserModel } from '../client-generated/model/models';\r\n\r\n/** The user entity service */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class UserEntityService {\r\n\r\n /** The user observable */\r\n public readonly user$: Observable<AssertedUserModel>;\r\n\r\n /** True if the service is available for use */\r\n private isServiceAvailable: boolean;\r\n\r\n /** The get user partial url */\r\n private getUserPartial: string = 'api/userManagement/v1/user';\r\n\r\n /** The user call */\r\n private userCall: Promise<Array<AssertedUserModel>>;\r\n\r\n /** The user model and hash */\r\n private get _user(): AssertedUserModel {\r\n return this.userBS.value;\r\n }\r\n private set _user(val: AssertedUserModel) {\r\n this.userBS.next(val);\r\n }\r\n\r\n /** the user behavior subject */\r\n private readonly userBS: BehaviorSubject<AssertedUserModel> = new BehaviorSubject<AssertedUserModel>(undefined);\r\n\r\n /**\r\n * Constructs the service\r\n * @param oauthService The oathService\r\n * @param httpClient The http client\r\n * @param userEntityBaseUrl The user entity base url\r\n * @param userEntityServiceConfig The user entity service config\r\n */\r\n constructor(\r\n private readonly oauthService: OAuthService,\r\n private readonly httpClient: HttpClient,\r\n @Optional() @Inject(GlobalInjectionTokens.userEntityBaseUrl) private readonly userEntityBaseUrl: string,\r\n @Optional() @Inject(GlobalInjectionTokens.userEntityServiceConfig) readonly userEntityServiceConfig: UserEntityServiceConfig\r\n ) {\r\n // tslint:disable-next-line: no-parameter-reassignment\r\n this.userEntityBaseUrl = this.userEntityBaseUrl || '/';\r\n this.userEntityServiceConfig = !this.userEntityServiceConfig ? new UserEntityServiceConfig() : this.getConfigWithDefaults();\r\n this.getUserPartial = this.userEntityServiceConfig.getUserPartial || this.getUserPartial;\r\n this.user$ = this.userBS.asObservable()\r\n .pipe(filter(val => !!val));\r\n\r\n if (this.userEntityServiceConfig.getUserOnInit) {\r\n const interval = setInterval(() => {\r\n this.isServiceAvailable = this.oauthService.hasValidAccessToken();\r\n if (!this.isServiceAvailable) {\r\n return;\r\n }\r\n this.getUserFromApi()\r\n .then()\r\n .catch();\r\n clearInterval(interval);\r\n }, 100);\r\n }\r\n }\r\n\r\n /** Gets the user */\r\n public async getUser(): Promise<AssertedUserModel> {\r\n return new Promise((resolve, reject) => {\r\n this.user$.pipe(\r\n take(1),\r\n share(),\r\n catchError(e => {\r\n reject(e);\r\n\r\n return of(e);\r\n }))\r\n .subscribe(user => {\r\n resolve(user);\r\n });\r\n });\r\n }\r\n\r\n /**\r\n * Updates the user\r\n * @param user The new user model\r\n */\r\n public async updateUser(user?: AssertedUserModel): Promise<AssertedUserModel> {\r\n if (user) {\r\n this._user = user;\r\n\r\n return Promise.resolve(this._user);\r\n }\r\n\r\n await this.getUserFromApi();\r\n\r\n return this._user;\r\n }\r\n\r\n /** Returns true if the user meets the validation function provided */\r\n public validateUser(): boolean {\r\n if (this.userEntityServiceConfig && this._user) {\r\n return this.userEntityServiceConfig.validate(this._user);\r\n }\r\n\r\n return true;\r\n }\r\n\r\n /** Gets the user from the api */\r\n private async getUserFromApi(): Promise<void> {\r\n // use the local path if there is not base path provided\r\n return this.oauthService.discoveryDocumentLoaded$.pipe(take(1))\r\n .toPromise()\r\n .then(async () => {\r\n // append the issuer to the header of the request so the api knows what tenant to use\r\n const headers = new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n Authorization: `Bearer ${this.oauthService.getAccessToken()}`,\r\n // HACK: The oauth service likes to overwrite the configs with the results of the discovery document, this ensure the original configuration values are used\r\n 'Authorization-Tenant': (\r\n // tslint:disable-next-line: no-string-literal\r\n this.oauthService && this.oauthService['config'] && this.oauthService['config'].loginUrl ||\r\n this.oauthService && this.oauthService['config'] && this.oauthService['config'].issuer ||\r\n this.oauthService && this.oauthService.loginUrl ||\r\n this.oauthService && this.oauthService.issuer ||\r\n ''\r\n )\r\n .replace('/account/login', '')\r\n .replace('/connect/authorize', '')\r\n }\r\n );\r\n this.userCall = this.httpClient.get<Array<AssertedUserModel>>(\r\n `${this.userEntityBaseUrl}${this.getUserPartial}?subIdFromToken=true&createEmpty=true&withoutChildLinks=${!this.userEntityServiceConfig.includeLinks}`,\r\n { headers }\r\n )\r\n .toPromise();\r\n\r\n return this.userCall.then(res => {\r\n if (!res || res.length === 0) {\r\n console.error('No user entities found');\r\n }\r\n this._user = res[0];\r\n this.validateUser();\r\n })\r\n .catch(e => {\r\n console.error('UserEntityService encountered an error', e);\r\n throw e;\r\n });\r\n });\r\n }\r\n\r\n /** Sets the default values of the config */\r\n private getConfigWithDefaults(): UserEntityServiceConfig {\r\n const config = this.userEntityServiceConfig;\r\n config.validate = config.validate || ((user: AssertedUserModel): boolean => true);\r\n // tslint:disable-next-line: triple-equals\r\n config.getUserOnInit = config.getUserOnInit == undefined ? true : config.getUserOnInit;\r\n config.includeLinks = config.includeLinks == undefined ? true : config.includeLinks;\r\n config.getUserPartial = config.getUserPartial == undefined ? this.getUserPartial : config.getUserPartial;\r\n\r\n return config;\r\n }\r\n}\r\n","import { Directive, ElementRef, Input } from '@angular/core';\r\nimport { CssOverride } from '../models/css-override';\r\n\r\n// tslint:disable: prefer-for-of\r\n// tslint:disable: prefer-function-over-method\r\n/** The css override service */\r\n@Directive({\r\n selector: '[sofArCssOverride]'\r\n})\r\nexport class CssOverrideDirective {\r\n\r\n /** The css overrides */\r\n @Input() public sofArCssOverride: Array<CssOverride> = [];\r\n\r\n /** The changes mutation observer */\r\n private readonly changes: MutationObserver;\r\n\r\n /**\r\n * Constructs the directive\r\n */\r\n constructor(\r\n ) {\r\n this.changes = new MutationObserver((mutations: Array<MutationRecord>) => {\r\n this.overrideCss(this.sofArCssOverride);\r\n });\r\n this.changes.observe(document.body, {\r\n attributes: true,\r\n childList: true,\r\n characterData: true,\r\n subtree: true\r\n });\r\n }\r\n\r\n /**\r\n * Overrides the css on the page\r\n * @param overrides the css overrides\r\n */\r\n private overrideCss(overrides: Array<CssOverride>): void {\r\n overrides.forEach(cssOverride => {\r\n switch (cssOverride.selector) {\r\n case 'class':\r\n const elementsByClass = document.getElementsByClassName(cssOverride.parameter);\r\n for (let i = 0; i < elementsByClass.length; i++) {\r\n const e: HTMLElement = elementsByClass[i] as HTMLElement;\r\n cssOverride.attributes.forEach(attr => {\r\n e.style.setProperty(attr.name, attr.value, 'important');\r\n });\r\n }\r\n break;\r\n case 'tag':\r\n const elementsByTag = document.getElementsByTagName(cssOverride.parameter);\r\n for (let i = 0; i < elementsByTag.length; i++) {\r\n const e: HTMLElement = elementsByTag[i] as HTMLElement;\r\n cssOverride.attributes.forEach(attr => {\r\n e.style.setProperty(attr.name, attr.value, 'important');\r\n });\r\n }\r\n break;\r\n case 'id':\r\n default:\r\n const element = document.getElementById(cssOverride.parameter);\r\n cssOverride.attributes.forEach(attr => {\r\n element.style.setProperty(attr.name, attr.value, 'important');\r\n });\r\n break;\r\n }\r\n });\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ThemePaletteColorsModel, ThemePaletteModel } from '../../core/client-generated/model/models';\r\n\r\n/** The color palette constant */\r\nconst COLOR_PALETTE = 'color';\r\n\r\n/** The contrast palette constant */\r\nconst CONTRAST_PALETTE = 'contrast'\r\n\r\n/** The Theme Service */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ThemeService {\r\n\r\n /**\r\n * The theme service constructor\r\n */\r\n constructor() { }\r\n\r\n /**\r\n * Initializes the palette\r\n * @param themeConfig The theme configurations\r\n */\r\n public initPalette(themeConfig: ThemePaletteModel): void {\r\n if (themeConfig) {\r\n // Setting up primary color & contrast palettes\r\n const primaryColor = themeConfig.primaryColor;\r\n const primaryContrast = themeConfig.primaryContrast;\r\n if (primaryColor && JSON.stringify(primaryColor) !== '{}') {\r\n this.updatePalette('primary', COLOR_PALETTE, primaryColor);\r\n }\r\n if (primaryContrast && JSON.stringify(primaryContrast) !== '{}') {\r\n this.updatePalette('primary', CONTRAST_PALETTE, primaryContrast);\r\n }\r\n // Setting up accent color & contrast palettes\r\n const accentColor = themeConfig.accentColor;\r\n const accentContrast = themeConfig.accentContrast;\r\n if (accentColor && JSON.stringify(accentColor) !== '{}') {\r\n this.updatePalette('accent', COLOR_PALETTE, accentColor);\r\n }\r\n if (accentContrast && JSON.stringify(accentContrast) !== '{}') {\r\n this.updatePalette('accent', CONTRAST_PALETTE, accentContrast);\r\n }\r\n // Setting up warning color & contrast palettes\r\n const warningColor = themeConfig.warningColor;\r\n const warningContrast = themeConfig.warningContrast;\r\n if (warningColor && JSON.stringify(warningColor) !== '{}') {\r\n this.updatePalette('warn', COLOR_PALETTE, warningColor);\r\n }\r\n if (warningContrast && JSON.stringify(warningContrast) !== '{}') {\r\n this.updatePalette('warn', CONTRAST_PALETTE, warningContrast);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Updates the theme\r\n * @param paletteName Palette name\r\n * @param paletteType Palette type\r\n * @param palette Palette values\r\n */\r\n public updatePalette(paletteName: string, paletteType: string, palette: ThemePaletteColorsModel): void {\r\n if (paletteType == COLOR_PALETTE) {\r\n this.updateColor(paletteName, '50', palette.fifty);\r\n this.updateColor(paletteName, '100', palette.oneHundred);\r\n this.updateColor(paletteName, '200', palette.twoHundred);\r\n this.updateColor(paletteName, '300', palette.threeHundred);\r\n this.updateColor(paletteName, '400', palette.fourHundred);\r\n this.updateColor(paletteName, '500', palette.fiveHundred);\r\n this.updateColor(paletteName, '600', palette.sixHundred);\r\n this.updateColor(paletteName, '700', palette.sevenHundred);\r\n this.updateColor(paletteName, '800', palette.eightHundred);\r\n this.updateColor(paletteName, '900', palette.nineHundred);\r\n this.updateColor(paletteName, 'A100', palette.a100);\r\n this.updateColor(paletteName, 'A200', palette.a200);\r\n this.updateColor(paletteName, 'A400', palette.a400);\r\n this.updateColor(paletteName, 'A700', palette.a700);\r\n }\r\n else if (paletteType == CONTRAST_PALETTE) {\r\n this.updateContrast(paletteName, '50', palette.fifty);\r\n this.updateContrast(paletteName, '100', palette.oneHundred);\r\n this.updateContrast(paletteName, '200', palette.twoHundred);\r\n this.updateContrast(paletteName, '300', palette.threeHundred);\r\n this.updateContrast(paletteName, '400', palette.fourHundred);\r\n this.updateContrast(paletteName, '500', palette.fiveHundred);\r\n this.updateContrast(paletteName, '600', palette.sixHundred);\r\n this.updateContrast(paletteName, '700', palette.sevenHundred);\r\n this.updateContrast(paletteName, '800', palette.eightHundred);\r\n this.updateContrast(paletteName, '900', palette.nineHundred);\r\n this.updateContrast(paletteName, 'A100', palette.a100);\r\n this.updateContrast(paletteName, 'A200', palette.a200);\r\n this.updateContrast(paletteName, 'A400', palette.a400);\r\n this.updateContrast(paletteName, 'A700', palette.a700);\r\n }\r\n }\r\n\r\n /**\r\n * Updates the color css variable for the given theme\r\n * @param palette Palette to update\r\n * @param part Part number\r\n * @param value Value to replace with\r\n */\r\n public updateColor(palette: string, part: string, value: string): void {\r\n document.documentElement.style.setProperty(`--${palette}-color-${part}-parts`, value);\r\n }\r\n\r\n /**\r\n * Updates the color contrast css variable for the given theme\r\n * @param palette Palette to update\r\n * @param part Part number\r\n * @param value Value to replace with\r\n */\r\n public updateContrast(palette: string, part: string, value: string): void {\r\n document.documentElement.style.setProperty(`--${palette}-color-contrast-${part}-parts`, value);\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { CssOverrideDirective } from './directives/css-override.directive';\r\nimport { CssOverride } from './models/css-override';\r\n\r\nimport { ThemeService } from './services/theme.service';\r\n\r\n/** Armature saml module */\r\n@NgModule({\r\n declarations: [\r\n CssOverrideDirective\r\n ],\r\n imports: [\r\n CommonModule\r\n ],\r\n providers: [\r\n ThemeService\r\n ],\r\n exports: [\r\n CssOverrideDirective\r\n ]\r\n})\r\nexport class ThemeModule { }\r\n","import { Injector, NgModule } from '@angular/core';\r\nimport { SessionService as ServerSessionService } from './core/client-generated/api/session.service';\r\nimport { BASE_PATH } from './core/client-generated/variables';\r\nimport { SessionService } from './core/services/session.service';\r\nimport { ArmatureFooterModule } from './footer/footer.module';\r\nimport { FormsModule } from './forms/forms.module';\r\nimport { ArmatureHeaderModule } from './header/header.module';\r\nimport { NavigationModule } from './navigation/navigation.module';\r\nimport { GlobalInjectionTokens } from './shared/models/constants';\r\nimport { UserEntityService } from './core/services/user-entity.service';\r\nimport { ThemeModule } from './theming/theme.module';\r\n\r\n/** The package modules */\r\nconst packageModules = [\r\n FormsModule,\r\n NavigationModule,\r\n ArmatureHeaderModule,\r\n ArmatureFooterModule,\r\n ThemeModule\r\n];\r\n\r\n/**\r\n * Session base path factory\r\n * @param injector The angular injector\r\n */\r\nexport function sessionBasePathFactory(injector: Injector): string {\r\n const sessionBasePath = injector.get(GlobalInjectionTokens.sessionManagementBasePath, 'not-found');\r\n if (sessionBasePath !== 'not-found') {\r\n return sessionBasePath;\r\n }\r\n else {\r\n return undefined;\r\n }\r\n}\r\n\r\n/** The armature root module */\r\n@NgModule({\r\n declarations: [\r\n ],\r\n imports: [\r\n ...packageModules\r\n ],\r\n providers: [\r\n ServerSessionService,\r\n SessionService,\r\n UserEntityService,\r\n {\r\n provide: BASE_PATH,\r\n useFactory: sessionBasePathFactory,\r\n deps: [Injector]\r\n }\r\n ],\r\n exports: [\r\n ...packageModules\r\n ]\r\n})\r\nexport class ArmatureModule {\r\n\r\n /**\r\n * Constructs the module\r\n * Used to initialize services at module construction time\r\n * @param userEntityService The user entity service\r\n */\r\n constructor(\r\n userEntityService: UserEntityService\r\n ) { }\r\n\r\n}\r\n","import { ISamlRequest } from './i-saml-request';\r\n\r\n/** The redirect SAML request */\r\nexport class RedirectSamlRequest implements ISamlRequest {\r\n /** The redirect url that will be used for posting the SAML */\r\n public redirectUrl: string;\r\n\r\n /** The url to return to */\r\n public returnUrl: string;\r\n\r\n /** The OAuth 2.0 issuer */\r\n public oAuthIssuer: string;\r\n\r\n /** The OAuth 2.0 client id */\r\n public oAuthClientId: string;\r\n\r\n /** The OAuth 2.0 scopes, space delimited list */\r\n public oAuthScopes: string;\r\n\r\n /** The logo url */\r\n public logo: string;\r\n\r\n /** The theme */\r\n public theme: string;\r\n\r\n /** The CDN url for the theme */\r\n public themeCDN: string;\r\n\r\n /** The reference */\r\n public referenceId: string;\r\n\r\n /** The reference data */\r\n public referenceData: string;\r\n\r\n}\r\n","import { Observable, BehaviorSubject } from 'rxjs';\r\n\r\nimport { ISamlRequest } from '../../models/i-saml-request';\r\nimport { ISamlResponse } from '../../models/i-saml-response';\r\n\r\n/** The SAML service abstract class */\r\nexport abstract class AbstractSamlService {\r\n\r\n /** The post saml observable */\r\n abstract postSaml$: Observable<string>;\r\n\r\n /** The post saml behavior subject */\r\n abstract postSaml: BehaviorSubject<string> = new BehaviorSubject<string>('');\r\n\r\n /** The base saml request */\r\n abstract baseRequest: BehaviorSubject<ISamlRequest>;\r\n\r\n /** The base request observable */\r\n abstract baseRequest$: Observable<ISamlRequest>;\r\n\r\n /**\r\n * Gets the SAML\r\n * @param request The request\r\n * @param endpointUri The full endpoint uri\r\n */\r\n abstract getSaml(request: ISamlRequest, endpointUri: string): Observable<ISamlResponse>;\r\n}\r\n","import { AfterViewInit, Component, ElementRef, EventEmitter, Input, OnDestroy, OnInit, Output, ViewChild } from '@angular/core';\r\n\r\nimport { Subscription } from 'rxjs';\r\n\r\nimport { RedirectSamlRequest } from '../../models/redirect-saml-request';\r\nimport { AbstractSamlService } from '../../services/send-off/abstract-saml.service';\r\n\r\n/** The SAML redirect component */\r\n@Component({\r\n selector: 'saml-redirect-saml',\r\n templateUrl: './redirect-saml.component.html',\r\n styleUrls: ['./redirect-saml.component.css']\r\n})\r\nexport class RedirectSamlComponent implements OnInit, AfterViewInit, OnDestroy {\r\n\r\n /** The request used to get the SAML */\r\n @Input() public request: RedirectSamlRequest;\r\n\r\n /** The endpoint to use for getting the saml */\r\n @Input() public samlGetEndpointUri: string;\r\n\r\n /** The endpoint to post the saml to */\r\n @Input() public samlPostUrl: string;\r\n\r\n /** Event emitter for when the saml post is triggered */\r\n @Output() public readonly samlPostEvent: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n /** The saml submit button element reference */\r\n @ViewChild('samlSubmit', { static: false }) public samlSubmitBtn: ElementRef<HTMLButtonElement>;\r\n\r\n /** The saml input element reference */\r\n @ViewChild('samlInput', { static: false }) public samlInput: ElementRef<HTMLInputElement>;\r\n\r\n /** The SAML */\r\n public saml: string;\r\n\r\n /** The SAML post subscription */\r\n private readonly samlPostSubscription: Subscription;\r\n\r\n /** The saml subscription */\r\n private samlSubscription: Subscription;\r\n\r\n /**\r\n * Constructs the component\r\n * @param samlService The saml service\r\n */\r\n constructor(\r\n private readonly samlService: AbstractSamlService\r\n ) { }\r\n\r\n /** Life cycle hook from component initialization */\r\n public ngOnInit(): void {\r\n if (!this.validateComponentInputs()) {\r\n throw new Error('saml-redirect-saml component is missing required attributes');\r\n }\r\n this.samlService.baseRequest.next(this.request);\r\n }\r\n\r\n /** Life cycle hook for after component view initialization */\r\n public ngAfterViewInit(): void {\r\n // getting/posting is done here since they depend on each other and the button needs to exist\r\n\r\n // Subscribes to observable for posting a given saml\r\n this.samlSubscription = this.samlService.postSaml$.subscribe(saml => {\r\n if (saml) {\r\n this.saml = saml;\r\n setTimeout(() => {\r\n this.samlInput.nativeElement.value = saml;\r\n this.samlSubmitBtn.nativeElement.click();\r\n }, 50);\r\n }\r\n });\r\n\r\n }\r\n\r\n /** Life cycle hook for component destruction */\r\n public ngOnDestroy(): void {\r\n this.samlPostSubscription.unsubscribe();\r\n this.samlSubscription.unsubscribe();\r\n }\r\n\r\n /** Validates that component required component inputs are provided */\r\n private validateComponentInputs(): boolean {\r\n let errorCount = 0;\r\n if (!this.request) {\r\n console.error('saml-redirect-saml: Attribute \"request\" is required');\r\n errorCount++;\r\n }\r\n\r\n if (!this.samlGetEndpointUri) {\r\n console.error('saml-redirect-saml: Attribute \"samlGetEndpointUri\" is required');\r\n errorCount++;\r\n }\r\n\r\n if (!this.samlPostUrl) {\r\n console.error('saml-redirect-saml: Attribute \"samlPostUrl\" is required');\r\n errorCount++;\r\n }\r\n return errorCount === 0;\r\n }\r\n\r\n}\r\n","/** The SAML request interface */\r\nexport interface ISamlRequest {\r\n redirectUrl: string;\r\n}\r\n","/** The SAML response interface */\r\nexport interface ISamlResponse {\r\n saml: string;\r\n}\r\n","/** The Sso Gateway de-serialized SAML model */\r\nexport class SsoGatewayModel {\r\n /** The assertions dictionary */\r\n public Assertions: { [key: string]: string };\r\n\r\n /** The issuer of the saml */\r\n public Issuer: string;\r\n\r\n /** The audience of the saml */\r\n public Audience: string;\r\n\r\n /** The destination of the saml */\r\n public Destination: string;\r\n\r\n /** The hash of the assertions */\r\n public Hash: string;\r\n\r\n /** The Key Path suffix used for storing the values */\r\n public KeyPath: string;\r\n}\r\n","import { Observable } from 'rxjs';\r\nimport { SsoGatewayModel } from '../../models/sso-gateway-model';\r\n\r\n/** The abstract saml entry service */\r\nexport abstract class AbstractSamlEntryService {\r\n\r\n /** The key path prefix */\r\n public abstract keyPathPrefix: string;\r\n\r\n /**\r\n * Reads the values for the provided key path\r\n * @param keyPath The key path\r\n */\r\n public abstract readValue(keyPath: string): SsoGatewayModel;\r\n\r\n /**\r\n * Deletes value associated with the provided key path\r\n * @param keyPath The key path\r\n */\r\n public abstract deleteValue(keyPath: string): void;\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { BehaviorSubject, Observable, throwError } from 'rxjs';\r\nimport { publish } from 'rxjs/operators';\r\n\r\nimport { AbstractSamlEntryService } from './abstract-saml-entry.service';\r\nimport { SsoGatewayModel } from '../../models/sso-gateway-model';\r\n\r\n// IndexedDB set up\r\nconst wind = <any> window;\r\n//wind.indexedDB = wind.indexedDB || wind.mozIndexedDB || wind.webkitIndexedDB || wind.msIndexedDB;\r\nwind.IDBTransaction = wind.IDBTransaction || wind.webkitIDBTransaction || wind.msIDBTransaction || {\r\n READ_WRITE: \"readwrite\"\r\n};\r\nwind.IDBKeyRange = wind.IDBKeyRange || wind.webkitIDBKeyRange || wind.msIDBKeyRange;\r\n\r\nif (!window.indexedDB) {\r\n console.error('browser does not support a stable version IndexedDB');\r\n}\r\n\r\n/** The SAML entry service */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SsoGatewayEntryService extends AbstractSamlEntryService {\r\n\r\n /** The key path prefix */\r\n public keyPathPrefix: string = 'SsoGateway-';\r\n\r\n /** Constructs the service */\r\n constructor() {\r\n super();\r\n }\r\n\r\n /**\r\n * Reads the values for the provided key path\r\n * @param keyPath The key path\r\n */\r\n public readValue(keyPath: string): SsoGatewayModel {\r\n const data = window.localStorage.getItem(`${this.keyPathPrefix}${keyPath}`);\r\n return JSON.parse(data);\r\n }\r\n\r\n /**\r\n * Deletes the value associated with the provided key path\r\n * @param keyPath The key path\r\n */\r\n public deleteValue(keyPath: string): void {\r\n window.localStorage.removeItem(`${this.keyPathPrefix}${keyPath}`);\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\n\r\nimport { Observable, BehaviorSubject } from 'rxjs';\r\n\r\nimport { ISamlRequest } from '../../models/i-saml-request';\r\nimport { ISamlResponse } from '../../models/i-saml-response';\r\nimport { AbstractSamlService } from './abstract-saml.service';\r\nimport { RedirectSamlRequest } from '../../models/models-api';\r\n\r\n/** The SAML service */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SamlService extends AbstractSamlService {\r\n\r\n /** The post saml observable */\r\n public postSaml$: Observable<string>;\r\n\r\n /** The post saml behavior subject */\r\n public postSaml: BehaviorSubject<string> = new BehaviorSubject<string>('');\r\n\r\n /** The base saml request behavior subject */\r\n public baseRequest: BehaviorSubject<RedirectSamlRequest> = new BehaviorSubject<RedirectSamlRequest>(undefined);\r\n\r\n /** The base saml request behavior subject */\r\n public baseRequest$: Observable<RedirectSamlRequest>;\r\n\r\n /**\r\n * Constructs the service\r\n * @param http The http client\r\n */\r\n constructor(\r\n private readonly http: HttpClient\r\n ) {\r\n super();\r\n this.postSaml$ = this.postSaml.asObservable();\r\n this.baseRequest$ = this.baseRequest.asObservable();\r\n }\r\n\r\n /**\r\n * Gets the saml with provided body from the given endpoint\r\n * @param request The request body\r\n * @param endpointUri The full endpoint uri for getting the saml\r\n */\r\n public getSaml(request: ISamlRequest, endpointUri: string): Observable<ISamlResponse> {\r\n return this.http.post<ISamlResponse>(endpointUri, request);\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\n\r\nimport { RedirectSamlComponent } from './components/components-api';\r\nimport { AbstractSamlEntryService, AbstractSamlService, SamlService, SsoGatewayEntryService } from './services/services-api';\r\n\r\n/** The saml components */\r\nconst components = [\r\n RedirectSamlComponent\r\n];\r\n\r\n/** The implementations for the saml services */\r\nconst abstractServices = [\r\n { provide: AbstractSamlEntryService, useClass: SsoGatewayEntryService },\r\n { provide: AbstractSamlService, useClass: SamlService }\r\n];\r\n\r\n/** Armature saml module */\r\n@NgModule({\r\n declarations: [\r\n ...components\r\n ],\r\n imports: [\r\n CommonModule,\r\n ],\r\n providers: [\r\n ...abstractServices\r\n ],\r\n exports: [\r\n ...components\r\n ]\r\n})\r\nexport class SamlModule { }\r\n","/** The Navigation (Parent) Node Model */\r\nexport interface NavNode {\r\n /** the parent node title */\r\n text: string;\r\n\r\n /** the parent node fontAwesomeIcon */\r\n fontAwesomeIcon?: string;\r\n\r\n /** the parent node route */\r\n route?: string;\r\n\r\n /** the parent node sub-nodes */\r\n subNodes?: SubNavNodes[];\r\n}\r\n\r\n/** The Sub-Navigation (Child) Node Model */\r\nexport interface SubNavNodes {\r\n /** the sub-node title */\r\n text: string;\r\n\r\n /** the sub-node route */\r\n route: string;\r\n}\r\n","/** the Navigation Settings */\r\nexport interface NavigationSettings {\r\n /** the Header Menu FontAwesome icon */\r\n fontAwesomeMenuIcon?: string;\r\n\r\n /** the main menu text that appears in the mobile SubNav */\r\n mainMenuText?: string;\r\n\r\n /** the header height */\r\n headerHeight?: number;\r\n\r\n /** menu button screen reader text */\r\n menuButtonSRText?: string;\r\n}\r\n\r\n/** The Advanced Settings */\r\nexport interface NavigationAdvancedSettings {\r\n /** the top gap on desktop screens for the MD component */\r\n topGapDesktop?: number;\r\n\r\n /** the top gap on mobile screens for the MD component */\r\n topGapMobile?: number;\r\n\r\n /** the margin on desktop screens for the MD component */\r\n marginTopDesktop?: number;\r\n\r\n /** the margin on mobile screens for the MD component */\r\n marginTopMobile?: number;\r\n}\r\n","/** The Theme Settings */\r\nexport interface NavigationThemeSettings {\r\n /** the content background color */\r\n contentBgColor?: string;\r\n\r\n /** the navigation overall font color */\r\n fontColor?: string;\r\n\r\n /** the background gradient color 2 */\r\n bgGradientColor1?: string;\r\n\r\n /** the background gradient color 2 */\r\n bgGradientColor2?: string;\r\n\r\n /** the overall border right color */\r\n borderRightColor?: string;\r\n\r\n /** the list border color */\r\n listBorderColor?: string;\r\n\r\n /** the nav highlight gradient color 1 */\r\n highlightGradient1?: string;\r\n\r\n /** the nav highlight gradient color 2 */\r\n highlightGradient2?: string;\r\n\r\n /** the SubNav highlight border color */\r\n subHighlightBorderColor?: string;\r\n\r\n /** the SubNav highlight bg color */\r\n subHighlightBgColor?: string;\r\n}\r\n","import { RoutePath } from '../../shared/models/route-path';\r\nimport { Styles } from '../../shared/models/styles';\r\n\r\n/** the Header Settings */\r\nexport interface HeaderSettings {\r\n /** if the header is being paired with the armature navigation. this will auto create the room on mobile for the navigation icon */\r\n armatureNavigation?: boolean;\r\n\r\n /**\r\n * Whether to use the armature header overlay, does not mix with armature navigation\r\n * This instead will hide the right header content and display what's passed to it within the side nav.\r\n */\r\n armatureHeaderOverlay?: boolean;\r\n\r\n /** whether or not to display the logo, default false */\r\n displayLogo?: boolean;\r\n\r\n /** the logo url */\r\n logoUrl?: string;\r\n\r\n /** the logo alt text */\r\n logoAltText?: string;\r\n\r\n /** whether or not to show the logo text, default false */\r\n displayLogoText?: boolean;\r\n\r\n /** the header logo text */\r\n headerLogoText?: string;\r\n\r\n /** whether or not to show the built in drop down menu, default false */\r\n displayDropDownMenu?: boolean;\r\n\r\n /** the drop down menu screen reader text */\r\n dropDownMenuSRText?: string;\r\n\r\n /** the drop down menu aria text */\r\n dropDownAriaText?: string;\r\n\r\n /** the header menu drop down icon */\r\n headerDropDownIcon?: string;\r\n\r\n /** the link from the header logo */\r\n logoRouterLink?: string;\r\n\r\n /** The logo router link path */\r\n logoRouterLinkPath?: RoutePath;\r\n\r\n /** whether or not to show the super header, default false */\r\n displaySuperHeader?: boolean;\r\n\r\n /** The header custom styles */\r\n headerStyles?: Styles;\r\n\r\n /** The logo custom styles */\r\n logoStyles?: Styles;\r\n\r\n /** Flag for displaying auth info. */\r\n displayAuthInfo?: boolean;\r\n}\r\n","/** the Header Theme Settings */\r\nexport interface HeaderThemeSettings {\r\n\r\n /** the header color - uses a neutral background color based on the current theme (light or dark). can be primary, secondary, or warn */\r\n headerColor?: string;\r\n\r\n /** using color string icon color */\r\n iconColor?: string;\r\n\r\n /** whether or not to add a drop shadow to the header, default true */\r\n headerDropShadow?: boolean;\r\n\r\n /** the super header color */\r\n superHeaderColor?: string;\r\n}\r\n","/** The mobile header nav settings */\r\nexport interface MobileHeaderNavSettings {\r\n /** The icon color for the menu icons */\r\n iconColor?: string;\r\n /** The menu icon */\r\n menuIcon?: string;\r\n /** The close menu icon */\r\n closeMenuIcon?: string;\r\n /** The mobile header height */\r\n mobileHeaderHeight?: number;\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { RoleNavService } from '../services/role-nav.service';\r\nimport { RbacConfig } from './rbac-config';\r\n\r\n/** The injection tokens */\r\nexport class RbacInjectionTokens {\r\n\r\n /** the token delegate injection token */\r\n public static accessToken$: InjectionToken<Observable<string>> = new InjectionToken<string>('AccessToken$');\r\n\r\n /** The RBAC configuration injection token */\r\n public static rbacConfig: InjectionToken<RbacConfig> = new InjectionToken<RbacConfig>('RbacConfig');\r\n\r\n /** True if role actions should be disabled */\r\n public static disableRoleActions: InjectionToken<boolean> = new InjectionToken<boolean>('DisableRoleActions');\r\n}\r\n","import { RoleAccess } from './role-access';\r\n\r\n/** The Role Based Access Control (RBAC) configuration */\r\nexport class RbacConfig {\r\n /** The role configuration */\r\n public roleConfig: { [key: string]: RoleAccess };\r\n}\r\n","import { NavNode } from '../../navigation/models/navigation';\r\nimport { RbacConfig } from '../models/rbac-config';\r\n\r\n/** The role navigation service interface */\r\nexport abstract class RoleNavService {\r\n /**\r\n * Creates a new navigation config using the provided default navigation config and the RABC configuration\r\n * @param defaultNav The default navigation config\r\n * @param rbacConfig The rbac config used for limiting the navigation\r\n * @param roles the array of roles\r\n */\r\n public abstract createRoleControlledNavigation(defaultNav: Array<NavNode>, rbacConfig: RbacConfig, roles: Array<string>): Array<NavNode>;\r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Inject, Injectable } from '@angular/core';\r\nimport { Observable, of, ReplaySubject } from 'rxjs';\r\nimport { catchError, map } from 'rxjs/operators';\r\nimport { NavNode } from '../../navigation/navigation-api';\r\nimport { GlobalInjectionTokens } from '../../shared/models/constants';\r\nimport { AccessTokenClaims } from '../models/access-token-claims';\r\nimport { RbacInjectionTokens } from '../models/constants';\r\nimport { DecodedAccessToken } from '../models/decoded-access-token';\r\nimport { RbacConfig } from '../models/rbac-config';\r\nimport { RoleNavService } from './role-nav.service';\r\n\r\n/**\r\n * The oauth 2 role service\r\n * Supplies the role using an OAuth 2.0 access token\r\n */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class Oauth2RoleService {\r\n\r\n /** The decoded access token behavior subject */\r\n private readonly decodeToken: ReplaySubject<DecodedAccessToken> = new ReplaySubject(undefined);\r\n\r\n /** The current access token */\r\n public token: string;\r\n\r\n /** The decoded access token */\r\n public decodedToken$: Observable<DecodedAccessToken>;\r\n\r\n /**\r\n * Constructs the service\r\n * @param accessTokenDelegate The function for retrieving an access token\r\n * @param userInfoEndpoint The user info endpoint for retrieving claims for the given user\r\n * @param rbacConfig The Role Based Access Control configuration\r\n * @param httpClient The HTTP client\r\n * @param roleNavService The role nav service\r\n */\r\n constructor(\r\n // injection tokens\r\n @Inject(RbacInjectionTokens.accessToken$) private readonly accessToken$: Observable<string>,\r\n @Inject(GlobalInjectionTokens.userInfoEndpoint) private readonly userInfoEndpoint: string,\r\n @Inject(RbacInjectionTokens.rbacConfig) private readonly rbacConfig: RbacConfig,\r\n @Inject(RbacInjectionTokens.disableRoleActions) private readonly disableRoleActions: boolean,\r\n // dependencies\r\n private readonly httpClient: HttpClient,\r\n private readonly roleNavService: RoleNavService\r\n ) {\r\n // get the token initially then update it based on injected refresh time\r\n this.decodedToken$ = this.decodeToken.asObservable();\r\n this.accessToken$.subscribe(token => {\r\n this.token = token;\r\n if (!this.token) {\r\n return;\r\n }\r\n const decoded = new DecodedAccessToken(this.token);\r\n\r\n // create the headers for the user info call with the existing access token\r\n const headers = new HttpHeaders({ Authorization: `Bearer ${this.token}`, 'Access-Control-Allow-Origin': '*' });\r\n this.httpClient.get<AccessTokenClaims>(this.userInfoEndpoint, { headers })\r\n .pipe(\r\n // map the results to the props\r\n map(res => {\r\n decoded.claims = res;\r\n this.decodeToken.next(decoded);\r\n }),\r\n // continue on error and log to console\r\n catchError(error => {\r\n console.error(`Unable to retrieve user info for: ${this.token}`, error);\r\n\r\n return of(error);\r\n }))\r\n .subscribe();\r\n });\r\n\r\n }\r\n\r\n /**\r\n * Gets the role controlled navigation configuration\r\n * @param defaultNav The default navigation\r\n * @param roles The roles of the user\r\n */\r\n public getControlledNavObject(defaultNav: Array<NavNode>, roles: Array<string>): Array<NavNode> {\r\n return this.roleNavService.createRoleControlledNavigation(defaultNav, this.rbacConfig, roles);\r\n }\r\n\r\n /**\r\n * Determines if the current token has access to the action\r\n * @param action The action to check access for\r\n */\r\n public hasActionAccess(action: string): Observable<boolean> {\r\n if (this.disableRoleActions) {\r\n return of(true);\r\n }\r\n\r\n return this.decodedToken$.pipe(map(token => {\r\n const roles = token.claims.getRole;\r\n // if no roles, no action access\r\n if (!roles || roles.length === 0) {\r\n return false;\r\n }\r\n // flatten role config into one set of actions for all the actions for the user\r\n const flattenedActions: Set<string> = new Set<string>();\r\n roles.forEach(role => {\r\n const roleConfig = this.rbacConfig.roleConfig[role];\r\n if (!roleConfig || !roleConfig.actions || !roleConfig.actions.length) {\r\n return false;\r\n }\r\n roleConfig.actions.forEach(a => flattenedActions.add(a.toLowerCase()));\r\n });\r\n\r\n return flattenedActions.has(action.toLowerCase());\r\n }));\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { NavNode } from '../../navigation/models/navigation';\r\nimport { RbacConfig } from '../models/rbac-config';\r\nimport { RoleNavService } from './role-nav.service';\r\n\r\n/** The armature role navigation service */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ArRoleNavService implements RoleNavService {\r\n\r\n /** Constructs the service */\r\n constructor() { }\r\n\r\n /**\r\n * Creates a new navigation configuration using the provided RBAC configuration\r\n * @param defaultNav The default navigation configuration\r\n * @param rbacConfig The rbac configuration\r\n * @param roles The roles\r\n */\r\n public createRoleControlledNavigation(defaultNav: Array<NavNode>, rbacConfig: RbacConfig, roles: Array<string>): Array<NavNode> {\r\n const controlledNav: Array<NavNode> = [];\r\n // flatten role config into one set of pages for all the roles for the user\r\n const flattenedPages: Set<string> = new Set<string>();\r\n let roleFound = false;\r\n roles.forEach(role => {\r\n const roleConfig = rbacConfig.roleConfig[role];\r\n if (roleConfig) {\r\n roleFound = true;\r\n // if they have at least one role where they have access to everything give access to everything\r\n if (!roleConfig.pages || roleConfig.pages.length === 0) {\r\n flattenedPages.clear();\r\n\r\n return;\r\n }\r\n roleConfig.pages.forEach(page => {\r\n flattenedPages.add(page);\r\n });\r\n }\r\n });\r\n if (flattenedPages.size === 0 && !roleFound) {\r\n console.warn(`no role matching: ${roles.join(', ')} found, no access is provided`);\r\n\r\n return controlledNav;\r\n }\r\n\r\n // if the user has no pages, give them access to all of the stuff\r\n if (flattenedPages.size === 0 && roleFound) {\r\n return defaultNav;\r\n }\r\n\r\n // loop over each level 1 node\r\n const deepCopyDefaultNav: Array<NavNode> = JSON.parse(JSON.stringify(defaultNav));\r\n deepCopyDefaultNav.forEach(n1 => {\r\n // first check which n2 are listed\r\n const foundSubNodes = [];\r\n n1.subNodes.forEach(sn => {\r\n if (this.isRouteMatch(Array.from(flattenedPages.values()), sn.route)) {\r\n foundSubNodes.push(sn);\r\n }\r\n });\r\n\r\n n1.subNodes = foundSubNodes;\r\n // if level 2 nodes found or level 1 is a route match, add the level 1 node\r\n if (foundSubNodes.length > 0 || (n1.route && this.isRouteMatch(Array.from(flattenedPages.values()), n1.route))) {\r\n controlledNav.push(n1);\r\n }\r\n });\r\n\r\n return controlledNav;\r\n }\r\n\r\n /**\r\n * Determines if the route is found in the pages array\r\n * @param pages The pages\r\n * @param route The route\r\n */\r\n private isRouteMatch(pages: Array<string>, route: string): boolean {\r\n // check wild card\r\n return pages.some(p => {\r\n if (p.indexOf('**') > -1) {\r\n const baseRoute = p.replace('/**/', '')\r\n .replace('**/', '')\r\n .replace('/**', '')\r\n .replace('**', '')\r\n .toLowerCase();\r\n\r\n if (route.toLowerCase()\r\n .indexOf(baseRoute) > -1) {\r\n return true;\r\n }\r\n }\r\n else if (route.toLowerCase() === p.toLowerCase()) {\r\n return true;\r\n }\r\n });\r\n }\r\n}\r\n","import { Directive, TemplateRef, ViewContainerRef, Input, OnInit, OnDestroy } from '@angular/core';\r\nimport { Oauth2RoleService } from '../services/oauth2-role.service';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Directive({\r\n selector: '[sofArRbacAction]'\r\n})\r\nexport class RbacActionDirective implements OnInit, OnDestroy {\r\n\r\n /** The action of the directive */\r\n @Input() public sofArRbacAction: string;\r\n\r\n /** The directive subscription */\r\n private readonly directiveSub: Subscription = new Subscription();\r\n\r\n /** True if content is rendered */\r\n private isContentRendered: boolean;\r\n\r\n /**\r\n * Constructs the component\r\n * @param templateRef The template reference\r\n * @param viewContainer The view container reference\r\n * @param oAuth2RoleService The oauth 2 role service\r\n */\r\n constructor(\r\n private readonly templateRef: TemplateRef<any>,\r\n private readonly viewContainer: ViewContainerRef,\r\n private readonly oAuth2RoleService: Oauth2RoleService\r\n ) { }\r\n\r\n /** Life cycle hook for directive initialization */\r\n public ngOnInit(): void {\r\n this.directiveSub.add(this.oAuth2RoleService.hasActionAccess(this.sofArRbacAction)\r\n .subscribe(hasAccess => {\r\n if (hasAccess) {\r\n if (!this.isContentRendered) {\r\n this.viewContainer.createEmbeddedView(this.templateRef);\r\n }\r\n this.isContentRendered = true;\r\n }\r\n else {\r\n this.viewContainer.clear();\r\n this.isContentRendered = false;\r\n }\r\n }));\r\n }\r\n\r\n /** Life cycle hook for directive destruction */\r\n public ngOnDestroy(): void {\r\n this.directiveSub.unsubscribe();\r\n }\r\n\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule, ModuleWithProviders } from '@angular/core';\r\n\r\nimport { Oauth2RoleService } from './services/oauth2-role.service';\r\nimport { ArRoleNavService } from './services/ar-role-nav.service';\r\nimport { RoleNavService } from './services/role-nav.service';\r\nimport { RbacActionDirective } from './directives/rbac-action.directive';\r\nimport { RbacInjectionTokens } from './models/constants';\r\n\r\n/** The role based access control module */\r\n@NgModule({\r\n declarations: [\r\n RbacActionDirective\r\n ],\r\n imports: [\r\n CommonModule\r\n ],\r\n providers: [\r\n { provide: RbacInjectionTokens.disableRoleActions, useValue: false },\r\n Oauth2RoleService,\r\n { provide: RoleNavService, useClass: ArRoleNavService }\r\n ],\r\n exports: [\r\n RbacActionDirective\r\n ]\r\n})\r\nexport class RbacModule {\r\n /**\r\n * True if role actions should be disabled\r\n * @param options the options for the module\r\n */\r\n public static forRoot(options: {disableRoleActions?: boolean}): ModuleWithProviders {\r\n return {\r\n ngModule: RbacModule,\r\n providers: [\r\n { provide: RbacInjectionTokens.disableRoleActions, useValue: options.disableRoleActions },\r\n Oauth2RoleService,\r\n { provide: RoleNavService, useClass: ArRoleNavService }\r\n ]\r\n };\r\n }\r\n }\r\n","/** The role access class */\r\nexport class RoleAccess {\r\n /** The pages the role has access to */\r\n public pages?: Array<string> = [];\r\n\r\n /** The actions the role has access to */\r\n public actions?: Array<string> = [];\r\n}","import { InjectionToken } from '@angular/core';\r\n\r\nexport const BASE_PATH = new InjectionToken<string>('basePath');\r\nexport const COLLECTION_FORMATS = {\r\n 'csv': ',',\r\n 'tsv': ' ',\r\n 'ssv': ' ',\r\n 'pipes': '|'\r\n}\r\n","export interface ConfigurationParameters {\r\n apiKeys?: {[ key: string ]: string};\r\n username?: string;\r\n password?: string;\r\n accessToken?: string | (() => string);\r\n basePath?: string;\r\n withCredentials?: boolean;\r\n}\r\n\r\nexport class Configuration {\r\n apiKeys?: {[ key: string ]: string};\r\n username?: string;\r\n password?: string;\r\n accessToken?: string | (() => string);\r\n basePath?: string;\r\n withCredentials?: boolean;\r\n\r\n constructor(configurationParameters: ConfigurationParameters = {}) {\r\n this.apiKeys = configurationParameters.apiKeys;\r\n this.username = configurationParameters.username;\r\n this.password = configurationParameters.password;\r\n this.accessToken = configurationParameters.accessToken;\r\n this.basePath = configurationParameters.basePath;\r\n this.withCredentials = configurationParameters.withCredentials;\r\n }\r\n\r\n /**\r\n * Select the correct content-type to use for a request.\r\n * Uses {@link Configuration#isJsonMime} to determine the correct content-type.\r\n * If no content type is found return the first found type if the contentTypes is not empty\r\n * @param contentTypes - the array of content types that are available for selection\r\n * @returns the selected content-type or <code>undefined</code> if no selection could be made.\r\n */\r\n public selectHeaderContentType (contentTypes: string[]): string | undefined {\r\n if (contentTypes.length == 0) {\r\n return undefined;\r\n }\r\n\r\n let type = contentTypes.find(x => this.isJsonMime(x));\r\n if (type === undefined) {\r\n return contentTypes[0];\r\n }\r\n return type;\r\n }\r\n\r\n /**\r\n * Select the correct accept content-type to use for a request.\r\n * Uses {@link Configuration#isJsonMime} to determine the correct accept content-type.\r\n * If no content type is found return the first found type if the contentTypes is not empty\r\n * @param accepts - the array of content types that are available for selection.\r\n * @returns the selected content-type or <code>undefined</code> if no selection could be made.\r\n */\r\n public selectHeaderAccept(accepts: string[]): string | undefined {\r\n if (accepts.length == 0) {\r\n return undefined;\r\n }\r\n\r\n let type = accepts.find(x => this.isJsonMime(x));\r\n if (type === undefined) {\r\n return accepts[0];\r\n }\r\n return type;\r\n }\r\n\r\n /**\r\n * Check if the given MIME is a JSON MIME.\r\n * JSON MIME examples:\r\n * application/json\r\n * application/json; charset=UTF8\r\n * APPLICATION/JSON\r\n * application/vnd.company+json\r\n * @param mime - MIME (Multipurpose Internet Mail Extensions)\r\n * @return True if the given MIME is JSON, false otherwise.\r\n */\r\n public isJsonMime(mime: string): boolean {\r\n const jsonMime: RegExp = new RegExp('^(application\\/json|[^;/ \\t]+\\/[^;/ \\t]+[+]json)[ \\t]*(;.*)?$', 'i');\r\n return mime != null && (jsonMime.test(mime) || mime.toLowerCase() === 'application/json-patch+json');\r\n }\r\n}\r\n","/**\r\n * Sample API\r\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\r\n *\r\n * OpenAPI spec version: 1\r\n * \r\n *\r\n * NOTE: This class is auto generated by the swagger code generator program.\r\n * https://github.com/swagger-api/swagger-codegen.git\r\n * Do not edit the class manually.\r\n *//* tslint:disable:no-unused-variable member-ordering */\r\n\r\nimport { Inject, Injectable, Optional } from '@angular/core';\r\nimport { HttpClient, HttpHeaders, HttpParams,\r\n HttpResponse, HttpEvent } from '@angular/common/http';\r\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\r\n\r\nimport { Observable } from 'rxjs';\r\n\r\nimport { CreateCacheEntryRequestModel } from '../model/createCacheEntryRequestModel';\r\nimport { RetrieveCacheEntryResponseModel } from '../model/retrieveCacheEntryResponseModel';\r\nimport { UpdateCacheEntryRequestModel } from '../model/updateCacheEntryRequestModel';\r\n\r\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\r\nimport { Configuration } from '../configuration';\r\n\r\n\r\n@Injectable()\r\nexport class CacheService {\r\n\r\n protected basePath = '/';\r\n public defaultHeaders = new HttpHeaders();\r\n public configuration = new Configuration();\r\n\r\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\r\n if (basePath) {\r\n this.basePath = basePath;\r\n }\r\n if (configuration) {\r\n this.configuration = configuration;\r\n this.basePath = basePath || configuration.basePath || this.basePath;\r\n }\r\n }\r\n\r\n /**\r\n * @param consumes string[] mime-types\r\n * @return true: consumes contains 'multipart/form-data', false: otherwise\r\n */\r\n private canConsumeForm(consumes: string[]): boolean {\r\n const form = 'multipart/form-data';\r\n for (const consume of consumes) {\r\n if (form === consume) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n\r\n /**\r\n * Deletes the specified key.\r\n * \r\n * @param key The key.\r\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\r\n * @param reportProgress flag to report request and response progress.\r\n */\r\n public _delete(key: string, observe?: 'body', reportProgress?: boolean): Observable<any>;\r\n public _delete(key: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<any>>;\r\n public _delete(key: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<any>>;\r\n public _delete(key: string, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {\r\n\r\n if (key === null || key === undefined) {\r\n throw new Error('Required parameter key was null or undefined when calling _delete.');\r\n }\r\n\r\n let headers = this.defaultHeaders;\r\n\r\n // authentication (oauth2) required\r\n if (this.configuration.accessToken) {\r\n const accessToken = typeof this.configuration.accessToken === 'function'\r\n ? this.configuration.accessToken()\r\n : this.configuration.accessToken;\r\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\r\n }\r\n\r\n // to determine the Accept header\r\n let httpHeaderAccepts: string[] = [\r\n ];\r\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\r\n if (httpHeaderAcceptSelected != undefined) {\r\n headers = headers.set('Accept', httpHeaderAcceptSelected);\r\n }\r\n\r\n // to determine the Content-Type header\r\n const consumes: string[] = [\r\n ];\r\n\r\n return this.httpClient.request<any>('delete',`${this.basePath}/v1/Cache/${encodeURIComponent(String(key))}`,\r\n {\r\n withCredentials: this.configuration.withCredentials,\r\n headers: headers,\r\n observe: observe,\r\n reportProgress: reportProgress\r\n }\r\n );\r\n }\r\n\r\n /**\r\n * Creates the specified request.\r\n * \r\n * @param body The request.\r\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\r\n * @param reportProgress flag to report request and response progress.\r\n */\r\n public create(body?: CreateCacheEntryRequestModel, observe?: 'body', reportProgress?: boolean): Observable<any>;\r\n public create(body?: CreateCacheEntryRequestModel, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<any>>;\r\n public create(body?: CreateCacheEntryRequestModel, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<any>>;\r\n public create(body?: CreateCacheEntryRequestModel, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {\r\n\r\n\r\n let headers = this.defaultHeaders;\r\n\r\n // authentication (oauth2) required\r\n if (this.configuration.accessToken) {\r\n const accessToken = typeof this.configuration.accessToken === 'function'\r\n ? this.configuration.accessToken()\r\n : this.configuration.accessToken;\r\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\r\n }\r\n\r\n // to determine the Accept header\r\n let httpHeaderAccepts: string[] = [\r\n ];\r\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\r\n if (httpHeaderAcceptSelected != undefined) {\r\n headers = headers.set('Accept', httpHeaderAcceptSelected);\r\n }\r\n\r\n // to determine the Content-Type header\r\n const consumes: string[] = [\r\n 'application/json',\r\n 'text/json',\r\n 'application/_*+json'\r\n ];\r\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\r\n if (httpContentTypeSelected != undefined) {\r\n headers = headers.set('Content-Type', httpContentTypeSelected);\r\n }\r\n\r\n return this.httpClient.request<any>('post',`${this.basePath}/v1/Cache`,\r\n {\r\n body: body,\r\n withCredentials: this.configuration.withCredentials,\r\n headers: headers,\r\n observe: observe,\r\n reportProgress: reportProgress\r\n }\r\n );\r\n }\r\n\r\n /**\r\n * Refreshes the cache entry\r\n * \r\n * @param key \r\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\r\n * @param reportProgress flag to report request and response progress.\r\n */\r\n public refresh(key: string, observe?: 'body', reportProgress?: boolean): Observable<any>;\r\n public refresh(key: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<any>>;\r\n public refresh(key: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<any>>;\r\n public refresh(key: string, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {\r\n\r\n if (key === null || key === undefined) {\r\n throw new Error('Required parameter key was null or undefined when calling refresh.');\r\n }\r\n\r\n let headers = this.defaultHeaders;\r\n\r\n // authentication (oauth2) required\r\n if (this.configuration.accessToken) {\r\n const accessToken = typeof this.configuration.accessToken === 'function'\r\n ? this.configuration.accessToken()\r\n : this.configuration.accessToken;\r\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\r\n }\r\n\r\n // to determine the Accept header\r\n let httpHeaderAccepts: string[] = [\r\n ];\r\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\r\n if (httpHeaderAcceptSelected != undefined) {\r\n headers = headers.set('Accept', httpHeaderAcceptSelected);\r\n }\r\n\r\n // to determine the Content-Type header\r\n const consumes: string[] = [\r\n ];\r\n\r\n return this.httpClient.request<any>('get',`${this.basePath}/v1/Cache/refresh/${encodeURIComponent(String(key))}`,\r\n {\r\n withCredentials: this.configuration.withCredentials,\r\n headers: headers,\r\n observe: observe,\r\n reportProgress: reportProgress\r\n }\r\n );\r\n }\r\n\r\n /**\r\n * Retrieves this instance.\r\n * \r\n * @param key \r\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\r\n * @param reportProgress flag to report request and response progress.\r\n */\r\n public retrieve(key: string, observe?: 'body', reportProgress?: boolean): Observable<RetrieveCacheEntryResponseModel>;\r\n public retrieve(key: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<RetrieveCacheEntryResponseModel>>;\r\n public retrieve(key: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<RetrieveCacheEntryResponseModel>>;\r\n public retrieve(key: string, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {\r\n\r\n if (key === null || key === undefined) {\r\n throw new Error('Required parameter key was null or undefined when calling retrieve.');\r\n }\r\n\r\n let headers = this.defaultHeaders;\r\n\r\n // authentication (oauth2) required\r\n if (this.configuration.accessToken) {\r\n const accessToken = typeof this.configuration.accessToken === 'function'\r\n ? this.configuration.accessToken()\r\n : this.configuration.accessToken;\r\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\r\n }\r\n\r\n // to determine the Accept header\r\n let httpHeaderAccepts: string[] = [\r\n 'text/plain',\r\n 'application/json',\r\n 'text/json'\r\n ];\r\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\r\n if (httpHeaderAcceptSelected != undefined) {\r\n headers = headers.set('Accept', httpHeaderAcceptSelected);\r\n }\r\n\r\n // to determine the Content-Type header\r\n const consumes: string[] = [\r\n ];\r\n\r\n return this.httpClient.request<RetrieveCacheEntryResponseModel>('get',`${this.basePath}/v1/Cache/${encodeURIComponent(String(key))}`,\r\n {\r\n withCredentials: this.configuration.withCredentials,\r\n headers: headers,\r\n observe: observe,\r\n reportProgress: reportProgress\r\n }\r\n );\r\n }\r\n\r\n /**\r\n * Updates the specified key.\r\n * \r\n * @param key The key.\r\n * @param body The request.\r\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\r\n * @param reportProgress flag to report request and response progress.\r\n */\r\n public update(key: string, body?: UpdateCacheEntryRequestModel, observe?: 'body', reportProgress?: boolean): Observable<any>;\r\n public update(key: string, body?: UpdateCacheEntryRequestModel, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<any>>;\r\n public update(key: string, body?: UpdateCacheEntryRequestModel, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<any>>;\r\n public update(key: string, body?: UpdateCacheEntryRequestModel, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {\r\n\r\n if (key === null || key === undefined) {\r\n throw new Error('Required parameter key was null or undefined when calling update.');\r\n }\r\n\r\n\r\n let headers = this.defaultHeaders;\r\n\r\n // authentication (oauth2) required\r\n if (this.configuration.accessToken) {\r\n const accessToken = typeof this.configuration.accessToken === 'function'\r\n ? this.configuration.accessToken()\r\n : this.configuration.accessToken;\r\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\r\n }\r\n\r\n // to determine the Accept header\r\n let httpHeaderAccepts: string[] = [\r\n ];\r\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\r\n if (httpHeaderAcceptSelected != undefined) {\r\n headers = headers.set('Accept', httpHeaderAcceptSelected);\r\n }\r\n\r\n // to determine the Content-Type header\r\n const consumes: string[] = [\r\n 'application/json',\r\n 'text/json',\r\n 'application/_*+json'\r\n ];\r\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\r\n if (httpContentTypeSelected != undefined) {\r\n headers = headers.set('Content-Type', httpContentTypeSelected);\r\n }\r\n\r\n return this.httpClient.request<any>('put',`${this.basePath}/v1/Cache/${encodeURIComponent(String(key))}`,\r\n {\r\n body: body,\r\n withCredentials: this.configuration.withCredentials,\r\n headers: headers,\r\n observe: observe,\r\n reportProgress: reportProgress\r\n }\r\n );\r\n }\r\n\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\n\r\nexport class DistributedCacheInjectionTokens {\r\n /** The distributed cache base path */\r\n public static distributedCacheBasePath: InjectionToken<string> = new InjectionToken<string>('DistributedCacheBasePath');\r\n}","export * from './cache.service';\r\nimport { CacheService } from './cache.service';\r\nexport const APIS = [CacheService];\r\n","import { HttpEvent, HttpResponse } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { SessionService } from '../../core/services/session.service';\r\nimport { CacheService } from '../client-generated/api/api';\r\nimport { CreateCacheEntryRequestModel } from '../client-generated/model/createCacheEntryRequestModel';\r\nimport { RetrieveCacheEntryResponseModel } from '../client-generated/model/retrieveCacheEntryResponseModel';\r\nimport { UpdateCacheEntryRequestModel } from '../client-generated/model/updateCacheEntryRequestModel';\r\n\r\n/** Server side cache service */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ServerCacheService {\r\n\r\n /**\r\n * Constructs the service\r\n * @param sessionService The session service\r\n */\r\n constructor(\r\n private readonly sessionService: SessionService,\r\n private readonly cacheService: CacheService\r\n ) { }\r\n\r\n /**\r\n * Creates the server side cache entry\r\n * @param body The body\r\n * @param observe The observer\r\n * @param reportProgress Report progress flag\r\n */\r\n public create(body?: CreateCacheEntryRequestModel, observe?: 'body', reportProgress?: boolean): Observable<any>;\r\n public create(body?: CreateCacheEntryRequestModel, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<any>>;\r\n public create(body?: CreateCacheEntryRequestModel, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<any>>;\r\n public create(body?: CreateCacheEntryRequestModel, observe: any = 'body', reportProgress: boolean = false): Observable<any> {\r\n body.key = this.formatKey(body.key);\r\n\r\n return this.cacheService.create(body, observe, reportProgress);\r\n }\r\n\r\n /**\r\n * Retrieves the entry from the server cache\r\n * @param key The key to retrieve\r\n * @param observe The observer\r\n * @param reportProgress Report progress flag\r\n */\r\n public retrieve(key: string, observe?: 'body', reportProgress?: boolean): Observable<RetrieveCacheEntryResponseModel>;\r\n public retrieve(key: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<RetrieveCacheEntryResponseModel>>;\r\n public retrieve(key: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<RetrieveCacheEntryResponseModel>>;\r\n public retrieve(key: string, observe: any = 'body', reportProgress: boolean = false): Observable<any> {\r\n return this.cacheService.retrieve(this.formatKey(key), observe, reportProgress);\r\n }\r\n\r\n\r\n /**\r\n * Updates the server side cache entry\r\n * @param key The key\r\n * @param body The body\r\n * @param observe The observer\r\n * @param reportProgress Report progress flag\r\n */\r\n public update(key: string, body?: UpdateCacheEntryRequestModel, observe?: 'body', reportProgress?: boolean): Observable<any>;\r\n public update(key: string, body?: UpdateCacheEntryRequestModel, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<any>>;\r\n public update(key: string, body?: UpdateCacheEntryRequestModel, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<any>>;\r\n public update(key: string, body?: UpdateCacheEntryRequestModel, observe: any = 'body', reportProgress: boolean = false): Observable<any> {\r\n return this.cacheService.update(this.formatKey(key), body, observe, reportProgress);\r\n }\r\n\r\n /**\r\n * Deletes the specified key.\r\n * @param key The key.\r\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\r\n * @param reportProgress flag to report request and response progress.\r\n */\r\n public delete(key: string, observe?: 'body', reportProgress?: boolean): Observable<any>;\r\n public delete(key: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<any>>;\r\n public delete(key: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<any>>;\r\n public delete(key: string, observe: any = 'body', reportProgress: boolean = false): Observable<any> {\r\n return this.cacheService._delete(this.formatKey(key), observe, reportProgress);\r\n }\r\n\r\n /**\r\n * Refreshes the cache entry\r\n * @param key The key\r\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\r\n * @param reportProgress flag to report request and response progress.\r\n */\r\n public refresh(key: string, observe?: 'body', reportProgress?: boolean): Observable<any>;\r\n public refresh(key: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<any>>;\r\n public refresh(key: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<any>>;\r\n public refresh(key: string, observe: any = 'body', reportProgress: boolean = false): Observable<any> {\r\n return this.cacheService.refresh(this.formatKey(key), observe, reportProgress);\r\n }\r\n\r\n /**\r\n * Formats the provided key\r\n * @param key The key\r\n */\r\n private formatKey(key: string): string {\r\n return `${this.sessionService.sessionId}-${key}`;\r\n }\r\n\r\n}\r\n","import { NgModule, InjectionToken, ModuleWithProviders } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { CacheService } from './client-generated/api/cache.service';\r\nimport { BASE_PATH } from './client-generated/variables';\r\nimport { DistributedCacheInjectionTokens } from './models/constants';\r\nimport { ServerCacheService } from './services/server-cache.service';\r\n\r\n/** The distributed cache module */\r\n@NgModule({\r\n declarations: [],\r\n imports: [\r\n CommonModule\r\n ],\r\n providers: [\r\n {\r\n provide: BASE_PATH,\r\n useExisting: DistributedCacheInjectionTokens.distributedCacheBasePath\r\n },\r\n CacheService,\r\n ServerCacheService\r\n ]\r\n})\r\nexport class DistributedCacheModule {}\r\n","/**\r\n * Sample API\r\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\r\n *\r\n * OpenAPI spec version: 1\r\n * \r\n *\r\n * NOTE: This class is auto generated by the swagger code generator program.\r\n * https://github.com/swagger-api/swagger-codegen.git\r\n * Do not edit the class manually.\r\n */\r\n\r\n/**\r\n * The cache expiration types\r\n */\r\nexport type CacheExpirationType = 'Sliding' | 'Absolute';\r\n\r\nexport const CacheExpirationType = {\r\n Sliding: 'Sliding' as CacheExpirationType,\r\n Absolute: 'Absolute' as CacheExpirationType\r\n};","/**\r\n * Sample API\r\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\r\n *\r\n * OpenAPI spec version: 1\r\n * \r\n *\r\n * NOTE: This class is auto generated by the swagger code generator program.\r\n * https://github.com/swagger-api/swagger-codegen.git\r\n * Do not edit the class manually.\r\n */\r\nimport { CacheExpirationType } from './cacheExpirationType';\r\n\r\n/**\r\n * The Create cache entery re\r\n */\r\nexport interface CreateCacheEntryRequestModel { \r\n /**\r\n * Gets or sets the key.\r\n */\r\n key: string;\r\n /**\r\n * Gets or sets the value.\r\n */\r\n value: any;\r\n /**\r\n * Gets or sets the type of the expiration.\r\n */\r\n expirationType?: CacheExpirationType;\r\n /**\r\n * Gets or sets the expiration time minutes.\r\n */\r\n expirationTimeMinutes?: number;\r\n}","/**\r\n * Sample API\r\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\r\n *\r\n * OpenAPI spec version: 1\r\n * \r\n *\r\n * NOTE: This class is auto generated by the swagger code generator program.\r\n * https://github.com/swagger-api/swagger-codegen.git\r\n * Do not edit the class manually.\r\n */\r\n\r\n/**\r\n * The cache entry retrieve response model\r\n */\r\nexport interface RetrieveCacheEntryResponseModel { \r\n /**\r\n * Gets or sets the value.\r\n */\r\n value?: any;\r\n}","/**\r\n * Sample API\r\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\r\n *\r\n * OpenAPI spec version: 1\r\n * \r\n *\r\n * NOTE: This class is auto generated by the swagger code generator program.\r\n * https://github.com/swagger-api/swagger-codegen.git\r\n * Do not edit the class manually.\r\n */\r\n\r\n/**\r\n * Update Cache entry request model\r\n */\r\nexport interface UpdateCacheEntryRequestModel { \r\n /**\r\n * Gets or sets the value.\r\n */\r\n value: any;\r\n}","import { Person } from '../../oauth/models/generated/person';\r\nimport { Address } from '../../forms/models/address';\r\n\r\n/** The policy person */\r\nexport class PolicyPerson implements Person {\r\n /** Implemented props */\r\n public exchangeId: string;\r\n public groupPolicyNumber: string;\r\n public dob: Date;\r\n public gender: string;\r\n public firstName: string;\r\n public lastName: string;\r\n public relationship: string;\r\n\r\n /** Additional Props */\r\n public homeAddress: Address = {};\r\n public mailingAddress: Address = {};\r\n public email: string;\r\n public phone: string;\r\n public phoneType: string;\r\n}\r\n","import { Inject, Injectable, OnDestroy } from '@angular/core';\r\nimport { NavigationEnd, NavigationError, NavigationStart, Router } from '@angular/router';\r\nimport { ApmService } from '@elastic/apm-rum-angular';\r\nimport { Subscription } from 'rxjs';\r\nimport { SessionService } from '../../core/services/session.service';\r\nimport { RumConfig } from '../models/rum-config';\r\n\r\n/** The rum service */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class RumService implements OnDestroy {\r\n\r\n /** The service subscription */\r\n private readonly serviceSub: Subscription = new Subscription();\r\n\r\n /**\r\n * Constructs the service\r\n * @param router The router\r\n * @param session The session\r\n * @param apmService The apm service\r\n */\r\n constructor(\r\n private readonly router: Router,\r\n private readonly session: SessionService,\r\n @Inject(ApmService) private readonly apmService: ApmService\r\n ) { }\r\n\r\n /** Life cycle hook for service destruction */\r\n public ngOnDestroy(): void {\r\n this.serviceSub.unsubscribe();\r\n }\r\n\r\n /**\r\n * Initializes rum\r\n * @param config The config\r\n * @param user The user info\r\n */\r\n public initializeRum(config: RumConfig, user?: { userName: string, userId: string }): void {\r\n const apm = this.apmService.init({\r\n serviceName: config.serviceName,\r\n serverUrl: config.serverUrl,\r\n });\r\n apm.setUserContext({\r\n username: !!user ? user.userName : this.session.sessionId,\r\n id: !!user ? user.userId : this.session.sessionId\r\n });\r\n this.apmService.apm = apm;\r\n this.initRouteTracking();\r\n }\r\n\r\n /** initializes route tracking */\r\n private initRouteTracking(): void {\r\n let transaction;\r\n let span;\r\n this.serviceSub.add(\r\n this.router.events.subscribe(event => {\r\n if (event instanceof NavigationStart) {\r\n const name = event.url;\r\n transaction = this.apmService.apm.startTransaction(name, 'route-change', {\r\n managed: true,\r\n canReuse: false\r\n });\r\n span = transaction.startSpan(name, 'router');\r\n }\r\n\r\n else if (event instanceof NavigationError) {\r\n span.end();\r\n transaction && transaction.end();\r\n }\r\n\r\n else if (event instanceof NavigationEnd) {\r\n if (!transaction) {\r\n return;\r\n }\r\n const route = this.router.routerState.root.firstChild;\r\n\r\n if (route) {\r\n let child = route;\r\n let path = `/ ${child.routeConfig.path}`;\r\n\r\n while (child) {\r\n child = child.firstChild;\r\n if (child && child.routeConfig) {\r\n\r\n const currentPath = child.routeConfig.path;\r\n if (currentPath) {\r\n path = `${path}/${currentPath}`;\r\n }\r\n\r\n }\r\n }\r\n transaction.name = path;\r\n }\r\n span.end();\r\n transaction.end();\r\n }\r\n })\r\n );\r\n }\r\n\r\n /**\r\n * Gets a custom event\r\n * @param data The data\r\n * @param type The even type\r\n */\r\n public getCustomEvent(data: any, type: string): any {\r\n const transaction = this.apmService.apm.startTransaction(data, type, {\r\n managed: true,\r\n canReuse: false\r\n });\r\n const span = transaction.startSpan(data, type);\r\n\r\n return { transaction, span };\r\n }\r\n\r\n /**\r\n * Ends the custom event\r\n * @param event The event\r\n */\r\n public endCustomEvent(event: { transaction: any, span: any }): void {\r\n event.span.end();\r\n event.transaction.end();\r\n }\r\n}\r\n","/** The armature error class */\r\nexport class ArmError {\r\n /** The message */\r\n public message: string;\r\n /** The error name */\r\n public name: string;\r\n /** The stack trace */\r\n public stack: string;\r\n /** The current application route */\r\n public route: string;\r\n /** The user session Id */\r\n public userId: string;\r\n /** The secondary errors */\r\n public secondaryErrors: Array<ArmError> = [];\r\n /** The original error */\r\n public originalError: Error;\r\n /** The original secondary error */\r\n public originalSecondaryErrors: Array<Error> = [];\r\n\r\n /**\r\n * Constructs the component\r\n * @param error The error\r\n * @param route The route\r\n * @param userId The user ID\r\n * @param populateOriginalError True if keeping the original error\r\n */\r\n constructor(err: Error, route?: string, userId?: string, populateOriginalError: boolean = true) {\r\n let errStr = err.toString();\r\n if (errStr === '[object Object]') {\r\n errStr = JSON.stringify(err);\r\n }\r\n\r\n this.message = errStr;\r\n this.stack = err.stack;\r\n this.route = route;\r\n this.userId = userId;\r\n this.name = err.name;\r\n if (populateOriginalError) {\r\n this.originalError = err;\r\n }\r\n }\r\n}","import { Injectable, Injector } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { SessionService } from '../../core/services/session.service';\r\nimport { ArmError } from '../models/arm-error';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SharedErrorService {\r\n\r\n /** The session service */\r\n private readonly sessionService: SessionService;\r\n\r\n /** The error set */\r\n private readonly errorSet: Set<string> = new Set<string>();\r\n\r\n /**\r\n * constructs the service\r\n * @param injector the injector\r\n */\r\n constructor(\r\n private readonly injector: Injector,\r\n ) {\r\n this.sessionService = this.injector.get(SessionService);\r\n }\r\n\r\n /**\r\n * Determines if the error has been encountered before\r\n * @param err The error\r\n */\r\n public isNewError(err: Error): boolean {\r\n const error = new ArmError(err);\r\n if (this.errorSet.has(error.message)) {\r\n return false;\r\n }\r\n this.errorSet.add(error.message);\r\n\r\n return true;\r\n }\r\n\r\n /**\r\n * Formats the error\r\n * @param error The error\r\n */\r\n public formatError(error: Error, populateOriginalError: boolean = true): ArmError {\r\n console.warn(error);\r\n return new ArmError(error, window.location.pathname, this.sessionService.sessionId, populateOriginalError);\r\n }\r\n}\r\n","import { ErrorHandler, Inject, Injector, NgModule } from '@angular/core';\r\nimport { ApmService } from '@elastic/apm-rum-angular';\r\nimport { RumService } from './services/rum.service';\r\nimport { SharedErrorService } from './services/shared-error.service';\r\nimport { RouterModule } from '@angular/router';\r\n\r\n/** The real user monitoring */\r\n@NgModule({\r\n declarations: [],\r\n imports: [\r\n RouterModule\r\n ],\r\n providers: [\r\n {\r\n provide: ApmService,\r\n useClass: ApmService\r\n },\r\n RumService,\r\n SharedErrorService\r\n ]\r\n})\r\nexport class RumModule {\r\n /**\r\n * Constructs the module\r\n * @param injector The injector\r\n */\r\n constructor(@Inject(Injector) injector: Injector) {\r\n // Hack: The generic error handler causes problems so we use the service directly\r\n const handler = injector.get(ErrorHandler);\r\n const original = console.error;\r\n console.error = (error) => {\r\n let e = error;\r\n if (typeof (error) === 'string') {\r\n e = new Error(error);\r\n }\r\n handler.handleError(error);\r\n original(error);\r\n };\r\n }\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\n\r\n/** The rum configurations */\r\nexport class RumConfig {\r\n /** The service Name */\r\n public serviceName: string;\r\n\r\n /** The server url */\r\n public serverUrl: string;\r\n\r\n /** the secondary error window in Milliseconds */\r\n public secondaryErrorWindowMs: number;\r\n}\r\n","import { Injectable, Inject, ErrorHandler, Injector } from '@angular/core';\r\nimport { ApmService } from '@elastic/apm-rum-angular';\r\nimport { SharedErrorService } from './shared-error.service';\r\nimport { ArmError } from '../models/arm-error';\r\nimport { RumConfig } from '../models/rum-config';\r\n\r\n/** Handles errors and submits them to RUM */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class RumErrorHandlerService implements ErrorHandler {\r\n\r\n /** The rum config */\r\n private readonly rumConfig: RumConfig;\r\n\r\n /** the secondary error window in ms */\r\n private readonly secondaryErrorWindowMs: number = 500;\r\n\r\n /** The current error */\r\n private currentError: ArmError;\r\n\r\n /**\r\n * Constructs the Service\r\n * @param injector The injector\r\n */\r\n constructor(\r\n private readonly injector: Injector,\r\n ) {\r\n try {\r\n this.rumConfig = this.injector.get(RumConfig);\r\n }\r\n catch (e) {\r\n console.warn('No rum config found for RumErrorHandlerService using defaults');\r\n }\r\n if (this.rumConfig && this.rumConfig.secondaryErrorWindowMs) {\r\n this.secondaryErrorWindowMs = this.rumConfig.secondaryErrorWindowMs;\r\n }\r\n }\r\n\r\n /**\r\n * handles the error\r\n * @param error The error\r\n */\r\n public handleError(error: any): void {\r\n const apmService = this.injector.get<any>(ApmService);\r\n const sharedErrorService = this.injector.get<SharedErrorService>(SharedErrorService);\r\n let e = error;\r\n if (typeof (error) === 'string') {\r\n e = new Error(e);\r\n }\r\n const err = e as Error;\r\n if (!sharedErrorService.isNewError(err)) {\r\n return;\r\n }\r\n const errObj = sharedErrorService.formatError(err);\r\n err.message = `${err.message} | ${errObj.route}`;\r\n errObj.originalError = err;\r\n\r\n // HACK: For some reason calling capture error here makes the set time out code work\r\n apmService.apm.captureError(err);\r\n if (!this.currentError) {\r\n this.currentError = errObj;\r\n setTimeout(() => {\r\n apmService.apm.captureError(this.currentError.originalError);\r\n this.currentError.originalSecondaryErrors.forEach((item, index) => {\r\n item.message = `${index} ${item.message}`;\r\n apmService.apm.captureError(item);\r\n });\r\n this.currentError = undefined;\r\n }, this.secondaryErrorWindowMs);\r\n }\r\n else {\r\n errObj.message = `Secondary: ${errObj.message}`;\r\n try {\r\n this.currentError.secondaryErrors.push(errObj);\r\n this.currentError.originalSecondaryErrors.push(err);\r\n }\r\n catch (e) {\r\n console.error('Race condition hit where current error was cleared as a secondary error was thrown, re-throwing error', e);\r\n }\r\n }\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { ErrorHandler, Injectable, Injector } from '@angular/core';\r\nimport { of } from 'rxjs';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { SessionService } from '../../core/services/session.service';\r\nimport { RumConfig } from '../models/rum-config';\r\nimport { SharedErrorService } from './shared-error.service';\r\nimport { ArmError } from '../models/arm-error';\r\n\r\n/** The softheon error handler service */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SoftheonErrorHandlerService implements ErrorHandler {\r\n\r\n /** The session Service */\r\n private readonly sessionService: SessionService;\r\n\r\n /** The shared error service */\r\n private readonly sharedErrorService: SharedErrorService;\r\n\r\n /** The secondary error window in ms */\r\n private readonly secondaryErrorWindowMs: number = 500;\r\n\r\n /** The current error */\r\n private currentError: ArmError;\r\n\r\n /**\r\n * Constructs the service\r\n * @param rumConfig The rum config\r\n * @param httpClient The http client\r\n * @param injector The injector\r\n */\r\n constructor(\r\n public rumConfig: RumConfig,\r\n private readonly httpClient: HttpClient,\r\n private readonly injector: Injector\r\n ) {\r\n this.sessionService = this.injector.get(SessionService);\r\n this.sharedErrorService = this.injector.get<SharedErrorService>(SharedErrorService);\r\n if (this.rumConfig && this.rumConfig.secondaryErrorWindowMs) {\r\n this.secondaryErrorWindowMs = this.rumConfig.secondaryErrorWindowMs;\r\n }\r\n }\r\n\r\n /**\r\n * Handles the error\r\n * @param error The error\r\n */\r\n public handleError(error: any): void {\r\n let e = error;\r\n if (typeof (error) === 'string') {\r\n e = new Error(e);\r\n }\r\n const err = e as Error;\r\n const appName = `${this.rumConfig.serviceName}`;\r\n\r\n if (!this.sharedErrorService.isNewError(err)) {\r\n return;\r\n }\r\n const errObj = this.sharedErrorService.formatError(err, false);\r\n if (!this.currentError) {\r\n this.currentError = errObj;\r\n setTimeout(() => {\r\n const errStr = JSON.stringify(this.currentError);\r\n this.httpClient.post(this.rumConfig.serverUrl, { error: errStr, applicationName: appName, logLevel: \"Warn\" })\r\n .pipe(\r\n catchError(\r\n error => {\r\n console.warn(error);\r\n\r\n return of(error);\r\n }\r\n )\r\n )\r\n .subscribe(() => {\r\n this.currentError = undefined;\r\n });\r\n }, this.secondaryErrorWindowMs);\r\n }\r\n else {\r\n try {\r\n this.currentError.secondaryErrors.push(errObj);\r\n }\r\n catch (e) {\r\n console.error('Race condition hit where current error was cleared as a secondary error was thrown, re-throwing error', e);\r\n }\r\n }\r\n }\r\n}\r\n","import { County } from './county';\r\n\r\n/**\r\n * Address model\r\n */\r\nexport interface Address {\r\n\r\n /** Street 1 */\r\n street1?: string;\r\n\r\n /** Street 2 */\r\n street2?: string;\r\n\r\n /** The city */\r\n city?: string;\r\n\r\n /** County */\r\n county?: County;\r\n}\r\n","/**\r\n * County model\r\n */\r\nexport interface County {\r\n\r\n /** ZIP Code */\r\n zipCode?: string;\r\n\r\n /** FIPS Code */\r\n fipsCode?: string;\r\n\r\n /** State county is located in */\r\n state?: string;\r\n\r\n /** Name of the county */\r\n name?: string;\r\n}\r\n","/** The Error Common Configurations */\r\nexport class ErrorCommonConfig {\r\n /** True if error image should be displayed */\r\n public showErrorImage: boolean;\r\n /** The image url */\r\n public errorImageUrl: string;\r\n /** The header one text */\r\n public headerOneText: string;\r\n /** The header one classes */\r\n public headerOneClass: string;\r\n /** The header two text */\r\n public headerTwoText: string;\r\n /** The header two classes */\r\n public headerTwoClass: string;\r\n /** The info text */\r\n public infoText: string;\r\n /** The info text classes */\r\n public infoTextClass: string;\r\n\r\n /** constructs the class */\r\n constructor() {\r\n this.errorImageUrl = 'https://softheoncdnstorage.blob.core.windows.net/images/common/error-cat.svg';\r\n }\r\n}","import { Component, Input, OnInit } from '@angular/core';\r\nimport { ErrorCommonConfig } from '../../models/error-common-config';\r\n\r\n/** The Common Error component */\r\n@Component({\r\n selector: 'sof-ar-error-common',\r\n templateUrl: './error-common.component.html',\r\n styleUrls: ['./error-common.component.css']\r\n})\r\nexport class ErrorCommonComponent implements OnInit {\r\n\r\n /** The config input */\r\n @Input() public config: ErrorCommonConfig;\r\n\r\n /** Constructs the component */\r\n constructor() {}\r\n\r\n /** Life cycle hook for component initialization */\r\n public ngOnInit(): void {\r\n if (!this.config) {\r\n throw new Error('sof-ar-error-common: [config] input is required');\r\n }\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FlexLayoutModule } from '@angular/flex-layout';\r\nimport { ErrorCommonComponent } from './components/error-common/error-common.component';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\n\r\n/** The error module */\r\n@NgModule({\r\n declarations: [ErrorCommonComponent],\r\n imports: [\r\n CommonModule,\r\n FlexLayoutModule,\r\n TranslateModule,\r\n ],\r\n exports: [\r\n ErrorCommonComponent\r\n ]\r\n})\r\nexport class ErrorModule { }\r\n","\r\n/** The FAQ Config Class */\r\nexport class FAQConfig {\r\n /** The expand icon class */\r\n public expandIconClass: string;\r\n\r\n /** The minimize icon class */\r\n public minimizeIconClass: string;\r\n\r\n /** The expand icon text */\r\n public expandIconText: string;\r\n\r\n /** The minimize icon text */\r\n public minimizeIconText: string;\r\n\r\n /** The icon hex color */\r\n public iconHexColor: string;\r\n}\r\n","import { Component, OnInit, Input } from '@angular/core';\r\n\r\nimport { FAQ } from '../../models/faq';\r\nimport { FAQConfig } from '../../models/faq-config';\r\n\r\n/** FAQ Component */\r\n@Component({\r\n selector: 'sof-ar-faq',\r\n templateUrl: './faq.component.html',\r\n styleUrls: ['./faq.component.scss']\r\n})\r\nexport class FaqComponent implements OnInit {\r\n\r\n /** The FAQ INput Config */\r\n @Input() faqConfig: FAQConfig;\r\n\r\n /** The array of all FAQs */\r\n @Input() public allFaqs: Array<FAQ> = [];\r\n\r\n /** The icon color */\r\n public iconColor: string = '';\r\n\r\n /** The constructor */\r\n constructor() { }\r\n\r\n /** Life cycle hook for component initialization */\r\n public ngOnInit(): void {\r\n if (this.faqConfig && this.faqConfig.iconHexColor) {\r\n if (this.faqConfig.iconHexColor.indexOf('#') > -1) {\r\n this.iconColor = this.faqConfig.iconHexColor;\r\n }\r\n else {\r\n this.iconColor = `#${this.faqConfig.iconHexColor}`;\r\n }\r\n }\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FaqComponent } from './components/faq/faq.component';\r\nimport { FlexLayoutModule } from '@angular/flex-layout';\r\nimport { MatExpansionModule, MatButtonModule, MatCardModule, MatIconModule} from '@angular/material';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\n\r\n/** The material modules */\r\nconst materialModules = [\r\n MatExpansionModule,\r\n MatButtonModule,\r\n MatCardModule,\r\n MatIconModule,\r\n FlexLayoutModule\r\n];\r\n\r\n/** The FAQ Module */\r\n@NgModule({\r\n declarations: [FaqComponent],\r\n imports: [\r\n CommonModule,\r\n ...materialModules,\r\n TranslateModule\r\n ],\r\n exports: [FaqComponent]\r\n})\r\nexport class FaqModule { }\r\n","/** The FAQ class */\r\nexport class FAQ {\r\n /** The FAQ title */\r\n public title: string;\r\n\r\n /** The FAQ description */\r\n public description: string;\r\n\r\n /** Is the FAQ expanded */\r\n public expanded: boolean = false;\r\n}\r\n","import { SiteMapDirection } from './enum/site-map-direction';\r\nimport { RoutePath } from '../../shared/models/route-path';\r\n\r\n/**\r\n * Site Map Config\r\n */\r\nexport interface SiteMapConfig {\r\n /** Section title class style */\r\n sectionTitleClass?: string;\r\n\r\n /** Global class style for links */\r\n linkClass?: string;\r\n\r\n /** Site map graph */\r\n graph?: Array<Array<SiteMapNode>>;\r\n}\r\n\r\n/**\r\n * Site Map Node.\r\n */\r\nexport interface SiteMapNode {\r\n /** The Section Title */\r\n sectionTitle?: string;\r\n\r\n /** The Direction */\r\n direction?: SiteMapDirection;\r\n\r\n /** Site Map Link */\r\n links?: Array<SiteMapLink>;\r\n \r\n /** Whether or not if the links are icons */\r\n iconLinks?: boolean;\r\n}\r\n\r\n/**\r\n * Site Map Link\r\n */\r\nexport interface SiteMapLink {\r\n /** The Text */\r\n text?: string;\r\n\r\n /** The Router Link */\r\n routerLink?: string;\r\n\r\n /** The route path */\r\n routePath?: RoutePath; \r\n\r\n /** Specific class style for link */\r\n linkClass?: string;\r\n\r\n /** Logo style class for logo links */\r\n logoClass?: string;\r\n}","/**\r\n * Site Map Direction\r\n */\r\nexport enum SiteMapDirection {\r\n /**\r\n * Horizontal\r\n */\r\n Horizontal = 'Horizontal',\r\n\r\n /**\r\n * Vertical\r\n */\r\n Vertical = 'Vertical'\r\n}","/**\r\n * Distributed Cache API\r\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\r\n *\r\n * OpenAPI spec version: 1\r\n * \r\n *\r\n * NOTE: This class is auto generated by the swagger code generator program.\r\n * https://github.com/swagger-api/swagger-codegen.git\r\n * Do not edit the class manually.\r\n */\r\nimport { ThemePaletteModel } from './themePaletteModel';\r\n\r\n/**\r\n * The Branding Session Data\r\n */\r\nexport interface BrandingModel { \r\n /**\r\n * The logo URL\r\n */\r\n logoUrl: string;\r\n /**\r\n * The theme name\r\n */\r\n themeName: string;\r\n /**\r\n * The Theme Palette\r\n */\r\n themePalette?: ThemePaletteModel;\r\n /**\r\n * The Fav Icon Url (tab icon)\r\n */\r\n favIconUrl?: string;\r\n}","/**\r\n * Distributed Cache API\r\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\r\n *\r\n * OpenAPI spec version: 1\r\n * \r\n *\r\n * NOTE: This class is auto generated by the swagger code generator program.\r\n * https://github.com/swagger-api/swagger-codegen.git\r\n * Do not edit the class manually.\r\n */\r\n\r\n/**\r\n * The error model\r\n */\r\nexport interface ErrorModel { \r\n /**\r\n * The error message\r\n */\r\n message?: string;\r\n /**\r\n * The response status\r\n */\r\n status?: string;\r\n}","/**\r\n * Distributed Cache API\r\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\r\n *\r\n * OpenAPI spec version: 1\r\n * \r\n *\r\n * NOTE: This class is auto generated by the swagger code generator program.\r\n * https://github.com/swagger-api/swagger-codegen.git\r\n * Do not edit the class manually.\r\n */\r\n\r\n/**\r\n * The OAuth Session Data\r\n */\r\nexport interface OAuthModel { \r\n /**\r\n * The Client ID\r\n */\r\n clientId: string;\r\n /**\r\n * The issuer\r\n */\r\n issuer: string;\r\n /**\r\n * The scope\r\n */\r\n scope: string;\r\n}","/**\r\n * Distributed Cache API\r\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\r\n *\r\n * OpenAPI spec version: 1\r\n * \r\n *\r\n * NOTE: This class is auto generated by the swagger code generator program.\r\n * https://github.com/swagger-api/swagger-codegen.git\r\n * Do not edit the class manually.\r\n */\r\nimport { ErrorModel } from './errorModel';\r\nimport { SessionResponseModel } from './sessionResponseModel';\r\n\r\n/**\r\n * The get session response model\r\n */\r\nexport interface SessionGetResponseModel { \r\n response?: SessionResponseModel;\r\n /**\r\n * The error message\r\n */\r\n error?: ErrorModel;\r\n}","/**\r\n * Distributed Cache API\r\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\r\n *\r\n * OpenAPI spec version: 1\r\n * \r\n *\r\n * NOTE: This class is auto generated by the swagger code generator program.\r\n * https://github.com/swagger-api/swagger-codegen.git\r\n * Do not edit the class manually.\r\n */\r\nimport { BrandingModel } from './brandingModel';\r\nimport { OAuthModel } from './oAuthModel';\r\nimport { TrackingModel } from './trackingModel';\r\n\r\n/**\r\n * The Session Post Model\r\n */\r\nexport interface SessionPostRequestModel { \r\n /**\r\n * The session data\r\n */\r\n sessionData: any;\r\n /**\r\n * The idle life time in minutes Default is 30 minutes min is 1 max is 120\r\n */\r\n idleLifeTimeMinutes?: number;\r\n /**\r\n * The branding data\r\n */\r\n branding: BrandingModel;\r\n /**\r\n * The tracking data\r\n */\r\n tracking?: TrackingModel;\r\n /**\r\n * The OAuth Session Data\r\n */\r\n oAuth?: OAuthModel;\r\n}","/**\r\n * Distributed Cache API\r\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\r\n *\r\n * OpenAPI spec version: 1\r\n * \r\n *\r\n * NOTE: This class is auto generated by the swagger code generator program.\r\n * https://github.com/swagger-api/swagger-codegen.git\r\n * Do not edit the class manually.\r\n */\r\nimport { ErrorModel } from './errorModel';\r\nimport { SessionResponseModel } from './sessionResponseModel';\r\n\r\n/**\r\n * The session post response model\r\n */\r\nexport interface SessionPostResponseModel { \r\n response?: SessionResponseModel;\r\n /**\r\n * The error message\r\n */\r\n error?: ErrorModel;\r\n}","/**\r\n * Distributed Cache API\r\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\r\n *\r\n * OpenAPI spec version: 1\r\n * \r\n *\r\n * NOTE: This class is auto generated by the swagger code generator program.\r\n * https://github.com/swagger-api/swagger-codegen.git\r\n * Do not edit the class manually.\r\n */\r\nimport { BrandingModel } from './brandingModel';\r\nimport { OAuthModel } from './oAuthModel';\r\nimport { TrackingModel } from './trackingModel';\r\n\r\n/**\r\n * The Session Post Model\r\n */\r\nexport interface SessionPutRequestModel {\r\n /**\r\n * The initializing origin\r\n */\r\n initializingOrigin?: string;\r\n /**\r\n * The session data\r\n */\r\n sessionData: any;\r\n /**\r\n * The branding data\r\n */\r\n branding: BrandingModel;\r\n /**\r\n * The tracking data\r\n */\r\n tracking?: TrackingModel;\r\n /**\r\n * The OAuth Session Data\r\n */\r\n oAuth?: OAuthModel;\r\n}","/**\r\n * Distributed Cache API\r\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\r\n *\r\n * OpenAPI spec version: 1\r\n * \r\n *\r\n * NOTE: This class is auto generated by the swagger code generator program.\r\n * https://github.com/swagger-api/swagger-codegen.git\r\n * Do not edit the class manually.\r\n */\r\nimport { ErrorModel } from './errorModel';\r\nimport { SessionResponseModel } from './sessionResponseModel';\r\n\r\n/**\r\n * The session post response model\r\n */\r\nexport interface SessionPutResponseModel { \r\n response?: SessionResponseModel;\r\n /**\r\n * The error message\r\n */\r\n error?: ErrorModel;\r\n}","/**\r\n * Distributed Cache API\r\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\r\n *\r\n * OpenAPI spec version: 1\r\n * \r\n *\r\n * NOTE: This class is auto generated by the swagger code generator program.\r\n * https://github.com/swagger-api/swagger-codegen.git\r\n * Do not edit the class manually.\r\n */\r\nimport { BrandingModel } from './brandingModel';\r\nimport { OAuthModel } from './oAuthModel';\r\nimport { TrackingModel } from './trackingModel';\r\n\r\n/**\r\n * The session response model\r\n */\r\nexport interface SessionResponseModel {\r\n /**\r\n * The initializing origin\r\n */\r\n initializingOrigin?: string;\r\n /**\r\n * The session ID\r\n */\r\n sessionId?: string;\r\n /**\r\n * The session data\r\n */\r\n sessionData?: any;\r\n /**\r\n * The branding data\r\n */\r\n branding?: BrandingModel;\r\n /**\r\n * The tracking data\r\n */\r\n tracking?: TrackingModel;\r\n /**\r\n * The OAuth Session Data\r\n */\r\n oAuth?: OAuthModel;\r\n}","/**\r\n * Distributed Cache API\r\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\r\n *\r\n * OpenAPI spec version: 1\r\n * \r\n *\r\n * NOTE: This class is auto generated by the swagger code generator program.\r\n * https://github.com/swagger-api/swagger-codegen.git\r\n * Do not edit the class manually.\r\n */\r\n\r\n/**\r\n * The theme palette\r\n */\r\nexport interface ThemePaletteColorsModel { \r\n /**\r\n * The 50 palette color\r\n */\r\n fifty: string;\r\n /**\r\n * The 100 palette color\r\n */\r\n oneHundred: string;\r\n /**\r\n * The 200 palette color\r\n */\r\n twoHundred: string;\r\n /**\r\n * The 300 palette color\r\n */\r\n threeHundred: string;\r\n /**\r\n * The 400 palette color\r\n */\r\n fourHundred: string;\r\n /**\r\n * The 500 palette color\r\n */\r\n fiveHundred: string;\r\n /**\r\n * The 600 palette color\r\n */\r\n sixHundred: string;\r\n /**\r\n * The 700 palette color\r\n */\r\n sevenHundred: string;\r\n /**\r\n * The 800 palette color\r\n */\r\n eightHundred: string;\r\n /**\r\n * The 900 palette color\r\n */\r\n nineHundred: string;\r\n /**\r\n * The A100 palette color\r\n */\r\n a100: string;\r\n /**\r\n * The A200 palette color\r\n */\r\n a200: string;\r\n /**\r\n * The A400 palette color\r\n */\r\n a400: string;\r\n /**\r\n * The A700 palette color\r\n */\r\n a700: string;\r\n}","/**\r\n * Distributed Cache API\r\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\r\n *\r\n * OpenAPI spec version: 1\r\n * \r\n *\r\n * NOTE: This class is auto generated by the swagger code generator program.\r\n * https://github.com/swagger-api/swagger-codegen.git\r\n * Do not edit the class manually.\r\n */\r\nimport { ThemePaletteColorsModel } from './themePaletteColorsModel';\r\n\r\n/**\r\n * The theme palette\r\n */\r\nexport interface ThemePaletteModel { \r\n /**\r\n * The primary theme color palette\r\n */\r\n primaryColor: ThemePaletteColorsModel;\r\n /**\r\n * The primary theme contrast palette\r\n */\r\n primaryContrast: ThemePaletteColorsModel;\r\n /**\r\n * The accent theme color palette\r\n */\r\n accentColor: ThemePaletteColorsModel;\r\n /**\r\n * The accent theme contrast palette\r\n */\r\n accentContrast: ThemePaletteColorsModel;\r\n /**\r\n * The warning theme color palette\r\n */\r\n warningColor: ThemePaletteColorsModel;\r\n /**\r\n * The warning theme contrast palette\r\n */\r\n warningContrast: ThemePaletteColorsModel;\r\n}","/**\r\n * Distributed Cache API\r\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\r\n *\r\n * OpenAPI spec version: 1\r\n * \r\n *\r\n * NOTE: This class is auto generated by the swagger code generator program.\r\n * https://github.com/swagger-api/swagger-codegen.git\r\n * Do not edit the class manually.\r\n */\r\n\r\n/**\r\n * The tracking Data\r\n */\r\nexport interface TrackingModel { \r\n /**\r\n * The tracking ID\r\n */\r\n trackingId: string;\r\n /**\r\n * The tracking type\r\n */\r\n trackingType: string;\r\n}","/**\r\n * Softheon.UserManagement.API\r\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\r\n *\r\n * OpenAPI spec version: 1\r\n * \r\n *\r\n * NOTE: This class is auto generated by the swagger code generator program.\r\n * https://github.com/swagger-api/swagger-codegen.git\r\n * Do not edit the class manually.\r\n */\r\nimport { FolderLink } from './folderLink';\r\nimport { IdentityProfile } from './identityProfile';\r\nimport { SettingsProfile } from './settingsProfile';\r\n\r\n/**\r\n * Application User Model\r\n */\r\nexport interface ApplicationUserModel { \r\n /**\r\n * Gets or sets the child links.\r\n */\r\n childLinks?: Array<FolderLink>;\r\n /**\r\n * The IdentityProfile.\r\n */\r\n identity?: IdentityProfile;\r\n /**\r\n * The SettingsProfile.\r\n */\r\n settings?: SettingsProfile;\r\n drawerId?: number;\r\n id?: number;\r\n name?: string;\r\n state?: ApplicationUserModel.StateEnum;\r\n}\r\nexport namespace ApplicationUserModel {\r\n export type StateEnum = 'Available' | 'Locked' | 'Suspended' | 'Archived' | 'Deleted' | 'Canceled' | 'Complete' | 'Reviewed' | 'ReviewedSuspended' | 'ReviewedComplete' | 'Rejected' | 'RoutingSlipOpen' | 'ReviewedRoutingSlipOpen' | 'Undefined';\r\n export const StateEnum = {\r\n Available: 'Available' as StateEnum,\r\n Locked: 'Locked' as StateEnum,\r\n Suspended: 'Suspended' as StateEnum,\r\n Archived: 'Archived' as StateEnum,\r\n Deleted: 'Deleted' as StateEnum,\r\n Canceled: 'Canceled' as StateEnum,\r\n Complete: 'Complete' as StateEnum,\r\n Reviewed: 'Reviewed' as StateEnum,\r\n ReviewedSuspended: 'ReviewedSuspended' as StateEnum,\r\n ReviewedComplete: 'ReviewedComplete' as StateEnum,\r\n Rejected: 'Rejected' as StateEnum,\r\n RoutingSlipOpen: 'RoutingSlipOpen' as StateEnum,\r\n ReviewedRoutingSlipOpen: 'ReviewedRoutingSlipOpen' as StateEnum,\r\n Undefined: 'Undefined' as StateEnum\r\n };\r\n}","/**\r\n * Softheon.UserManagement.API\r\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\r\n *\r\n * OpenAPI spec version: 1\r\n * \r\n *\r\n * NOTE: This class is auto generated by the swagger code generator program.\r\n * https://github.com/swagger-api/swagger-codegen.git\r\n * Do not edit the class manually.\r\n */\r\nimport { ApplicationUserModel } from './applicationUserModel';\r\n\r\n/**\r\n * User Response Model\r\n */\r\nexport interface AssertedUserModel { \r\n /**\r\n * Gets or sets the user model.\r\n */\r\n userModel?: ApplicationUserModel;\r\n /**\r\n * Gets or sets the hash.\r\n */\r\n hash?: string;\r\n}","/**\r\n * Softheon.UserManagement.API\r\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\r\n *\r\n * OpenAPI spec version: 1\r\n * \r\n *\r\n * NOTE: This class is auto generated by the swagger code generator program.\r\n * https://github.com/swagger-api/swagger-codegen.git\r\n * Do not edit the class manually.\r\n */\r\n\r\nexport interface FolderLink { \r\n acl?: number;\r\n childDrawerID?: number;\r\n childEntityID?: number;\r\n childType?: number;\r\n classProperty?: number;\r\n drawerID?: number;\r\n entityID?: number;\r\n hasChildrenInSameDrawer?: boolean;\r\n id?: number;\r\n includerUserID?: number;\r\n insertionTime?: Date;\r\n modificationTime?: Date;\r\n modifierUserID?: number;\r\n name?: string;\r\n note?: string;\r\n ownerGroupID?: number;\r\n ownerUserID?: number;\r\n pageNumber?: number;\r\n parentDrawerID?: number;\r\n state?: string;\r\n virtualName?: string;\r\n}","/**\r\n * Softheon.UserManagement.API\r\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\r\n *\r\n * OpenAPI spec version: 1\r\n * \r\n *\r\n * NOTE: This class is auto generated by the swagger code generator program.\r\n * https://github.com/swagger-api/swagger-codegen.git\r\n * Do not edit the class manually.\r\n */\r\nimport { RolesRow } from './rolesRow';\r\nimport { ValidationRecordsRow } from './validationRecordsRow';\r\n\r\n/**\r\n * Identity Profile\r\n */\r\nexport interface IdentityProfile { \r\n /**\r\n * The ID.\r\n */\r\n id?: string;\r\n /**\r\n * The Email.\r\n */\r\n email?: string;\r\n /**\r\n * The PhoneNumber.\r\n */\r\n phoneNumber?: string;\r\n /**\r\n * The Provider.\r\n */\r\n provider?: string;\r\n /**\r\n * The FirstName.\r\n */\r\n firstName?: string;\r\n /**\r\n * The LastName.\r\n */\r\n lastName?: string;\r\n /**\r\n * The MiddleName.\r\n */\r\n middleName?: string;\r\n /**\r\n * The Street.\r\n */\r\n street?: string;\r\n /**\r\n * The City.\r\n */\r\n city?: string;\r\n /**\r\n * The State.\r\n */\r\n state?: string;\r\n /**\r\n * The Zip.\r\n */\r\n zip?: string;\r\n /**\r\n * The IdProofingRefNum.\r\n */\r\n idProofingRefNum?: string;\r\n /**\r\n * The LastLogin.\r\n */\r\n lastLogin?: Date;\r\n /**\r\n * The DateofBirth.\r\n */\r\n dateofBirth?: Date;\r\n /**\r\n * The Roles.\r\n */\r\n roles?: Array<RolesRow>;\r\n /**\r\n * The ValidationRecords.\r\n */\r\n validationRecords?: Array<ValidationRecordsRow>;\r\n}","/**\r\n * Softheon.UserManagement.API\r\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\r\n *\r\n * OpenAPI spec version: 1\r\n * \r\n *\r\n * NOTE: This class is auto generated by the swagger code generator program.\r\n * https://github.com/swagger-api/swagger-codegen.git\r\n * Do not edit the class manually.\r\n */\r\n\r\nexport interface PreferencesRow { \r\n key?: string;\r\n value?: string;\r\n}","/**\r\n * Softheon.UserManagement.API\r\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\r\n *\r\n * OpenAPI spec version: 1\r\n * \r\n *\r\n * NOTE: This class is auto generated by the swagger code generator program.\r\n * https://github.com/swagger-api/swagger-codegen.git\r\n * Do not edit the class manually.\r\n */\r\nimport { PreferencesRow } from './preferencesRow';\r\n\r\n/**\r\n * Settings Profile\r\n */\r\nexport interface SettingsProfile { \r\n /**\r\n * The Preferences.\r\n */\r\n preferences?: Array<PreferencesRow>;\r\n}","/**\r\n * Softheon.UserManagement.API\r\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\r\n *\r\n * OpenAPI spec version: 1\r\n * \r\n *\r\n * NOTE: This class is auto generated by the swagger code generator program.\r\n * https://github.com/swagger-api/swagger-codegen.git\r\n * Do not edit the class manually.\r\n */\r\n\r\nexport interface ValidationRecordsRow { \r\n type?: string;\r\n status?: string;\r\n referenceID?: string;\r\n validationDate?: Date;\r\n}","import { SessionResponseModel } from '../../core/client-generated/model/sessionResponseModel';\r\nimport { BrandingModel, TrackingModel, OAuthModel } from '../../core/client-generated/model/models';\r\n\r\n/** The session class */\r\nexport class TypedSession<T> implements SessionResponseModel {\r\n /** The initalizing origin */\r\n public initializingOrigin?: string;\r\n\r\n /** The session id */\r\n public sessionId?: string;\r\n\r\n /** The typed session data */\r\n public sessionData?: T;\r\n\r\n /** The branding model */\r\n public branding?: BrandingModel;\r\n\r\n /** The tracking model */\r\n public tracking?: TrackingModel;\r\n\r\n /** The oauth model */\r\n public oAuth?: OAuthModel;\r\n}","/**\r\n * CSS Override\r\n */\r\nexport class CssOverride {\r\n public selector: 'id' | 'class' | 'tag';\r\n public parameter: string;\r\n public attributes: Array<Attribute>;\r\n}\r\n\r\n/**\r\n * CSS attribute overrides\r\n */\r\nexport class Attribute {\r\n public name: string;\r\n public value: string;\r\n}\r\n"],"names":["InjectionToken","HttpHeaders","tslib_1.__values","Injectable","HttpClient","Optional","Inject","of","BehaviorSubject","switchMap","take","OAuthService","SessionService","Component","Input","NgModule","RouterModule","CommonModule","FlexLayoutModule","TranslateModule","MatButtonModule","FormControl","Validators","FormBuilder","Directive","ElementRef","HostListener","components","MatInputModule","MatFormFieldModule","MatSelectModule","ReactiveFormsModule","map","catchError","Observable","CoverageDetail","HttpClientModule","EventEmitter","AuthConfig","JwksValidationHandler","OAuthStorage","Output","materialModules","MatToolbarModule","MatMenuModule","MatButtonToggleModule","MatIconModule","MatListModule","MatSidenavModule","OAuthModule","TranslateService","ChangeDetectorRef","MediaMatcher","ViewChild","MatSliderModule","MatSlideToggleModule","filter","share","ServerSessionService","Injector","tslib_1.__extends","ReplaySubject","Subscription","TemplateRef","ViewContainerRef","BASE_PATH","COLLECTION_FORMATS","ConfigurationParameters","Configuration","NavigationStart","NavigationError","NavigationEnd","Router","ApmService","ErrorHandler","MatExpansionModule","MatCardModule","ApplicationUserModel"],"mappings":"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"}
1
+ {"version":3,"file":"softheon-armature.umd.js","sources":["../../../../node_modules/tslib/tslib.es6.js","ng://@softheon/armature/lib/core/client-generated/variables.ts","ng://@softheon/armature/lib/core/client-generated/configuration.ts","ng://@softheon/armature/lib/core/client-generated/api/session.service.ts","ng://@softheon/armature/lib/shared/models/constants.ts","ng://@softheon/armature/lib/shared/models/http-verbs.ts","ng://@softheon/armature/lib/shared/models/session-config.ts","ng://@softheon/armature/lib/shared/models/data-store-config.ts","ng://@softheon/armature/lib/shared/models/user-entity-service-config.ts","ng://@softheon/armature/lib/shared/models/route-path.ts","ng://@softheon/armature/lib/shared/models/styles.ts","ng://@softheon/armature/lib/core/services/session.service.ts","ng://@softheon/armature/lib/footer/models/footer-config.ts","ng://@softheon/armature/lib/footer/components/footer/footer.component.ts","ng://@softheon/armature/lib/footer/components/site-map/site-map.component.ts","ng://@softheon/armature/lib/footer/footer.module.ts","ng://@softheon/armature/lib/forms/models/enums/states.ts","ng://@softheon/armature/lib/forms/components/sof-address/sof-address.component.ts","ng://@softheon/armature/lib/forms/directives/alphanumeric/alphanumeric.directive.ts","ng://@softheon/armature/lib/forms/directives/letters-only/letters-only.directive.ts","ng://@softheon/armature/lib/forms/directives/numbers-only/numbers-only.directive.ts","ng://@softheon/armature/lib/forms/forms.module.ts","ng://@softheon/armature/lib/oauth/models/constants.ts","ng://@softheon/armature/lib/rbac/models/access-token-claims.ts","ng://@softheon/armature/lib/rbac/models/decoded-access-token.ts","ng://@softheon/armature/lib/oauth/services/hybrid-saml-oauth.service.ts","ng://@softheon/armature/lib/oauth/models/generated/accountManagementAssertionModel.ts","ng://@softheon/armature/lib/oauth/models/generated/accountManagementResponseModel.ts","ng://@softheon/armature/lib/oauth/models/generated/coverageDetail.ts","ng://@softheon/armature/lib/oauth/models/generated/finance.ts","ng://@softheon/armature/lib/oauth/models/generated/iSsoResponseModel.ts","ng://@softheon/armature/lib/oauth/models/generated/accountManagementRefreshRequestModel.ts","ng://@softheon/armature/lib/oauth/models/generated/iSsoResponseModelAccountManagementAssertionModel.ts","ng://@softheon/armature/lib/oauth/models/generated/person.ts","ng://@softheon/armature/lib/oauth/models/generated/policy.ts","ng://@softheon/armature/lib/oauth/models/generated/refreshResponseModel.ts","ng://@softheon/armature/lib/oauth/oauth.module.ts","ng://@softheon/armature/lib/header/models/header-auth.settings.ts","ng://@softheon/armature/lib/header/components/header/header.component.ts","ng://@softheon/armature/lib/header/components/mobile-header-menu/mobile-header-menu.component.ts","ng://@softheon/armature/lib/header/header.module.ts","ng://@softheon/armature/lib/navigation/components/navigation/navigation.component.ts","ng://@softheon/armature/lib/navigation/navigation.module.ts","ng://@softheon/armature/lib/core/services/user-entity.service.ts","ng://@softheon/armature/lib/theming/directives/css-override.directive.ts","ng://@softheon/armature/lib/theming/services/theme.service.ts","ng://@softheon/armature/lib/theming/theme.module.ts","ng://@softheon/armature/lib/armature.module.ts","ng://@softheon/armature/lib/saml/models/redirect-saml-request.ts","ng://@softheon/armature/lib/saml/services/send-off/abstract-saml.service.ts","ng://@softheon/armature/lib/saml/components/redirect-saml/redirect-saml.component.ts","ng://@softheon/armature/lib/saml/models/i-saml-request.ts","ng://@softheon/armature/lib/saml/models/i-saml-response.ts","ng://@softheon/armature/lib/saml/models/sso-gateway-model.ts","ng://@softheon/armature/lib/saml/services/entry/abstract-saml-entry.service.ts","ng://@softheon/armature/lib/saml/services/entry/sso-gateway-entry.service.ts","ng://@softheon/armature/lib/saml/services/send-off/saml.service.ts","ng://@softheon/armature/lib/saml/saml.module.ts","ng://@softheon/armature/lib/navigation/models/navigation.ts","ng://@softheon/armature/lib/navigation/models/nav.settings.ts","ng://@softheon/armature/lib/navigation/models/nav-theme.settings.ts","ng://@softheon/armature/lib/header/models/header.settings.ts","ng://@softheon/armature/lib/header/models/header-theme.settings.ts","ng://@softheon/armature/lib/header/models/mobile-header-nav.settings.ts","ng://@softheon/armature/lib/rbac/models/constants.ts","ng://@softheon/armature/lib/rbac/models/rbac-config.ts","ng://@softheon/armature/lib/rbac/services/role-nav.service.ts","ng://@softheon/armature/lib/rbac/services/oauth2-role.service.ts","ng://@softheon/armature/lib/rbac/services/ar-role-nav.service.ts","ng://@softheon/armature/lib/rbac/directives/rbac-action.directive.ts","ng://@softheon/armature/lib/rbac/rbac.module.ts","ng://@softheon/armature/lib/rbac/models/role-access.ts","ng://@softheon/armature/lib/distributed-cache/client-generated/variables.ts","ng://@softheon/armature/lib/distributed-cache/client-generated/configuration.ts","ng://@softheon/armature/lib/distributed-cache/client-generated/api/cache.service.ts","ng://@softheon/armature/lib/distributed-cache/models/constants.ts","ng://@softheon/armature/lib/distributed-cache/client-generated/api/api.ts","ng://@softheon/armature/lib/distributed-cache/services/server-cache.service.ts","ng://@softheon/armature/lib/distributed-cache/distributed-cache.module.ts","ng://@softheon/armature/lib/distributed-cache/client-generated/model/cacheExpirationType.ts","ng://@softheon/armature/lib/distributed-cache/client-generated/model/createCacheEntryRequestModel.ts","ng://@softheon/armature/lib/distributed-cache/client-generated/model/retrieveCacheEntryResponseModel.ts","ng://@softheon/armature/lib/distributed-cache/client-generated/model/updateCacheEntryRequestModel.ts","ng://@softheon/armature/lib/distributed-cache/models/policy-person.ts","ng://@softheon/armature/lib/rum/services/rum.service.ts","ng://@softheon/armature/lib/rum/models/arm-error.ts","ng://@softheon/armature/lib/rum/services/shared-error.service.ts","ng://@softheon/armature/lib/rum/rum.module.ts","ng://@softheon/armature/lib/rum/models/rum-config.ts","ng://@softheon/armature/lib/rum/services/rum-error-handler.service.ts","ng://@softheon/armature/lib/rum/services/softheon-error-handler.service.ts","ng://@softheon/armature/lib/forms/models/address.ts","ng://@softheon/armature/lib/forms/models/county.ts","ng://@softheon/armature/lib/error/models/error-common-config.ts","ng://@softheon/armature/lib/error/components/error-common/error-common.component.ts","ng://@softheon/armature/lib/error/error.module.ts","ng://@softheon/armature/lib/faq/models/faq-config.ts","ng://@softheon/armature/lib/faq/components/faq/faq.component.ts","ng://@softheon/armature/lib/faq/faq.module.ts","ng://@softheon/armature/lib/faq/models/faq.ts","ng://@softheon/armature/lib/footer/models/site-map-models.ts","ng://@softheon/armature/lib/footer/models/enum/site-map-direction.ts","ng://@softheon/armature/lib/core/client-generated/model/brandingModel.ts","ng://@softheon/armature/lib/core/client-generated/model/errorModel.ts","ng://@softheon/armature/lib/core/client-generated/model/oAuthModel.ts","ng://@softheon/armature/lib/core/client-generated/model/sessionGetResponseModel.ts","ng://@softheon/armature/lib/core/client-generated/model/sessionPostRequestModel.ts","ng://@softheon/armature/lib/core/client-generated/model/sessionPostResponseModel.ts","ng://@softheon/armature/lib/core/client-generated/model/sessionPutRequestModel.ts","ng://@softheon/armature/lib/core/client-generated/model/sessionPutResponseModel.ts","ng://@softheon/armature/lib/core/client-generated/model/sessionResponseModel.ts","ng://@softheon/armature/lib/core/client-generated/model/themePaletteColorsModel.ts","ng://@softheon/armature/lib/core/client-generated/model/themePaletteModel.ts","ng://@softheon/armature/lib/core/client-generated/model/trackingModel.ts","ng://@softheon/armature/lib/core/client-generated/model/applicationUserModel.ts","ng://@softheon/armature/lib/core/client-generated/model/assertedUserModel.ts","ng://@softheon/armature/lib/core/client-generated/model/folderLink.ts","ng://@softheon/armature/lib/core/client-generated/model/identityProfile.ts","ng://@softheon/armature/lib/core/client-generated/model/preferencesRow.ts","ng://@softheon/armature/lib/core/client-generated/model/settingsProfile.ts","ng://@softheon/armature/lib/core/client-generated/model/validationRecordsRow.ts","ng://@softheon/armature/lib/shared/models/typed-session.ts","ng://@softheon/armature/lib/theming/models/css-override.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\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 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) : new P(function (resolve) { resolve(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 m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n 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}\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","import { InjectionToken } from '@angular/core';\r\n\r\nexport const BASE_PATH = new InjectionToken<string>('basePath');\r\nexport const COLLECTION_FORMATS = {\r\n 'csv': ',',\r\n 'tsv': ' ',\r\n 'ssv': ' ',\r\n 'pipes': '|'\r\n}\r\n","export interface ConfigurationParameters {\r\n apiKeys?: {[ key: string ]: string};\r\n username?: string;\r\n password?: string;\r\n accessToken?: string | (() => string);\r\n basePath?: string;\r\n withCredentials?: boolean;\r\n}\r\n\r\nexport class Configuration {\r\n apiKeys?: {[ key: string ]: string};\r\n username?: string;\r\n password?: string;\r\n accessToken?: string | (() => string);\r\n basePath?: string;\r\n withCredentials?: boolean;\r\n\r\n constructor(configurationParameters: ConfigurationParameters = {}) {\r\n this.apiKeys = configurationParameters.apiKeys;\r\n this.username = configurationParameters.username;\r\n this.password = configurationParameters.password;\r\n this.accessToken = configurationParameters.accessToken;\r\n this.basePath = configurationParameters.basePath;\r\n this.withCredentials = configurationParameters.withCredentials;\r\n }\r\n\r\n /**\r\n * Select the correct content-type to use for a request.\r\n * Uses {@link Configuration#isJsonMime} to determine the correct content-type.\r\n * If no content type is found return the first found type if the contentTypes is not empty\r\n * @param contentTypes - the array of content types that are available for selection\r\n * @returns the selected content-type or <code>undefined</code> if no selection could be made.\r\n */\r\n public selectHeaderContentType (contentTypes: string[]): string | undefined {\r\n if (contentTypes.length == 0) {\r\n return undefined;\r\n }\r\n\r\n let type = contentTypes.find(x => this.isJsonMime(x));\r\n if (type === undefined) {\r\n return contentTypes[0];\r\n }\r\n return type;\r\n }\r\n\r\n /**\r\n * Select the correct accept content-type to use for a request.\r\n * Uses {@link Configuration#isJsonMime} to determine the correct accept content-type.\r\n * If no content type is found return the first found type if the contentTypes is not empty\r\n * @param accepts - the array of content types that are available for selection.\r\n * @returns the selected content-type or <code>undefined</code> if no selection could be made.\r\n */\r\n public selectHeaderAccept(accepts: string[]): string | undefined {\r\n if (accepts.length == 0) {\r\n return undefined;\r\n }\r\n\r\n let type = accepts.find(x => this.isJsonMime(x));\r\n if (type === undefined) {\r\n return accepts[0];\r\n }\r\n return type;\r\n }\r\n\r\n /**\r\n * Check if the given MIME is a JSON MIME.\r\n * JSON MIME examples:\r\n * application/json\r\n * application/json; charset=UTF8\r\n * APPLICATION/JSON\r\n * application/vnd.company+json\r\n * @param mime - MIME (Multipurpose Internet Mail Extensions)\r\n * @return True if the given MIME is JSON, false otherwise.\r\n */\r\n public isJsonMime(mime: string): boolean {\r\n const jsonMime: RegExp = new RegExp('^(application\\/json|[^;/ \\t]+\\/[^;/ \\t]+[+]json)[ \\t]*(;.*)?$', 'i');\r\n return mime != null && (jsonMime.test(mime) || mime.toLowerCase() === 'application/json-patch+json');\r\n }\r\n}\r\n","/**\r\n * Distributed Cache API\r\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\r\n *\r\n * OpenAPI spec version: 1\r\n * \r\n *\r\n * NOTE: This class is auto generated by the swagger code generator program.\r\n * https://github.com/swagger-api/swagger-codegen.git\r\n * Do not edit the class manually.\r\n *//* tslint:disable:no-unused-variable member-ordering */\r\n\r\nimport { Inject, Injectable, Optional } from '@angular/core';\r\nimport { HttpClient, HttpHeaders, HttpParams,\r\n HttpResponse, HttpEvent } from '@angular/common/http';\r\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\r\n\r\nimport { Observable } from 'rxjs';\r\n\r\nimport { SessionGetResponseModel } from '../model/sessionGetResponseModel';\r\nimport { SessionPostRequestModel } from '../model/sessionPostRequestModel';\r\nimport { SessionPostResponseModel } from '../model/sessionPostResponseModel';\r\nimport { SessionPutRequestModel } from '../model/sessionPutRequestModel';\r\nimport { SessionPutResponseModel } from '../model/sessionPutResponseModel';\r\n\r\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\r\nimport { Configuration } from '../configuration';\r\n\r\n\r\n@Injectable()\r\nexport class SessionService {\r\n\r\n protected basePath = '/';\r\n public defaultHeaders = new HttpHeaders();\r\n public configuration = new Configuration();\r\n\r\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\r\n if (basePath) {\r\n this.basePath = basePath;\r\n }\r\n if (configuration) {\r\n this.configuration = configuration;\r\n this.basePath = basePath || configuration.basePath || this.basePath;\r\n }\r\n }\r\n\r\n /**\r\n * @param consumes string[] mime-types\r\n * @return true: consumes contains 'multipart/form-data', false: otherwise\r\n */\r\n private canConsumeForm(consumes: string[]): boolean {\r\n const form = 'multipart/form-data';\r\n for (const consume of consumes) {\r\n if (form === consume) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n\r\n /**\r\n * Gets the session by id\r\n * \r\n * @param sessionId The session Id\r\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\r\n * @param reportProgress flag to report request and response progress.\r\n */\r\n public getSessionById(sessionId: string, observe?: 'body', reportProgress?: boolean): Observable<SessionGetResponseModel>;\r\n public getSessionById(sessionId: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<SessionGetResponseModel>>;\r\n public getSessionById(sessionId: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<SessionGetResponseModel>>;\r\n public getSessionById(sessionId: string, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {\r\n\r\n if (sessionId === null || sessionId === undefined) {\r\n throw new Error('Required parameter sessionId was null or undefined when calling getSessionById.');\r\n }\r\n\r\n let headers = this.defaultHeaders;\r\n\r\n // to determine the Accept header\r\n let httpHeaderAccepts: string[] = [\r\n 'text/plain',\r\n 'application/json',\r\n 'text/json'\r\n ];\r\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\r\n if (httpHeaderAcceptSelected != undefined) {\r\n headers = headers.set('Accept', httpHeaderAcceptSelected);\r\n }\r\n\r\n // to determine the Content-Type header\r\n const consumes: string[] = [\r\n ];\r\n\r\n return this.httpClient.request<SessionGetResponseModel>('get',`${this.basePath}/v1/Session/${encodeURIComponent(String(sessionId))}`,\r\n {\r\n withCredentials: this.configuration.withCredentials,\r\n headers: headers,\r\n observe: observe,\r\n reportProgress: reportProgress\r\n }\r\n );\r\n }\r\n\r\n /**\r\n * Refreshes the session\r\n * \r\n * @param sessionId The session id\r\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\r\n * @param reportProgress flag to report request and response progress.\r\n */\r\n public refreshSessionById(sessionId: string, observe?: 'body', reportProgress?: boolean): Observable<any>;\r\n public refreshSessionById(sessionId: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<any>>;\r\n public refreshSessionById(sessionId: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<any>>;\r\n public refreshSessionById(sessionId: string, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {\r\n\r\n if (sessionId === null || sessionId === undefined) {\r\n throw new Error('Required parameter sessionId was null or undefined when calling refreshSessionById.');\r\n }\r\n\r\n let headers = this.defaultHeaders;\r\n\r\n // to determine the Accept header\r\n let httpHeaderAccepts: string[] = [\r\n ];\r\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\r\n if (httpHeaderAcceptSelected != undefined) {\r\n headers = headers.set('Accept', httpHeaderAcceptSelected);\r\n }\r\n\r\n // to determine the Content-Type header\r\n const consumes: string[] = [\r\n ];\r\n\r\n return this.httpClient.request<any>('get',`${this.basePath}/v1/Session/${encodeURIComponent(String(sessionId))}/refresh`,\r\n {\r\n withCredentials: this.configuration.withCredentials,\r\n headers: headers,\r\n observe: observe,\r\n reportProgress: reportProgress\r\n }\r\n );\r\n }\r\n\r\n /**\r\n * Registers a session\r\n * \r\n * @param body The request model\r\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\r\n * @param reportProgress flag to report request and response progress.\r\n */\r\n public registerSession(body?: SessionPostRequestModel, observe?: 'body', reportProgress?: boolean): Observable<SessionPostResponseModel>;\r\n public registerSession(body?: SessionPostRequestModel, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<SessionPostResponseModel>>;\r\n public registerSession(body?: SessionPostRequestModel, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<SessionPostResponseModel>>;\r\n public registerSession(body?: SessionPostRequestModel, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {\r\n\r\n\r\n let headers = this.defaultHeaders;\r\n\r\n // to determine the Accept header\r\n let httpHeaderAccepts: string[] = [\r\n 'text/plain',\r\n 'application/json',\r\n 'text/json'\r\n ];\r\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\r\n if (httpHeaderAcceptSelected != undefined) {\r\n headers = headers.set('Accept', httpHeaderAcceptSelected);\r\n }\r\n\r\n // to determine the Content-Type header\r\n const consumes: string[] = [\r\n 'application/json',\r\n 'text/json',\r\n 'application/_*+json'\r\n ];\r\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\r\n if (httpContentTypeSelected != undefined) {\r\n headers = headers.set('Content-Type', httpContentTypeSelected);\r\n }\r\n\r\n return this.httpClient.request<SessionPostResponseModel>('post',`${this.basePath}/v1/Session`,\r\n {\r\n body: body,\r\n withCredentials: this.configuration.withCredentials,\r\n headers: headers,\r\n observe: observe,\r\n reportProgress: reportProgress\r\n }\r\n );\r\n }\r\n\r\n /**\r\n * Creates the session with the given id\r\n * \r\n * @param sessionId The session id\r\n * @param body The model\r\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\r\n * @param reportProgress flag to report request and response progress.\r\n */\r\n public registerSessionById(sessionId: string, body?: SessionPostRequestModel, observe?: 'body', reportProgress?: boolean): Observable<any>;\r\n public registerSessionById(sessionId: string, body?: SessionPostRequestModel, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<any>>;\r\n public registerSessionById(sessionId: string, body?: SessionPostRequestModel, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<any>>;\r\n public registerSessionById(sessionId: string, body?: SessionPostRequestModel, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {\r\n\r\n if (sessionId === null || sessionId === undefined) {\r\n throw new Error('Required parameter sessionId was null or undefined when calling registerSessionById.');\r\n }\r\n\r\n\r\n let headers = this.defaultHeaders;\r\n\r\n // authentication (oauth2) required\r\n if (this.configuration.accessToken) {\r\n const accessToken = typeof this.configuration.accessToken === 'function'\r\n ? this.configuration.accessToken()\r\n : this.configuration.accessToken;\r\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\r\n }\r\n\r\n // to determine the Accept header\r\n let httpHeaderAccepts: string[] = [\r\n ];\r\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\r\n if (httpHeaderAcceptSelected != undefined) {\r\n headers = headers.set('Accept', httpHeaderAcceptSelected);\r\n }\r\n\r\n // to determine the Content-Type header\r\n const consumes: string[] = [\r\n 'application/json',\r\n 'text/json',\r\n 'application/_*+json'\r\n ];\r\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\r\n if (httpContentTypeSelected != undefined) {\r\n headers = headers.set('Content-Type', httpContentTypeSelected);\r\n }\r\n\r\n return this.httpClient.request<any>('post',`${this.basePath}/v1/Session/${encodeURIComponent(String(sessionId))}`,\r\n {\r\n body: body,\r\n withCredentials: this.configuration.withCredentials,\r\n headers: headers,\r\n observe: observe,\r\n reportProgress: reportProgress\r\n }\r\n );\r\n }\r\n\r\n /**\r\n * Deletes the session\r\n * \r\n * @param sessionId The session id\r\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\r\n * @param reportProgress flag to report request and response progress.\r\n */\r\n public removeSessionById(sessionId: string, observe?: 'body', reportProgress?: boolean): Observable<any>;\r\n public removeSessionById(sessionId: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<any>>;\r\n public removeSessionById(sessionId: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<any>>;\r\n public removeSessionById(sessionId: string, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {\r\n\r\n if (sessionId === null || sessionId === undefined) {\r\n throw new Error('Required parameter sessionId was null or undefined when calling removeSessionById.');\r\n }\r\n\r\n let headers = this.defaultHeaders;\r\n\r\n // to determine the Accept header\r\n let httpHeaderAccepts: string[] = [\r\n ];\r\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\r\n if (httpHeaderAcceptSelected != undefined) {\r\n headers = headers.set('Accept', httpHeaderAcceptSelected);\r\n }\r\n\r\n // to determine the Content-Type header\r\n const consumes: string[] = [\r\n ];\r\n\r\n return this.httpClient.request<any>('delete',`${this.basePath}/v1/Session/${encodeURIComponent(String(sessionId))}`,\r\n {\r\n withCredentials: this.configuration.withCredentials,\r\n headers: headers,\r\n observe: observe,\r\n reportProgress: reportProgress\r\n }\r\n );\r\n }\r\n\r\n /**\r\n * Syncs the session by id\r\n * \r\n * @param sessionId The session id\r\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\r\n * @param reportProgress flag to report request and response progress.\r\n */\r\n public syncSessionById(sessionId: string, observe?: 'body', reportProgress?: boolean): Observable<any>;\r\n public syncSessionById(sessionId: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<any>>;\r\n public syncSessionById(sessionId: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<any>>;\r\n public syncSessionById(sessionId: string, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {\r\n\r\n if (sessionId === null || sessionId === undefined) {\r\n throw new Error('Required parameter sessionId was null or undefined when calling syncSessionById.');\r\n }\r\n\r\n let headers = this.defaultHeaders;\r\n\r\n // to determine the Accept header\r\n let httpHeaderAccepts: string[] = [\r\n ];\r\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\r\n if (httpHeaderAcceptSelected != undefined) {\r\n headers = headers.set('Accept', httpHeaderAcceptSelected);\r\n }\r\n\r\n // to determine the Content-Type header\r\n const consumes: string[] = [\r\n ];\r\n\r\n return this.httpClient.request<any>('get',`${this.basePath}/v1/Session/${encodeURIComponent(String(sessionId))}/sync`,\r\n {\r\n withCredentials: this.configuration.withCredentials,\r\n headers: headers,\r\n observe: observe,\r\n reportProgress: reportProgress\r\n }\r\n );\r\n }\r\n\r\n /**\r\n * Updates the Session\r\n * \r\n * @param sessionId The session id\r\n * @param body The request model\r\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\r\n * @param reportProgress flag to report request and response progress.\r\n */\r\n public updateSessionById(sessionId: string, body?: SessionPutRequestModel, observe?: 'body', reportProgress?: boolean): Observable<any>;\r\n public updateSessionById(sessionId: string, body?: SessionPutRequestModel, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<any>>;\r\n public updateSessionById(sessionId: string, body?: SessionPutRequestModel, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<any>>;\r\n public updateSessionById(sessionId: string, body?: SessionPutRequestModel, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {\r\n\r\n if (sessionId === null || sessionId === undefined) {\r\n throw new Error('Required parameter sessionId was null or undefined when calling updateSessionById.');\r\n }\r\n\r\n\r\n let headers = this.defaultHeaders;\r\n\r\n // to determine the Accept header\r\n let httpHeaderAccepts: string[] = [\r\n 'text/plain',\r\n 'application/json',\r\n 'text/json'\r\n ];\r\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\r\n if (httpHeaderAcceptSelected != undefined) {\r\n headers = headers.set('Accept', httpHeaderAcceptSelected);\r\n }\r\n\r\n // to determine the Content-Type header\r\n const consumes: string[] = [\r\n 'application/json',\r\n 'text/json',\r\n 'application/_*+json'\r\n ];\r\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\r\n if (httpContentTypeSelected != undefined) {\r\n headers = headers.set('Content-Type', httpContentTypeSelected);\r\n }\r\n\r\n return this.httpClient.request<any>('put',`${this.basePath}/v1/Session/${encodeURIComponent(String(sessionId))}`,\r\n {\r\n body: body,\r\n withCredentials: this.configuration.withCredentials,\r\n headers: headers,\r\n observe: observe,\r\n reportProgress: reportProgress\r\n }\r\n );\r\n }\r\n\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\nimport { DataStoreConfig } from './data-store-config';\r\nimport { SessionConfig } from './session-config';\r\nimport { UserEntityServiceConfig } from './user-entity-service-config';\r\n\r\n/** Global injection tokens */\r\nexport class GlobalInjectionTokens {\r\n /** The token refresh time in minutes */\r\n public static tokenRefreshTimeMinutes: InjectionToken<number> = new InjectionToken<number>('TokenRefreshTimeMinutes');\r\n\r\n /** the user info endpoint injection token */\r\n public static userInfoEndpoint: InjectionToken<string> = new InjectionToken<string>('UserInfoEndpoint');\r\n\r\n /** The site base url */\r\n public static siteBaseUrl: InjectionToken<string> = new InjectionToken<string>('SiteBaseUrl');\r\n\r\n /** The browser storage implementation */\r\n public static browserStorageImplementation: InjectionToken<'local' | 'session'> = new InjectionToken<'local' | 'session'>('BrowserStorageImplementation');\r\n\r\n /** The session management implementation */\r\n public static sessionManagementImplementation: InjectionToken<'server' | 'client'> = new InjectionToken<'server' | 'client'>('SessionManagementImplementation');\r\n\r\n /** The session management base path */\r\n public static sessionManagementBasePath: InjectionToken<string> = new InjectionToken<string>('SessionManagementBasePath');\r\n\r\n /** The session refresh time in minutes */\r\n public static sessionRefreshTimeMinutes: InjectionToken<number> = new InjectionToken<number>('SessionRefreshTimeMinutes');\r\n\r\n /** The window interface */\r\n public static window: InjectionToken<Window> = new InjectionToken<Window>('Window');\r\n\r\n /** The data store configurations */\r\n public static dataStoreConfig: InjectionToken<DataStoreConfig> = new InjectionToken<DataStoreConfig>('DataStoreConfig');\r\n\r\n /** The user entity base url */\r\n public static userEntityBaseUrl: InjectionToken<string> = new InjectionToken<string>('UserEntityBaseUrl');\r\n\r\n /** The user entity service configs */\r\n public static userEntityServiceConfig: InjectionToken<UserEntityServiceConfig> = new InjectionToken<UserEntityServiceConfig>('UserEntityServiceConfig');\r\n\r\n /** The session configs */\r\n public static sessionConfig: InjectionToken<SessionConfig> = new InjectionToken<SessionConfig>('SessionConfig');\r\n}\r\n\r\n/** The pre sign in route storage key */\r\nexport const preSignInRouteStorageKey: string = 'preSignInRoute';\r\n","/** The http verb types */\r\nexport type HttpVerb = 'POST' | 'GET' | 'PUT' | 'PATCH' | 'DELETE';\r\n\r\n/** The http verb constants */\r\nexport const httpVerb = {\r\n POST: 'POST' as HttpVerb,\r\n GET: 'GET' as HttpVerb,\r\n PUT: 'PUT' as HttpVerb,\r\n PATCH: 'PATCH' as HttpVerb,\r\n DELETE: 'DELETE' as HttpVerb,\r\n}\r\n","/** The session configurations */\r\nexport class SessionConfig {\r\n public transferBasePath: string;\r\n public keyPath: string;\r\n}\r\n","import { HttpVerb } from './http-verbs';\r\nimport { TypedSession } from './typed-session';\r\n\r\n/** The data store configurations */\r\nexport class DataStoreConfig<T = any> {\r\n /** The data store base uri */\r\n public baseUri: string;\r\n\r\n /** The retrieve http verb */\r\n public retrieveVerb: HttpVerb;\r\n\r\n /** The retrieve request delegate */\r\n public retrieveRequestDelegate: (baseUri: string, data: TypedSession<T>) => { uri: string, body?: any };\r\n\r\n /** The retrieve response delegate */\r\n public retrieveResponseDelegate: (response: any, session: TypedSession<T>) => TypedSession<T>;\r\n\r\n /** The retrieve securable delegate */\r\n public retrieveSecurableDelegate: (response: any) => Array<(arg: any) => any> | ((arg: any) => any);\r\n\r\n /** The update http verb */\r\n public updateVerb: HttpVerb;\r\n\r\n /** The update request delegate */\r\n public updateRequestDelegate: (baseUri: string, data: T) => { uri: string, body?: any};\r\n\r\n /** Delegate for determining when to make a call to update the data store */\r\n public shouldUpdateDataStoreDelegate: (data: T) => boolean;\r\n}\r\n","import { AssertedUserModel } from '../../core/client-generated/model/assertedUserModel';\r\n\r\n/** The user entity service config */\r\nexport class UserEntityServiceConfig {\r\n /** true if getting user on start up */\r\n public getUserOnInit: boolean = true;\r\n\r\n /** True when including links */\r\n public includeLinks: boolean = true;\r\n\r\n /** The partial for the get user call */\r\n public getUserPartial: string;\r\n\r\n /** The validate function */\r\n public validate: (user: AssertedUserModel) => boolean = (user: AssertedUserModel): boolean => true;\r\n}\r\n","/** The route path enum */\r\nexport enum RoutePath {\r\n Internal = 'internal',\r\n External = 'external'\r\n}\r\n","/** The styles interface */\r\nexport interface Styles {\r\n /** The height in px */\r\n height?: number;\r\n\r\n /** The mobile height in px */\r\n heightMobile?: number;\r\n\r\n /** The width in px */\r\n width?: number;\r\n\r\n /** The mobile width in px */\r\n widthMobile?: number;\r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Inject, Injectable, Optional } from '@angular/core';\r\nimport { OAuthService } from 'angular-oauth2-oidc';\r\nimport { BehaviorSubject, Observable, of, throwError } from 'rxjs';\r\nimport { switchMap, take } from 'rxjs/operators';\r\nimport { GlobalInjectionTokens } from '../../shared/models/constants';\r\nimport { HttpVerb, httpVerb } from '../../shared/models/http-verbs';\r\nimport { SessionConfig } from '../../shared/models/session-config';\r\nimport { TypedSession } from '../../shared/models/typed-session';\r\nimport { DataStoreConfig } from '../../shared/shared-api';\r\nimport { SessionPostRequestModel, SessionPutRequestModel, SessionResponseModel } from '../client-generated/model/models';\r\n\r\n/** the data store retrieve complete session key */\r\nconst dataStoreRetrieveCompleteSessionKey = 'dataStoreRetrieve';\r\n\r\n/** The session service */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SessionService<T = any> {\r\n\r\n /** The session id */\r\n private _sessionId: string;\r\n\r\n /** True when the data store retrieve is complete */\r\n private isDataStoreRetrieveComplete: boolean = false;\r\n\r\n /** The local storage key */\r\n private readonly storageKey: string = 'Sof-Arm-Session-Id';\r\n\r\n /** Teh current update data store call */\r\n private readonly currentUpdateDataStoreCall: Observable<any> = of({});\r\n\r\n /** The session data behavior subject */\r\n private readonly sessionData: BehaviorSubject<TypedSession<T>> = new BehaviorSubject<TypedSession<T>>(undefined);\r\n\r\n /** True when the service has finished initializing */\r\n private readonly isInitializedBs: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\r\n\r\n /** True if the data store is initialized */\r\n private readonly isDataStoreInitBs: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\r\n\r\n /** True if client side session management */\r\n private get isClientSessionManagement(): boolean {\r\n return this.sessionManagementImplementation === 'client';\r\n }\r\n\r\n /** True if server side session management */\r\n private get isServerSessionManagement(): boolean {\r\n return this.sessionManagementImplementation === 'server';\r\n }\r\n\r\n /** True if using browser local storage */\r\n private get useBrowserLocalStorage(): boolean {\r\n return this.browserStorageImplementation === 'local';\r\n }\r\n\r\n /** True if using browser session storage */\r\n private get useBrowserSessionStorage(): boolean {\r\n return this.browserStorageImplementation === 'session';\r\n }\r\n\r\n /** The window */\r\n private readonly window: Window;\r\n\r\n /** True if data store is provided */\r\n private readonly isDataStoreProvided: boolean = false;\r\n\r\n /** The session id */\r\n public get sessionId(): string {\r\n if (!this._sessionId) {\r\n this.isClientSessionManagement ? this.initClientSessionId() : this.initServerSessionId();\r\n }\r\n\r\n return this._sessionId;\r\n }\r\n\r\n /** The session */\r\n public session$: Observable<TypedSession<T>>;\r\n\r\n /** The session refresh observable */\r\n public sessionRefresh$: Observable<any>;\r\n\r\n /** Indicates when the service has finished initializing */\r\n public isInitialized$: Observable<boolean>;\r\n\r\n /** True if the data store is initialized */\r\n public isDataStoreInit$: Observable<boolean>;\r\n\r\n /** gets the session */\r\n public get session(): TypedSession<T> {\r\n return this.sessionData.value;\r\n }\r\n\r\n /** sets the session */\r\n public set session(value: TypedSession<T>) {\r\n this.sessionData.next(value);\r\n this.window.sessionStorage.setItem(this.sessionConfig.keyPath, this.encode(value));\r\n }\r\n\r\n /**\r\n * Constructs the component\r\n * @param browserStorageImplementation The browser storage implementation\r\n */\r\n constructor(\r\n @Optional() @Inject(GlobalInjectionTokens.browserStorageImplementation) private readonly browserStorageImplementation: string,\r\n @Optional() @Inject(GlobalInjectionTokens.sessionManagementImplementation) private readonly sessionManagementImplementation: string,\r\n @Optional() @Inject(GlobalInjectionTokens.window) readonly _window: any,\r\n @Optional() @Inject(GlobalInjectionTokens.dataStoreConfig) readonly dataStoreConfig: DataStoreConfig<T>,\r\n @Optional() @Inject(GlobalInjectionTokens.sessionConfig) readonly sessionConfig: SessionConfig,\r\n @Optional() private readonly authService: OAuthService,\r\n private readonly httpClient: HttpClient\r\n ) {\r\n this.isInitialized$ = this.isInitializedBs.asObservable();\r\n this.isDataStoreInit$ = this.isDataStoreInitBs.asObservable();\r\n this.isDataStoreProvided = !!this.dataStoreConfig;\r\n this.window = _window;\r\n if (!this.window) {\r\n this.window = window;\r\n }\r\n const dataStoreLoadedValue = this.window.sessionStorage.getItem(dataStoreRetrieveCompleteSessionKey);\r\n this.isDataStoreRetrieveComplete = !!dataStoreLoadedValue ? dataStoreLoadedValue.toLowerCase() === 'true' : false;\r\n // if not using a data store, update the initialized to true for it\r\n if (!this.isDataStoreProvided) {\r\n this.isDataStoreInitBs.next(true);\r\n }\r\n if (!this.browserStorageImplementation) {\r\n this.browserStorageImplementation = 'session';\r\n }\r\n if (!this.sessionManagementImplementation) {\r\n this.sessionManagementImplementation = 'client';\r\n }\r\n if (this.isServerSessionManagement && !this.sessionConfig) {\r\n throw new Error('Cannot user server session management with null sessionConfig please provide: GlobalInjectionTokens.sessionConfig');\r\n }\r\n if (this.isClientSessionManagement) {\r\n this.initClientSessionManagement();\r\n\r\n return;\r\n }\r\n\r\n this.initServerSessionManagement();\r\n }\r\n\r\n /**\r\n * Redirects to a url with a ref to the existing session\r\n * @param uri The uri to redirect to\r\n * @param syncSession Sync session.\r\n * @param configs Redirect configs.\r\n */\r\n public redirect(uri: string, syncSession: boolean = false, configs: RedirectSessionConfigs = {}): void {\r\n // if the host name isn't in the uri, we are going to a different domain, so use the gateway on the other domain's server\r\n let formAction = `${this.sessionConfig.transferBasePath}/ssogateway/v2/sso/inbound-transfer/${this.sessionConfig.keyPath}`;\r\n if (uri.indexOf(window.location.hostname) === -1) {\r\n const uriParts = uri.split('/');\r\n // this results in ['https:', '', 'domain.host'], use 0 and 2 to get the base url of the redirect uri\r\n formAction = `${uriParts[0]}//${uriParts[2]}/ssogateway/v2/sso/inbound-transfer/${this.sessionConfig.keyPath}`;\r\n }\r\n const form = document.createElement('form');\r\n const input = document.createElement('input');\r\n const inputDestination = document.createElement('input');\r\n form.method = 'POST';\r\n form.action = formAction;\r\n if (configs.targetNewTab) {\r\n form.target = '_blank';\r\n }\r\n\r\n input.name = 'data';\r\n input.value = this.window.sessionStorage.getItem(this.sessionConfig.keyPath);\r\n inputDestination.name = 'destination';\r\n inputDestination.value = uri;\r\n form.appendChild(input);\r\n form.appendChild(inputDestination);\r\n document.body.appendChild(form);\r\n form.submit();\r\n }\r\n\r\n /**\r\n * Updates the session\r\n * @param body The session put request body\r\n */\r\n public updateSession(\r\n body: TypedSession<T>,\r\n securableDelegate: Array<(arg: any) => any> | ((arg: any) => any),\r\n skipDataStore?: boolean): Observable<any> {\r\n if (!this._sessionId) {\r\n console.error('No session has been initialized, skipping update call');\r\n\r\n return undefined;\r\n }\r\n if (!securableDelegate) {\r\n throw new Error('SessionService:updateSession -> Argument is null or undefined, arg: securableDelegate');\r\n }\r\n if (Array.isArray(body.sessionData) && !Array.isArray(securableDelegate)) {\r\n throw new Error(\r\n 'SessionService:updateSession -> Type miss match, arg: body.SessionData (type of Array) and arg: securableDelegate (type of (arg: any) => any) both must be array or non-array'\r\n );\r\n }\r\n if (!Array.isArray(body.sessionData) && Array.isArray(securableDelegate)) {\r\n throw new Error(\r\n 'SessionService:updateSession -> Type miss match, arg: body.SessionData (type of any) and arg: securableDelegate (type of Array) both must be array or non-array'\r\n );\r\n }\r\n // create response model and update observable to emit new session value\r\n const model: SessionResponseModel = {\r\n initializingOrigin: body.initializingOrigin,\r\n branding: body.branding,\r\n oAuth: body.oAuth,\r\n sessionId: this._sessionId,\r\n tracking: body.tracking,\r\n sessionData: body.sessionData\r\n };\r\n this.session = model;\r\n\r\n const putModel: SessionPutRequestModel = {\r\n initializingOrigin: body.initializingOrigin,\r\n sessionData:\r\n (Array.isArray(body.sessionData)\r\n ? body.sessionData.map((d, index) => securableDelegate[index](d)) : (securableDelegate as ((arg: any) => any))(body.sessionData)),\r\n branding: body.branding,\r\n tracking: body.tracking,\r\n oAuth: body.oAuth\r\n };\r\n\r\n // if data store is provided run the delegate to determine the body and the uri to use for the update\r\n if (this.isDataStoreProvided && !skipDataStore) {\r\n const updateTuple = this.dataStoreConfig.updateRequestDelegate(this.dataStoreConfig.baseUri, body.sessionData);\r\n // switch map to cancel existing calls with newer ones to avoid reverting data\r\n if (this.dataStoreConfig.shouldUpdateDataStoreDelegate(body.sessionData)) {\r\n this.currentUpdateDataStoreCall.pipe(switchMap(() => {\r\n switch (this.dataStoreConfig.updateVerb) {\r\n case httpVerb.POST:\r\n return this.httpClient.post(updateTuple.uri, updateTuple.body);\r\n case httpVerb.PUT:\r\n default:\r\n return this.httpClient.put(updateTuple.uri, updateTuple.body);\r\n }\r\n }))\r\n .subscribe(() => {\r\n this.isDataStoreRetrieveComplete = true;\r\n this.window.sessionStorage.setItem(dataStoreRetrieveCompleteSessionKey, 'true');\r\n });\r\n }\r\n }\r\n\r\n return this.session$;\r\n }\r\n\r\n /** Removes the session */\r\n public removeSession(): void {\r\n this.sessionData.next(undefined);\r\n this.window.sessionStorage.removeItem(dataStoreRetrieveCompleteSessionKey);\r\n this.window.sessionStorage.removeItem(this.sessionConfig.keyPath);\r\n }\r\n\r\n /**\r\n * @deprecated removing in the next version\r\n * Syncs the session\r\n * Returns the observable indicating when the session has been synced\r\n */\r\n public syncSession(): Observable<any> {\r\n return of(true);\r\n }\r\n\r\n /**\r\n * @deprecated removing in the next version\r\n * Refreshes the session\r\n */\r\n public refreshSession(): void {\r\n }\r\n\r\n /** Initialize server session management */\r\n private initServerSessionManagement(): void {\r\n this.session$ = this.sessionData.asObservable();\r\n\r\n const getFromDataStore = (): any => {\r\n if (!this.dataStoreConfig || !this.authService || this.isDataStoreRetrieveComplete) {\r\n return;\r\n }\r\n\r\n // load data from data store anon\r\n const loadDataStore = () =>\r\n this.determineDataStoreFunction(this.dataStoreConfig.retrieveVerb,\r\n this.dataStoreConfig.retrieveRequestDelegate,\r\n this.dataStoreConfig.baseUri,\r\n undefined)\r\n .subscribe(res => {\r\n this.isInitialized$.subscribe(isInit => {\r\n if (!isInit) {\r\n return;\r\n }\r\n this.session$.pipe(take(1))\r\n .subscribe(ses => {\r\n this.updateSession(this.dataStoreConfig.retrieveResponseDelegate(res, ses),\r\n this.dataStoreConfig.retrieveSecurableDelegate(res), true);\r\n this.isDataStoreInitBs.next(true);\r\n this.isDataStoreRetrieveComplete = true;\r\n this.window.sessionStorage.setItem(dataStoreRetrieveCompleteSessionKey, 'true');\r\n });\r\n });\r\n });\r\n\r\n if (!this.authService.hasValidAccessToken()) {\r\n // HACK: I couldn't do this based on an event so I had to get creative\r\n const interval = setInterval(() => {\r\n if (this.authService.hasValidAccessToken()) {\r\n loadDataStore();\r\n clearInterval(interval);\r\n }\r\n }, 250);\r\n }\r\n else {\r\n return loadDataStore();\r\n }\r\n };\r\n\r\n const body: SessionPostRequestModel = {\r\n sessionData: undefined,\r\n branding: undefined\r\n };\r\n\r\n const encodedSession = this.window.sessionStorage.getItem(this.sessionConfig.keyPath);\r\n this._sessionId = `Session-${this.newGuid()}`;\r\n if (!encodedSession) {\r\n this.session = body;\r\n this.isInitializedBs.next(true);\r\n getFromDataStore();\r\n }\r\n else {\r\n this.session = this.decode(encodedSession);\r\n this.isInitializedBs.next(true);\r\n getFromDataStore();\r\n }\r\n }\r\n\r\n /** Initializes the server side session id */\r\n private initServerSessionId(): void {\r\n if (!this._sessionId) {\r\n console.warn('Session Initializing, subscribe to session$ to get the session info. Session Id will be populated upon initialization');\r\n\r\n return;\r\n }\r\n }\r\n\r\n /** Initializes client side session management */\r\n private initClientSessionManagement(): void {\r\n if (this.useBrowserSessionStorage) {\r\n const sesId = this.window.sessionStorage.getItem(this.storageKey);\r\n this._sessionId = sesId || this.newGuid();\r\n this.setSessionStorage();\r\n }\r\n else if (this.useBrowserLocalStorage) {\r\n const sesId = this.window.localStorage.getItem(this.storageKey);\r\n this._sessionId = sesId || this.newGuid();\r\n this.setLocalStorage();\r\n }\r\n this.isInitializedBs.next(true);\r\n }\r\n\r\n private getSessionIdFromStorage(): string {\r\n if (this.useBrowserLocalStorage) {\r\n return this.window.localStorage.getItem(this.storageKey);\r\n }\r\n else if (this.useBrowserSessionStorage) {\r\n return this.window.sessionStorage.getItem(this.storageKey);\r\n }\r\n }\r\n\r\n /** Initialize the client side session id */\r\n private initClientSessionId(): void {\r\n this._sessionId = this.newGuid();\r\n if (this.useBrowserSessionStorage) {\r\n this.setSessionStorage();\r\n }\r\n else if (this.useBrowserLocalStorage) {\r\n this.setLocalStorage();\r\n }\r\n }\r\n\r\n /** Create new guid */\r\n private newGuid(): string {\r\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, c => {\r\n const r = Math.random() * 16 | 0;\r\n const v = (c == 'x') ? r : (r & 0x3 | 0x8);\r\n\r\n return v.toString(16);\r\n });\r\n }\r\n\r\n /** Sets session storage */\r\n private setSessionStorage(): void {\r\n this.window.sessionStorage.setItem(this.storageKey, this._sessionId);\r\n }\r\n\r\n /** Sets local storage */\r\n private setLocalStorage(): void {\r\n this.window.localStorage.setItem(this.storageKey, this._sessionId);\r\n }\r\n\r\n /**\r\n * Determines the type of http call to make for the data store\r\n * @param verb The verb\r\n * @param delegate The delegate\r\n * @param uri The uri\r\n */\r\n private determineDataStoreFunction(\r\n verb: HttpVerb,\r\n delegate: (baseUri: string, body: T) => { uri: string, body?: any },\r\n uri: string,\r\n body: any\r\n ): Observable<any> {\r\n const tuple = delegate(uri, body);\r\n const headers = new HttpHeaders({\r\n 'Content-Type': 'application/json'\r\n });\r\n switch (verb) {\r\n case httpVerb.PUT:\r\n return this.httpClient.put(tuple.uri, tuple.body, { headers });\r\n case httpVerb.POST:\r\n return this.httpClient.post(tuple.uri, tuple.body, { headers });\r\n case httpVerb.GET:\r\n return this.httpClient.get(tuple.uri, { headers });\r\n case httpVerb.PATCH:\r\n return this.httpClient.patch(tuple.uri, tuple.body, { headers });\r\n case httpVerb.DELETE:\r\n return this.httpClient.delete(tuple.uri, { headers });\r\n default:\r\n throw new Error('Http verb must be one of: PATCH, PUT, POST, DELETE, GET');\r\n }\r\n }\r\n\r\n /**\r\n * Encodes the object\r\n * @param value The object\r\n */\r\n private encode(value: any): string {\r\n return window.btoa(unescape(encodeURIComponent(JSON.stringify(value))));\r\n }\r\n\r\n /**\r\n * Decodes the string\r\n * @param str The string\r\n */\r\n private decode(str: string): any {\r\n return JSON.parse(decodeURIComponent(escape(window.atob(str))));\r\n }\r\n}\r\n\r\n/**\r\n * Redirect Session Configs.\r\n */\r\nexport class RedirectSessionConfigs {\r\n /** If session should be synced. */\r\n syncSession?: boolean;\r\n\r\n /** If new tab should be targeted. */\r\n targetNewTab?: boolean;\r\n}\r\n","/** The footer configurations */\r\nexport class FooterConfig {\r\n /** True if showing pre content 1 */\r\n public showPreContent1: boolean;\r\n\r\n /** True if showing pre content 2 */\r\n public showPreContent2: boolean;\r\n}\r\n","import { Component, OnInit, Input } from '@angular/core';\r\nimport { FooterConfig } from '../../models/footer-config';\r\n\r\n/** The Armature Footer Component */\r\n@Component({\r\n selector: 'sof-ar-footer',\r\n templateUrl: './footer.component.html',\r\n styleUrls: ['./footer.component.scss']\r\n})\r\nexport class ArmatureFooterComponent implements OnInit {\r\n\r\n /** The footer config */\r\n @Input() public footerConfig: FooterConfig = new FooterConfig();\r\n\r\n /** the constructor */\r\n constructor() { }\r\n\r\n /** On Init */\r\n public ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { Component, OnInit, Input } from '@angular/core';\r\n\r\nimport { SiteMapConfig } from '../../models/site-map-models';\r\n\r\n@Component({\r\n selector: 'sof-ar-site-map',\r\n templateUrl: './site-map.component.html',\r\n styleUrls: ['./site-map.component.scss']\r\n})\r\nexport class SiteMapComponent implements OnInit {\r\n\r\n /** Site map config */\r\n @Input() public config: SiteMapConfig;\r\n \r\n /** Creates an instance of SiteMapComponent. */\r\n public constructor() { }\r\n\r\n /** Init */\r\n public ngOnInit(): void { \r\n if (!this.config) {\r\n throw new Error('sof-ar-site-map: [config] input is required');\r\n }\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FlexLayoutModule } from '@angular/flex-layout';\r\nimport { MatButtonModule } from '@angular/material';\r\nimport { RouterModule } from '@angular/router';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\n\r\nimport { ArmatureFooterComponent } from './components/footer/footer.component';\r\nimport { SiteMapComponent } from './components/site-map/site-map.component';\r\n\r\n/** The components */\r\nconst components = [\r\n ArmatureFooterComponent,\r\n SiteMapComponent\r\n];\r\n\r\n/** The Footer Module */\r\n@NgModule({\r\n declarations: [...components],\r\n imports: [\r\n RouterModule,\r\n CommonModule,\r\n FlexLayoutModule,\r\n TranslateModule,\r\n MatButtonModule\r\n ],\r\n exports: [...components]\r\n})\r\nexport class ArmatureFooterModule { }\r\n","/**\r\n * The States enum\r\n */\r\nexport enum States {\r\n AL = 'Alabama',\r\n AK = 'Alaska',\r\n AZ = 'Arizona',\r\n AR = 'Arkansas',\r\n CA = 'California',\r\n CO = 'Colorado',\r\n CT = 'Connecticut',\r\n DE = 'Delaware',\r\n DC = 'District of Columbia',\r\n FL = 'Florida',\r\n GA = 'Georgia',\r\n HI = 'Hawaii',\r\n ID = 'Idaho',\r\n IL = 'Illinois',\r\n IN = 'Indiana',\r\n IA = 'Iowa',\r\n KS = 'Kansas',\r\n KY = 'Kentucky',\r\n LA = 'Louisiana',\r\n ME = 'Maine',\r\n MD = 'Maryland',\r\n MA = 'Massachusetts',\r\n MI = 'Michigan',\r\n MN = 'Minnesota',\r\n MS = 'Mississippi',\r\n MO = 'Missouri',\r\n MT = 'Montana',\r\n NE = 'Nebraska',\r\n NV = 'Nevada',\r\n NH = 'New Hampshire',\r\n NJ = 'New Jersey',\r\n NM = 'New Mexico',\r\n NY = 'New York',\r\n NC = 'North Carolina',\r\n ND = 'North Dakota',\r\n OH = 'Ohio',\r\n OK = 'Oklahoma',\r\n OR = 'Oregon',\r\n PA = 'Pennsylvania',\r\n RI = 'Rhode Island',\r\n SC = 'South Carolina',\r\n SD = 'South Dakota',\r\n TN = 'Tennessee',\r\n TX = 'Texas',\r\n UT = 'Utah',\r\n VT = 'Vermont',\r\n VA = 'Virginia',\r\n WA = 'Washington',\r\n WV = 'West Virginia',\r\n WI = 'Wisconsin',\r\n WY = 'Wyoming'\r\n}\r\n","import { Component, OnInit, Input } from '@angular/core';\r\nimport { FormControl, Validators, FormGroup, FormBuilder } from '@angular/forms';\r\n\r\nimport { States } from '../../models/enums/states';\r\nimport { Address } from '../../models/address';\r\nimport { County } from '../../models/county';\r\n\r\n/** Address component */\r\n@Component({\r\n selector: 'sof-ar-address',\r\n templateUrl: './sof-address.component.html',\r\n styleUrls: ['./sof-address.component.scss']\r\n})\r\nexport class SofAddressComponent implements OnInit {\r\n\r\n /** Identifier for this address component */\r\n @Input() public id: string = '';\r\n\r\n /** Verbiage for street 1 */\r\n @Input() public street1Verbiage: string = 'Street 1';\r\n\r\n /** Verbiage for street 2 */\r\n @Input() public street2Verbiage: string = 'Street 2';\r\n\r\n /** Verbiage for city */\r\n @Input() public cityVerbiage: string = 'City';\r\n\r\n /** Verbiage for ZIP Code */\r\n @Input() public zipCodeVerbiage: string = 'Zip Code';\r\n\r\n /** Verbiage for the state input */\r\n @Input() public stateVerbiage: string = 'State';\r\n\r\n /** Verbiage for the title */\r\n @Input() public titleVerbiage: string;\r\n\r\n /** Address Form group */\r\n public addressFG: FormGroup;\r\n\r\n /** The state options */\r\n public readonly states: Array<string> = Object.keys(States);\r\n\r\n /** Form control for street 1 */\r\n private readonly street1FC: FormControl = new FormControl(undefined, Validators.required);\r\n\r\n /** Form control for street 2 */\r\n private readonly street2FC: FormControl = new FormControl();\r\n\r\n /** Form control for city */\r\n private readonly cityFC: FormControl = new FormControl(undefined, Validators.required);\r\n\r\n /** Form control for state */\r\n private readonly stateFC: FormControl = new FormControl(undefined, Validators.required);\r\n\r\n /** Form control for zip code */\r\n private readonly zipCodeFC: FormControl = new FormControl(\r\n undefined,\r\n [Validators.required, Validators.maxLength(5), Validators.minLength(5)]\r\n );\r\n\r\n /**\r\n * Constructor for the component\r\n * @param formBuilder The form builder\r\n */\r\n constructor(private readonly formBuilder: FormBuilder) { }\r\n\r\n /** Actions to take upon initialization */\r\n public ngOnInit(): void {\r\n this.createAddressGroup();\r\n }\r\n\r\n /** Creates the address form group */\r\n public createAddressGroup(): FormGroup {\r\n if (this.addressFG) {\r\n return this.addressFG;\r\n }\r\n\r\n this.addressFG = this.formBuilder.group({\r\n street1: this.street1FC,\r\n street2: this.street2FC,\r\n city: this.cityFC,\r\n state: this.stateFC,\r\n zipCode: this.zipCodeFC\r\n });\r\n\r\n return this.addressFG;\r\n }\r\n\r\n /** Maps and returns the address */\r\n public getAddress(): Address {\r\n if (!this.addressFG.valid) {\r\n return undefined;\r\n }\r\n\r\n const county: County = {\r\n zipCode: this.zipCodeFC.value,\r\n state: this.stateFC.value\r\n };\r\n const address: Address = {\r\n street1: this.street1FC.value,\r\n street2: this.street2FC.value,\r\n city: this.cityFC.value,\r\n county\r\n };\r\n\r\n return address;\r\n }\r\n\r\n /** Checks if the form is valid */\r\n public isValid(): boolean {\r\n return this.addressFG && this.addressFG.valid;\r\n }\r\n\r\n}\r\n","import { Directive, ElementRef, HostListener } from '@angular/core';\r\n\r\n/**\r\n * The alphanumeric directive\r\n */\r\n@Directive({\r\n selector: '[alphanumeric]'\r\n})\r\nexport class AlphaNumericDirective {\r\n\r\n /** The array of allowed keys */\r\n private allowedKeys: Array<string> = ['backspace', 'delete', 'escape', 'enter', 'tab'];\r\n\r\n /** Whether or not the entered value is a letter */\r\n private isLetter: boolean;\r\n\r\n /** Whether or not the entered value is a number */\r\n private isNumber: boolean;\r\n\r\n /**\r\n * Constructs the directive\r\n * @param el The element\r\n */\r\n constructor(private el: ElementRef) { }\r\n\r\n /**\r\n * Only allows alphanumeric inputs\r\n * @param event Key Event\r\n */\r\n @HostListener('keydown', ['$event']) onKeyDown(event: KeyboardEvent): void {\r\n const e = event as KeyboardEvent;\r\n\r\n // Reset values each time\r\n this.isNumber = false;\r\n this.isLetter = false;\r\n\r\n if (this.allowedKeys.indexOf(e.code.toLowerCase()) !== -1 ||\r\n // Allow: Ctrl+A\r\n (e.code.toLowerCase() === 'keya' && e.ctrlKey) ||\r\n // Allow: Ctrl+C\r\n (e.code.toLowerCase() === 'keyc' && e.ctrlKey) ||\r\n // Allow: Ctrl+X\r\n (e.code.toLowerCase() === 'keyx' && e.ctrlKey)) {\r\n // let it happen, don't do anything\r\n return;\r\n }\r\n // Ensure that it is a letter and stop the keypress if its not a letter\r\n if (e.code.toLowerCase().includes('digit') || e.code.toLowerCase().includes('numpad')) {\r\n this.isLetter = false;\r\n this.isNumber = true;\r\n }\r\n // Ensure that it is a number and stop the keypress\r\n let letterRegexMatch = e.code.toLowerCase().match(/key[a-zA-Z]/g);\r\n if (letterRegexMatch) {\r\n this.isNumber = false;\r\n this.isLetter = true;\r\n }\r\n // If the event is shift key and its not with a letter, its going to be a special character we want to prevent\r\n if (e.shiftKey && !letterRegexMatch) {\r\n this.isNumber = false;\r\n this.isLetter = false;\r\n }\r\n // Ensure that it is either a letter or a number\r\n if (!this.isLetter && !this.isNumber) {\r\n e.preventDefault();\r\n }\r\n }\r\n\r\n /**\r\n * Prevent copy pasted inputs\r\n * @param event the event\r\n */\r\n @HostListener('paste', ['$event']) blockPaste(event: KeyboardEvent): void {\r\n event.preventDefault();\r\n }\r\n\r\n}\r\n","import { Directive, ElementRef, HostListener, Input } from '@angular/core';\r\n\r\n/**\r\n * The letters only directive\r\n */\r\n@Directive({\r\n selector: '[sofArLettersOnly]'\r\n})\r\nexport class LettersOnlyDirective {\r\n\r\n /** True if only letters allowed */\r\n @Input() public sofArLettersOnly: boolean = true;\r\n\r\n /** The array of allowed keys */\r\n private readonly allowedKeys: Array<string> = ['backspace', 'delete', 'tab', 'escape', 'enter', 'period', 'numpaddecimal'];\r\n\r\n /**\r\n * Constructs the directive\r\n * @param el The element\r\n */\r\n constructor(private readonly el: ElementRef) { }\r\n\r\n /**\r\n * Only allows letter inputs\r\n * @param event Key Event\r\n */\r\n @HostListener('keydown', ['$event']) onKeyDown(event): void {\r\n const e = event as KeyboardEvent;\r\n if (this.sofArLettersOnly && e.code) {\r\n if (this.allowedKeys.indexOf(e.code.toLowerCase()) !== -1 ||\r\n // Allow: Ctrl+A\r\n (e.code.toLowerCase() === 'keya' && e.ctrlKey) ||\r\n // Allow: Ctrl+C\r\n (e.code.toLowerCase() === 'keyc' && e.ctrlKey) ||\r\n // Allow: Ctrl+X\r\n (e.code.toLowerCase() === 'keyx' && e.ctrlKey) ||\r\n // Allow: spaces\r\n (e.code.toLowerCase() === 'space') ||\r\n // Allow: - (minus sign) on numpad or alphabet keyboard key\r\n (e.code.toLowerCase() === 'minus' || e.code.toLowerCase() === 'numpadsubtract')) {\r\n // let it happen, don't do anything\r\n return;\r\n }\r\n // Ensure that it is a letter and stop the keypress if its not a letter\r\n if (e.code.toLowerCase()\r\n .includes('digit')\r\n || e.code.toLowerCase()\r\n .includes('numpad')) {\r\n e.preventDefault();\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Prevent copy pasted inputs\r\n * @param event the event\r\n */\r\n @HostListener('paste', ['$event']) blockPaste(event: KeyboardEvent): void {\r\n event.preventDefault();\r\n }\r\n\r\n}\r\n","import { Directive, ElementRef, HostListener, Input } from '@angular/core';\r\n\r\n/**\r\n * Numbers only directive\r\n */\r\n@Directive({\r\n selector: '[sofArNumbersOnly]'\r\n})\r\nexport class NumbersOnlyDirective {\r\n\r\n /** True if only numbers allowed */\r\n @Input() public sofArNumbersOnly: boolean = true;\r\n\r\n /** The array of allowed keys */\r\n private readonly allowedKeys: Array<string> = ['backspace', 'delete', 'tab', 'escape', 'enter', 'period', 'numpaddecimal'];\r\n\r\n /**\r\n * Constructs the directive\r\n * @param el The element\r\n */\r\n constructor(private readonly el: ElementRef) { }\r\n\r\n /**\r\n * Only allows number inputs\r\n * @param event Key Event\r\n */\r\n @HostListener('keydown', ['$event']) onKeyDown(event): any {\r\n const e: KeyboardEvent = event;\r\n\r\n if (this.sofArNumbersOnly) {\r\n if (this.allowedKeys.indexOf(e.code.toLowerCase()) !== -1 ||\r\n // Allow: Ctrl+A\r\n (e.code.toLowerCase() === 'keya' && e.ctrlKey) ||\r\n // Allow: Ctrl+C\r\n (e.code.toLowerCase() === 'keyc' && e.ctrlKey) ||\r\n // Allow: Ctrl+X\r\n (e.code.toLowerCase() === 'keyx' && e.ctrlKey) ||\r\n // Allow: spaces\r\n (e.code.toLowerCase() === 'space') ||\r\n // Allow: - (minus sign) on numpad or alphabet keyboard key\r\n (e.code.toLowerCase() === 'minus' || e.code.toLowerCase() === 'numpadsubtract')) {\r\n // let it happen, don't do anything\r\n return;\r\n }\r\n\r\n // Ensure that it is a number and stop the keypress\r\n if ((e.shiftKey || e.code.toLowerCase()\r\n .match(/key[a-zA-Z]/g))) {\r\n e.preventDefault();\r\n }\r\n }\r\n }\r\n\r\n}","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FlexLayoutModule } from '@angular/flex-layout';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { MatFormFieldModule, MatInputModule, MatSelectModule } from '@angular/material';\r\n\r\nimport { SofAddressComponent } from './components/sof-address/sof-address.component';\r\nimport { AlphaNumericDirective } from './directives/alphanumeric/alphanumeric.directive';\r\nimport { LettersOnlyDirective } from './directives/letters-only/letters-only.directive';\r\nimport { NumbersOnlyDirective } from './directives/numbers-only/numbers-only.directive';\r\n\r\n/** The components */\r\nconst components = [\r\n SofAddressComponent\r\n];\r\n\r\n/** The directives */\r\nconst directives = [\r\n NumbersOnlyDirective,\r\n LettersOnlyDirective,\r\n AlphaNumericDirective\r\n];\r\n\r\n/** The material modules */\r\nconst materialModules = [\r\n MatInputModule,\r\n MatFormFieldModule,\r\n MatSelectModule\r\n];\r\n\r\n/** Armature forms module */\r\n@NgModule({\r\n declarations: [\r\n ...components,\r\n ...directives\r\n ],\r\n imports: [\r\n CommonModule,\r\n FlexLayoutModule,\r\n ReactiveFormsModule,\r\n ...materialModules\r\n ],\r\n exports: [\r\n ...components,\r\n ...directives\r\n ]\r\n})\r\nexport class FormsModule { }\r\n","import { InjectionToken } from '@angular/core';\r\n\r\nimport { Observable } from 'rxjs';\r\n\r\n/** Injection tokens */\r\nexport class InjectionTokens {\r\n /** The key path suffix injection token */\r\n public static keyPathSuffix: InjectionToken<string> = new InjectionToken<string>('KeyPathSuffix');\r\n\r\n /** The window injection token */\r\n public static window: InjectionToken<Window> = new InjectionToken<Window>('Window');\r\n\r\n /** The token endpoint injection token for the hybrid SAML OAuth Service */\r\n public static tokenEndpoint$: InjectionToken<Observable<string>> = new InjectionToken<Observable<string>>('HybridSamlOauthTokenEndpoint');\r\n\r\n /** The data format injection token */\r\n public static dataFormat: InjectionToken<'camelCase' | 'PascalCase'> = new InjectionToken<'camelCase' | 'PascalCase'>('DataFormat');\r\n}\r\n\r\n/** The key path prefix */\r\nexport const keyPathPrefix: string = 'SsoGateway-';\r\n","// tslint:disable: variable-name\r\n/** The access token claims */\r\nexport class AccessTokenClaims {\r\n\r\n private role: string | Array<string>;\r\n\r\n /** The given name of the user */\r\n public given_name: string;\r\n\r\n /** The name of the user */\r\n public name: string;\r\n\r\n /** The preferred username of the user */\r\n public preferred_username: string;\r\n\r\n /** The roles of the user */\r\n public get getRole(): Array<string> {\r\n if (typeof this.role === 'string') {\r\n this.role = [this.role];\r\n }\r\n\r\n return this.role;\r\n }\r\n\r\n /** constructs the claims from an existing claims object */\r\n constructor(claims?: AccessTokenClaims) {\r\n if (claims) {\r\n this.role = claims.role;\r\n this.given_name = claims.given_name;\r\n this.name = claims.name;\r\n this.preferred_username = claims.preferred_username;\r\n }\r\n }\r\n}\r\n","import { AccessTokenClaims } from './access-token-claims';\r\n\r\n// tslint:disable: variable-name no-unused-expression\r\n/** The access token claims class */\r\nexport class DecodedAccessToken {\r\n\r\n private aud: string | Array<string>;\r\n private scope: string | Array<string>;\r\n private _claims: AccessTokenClaims;\r\n\r\n /** The authentication methods array */\r\n public amr: Array<string>;\r\n\r\n /** Time when authentication occurred */\r\n public auth_time: number;\r\n\r\n /** The client used to get the token */\r\n public client_id: string;\r\n\r\n /** Expiration time, seconds since Unix epoch */\r\n public exp: number;\r\n\r\n /** The identity provider */\r\n public idp: string;\r\n\r\n /** Issuer, who created and signed this token */\r\n public iss: string;\r\n\r\n /** Not valid before, seconds since Unix epoch */\r\n public nbf: number;\r\n\r\n /** Subject, whom the token refers to */\r\n public sub: string;\r\n\r\n /** The scopes the token was requested with */\r\n public get getScope(): Array<string> {\r\n if (typeof this.scope === 'string') {\r\n this.scope = [this.scope];\r\n }\r\n\r\n return this.scope;\r\n }\r\n\r\n /** The audience, who or what the token is intended for */\r\n public get getAud(): Array<string> {\r\n if (typeof this.aud === 'string') {\r\n this.aud = [this.aud];\r\n }\r\n\r\n return this.aud;\r\n }\r\n\r\n /** Gets claims for the user associated with the access token */\r\n public get claims(): AccessTokenClaims {\r\n return this._claims;\r\n }\r\n\r\n /** Sets claims for the user associate with the access token */\r\n public set claims(value: AccessTokenClaims) {\r\n this._claims = new AccessTokenClaims(value);\r\n }\r\n\r\n /**\r\n * Constructs the access Token\r\n * @param encodedToken The encoded Auth Token\r\n */\r\n constructor(encodedToken: string) {\r\n const base64Url = encodedToken.split('.')[1];\r\n const base64 = base64Url.replace(/-/g, '+')\r\n .replace(/_/g, '/');\r\n const jsonPayload = decodeURIComponent(atob(base64)\r\n .split('')\r\n .map(c =>\r\n // tslint:disable-next-line: restrict-plus-operands prefer-template\r\n '%' + ('00' + c.charCodeAt(0)\r\n .toString(16))\r\n .slice(-2))\r\n .join(''));\r\n const decodedToken: DecodedAccessToken = JSON.parse(jsonPayload);\r\n this.setAllProps(decodedToken);\r\n this.convertAllDualTypes();\r\n }\r\n\r\n /** Converts all the dual types to single types */\r\n private convertAllDualTypes(): void {\r\n this.getAud;\r\n this.getScope;\r\n }\r\n\r\n /**\r\n * Sets all the properties from an existing object\r\n * @param decodedToken The decoded token object\r\n */\r\n private setAllProps(decodedToken: DecodedAccessToken): void {\r\n this.amr = decodedToken.amr;\r\n this.aud = decodedToken.aud;\r\n this.auth_time = decodedToken.auth_time;\r\n this.client_id = decodedToken.client_id;\r\n this.exp = decodedToken.exp;\r\n this.idp = decodedToken.idp;\r\n this.iss = decodedToken.iss;\r\n this.nbf = decodedToken.nbf;\r\n this.scope = decodedToken.scope;\r\n this.sub = decodedToken.sub;\r\n }\r\n\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Inject, Injectable, Optional } from '@angular/core';\r\nimport { BehaviorSubject, Observable, of } from 'rxjs';\r\nimport { catchError, map } from 'rxjs/operators';\r\nimport { GlobalInjectionTokens } from '../../shared/models/constants';\r\nimport { InjectionTokens, keyPathPrefix } from '../models/constants';\r\nimport { ISsoResponseModel } from '../models/generated/iSsoResponseModel';\r\nimport { AccountManagementRefreshRequestModel, RefreshResponseModel } from '../models/generated/models';\r\nimport { DecodedAccessToken } from '../../rbac/models/decoded-access-token';\r\n\r\n/** The hybrid SAML Oauth Service */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class HybridSamlOauthService {\r\n\r\n /** The key path used for getting values from local storage */\r\n public readonly keyPath: string;\r\n\r\n /** The oauth access token */\r\n public get accessToken(): string {\r\n return this._accessToken;\r\n }\r\n\r\n /** The access token observable */\r\n public accessToken$: Observable<string>;\r\n\r\n /** Gets the hash */\r\n public get hash(): string {\r\n if (this.dataFormat === 'PascalCase') {\r\n return (this.rawData as any).Hash\r\n }\r\n\r\n return this.rawData.hash;\r\n }\r\n\r\n /** The raw data from local storage */\r\n private rawData: ISsoResponseModel;\r\n\r\n /** The access token */\r\n private _accessToken: string;\r\n\r\n /** The window */\r\n private readonly window: Window;\r\n\r\n /** The behavior subject for the access token */\r\n private readonly accessTokenBs: BehaviorSubject<string>;\r\n\r\n /** The armature access token key */\r\n private readonly accessTokenSessionStorageKey: string = 'Sof-Arm-Access-Token';\r\n\r\n /** The token endpoint */\r\n private tokenEndpoint: string;\r\n\r\n /**\r\n * Constructs the service\r\n * @param window The window\r\n * @param tokenEndpoint The full token endpoint URI\r\n * @param keyPathSuffix The key path suffix\r\n * @param tokenRefreshTimeMinutes The token refresh timer\r\n * @param browserStorageImplementation The browser storage implementation\r\n * @param httpClient The http client\r\n */\r\n constructor(\r\n // injection tokens\r\n @Optional() @Inject(InjectionTokens.window) private readonly windowGeneric: any,\r\n @Optional() @Inject(InjectionTokens.tokenEndpoint$) private readonly tokenEndpoint$: Observable<string>,\r\n @Optional() @Inject(InjectionTokens.keyPathSuffix) private readonly keyPathSuffix: string,\r\n @Optional() @Inject(GlobalInjectionTokens.browserStorageImplementation) private readonly browserStorageImplementation: string = 'local',\r\n @Optional() @Inject(GlobalInjectionTokens.tokenRefreshTimeMinutes) private readonly tokenRefreshTimeMinutes: number,\r\n @Optional() @Inject(InjectionTokens.dataFormat) private readonly dataFormat: string = 'camelCase',\r\n // services\r\n private readonly httpClient: HttpClient\r\n ) {\r\n const refreshTimeMinutes = this.tokenRefreshTimeMinutes || 20; // use 20 min token refresh time if non provided\r\n\r\n // set the token endpoint\r\n if (this.tokenEndpoint$) {\r\n this.tokenEndpoint$.subscribe(endpoint => this.tokenEndpoint = endpoint);\r\n }\r\n else {\r\n console.warn('InjectionTokens.tokenEndpoint$ is not provided');\r\n }\r\n\r\n // set the window to be strongly typed, compile error makes it so it can't be done in the constructor\r\n this.window = this.windowGeneric || window;\r\n\r\n // set the key path from the key path prefix and suffix\r\n this.keyPath = `${keyPathPrefix}${this.keyPathSuffix}`;\r\n\r\n // read values from local storage based on the key path\r\n const rawData = this.getRawData();\r\n if (!rawData) {\r\n const token = this.window.sessionStorage.getItem(this.accessTokenSessionStorageKey);\r\n this._accessToken = token;\r\n }\r\n else {\r\n if (this.dataFormat === 'PascalCase') {\r\n this.rawData = JSON.parse(rawData);\r\n this._accessToken = (this.rawData as any).AccessToken;\r\n }\r\n else {\r\n this.rawData = this.toCamel(JSON.parse(rawData));\r\n this._accessToken = this.rawData.accessToken;\r\n }\r\n // populate the access token\r\n this.window.sessionStorage.setItem(this.accessTokenSessionStorageKey, this._accessToken);\r\n }\r\n\r\n // set up the observable and behavior subject\r\n this.accessTokenBs = new BehaviorSubject(this._accessToken);\r\n this.accessToken$ = this.accessTokenBs.asObservable();\r\n\r\n try {\r\n if (this.accessToken) {\r\n const decoded = new DecodedAccessToken(this.accessToken);\r\n const currentDateMiliS = new Date().getTime();\r\n if ((decoded.exp * 1000) <= currentDateMiliS + (refreshTimeMinutes * 60000)) {\r\n this.refreshToken(this.tokenEndpoint);\r\n }\r\n }\r\n else {\r\n console.warn('Starting HybridSamlOAuthService without token');\r\n }\r\n }\r\n catch (e) {\r\n console.warn('starting HybridSamlOAuthService without token or malformed token', this.accessToken, e);\r\n }\r\n setInterval(() => {\r\n this.refreshToken(this.tokenEndpoint);\r\n }, refreshTimeMinutes * 60000); // x minutes times number of milliseconds in a minute\r\n }\r\n\r\n /** Returns the raw data casted to the provided type */\r\n public getAssertionData<T>(): T {\r\n if (this.dataFormat === 'PascalCase') {\r\n if (!this.rawData || !((this.rawData as any).Assertions)) {\r\n return undefined;\r\n }\r\n\r\n return (this.rawData as any).Assertions as T;\r\n }\r\n else {\r\n if (!this.rawData || !this.rawData.assertions) {\r\n return undefined;\r\n }\r\n\r\n return this.rawData.assertions as T;\r\n }\r\n }\r\n\r\n /**\r\n * Expires the session by clearing the service and local storage\r\n * @param shouldExpireBoth True if the both session and local storage should be expired\r\n */\r\n public expireSession(shouldExpireBoth: boolean = false): void {\r\n if (shouldExpireBoth) {\r\n this.window.localStorage.removeItem(this.keyPath);\r\n this.window.sessionStorage.removeItem(this.keyPath);\r\n this.window.sessionStorage.removeItem(this.accessTokenSessionStorageKey);\r\n this.rawData = undefined;\r\n\r\n return;\r\n }\r\n\r\n if (this.browserStorageImplementation === 'session') {\r\n this.window.sessionStorage.removeItem(this.keyPath);\r\n }\r\n else {\r\n this.window.localStorage.removeItem(this.keyPath);\r\n }\r\n this.window.sessionStorage.removeItem(this.accessTokenSessionStorageKey);\r\n\r\n this.rawData = undefined;\r\n }\r\n\r\n /**\r\n * Refreshes the access token using the provided endpoint\r\n * @param tokenEndpoint The full token endpoint\r\n */\r\n private refreshToken(tokenEndpoint: string): void {\r\n if (!this.rawData) {\r\n console.warn('No sso response model');\r\n return;\r\n }\r\n // make api call to get a token, uses assertions, hash, and assertion provider implementation string\r\n const req: AccountManagementRefreshRequestModel = {\r\n ssoResponseModel: this.rawData\r\n };\r\n this.httpClient.post<RefreshResponseModel>(tokenEndpoint, req)\r\n .pipe(\r\n map(res => {\r\n if (this.dataFormat === 'PascalCase') {\r\n (this.rawData as any).AccessToken = res.accessToken;\r\n }\r\n else {\r\n this.rawData.accessToken = res.accessToken;\r\n }\r\n this._accessToken = res.accessToken;\r\n this.window.localStorage.setItem(this.keyPath, JSON.stringify(this.rawData));\r\n this.window.sessionStorage.setItem(this.accessTokenSessionStorageKey, res.accessToken);\r\n this.accessTokenBs.next(this._accessToken);\r\n }),\r\n catchError(error => {\r\n console.error(error);\r\n\r\n return of(error);\r\n }))\r\n .subscribe(() => { });\r\n }\r\n\r\n /** gets the raw data */\r\n private getRawData(): any {\r\n const lsData = this.window.localStorage.getItem(this.keyPath);\r\n if (this.browserStorageImplementation === 'session') {\r\n // first move local storage data if there is any\r\n if (lsData) {\r\n this.window.sessionStorage.setItem(this.keyPath, lsData);\r\n this.window.localStorage.removeItem(this.keyPath);\r\n }\r\n\r\n // return the session storage data\r\n return this.window.sessionStorage.getItem(this.keyPath);\r\n }\r\n\r\n // otherwise return local storage data\r\n return lsData;\r\n }\r\n\r\n /**\r\n * converts object keys to camel case\r\n * https://stackoverflow.com/questions/12931828/convert-returned-json-object-properties-to-lower-first-camelcase\r\n * @param o The object\r\n */\r\n private toCamel(o: any): any {\r\n let newO;\r\n let origKey;\r\n let newKey;\r\n let value;\r\n if (o instanceof Array) {\r\n return o.map((value: any) => {\r\n if (typeof value === 'object') {\r\n value = this.toCamel(value);\r\n }\r\n\r\n return value;\r\n });\r\n }\r\n newO = {};\r\n // tslint:disable-next-line: no-for-in\r\n for (origKey in o) {\r\n if (o.hasOwnProperty(origKey)) {\r\n newKey = (`${origKey.charAt(0).toLowerCase()}${origKey.slice(1) || origKey}`).toString();\r\n value = o[origKey];\r\n if (value instanceof Array || (value !== null && value.constructor === Object)) {\r\n value = this.toCamel(value);\r\n }\r\n newO[newKey] = value;\r\n }\r\n }\r\n\r\n return newO;\r\n }\r\n}\r\n","/**\r\n * SSO Gateway\r\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\r\n *\r\n * OpenAPI spec version: 2\r\n * \r\n *\r\n * NOTE: This class is auto generated by the swagger code generator program.\r\n * https://github.com/swagger-api/swagger-codegen.git\r\n * Do not edit the class manually.\r\n */\r\nimport { Policy } from './policy';\r\n\r\n\r\n/**\r\n * The account management assertion model\r\n */\r\nexport interface AccountManagementAssertionModel { \r\n /**\r\n * Gets or sets the policies.\r\n */\r\n policies?: Array<Policy>;\r\n /**\r\n * Gets or sets the role.\r\n */\r\n role?: string;\r\n /**\r\n * Gets or sets the user identifier.\r\n */\r\n userId?: string;\r\n /**\r\n * Gets or sets the transaction identifier.\r\n */\r\n transactionId?: string;\r\n /**\r\n * Gets or sets the language preference.\r\n */\r\n languagePreference?: string;\r\n /**\r\n * Gets or sets the broker id.\r\n */\r\n brokerId?: string;\r\n}\r\n","/**\r\n * SSO Gateway\r\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\r\n *\r\n * OpenAPI spec version: 2\r\n * \r\n *\r\n * NOTE: This class is auto generated by the swagger code generator program.\r\n * https://github.com/swagger-api/swagger-codegen.git\r\n * Do not edit the class manually.\r\n */\r\nimport { AccountManagementAssertionModel } from './accountManagementAssertionModel';\r\n\r\n\r\n/**\r\n * The Account Management Response model\r\n */\r\nexport interface AccountManagementResponseModel { \r\n /**\r\n * Gets or sets the assertions.\r\n */\r\n assertions?: AccountManagementAssertionModel;\r\n /**\r\n * Gets or sets the issuer.\r\n */\r\n issuer?: string;\r\n /**\r\n * Gets or sets the audience.\r\n */\r\n audience?: string;\r\n /**\r\n * Gets or sets the destination.\r\n */\r\n destination?: string;\r\n /**\r\n * Gets or sets the hash.\r\n */\r\n hash?: string;\r\n /**\r\n * Gets or sets the key path.\r\n */\r\n keyPath?: string;\r\n /**\r\n * Gets or sets the access token.\r\n */\r\n accessToken?: string;\r\n}\r\n","/**\r\n * SSO Gateway\r\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\r\n *\r\n * OpenAPI spec version: 2\r\n * \r\n *\r\n * NOTE: This class is auto generated by the swagger code generator program.\r\n * https://github.com/swagger-api/swagger-codegen.git\r\n * Do not edit the class manually.\r\n */\r\n\r\n\r\n/**\r\n * The coverage detail model\r\n */\r\nexport interface CoverageDetail { \r\n /**\r\n * Gets or sets the start date.\r\n */\r\n startDate?: Date;\r\n /**\r\n * Gets or sets the end date.\r\n */\r\n endDate?: Date;\r\n /**\r\n * Gets or sets the premium amount.\r\n */\r\n premiumAmount?: number;\r\n /**\r\n * Gets or sets the tax credit amount.\r\n */\r\n taxCreditAmount?: number;\r\n /**\r\n * Gets or sets the CSR amount.\r\n */\r\n csrAmount?: number;\r\n /**\r\n * Gets or sets the status.\r\n */\r\n status?: CoverageDetail.StatusEnum;\r\n /**\r\n * Gets or sets the name of the plan.\r\n */\r\n planName?: string;\r\n /**\r\n * Gets or sets the name of the issuer.\r\n */\r\n issuerName?: string;\r\n /**\r\n * Gets or sets the plan identifier.\r\n */\r\n planId?: string;\r\n /**\r\n * Gets or sets the insurance line.\r\n */\r\n insuranceLine?: string;\r\n /**\r\n * Gets or sets the plan type.\r\n */\r\n planType?: string;\r\n}\r\nexport namespace CoverageDetail {\r\n export type StatusEnum = 'Effectuated' | 'NotEffectuated';\r\n export const StatusEnum = {\r\n Effectuated: 'Effectuated' as StatusEnum,\r\n NotEffectuated: 'NotEffectuated' as StatusEnum\r\n };\r\n}\r\n","/**\r\n * SSO Gateway\r\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\r\n *\r\n * OpenAPI spec version: 2\r\n * \r\n *\r\n * NOTE: This class is auto generated by the swagger code generator program.\r\n * https://github.com/swagger-api/swagger-codegen.git\r\n * Do not edit the class manually.\r\n */\r\n\r\n\r\n/**\r\n * The finance model\r\n */\r\nexport interface Finance { \r\n /**\r\n * Gets or sets the status.\r\n */\r\n status?: string;\r\n /**\r\n * Gets or sets the premium amount due.\r\n */\r\n premiumAmountDue?: number;\r\n /**\r\n * Gets or sets the current amount due.\r\n */\r\n currentAmountDue?: number;\r\n /**\r\n * Gets or sets the payment due date.\r\n */\r\n paymentDueDate?: Date;\r\n /**\r\n * Gets or sets a value indicating whether this instance has automatic pay.\r\n */\r\n hasAutoPay?: boolean;\r\n}\r\n","/**\r\n * SSO Gateway\r\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\r\n *\r\n * OpenAPI spec version: 1\r\n * \r\n *\r\n * NOTE: This class is auto generated by the swagger code generator program.\r\n * https://github.com/swagger-api/swagger-codegen.git\r\n * Do not edit the class manually.\r\n */\r\n\r\n\r\n/**\r\n * The SSO response model\r\n */\r\nexport interface ISsoResponseModel { \r\n /**\r\n * Gets or sets the assertions.\r\n */\r\n assertions?: any;\r\n /**\r\n * Gets or sets the issuer.\r\n */\r\n issuer?: string;\r\n /**\r\n * Gets or sets the audience.\r\n */\r\n audience?: string;\r\n /**\r\n * Gets or sets the destination.\r\n */\r\n destination?: string;\r\n /**\r\n * Gets or sets the hash.\r\n */\r\n hash?: string;\r\n /**\r\n * Gets or sets the key path.\r\n */\r\n keyPath?: string;\r\n /**\r\n * Gets or sets the access token.\r\n */\r\n accessToken?: string;\r\n}\r\n","/**\r\n * SSO Gateway\r\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\r\n *\r\n * OpenAPI spec version: 2\r\n * \r\n *\r\n * NOTE: This class is auto generated by the swagger code generator program.\r\n * https://github.com/swagger-api/swagger-codegen.git\r\n * Do not edit the class manually.\r\n */\r\nimport { ISsoResponseModelAccountManagementAssertionModel } from './iSsoResponseModelAccountManagementAssertionModel';\r\n\r\n\r\n/**\r\n * The refresh request model\r\n */\r\nexport interface AccountManagementRefreshRequestModel { \r\n /**\r\n * Gets or sets the SSO response model.\r\n */\r\n ssoResponseModel: ISsoResponseModelAccountManagementAssertionModel;\r\n}\r\n","/**\r\n * SSO Gateway\r\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\r\n *\r\n * OpenAPI spec version: 2\r\n * \r\n *\r\n * NOTE: This class is auto generated by the swagger code generator program.\r\n * https://github.com/swagger-api/swagger-codegen.git\r\n * Do not edit the class manually.\r\n */\r\nimport { AccountManagementAssertionModel } from './accountManagementAssertionModel';\r\n\r\n\r\n/**\r\n * The SSo Response Model Interface\r\n */\r\nexport interface ISsoResponseModelAccountManagementAssertionModel { \r\n /**\r\n * Gets or sets the assertions.\r\n */\r\n assertions?: AccountManagementAssertionModel;\r\n /**\r\n * Gets or sets the issuer.\r\n */\r\n issuer?: string;\r\n /**\r\n * Gets or sets the audience.\r\n */\r\n audience?: string;\r\n /**\r\n * Gets or sets the destination.\r\n */\r\n destination?: string;\r\n /**\r\n * Gets or sets the hash.\r\n */\r\n hash?: string;\r\n /**\r\n * Gets or sets the key path.\r\n */\r\n keyPath?: string;\r\n /**\r\n * Gets or sets the access token.\r\n */\r\n accessToken?: string;\r\n}\r\n","/**\r\n * SSO Gateway\r\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\r\n *\r\n * OpenAPI spec version: 2\r\n * \r\n *\r\n * NOTE: This class is auto generated by the swagger code generator program.\r\n * https://github.com/swagger-api/swagger-codegen.git\r\n * Do not edit the class manually.\r\n */\r\n\r\nimport { Address } from \"../../../forms/forms-api\";\r\n\r\n\r\n/**\r\n * The person model\r\n */\r\nexport interface Person { \r\n /**\r\n * Gets or sets the exchange identifier.\r\n */\r\n exchangeId?: string;\r\n /**\r\n * Gets or sets the issuer id\r\n */\r\n issuerId?: string;\r\n /**\r\n * Gets or sets the dob.\r\n */\r\n dob?: Date;\r\n /**\r\n * Gets or sets the gender.\r\n */\r\n gender?: string;\r\n /**\r\n * Gets or sets the first name.\r\n */\r\n firstName?: string;\r\n /**\r\n * Gets or sets the last name.\r\n */\r\n lastName?: string;\r\n /**\r\n * Gets or sets the relationship.\r\n */\r\n relationship?: string;\r\n /**\r\n * Gets or sets the address.\r\n */\r\n address?: Address;\r\n /**\r\n * Gets or sets the SSN.\r\n */\r\n ssn?: string;\r\n}\r\n","/**\r\n * SSO Gateway\r\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\r\n *\r\n * OpenAPI spec version: 2\r\n * \r\n *\r\n * NOTE: This class is auto generated by the swagger code generator program.\r\n * https://github.com/swagger-api/swagger-codegen.git\r\n * Do not edit the class manually.\r\n */\r\nimport { CoverageDetail } from './coverageDetail';\r\nimport { Finance } from './finance';\r\nimport { Person } from './person';\r\n\r\n\r\n/**\r\n * The policy model\r\n */\r\nexport interface Policy { \r\n /**\r\n * Gets or sets the identifier.\r\n */\r\n id?: number;\r\n /**\r\n * Gets or sets the exchange identifier.\r\n */\r\n exchangeId?: string;\r\n /**\r\n * Gets or sets the issuer identifier\r\n */\r\n issuerId?: string;\r\n /**\r\n * Gets or sets the name.\r\n */\r\n name?: string;\r\n /**\r\n * Gets or sets the status.\r\n */\r\n status?: string;\r\n /**\r\n * Gets or sets the finance.\r\n */\r\n finance?: Finance;\r\n /**\r\n * Gets or sets the coverage details.\r\n */\r\n coverageDetails?: Array<CoverageDetail>;\r\n /**\r\n * Gets or sets the members.\r\n */\r\n members?: Array<Person>;\r\n}\r\n","/**\r\n * SSO Gateway\r\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\r\n *\r\n * OpenAPI spec version: 2\r\n * \r\n *\r\n * NOTE: This class is auto generated by the swagger code generator program.\r\n * https://github.com/swagger-api/swagger-codegen.git\r\n * Do not edit the class manually.\r\n */\r\n\r\n\r\n/**\r\n * The refresh response model\r\n */\r\nexport interface RefreshResponseModel { \r\n /**\r\n * Gets or sets the access token.\r\n */\r\n accessToken?: string;\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { HttpClientModule } from '@angular/common/http';\r\n\r\nimport { HybridSamlOauthService } from './services/hybrid-saml-oauth.service';\r\n\r\n/** The OAuth Module */\r\n@NgModule({\r\n declarations: [],\r\n imports: [\r\n CommonModule,\r\n HttpClientModule\r\n ],\r\n providers: [\r\n HybridSamlOauthService\r\n ]\r\n})\r\nexport class OauthModule { }\r\n","/**\r\n * Header authorization settings.\r\n */\r\nexport class HeaderAuthSettings {\r\n /**\r\n * Constructor.\r\n * @param clientId Client ID. \r\n * @param redirectUri Redirect URI.\r\n * @param issuer Issuer.\r\n * @param scope Scope.\r\n * @param skipIssuerCheck Skip issuer check flag.\r\n * @param logInText Log In Text.\r\n * @param logOutText Log Out Text.\r\n */\r\n constructor(\r\n public clientId: string = '',\r\n public redirectUri: string = '',\r\n public issuer: string = '',\r\n public scope: string = '',\r\n public skipIssuerCheck: boolean = true,\r\n public logInText: string = 'SIGN IN',\r\n public logOutText: string = 'SIGN OUT',\r\n public timeoutFactor: number = 9,\r\n public returnRoute: string = '',\r\n public postLogOutUrl: string = '',\r\n public loginUrl: string = ''\r\n ) { }\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output, Optional } from '@angular/core';\r\nimport { AuthConfig, JwksValidationHandler, OAuthService, OAuthStorage } from 'angular-oauth2-oidc/';\r\nimport { HybridSamlOauthService } from '../../../oauth/oauth-api';\r\nimport { preSignInRouteStorageKey } from '../../../shared/models/constants';\r\nimport { HeaderAuthSettings } from '../../models/header-auth.settings';\r\nimport { HeaderSettings, HeaderThemeSettings } from '../../models/header-models-api';\r\n\r\n/** The Header Component */\r\n@Component({\r\n selector: 'sof-ar-header',\r\n templateUrl: './header.component.html',\r\n styleUrls: ['./header.component.scss']\r\n})\r\nexport class ArmatureHeaderComponent implements OnInit {\r\n\r\n /** Component Input - the header settings */\r\n @Input() public settings: HeaderSettings = {};\r\n\r\n /** Component Input - the header theme settings */\r\n @Input() public themeSettings: HeaderThemeSettings = {};\r\n\r\n /** Authorization settings.*/\r\n @Input() public authSettings: HeaderAuthSettings;\r\n\r\n /** Event Emitter for if user is logged in. */\r\n @Output() public isLoggedInEE: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n /** SETTINGS */\r\n\r\n /** if the header is being paired with the armature navigation. this will auto create the room on mobile for the navigation icon */\r\n public armatureNavigation: boolean;\r\n\r\n /**\r\n * Whether to use the armature header overlay, does not mix with armature navigation\r\n * This instead will hide the right header content and display what's passed to it within the side nav.\r\n */\r\n public armatureHeaderOverlay: boolean;\r\n\r\n /** whether or not to display the logo */\r\n public displayLogo: boolean;\r\n\r\n /** the logo url */\r\n public logoUrl: string;\r\n\r\n /** the logo alt text */\r\n public logoAltText: string;\r\n\r\n /** whether or not to show the logo text, default false */\r\n public displayLogoText: boolean;\r\n\r\n /** the header logo text */\r\n public headerLogoText: string;\r\n\r\n /** whether or not to show the built in drop down menu, default false */\r\n public displayDropDownMenu: boolean;\r\n\r\n /** the drop down menu screen reader text */\r\n public dropDownMenuSRText: string;\r\n\r\n /** the drop down menu aria text */\r\n public dropDownAriaText: string;\r\n\r\n /** the header menu drop down icon */\r\n public headerDropDownIcon: string;\r\n\r\n /** whether or not to show the super header, default false */\r\n public displaySuperHeader: boolean;\r\n\r\n /** THEME SETTINGS */\r\n\r\n /** the header color */\r\n public headerColor: string;\r\n\r\n /** using color string icon color, overrides iconMatColor */\r\n public iconColor: string;\r\n\r\n /** Whether or not to add a drop shadow to the header, default true */\r\n public headerDropShadow: boolean;\r\n\r\n /** The color of the super header */\r\n public superHeaderColor: string;\r\n\r\n /** AUTH SETTINGS */\r\n\r\n /** Flag if user is logged in. */\r\n public isLoggedIn: boolean = false;\r\n\r\n /** Authorization Button Text. */\r\n public get authBtnText(): string {\r\n if (!this.authService) {\r\n return 'SIGN IN';\r\n }\r\n\r\n return this.isLoggedIn ? this.authSettings.logOutText : this.authSettings.logInText;\r\n }\r\n /**\r\n * Constructor.\r\n * @param authService OAuth Service.\r\n * @param authStorage OAuth Storage.\r\n * @param hybridAuthService Hybrid SAML Oauth service.\r\n */\r\n constructor(\r\n private readonly authService: OAuthService,\r\n private readonly authStorage: OAuthStorage,\r\n @Optional() private readonly hybridAuthService: HybridSamlOauthService\r\n ) { }\r\n\r\n /** On Init */\r\n public ngOnInit(): void {\r\n // basic settings\r\n this.settings.armatureNavigation != undefined ? this.armatureNavigation = this.settings.armatureNavigation : this.armatureNavigation = true;\r\n this.settings.armatureHeaderOverlay ? this.armatureHeaderOverlay = this.settings.armatureHeaderOverlay : this.armatureHeaderOverlay = false;\r\n\r\n this.settings.displayLogo ? this.displayLogo = this.settings.displayLogo : this.displayLogo = false;\r\n this.settings.logoUrl ? this.logoUrl = this.settings.logoUrl : this.logoUrl = './assets/logos/logo.svg';\r\n this.settings.logoAltText ? this.logoAltText = this.settings.logoAltText : this.logoAltText = 'the header logo';\r\n\r\n this.settings.displayLogoText ? this.displayLogoText = this.settings.displayLogoText : this.displayLogoText = false;\r\n this.settings.headerLogoText ? this.headerLogoText = this.settings.headerLogoText : this.headerLogoText = 'Softheon';\r\n\r\n this.settings.displayDropDownMenu ? this.displayDropDownMenu = this.settings.displayDropDownMenu : this.displayDropDownMenu = false;\r\n this.settings.dropDownMenuSRText ? this.dropDownMenuSRText = this.settings.dropDownMenuSRText : this.dropDownMenuSRText = 'Header Dropdown Menu';\r\n this.settings.dropDownAriaText ? this.dropDownAriaText = this.settings.dropDownAriaText : this.dropDownAriaText = 'Header Dropdown Menu button icon';\r\n this.settings.headerDropDownIcon ? this.headerDropDownIcon = this.settings.headerDropDownIcon : this.headerDropDownIcon = 'fad fa-user-circle';\r\n\r\n this.setHeaderThemeSettings();\r\n\r\n // set up oauth only when configs and issuer are provided\r\n if (this.authSettings && this.authSettings.issuer) {\r\n this.initializeAuthSettings();\r\n }\r\n }\r\n\r\n /**\r\n * Authorize User.\r\n */\r\n public authorizeUser(): void {\r\n if (this.authSettings) {\r\n if (!this.isLoggedIn) {\r\n if (this.authService.issuer !== this.authSettings.issuer) {\r\n this.authService.issuer = this.authSettings.issuer;\r\n }\r\n window.sessionStorage.setItem(preSignInRouteStorageKey, window.location.pathname.toLowerCase());\r\n this.authService.loadDiscoveryDocumentAndLogin()\r\n .then(logInSuccess => {\r\n if (logInSuccess) {\r\n this.isLoggedIn = true;\r\n }\r\n })\r\n .catch(e => {\r\n console.error(e);\r\n });\r\n } else {\r\n if (this.hybridAuthService) {\r\n this.hybridAuthService.expireSession(true);\r\n }\r\n this.authService.logOut();\r\n this.authStorage.removeItem('access_token');\r\n this.isLoggedIn = false;\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Initialize Authorization Settings.\r\n */\r\n private initializeAuthSettings(): void {\r\n const authConfig = new AuthConfig({\r\n clientId: this.authSettings.clientId,\r\n redirectUri: this.authSettings.redirectUri,\r\n issuer: this.authSettings.issuer,\r\n scope: this.authSettings.scope,\r\n skipIssuerCheck: this.authSettings.skipIssuerCheck,\r\n timeoutFactor: this.authSettings.timeoutFactor || 9,\r\n postLogoutRedirectUri: this.authSettings.postLogOutUrl,\r\n loginUrl: this.authSettings.loginUrl\r\n });\r\n\r\n this.authService.configure(authConfig);\r\n this.authService.issuer = this.authSettings.issuer;\r\n this.authService.strictDiscoveryDocumentValidation = false;\r\n this.authService.skipIssuerCheck = true;\r\n this.authService.tokenValidationHandler = new JwksValidationHandler();\r\n this.authService.setupAutomaticSilentRefresh();\r\n\r\n this.authService.loadDiscoveryDocumentAndTryLogin()\r\n .then(() => {\r\n const token = this.authService.getAccessToken();\r\n const isValid = !!token;\r\n this.isLoggedIn = isValid;\r\n this.isLoggedInEE.emit(this.isLoggedIn);\r\n })\r\n .catch(e => {\r\n console.error(e);\r\n });\r\n }\r\n\r\n /** Sets the header theme settings */\r\n private setHeaderThemeSettings(): void {\r\n // Super Header Settings\r\n this.settings.displaySuperHeader ? this.displaySuperHeader = this.settings.displaySuperHeader : this.displaySuperHeader = false;\r\n this.themeSettings && this.themeSettings.superHeaderColor\r\n ? this.superHeaderColor = this.themeSettings.superHeaderColor : this.superHeaderColor = '#000';\r\n\r\n // Header Theme Settings\r\n this.themeSettings && this.themeSettings.superHeaderColor ? this.headerColor = this.themeSettings.headerColor : this.headerColor = '';\r\n this.themeSettings && this.themeSettings.superHeaderColor ? this.iconColor = this.themeSettings.iconColor : this.iconColor = '#4DB6AC';\r\n this.themeSettings && this.themeSettings.superHeaderColor ?\r\n this.headerDropShadow = this.themeSettings.headerDropShadow : this.headerDropShadow = true;\r\n }\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { MobileHeaderNavSettings } from '../../models/mobile-header-nav.settings';\r\n\r\n/** The mobile header navigation component */\r\n@Component({\r\n selector: 'sof-ar-mobile-header-menu',\r\n templateUrl: './mobile-header-menu.component.html',\r\n styleUrls: ['./mobile-header-menu.component.scss']\r\n})\r\nexport class MobileHeaderMenuComponent implements OnInit {\r\n /** Component Input - the mobile header nav settings */\r\n @Input() public settings: MobileHeaderNavSettings = {};\r\n\r\n /** The menu icon */\r\n public menuIcon: string;\r\n\r\n /** The icon to close the menu */\r\n public closeMenuIcon: string;\r\n\r\n /** The icon color for the menu open/close */\r\n public iconColor: string;\r\n\r\n /** The current icon that should be displayed */\r\n public currentIcon: string;\r\n\r\n /** The mobile header height */\r\n public mobileHeaderHeight: number;\r\n\r\n /** Initializes the component */\r\n public ngOnInit(): void {\r\n this.settings.menuIcon ? this.menuIcon = this.settings.menuIcon : this.menuIcon = 'fas fa-bars';\r\n this.settings.closeMenuIcon ? this.closeMenuIcon = this.settings.closeMenuIcon : this.closeMenuIcon = 'fas fa-times';\r\n this.settings.iconColor ? this.iconColor = this.settings.iconColor : this.iconColor = '#808080';\r\n this.settings.mobileHeaderHeight ? this.mobileHeaderHeight = this.settings.mobileHeaderHeight : this.mobileHeaderHeight = 56;\r\n this.currentIcon = this.menuIcon;\r\n }\r\n\r\n /** Change the icon to the close menu icon */\r\n public changeToCloseIcon(): void {\r\n this.currentIcon = this.closeMenuIcon;\r\n document.body.style.overflow = 'hidden';\r\n }\r\n\r\n /** Change the icon to the menu icon */\r\n public changeToMenuIcon(): void {\r\n this.currentIcon = this.menuIcon;\r\n document.body.style.overflow = 'auto';\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FlexLayoutModule } from '@angular/flex-layout';\r\nimport { MatButtonModule, MatButtonToggleModule, MatIconModule, MatListModule, MatMenuModule, MatSidenavModule, MatToolbarModule } from '@angular/material';\r\nimport { RouterModule } from '@angular/router';\r\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\r\nimport { OAuthModule, OAuthService } from 'angular-oauth2-oidc';\r\nimport { ArmatureHeaderComponent } from './components/header/header.component';\r\nimport { MobileHeaderMenuComponent } from './components/mobile-header-menu/mobile-header-menu.component';\r\n\r\n/** The components */\r\nconst components = [\r\n ArmatureHeaderComponent,\r\n MobileHeaderMenuComponent\r\n];\r\n\r\n/** The material modules */\r\nconst materialModules = [\r\n MatToolbarModule,\r\n MatMenuModule,\r\n MatButtonToggleModule,\r\n MatButtonModule,\r\n MatIconModule,\r\n MatListModule,\r\n MatSidenavModule\r\n];\r\n\r\n@NgModule({\r\n declarations: [...components],\r\n imports: [\r\n CommonModule,\r\n RouterModule,\r\n TranslateModule,\r\n FlexLayoutModule,\r\n OAuthModule,\r\n ...materialModules\r\n ],\r\n exports: [\r\n ...components,\r\n ...materialModules\r\n ],\r\n providers: [TranslateService, OAuthService]\r\n})\r\nexport class ArmatureHeaderModule { }\r\n","import { MediaMatcher } from '@angular/cdk/layout';\r\nimport { ChangeDetectorRef, Component, Input, OnDestroy, OnInit, ViewChild } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\nimport { MatSidenav } from '@angular/material';\r\nimport { NavigationAdvancedSettings, NavigationSettings, NavigationThemeSettings, NavNode } from '../../models/nav-models-api';\r\n\r\n/**\r\n * The Navigation Component\r\n */\r\n@Component({\r\n selector: 'sof-ar-navigation',\r\n templateUrl: './navigation.component.html',\r\n styleUrls: ['./navigation.component.scss']\r\n})\r\nexport class ArmatureNavigationComponent implements OnInit, OnDestroy {\r\n /** The side mobile nav */\r\n @ViewChild('snav', { static: false }) public sidenav: MatSidenav;\r\n\r\n /** Component Input - the navigation data */\r\n @Input() public navigationData: NavNode[];\r\n\r\n /** Component Input - the navigation settings */\r\n @Input() public settings: NavigationSettings = {};\r\n\r\n /** Component Input - the navigation settings */\r\n @Input() public advancedSettings: NavigationAdvancedSettings = {};\r\n\r\n /** Component Input - the navigation settings */\r\n @Input() public themeSettings: NavigationThemeSettings = {};\r\n\r\n /** Mobile SubNav - whether or not the mobile SubNav is open */\r\n public isMobileSubNavOpen: boolean = false;\r\n\r\n /** Mobile SubNav -the data to be passed to the mobile SubNav */\r\n public currentMobileNav: NavNode;\r\n\r\n /** Settings - the font awesome menu icon */\r\n public fontAwesomeMenuIcon: string;\r\n\r\n /** Settings - the top gap on desktop screens for the MD component */\r\n public topGapDesktop: number;\r\n\r\n /** Settings - the top gap on mobile screens for the MD component */\r\n public topGapMobile: number;\r\n\r\n /** Settings - the margin on desktop screens for the MD component */\r\n public marginTopDesktop: number;\r\n\r\n /** Settings - the margin on mobile screens for the MD component */\r\n public marginTopMobile: number;\r\n\r\n /** Settings - the main menu text that appears in the mobile SubNav */\r\n public mainMenuText: string;\r\n\r\n /** Settings - the header height */\r\n public headerHeight: number;\r\n\r\n /** Settings - the menu button screen reader text */\r\n public menuButtonSRText: string;\r\n\r\n /** the mobile query */\r\n public mobileQuery: MediaQueryList;\r\n\r\n /** the mobile query listener */\r\n private readonly _mobileQueryListener: () => void;\r\n\r\n /**\r\n * the constructor\r\n * @param changeDetectorRef the change detector reference\r\n * @param media the media matcher\r\n * @param translate the translate service\r\n */\r\n constructor(\r\n private changeDetectorRef: ChangeDetectorRef,\r\n private media: MediaMatcher,\r\n private translate: TranslateService) {\r\n this.mobileQuery = media.matchMedia('(max-width: 959px)');\r\n this._mobileQueryListener = () => {\r\n changeDetectorRef.detectChanges();\r\n };\r\n // below if statement is for edge support since addEventListener doesn't exist for MediaQueryLists\r\n if (this.mobileQuery.addEventListener) {\r\n this.mobileQuery.addEventListener('change', this._mobileQueryListener);\r\n }\r\n else {\r\n this.mobileQuery.addListener(this._mobileQueryListener);\r\n }\r\n }\r\n\r\n /** On Init - configure the settings */\r\n public ngOnInit(): void {\r\n // basic settings\r\n this.settings.fontAwesomeMenuIcon ? this.fontAwesomeMenuIcon = this.settings.fontAwesomeMenuIcon : this.fontAwesomeMenuIcon = 'fas fa-bars';\r\n this.settings.mainMenuText ? this.mainMenuText = this.settings.mainMenuText : this.mainMenuText = 'Main Menu';\r\n this.settings.headerHeight ? this.headerHeight = this.settings.headerHeight : this.headerHeight = 60;\r\n this.settings.menuButtonSRText ? this.menuButtonSRText = this.settings.menuButtonSRText : this.menuButtonSRText = 'Menu Button';\r\n\r\n // advanced settings\r\n this.advancedSettings.topGapDesktop ? this.topGapDesktop = this.advancedSettings.topGapDesktop : this.topGapDesktop = 0;\r\n this.advancedSettings.topGapMobile ? this.topGapMobile = this.advancedSettings.topGapMobile : this.topGapMobile = this.headerHeight;\r\n this.advancedSettings.marginTopDesktop ? this.marginTopDesktop = this.advancedSettings.marginTopDesktop : this.marginTopDesktop = 0;\r\n this.advancedSettings.marginTopMobile ? this.marginTopMobile = this.advancedSettings.marginTopMobile : this.marginTopMobile = 0;\r\n\r\n // theme settings\r\n this.themeSettings.contentBgColor ? this.setThemeColor('content-bg-color', this.themeSettings.contentBgColor) : undefined;\r\n this.themeSettings.fontColor ? this.setThemeColor('font-color', this.themeSettings.fontColor) : undefined;\r\n this.themeSettings.bgGradientColor1 ? this.setThemeColor('bg-gradient-color-1', this.themeSettings.bgGradientColor1) : undefined;\r\n this.themeSettings.bgGradientColor2 ? this.setThemeColor('bg-gradient-color-2', this.themeSettings.bgGradientColor2) : undefined;\r\n this.themeSettings.borderRightColor ? this.setThemeColor('border-right-color', this.themeSettings.borderRightColor) : undefined;\r\n this.themeSettings.listBorderColor ? this.setThemeColor('list-border-color', this.themeSettings.listBorderColor) : undefined;\r\n this.themeSettings.highlightGradient1 ? this.setThemeColor('highlight-gradient-1', this.themeSettings.highlightGradient1) : undefined;\r\n this.themeSettings.highlightGradient2 ? this.setThemeColor('highlight-gradient-2', this.themeSettings.highlightGradient2) : undefined;\r\n this.themeSettings.subHighlightBorderColor ?\r\n this.setThemeColor('sub-highlight-border-color', this.themeSettings.subHighlightBorderColor) : undefined;\r\n this.themeSettings.subHighlightBgColor ?\r\n this.setThemeColor('sub-highlight-bg-color', this.themeSettings.subHighlightBgColor) : undefined;\r\n }\r\n\r\n /** On Destroy */\r\n public ngOnDestroy(): void {\r\n this.mobileQuery.removeEventListener('change', this._mobileQueryListener);\r\n }\r\n\r\n /**\r\n * Mobile SubNav - open the SubNav\r\n * @param nav the nav data to be passed to the SubNav\r\n */\r\n public openMobileSubNav(nav: NavNode): void {\r\n this.isMobileSubNavOpen = true;\r\n this.currentMobileNav = nav;\r\n this.sidenav.open();\r\n }\r\n\r\n /**\r\n * Mobile SubNav - closes the SubNav\r\n */\r\n public closeMobileSubNav(): void {\r\n this.isMobileSubNavOpen = false;\r\n this.sidenav.close();\r\n }\r\n\r\n /**\r\n * Sets the theme color\r\n * @param variable the css variable name\r\n * @param color the color\r\n */\r\n public setThemeColor(variable: string, color: string): void {\r\n document.documentElement.style.setProperty(`--sof-nav-${variable}`, color);\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { MatButtonModule, MatButtonToggleModule, MatIconModule, MatListModule, MatSidenavModule, MatSliderModule, MatSlideToggleModule } from '@angular/material';\r\nimport { RouterModule } from '@angular/router';\r\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\r\nimport { ArmatureNavigationComponent } from './components/navigation/navigation.component';\r\n\r\n/** The components */\r\nconst components = [\r\n ArmatureNavigationComponent\r\n];\r\n\r\n/** The material modules */\r\nconst materialModules = [\r\n MatSidenavModule,\r\n MatSliderModule,\r\n MatSlideToggleModule,\r\n MatButtonModule,\r\n MatButtonToggleModule,\r\n MatButtonModule,\r\n MatIconModule,\r\n MatListModule\r\n];\r\n\r\n/** The Navigation Module */\r\n@NgModule({\r\n declarations: [\r\n ...components\r\n ],\r\n imports: [\r\n CommonModule,\r\n RouterModule,\r\n TranslateModule,\r\n ...materialModules\r\n ],\r\n exports: [\r\n ...components,\r\n ...materialModules\r\n ],\r\n providers: [TranslateService]\r\n})\r\nexport class NavigationModule { }\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Inject, Injectable, Optional } from '@angular/core';\r\nimport { OAuthService } from 'angular-oauth2-oidc';\r\nimport { BehaviorSubject, Observable, of } from 'rxjs';\r\nimport { catchError, filter, share, take } from 'rxjs/operators';\r\nimport { GlobalInjectionTokens } from '../../shared/models/constants';\r\nimport { UserEntityServiceConfig } from '../../shared/models/user-entity-service-config';\r\nimport { AssertedUserModel } from '../client-generated/model/models';\r\n\r\n/** The user entity service */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class UserEntityService {\r\n\r\n /** The user observable */\r\n public readonly user$: Observable<AssertedUserModel>;\r\n\r\n /** True if the service is available for use */\r\n private isServiceAvailable: boolean;\r\n\r\n /** The get user partial url */\r\n private getUserPartial: string = 'api/userManagement/v1/user';\r\n\r\n /** The user call */\r\n private userCall: Promise<Array<AssertedUserModel>>;\r\n\r\n /** The user model and hash */\r\n private get _user(): AssertedUserModel {\r\n return this.userBS.value;\r\n }\r\n private set _user(val: AssertedUserModel) {\r\n this.userBS.next(val);\r\n }\r\n\r\n /** the user behavior subject */\r\n private readonly userBS: BehaviorSubject<AssertedUserModel> = new BehaviorSubject<AssertedUserModel>(undefined);\r\n\r\n /**\r\n * Constructs the service\r\n * @param oauthService The oathService\r\n * @param httpClient The http client\r\n * @param userEntityBaseUrl The user entity base url\r\n * @param userEntityServiceConfig The user entity service config\r\n */\r\n constructor(\r\n private readonly oauthService: OAuthService,\r\n private readonly httpClient: HttpClient,\r\n @Optional() @Inject(GlobalInjectionTokens.userEntityBaseUrl) private readonly userEntityBaseUrl: string,\r\n @Optional() @Inject(GlobalInjectionTokens.userEntityServiceConfig) readonly userEntityServiceConfig: UserEntityServiceConfig\r\n ) {\r\n // tslint:disable-next-line: no-parameter-reassignment\r\n this.userEntityBaseUrl = this.userEntityBaseUrl || '/';\r\n this.userEntityServiceConfig = !this.userEntityServiceConfig ? new UserEntityServiceConfig() : this.getConfigWithDefaults();\r\n this.getUserPartial = this.userEntityServiceConfig.getUserPartial || this.getUserPartial;\r\n this.user$ = this.userBS.asObservable()\r\n .pipe(filter(val => !!val));\r\n\r\n if (this.userEntityServiceConfig.getUserOnInit) {\r\n const interval = setInterval(() => {\r\n this.isServiceAvailable = this.oauthService.hasValidAccessToken();\r\n if (!this.isServiceAvailable) {\r\n return;\r\n }\r\n this.getUserFromApi()\r\n .then()\r\n .catch();\r\n clearInterval(interval);\r\n }, 100);\r\n }\r\n }\r\n\r\n /** Gets the user */\r\n public async getUser(): Promise<AssertedUserModel> {\r\n return new Promise((resolve, reject) => {\r\n this.user$.pipe(\r\n take(1),\r\n share(),\r\n catchError(e => {\r\n reject(e);\r\n\r\n return of(e);\r\n }))\r\n .subscribe(user => {\r\n resolve(user);\r\n });\r\n });\r\n }\r\n\r\n /**\r\n * Updates the user\r\n * @param user The new user model\r\n */\r\n public async updateUser(user?: AssertedUserModel): Promise<AssertedUserModel> {\r\n if (user) {\r\n this._user = user;\r\n\r\n return Promise.resolve(this._user);\r\n }\r\n\r\n await this.getUserFromApi();\r\n\r\n return this._user;\r\n }\r\n\r\n /** Returns true if the user meets the validation function provided */\r\n public validateUser(): boolean {\r\n if (this.userEntityServiceConfig && this._user) {\r\n return this.userEntityServiceConfig.validate(this._user);\r\n }\r\n\r\n return true;\r\n }\r\n\r\n /** Gets the user from the api */\r\n private async getUserFromApi(): Promise<void> {\r\n // use the local path if there is not base path provided\r\n return this.oauthService.discoveryDocumentLoaded$.pipe(take(1))\r\n .toPromise()\r\n .then(async () => {\r\n // append the issuer to the header of the request so the api knows what tenant to use\r\n const headers = new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n Authorization: `Bearer ${this.oauthService.getAccessToken()}`,\r\n // HACK: The oauth service likes to overwrite the configs with the results of the discovery document, this ensure the original configuration values are used\r\n 'Authorization-Tenant': (\r\n // tslint:disable-next-line: no-string-literal\r\n this.oauthService && this.oauthService['config'] && this.oauthService['config'].loginUrl ||\r\n this.oauthService && this.oauthService['config'] && this.oauthService['config'].issuer ||\r\n this.oauthService && this.oauthService.loginUrl ||\r\n this.oauthService && this.oauthService.issuer ||\r\n ''\r\n )\r\n .replace('/account/login', '')\r\n .replace('/connect/authorize', '')\r\n }\r\n );\r\n this.userCall = this.httpClient.get<Array<AssertedUserModel>>(\r\n `${this.userEntityBaseUrl}${this.getUserPartial}?subIdFromToken=true&createEmpty=true&withoutChildLinks=${!this.userEntityServiceConfig.includeLinks}`,\r\n { headers }\r\n )\r\n .toPromise();\r\n\r\n return this.userCall.then(res => {\r\n if (!res || res.length === 0) {\r\n console.error('No user entities found');\r\n }\r\n this._user = res[0];\r\n this.validateUser();\r\n })\r\n .catch(e => {\r\n console.error('UserEntityService encountered an error', e);\r\n throw e;\r\n });\r\n });\r\n }\r\n\r\n /** Sets the default values of the config */\r\n private getConfigWithDefaults(): UserEntityServiceConfig {\r\n const config = this.userEntityServiceConfig;\r\n config.validate = config.validate || ((user: AssertedUserModel): boolean => true);\r\n // tslint:disable-next-line: triple-equals\r\n config.getUserOnInit = config.getUserOnInit == undefined ? true : config.getUserOnInit;\r\n config.includeLinks = config.includeLinks == undefined ? true : config.includeLinks;\r\n config.getUserPartial = config.getUserPartial == undefined ? this.getUserPartial : config.getUserPartial;\r\n\r\n return config;\r\n }\r\n}\r\n","import { Directive, ElementRef, Input } from '@angular/core';\r\nimport { CssOverride } from '../models/css-override';\r\n\r\n// tslint:disable: prefer-for-of\r\n// tslint:disable: prefer-function-over-method\r\n/** The css override service */\r\n@Directive({\r\n selector: '[sofArCssOverride]'\r\n})\r\nexport class CssOverrideDirective {\r\n\r\n /** The css overrides */\r\n @Input() public sofArCssOverride: Array<CssOverride> = [];\r\n\r\n /** The changes mutation observer */\r\n private readonly changes: MutationObserver;\r\n\r\n /**\r\n * Constructs the directive\r\n */\r\n constructor(\r\n ) {\r\n this.changes = new MutationObserver((mutations: Array<MutationRecord>) => {\r\n this.overrideCss(this.sofArCssOverride);\r\n });\r\n this.changes.observe(document.body, {\r\n attributes: true,\r\n childList: true,\r\n characterData: true,\r\n subtree: true\r\n });\r\n }\r\n\r\n /**\r\n * Overrides the css on the page\r\n * @param overrides the css overrides\r\n */\r\n private overrideCss(overrides: Array<CssOverride>): void {\r\n overrides.forEach(cssOverride => {\r\n switch (cssOverride.selector) {\r\n case 'class':\r\n const elementsByClass = document.getElementsByClassName(cssOverride.parameter);\r\n for (let i = 0; i < elementsByClass.length; i++) {\r\n const e: HTMLElement = elementsByClass[i] as HTMLElement;\r\n cssOverride.attributes.forEach(attr => {\r\n e.style.setProperty(attr.name, attr.value, 'important');\r\n });\r\n }\r\n break;\r\n case 'tag':\r\n const elementsByTag = document.getElementsByTagName(cssOverride.parameter);\r\n for (let i = 0; i < elementsByTag.length; i++) {\r\n const e: HTMLElement = elementsByTag[i] as HTMLElement;\r\n cssOverride.attributes.forEach(attr => {\r\n e.style.setProperty(attr.name, attr.value, 'important');\r\n });\r\n }\r\n break;\r\n case 'id':\r\n default:\r\n const element = document.getElementById(cssOverride.parameter);\r\n cssOverride.attributes.forEach(attr => {\r\n element.style.setProperty(attr.name, attr.value, 'important');\r\n });\r\n break;\r\n }\r\n });\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ThemePaletteColorsModel, ThemePaletteModel } from '../../core/client-generated/model/models';\r\n\r\n/** The color palette constant */\r\nconst COLOR_PALETTE = 'color';\r\n\r\n/** The contrast palette constant */\r\nconst CONTRAST_PALETTE = 'contrast'\r\n\r\n/** The Theme Service */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ThemeService {\r\n\r\n /**\r\n * The theme service constructor\r\n */\r\n constructor() { }\r\n\r\n /**\r\n * Initializes the palette\r\n * @param themeConfig The theme configurations\r\n */\r\n public initPalette(themeConfig: ThemePaletteModel): void {\r\n if (themeConfig) {\r\n // Setting up primary color & contrast palettes\r\n const primaryColor = themeConfig.primaryColor;\r\n const primaryContrast = themeConfig.primaryContrast;\r\n if (primaryColor && JSON.stringify(primaryColor) !== '{}') {\r\n this.updatePalette('primary', COLOR_PALETTE, primaryColor);\r\n }\r\n if (primaryContrast && JSON.stringify(primaryContrast) !== '{}') {\r\n this.updatePalette('primary', CONTRAST_PALETTE, primaryContrast);\r\n }\r\n // Setting up accent color & contrast palettes\r\n const accentColor = themeConfig.accentColor;\r\n const accentContrast = themeConfig.accentContrast;\r\n if (accentColor && JSON.stringify(accentColor) !== '{}') {\r\n this.updatePalette('accent', COLOR_PALETTE, accentColor);\r\n }\r\n if (accentContrast && JSON.stringify(accentContrast) !== '{}') {\r\n this.updatePalette('accent', CONTRAST_PALETTE, accentContrast);\r\n }\r\n // Setting up warning color & contrast palettes\r\n const warningColor = themeConfig.warningColor;\r\n const warningContrast = themeConfig.warningContrast;\r\n if (warningColor && JSON.stringify(warningColor) !== '{}') {\r\n this.updatePalette('warn', COLOR_PALETTE, warningColor);\r\n }\r\n if (warningContrast && JSON.stringify(warningContrast) !== '{}') {\r\n this.updatePalette('warn', CONTRAST_PALETTE, warningContrast);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Updates the theme\r\n * @param paletteName Palette name\r\n * @param paletteType Palette type\r\n * @param palette Palette values\r\n */\r\n public updatePalette(paletteName: string, paletteType: string, palette: ThemePaletteColorsModel): void {\r\n if (paletteType == COLOR_PALETTE) {\r\n this.updateColor(paletteName, '50', palette.fifty);\r\n this.updateColor(paletteName, '100', palette.oneHundred);\r\n this.updateColor(paletteName, '200', palette.twoHundred);\r\n this.updateColor(paletteName, '300', palette.threeHundred);\r\n this.updateColor(paletteName, '400', palette.fourHundred);\r\n this.updateColor(paletteName, '500', palette.fiveHundred);\r\n this.updateColor(paletteName, '600', palette.sixHundred);\r\n this.updateColor(paletteName, '700', palette.sevenHundred);\r\n this.updateColor(paletteName, '800', palette.eightHundred);\r\n this.updateColor(paletteName, '900', palette.nineHundred);\r\n this.updateColor(paletteName, 'A100', palette.a100);\r\n this.updateColor(paletteName, 'A200', palette.a200);\r\n this.updateColor(paletteName, 'A400', palette.a400);\r\n this.updateColor(paletteName, 'A700', palette.a700);\r\n }\r\n else if (paletteType == CONTRAST_PALETTE) {\r\n this.updateContrast(paletteName, '50', palette.fifty);\r\n this.updateContrast(paletteName, '100', palette.oneHundred);\r\n this.updateContrast(paletteName, '200', palette.twoHundred);\r\n this.updateContrast(paletteName, '300', palette.threeHundred);\r\n this.updateContrast(paletteName, '400', palette.fourHundred);\r\n this.updateContrast(paletteName, '500', palette.fiveHundred);\r\n this.updateContrast(paletteName, '600', palette.sixHundred);\r\n this.updateContrast(paletteName, '700', palette.sevenHundred);\r\n this.updateContrast(paletteName, '800', palette.eightHundred);\r\n this.updateContrast(paletteName, '900', palette.nineHundred);\r\n this.updateContrast(paletteName, 'A100', palette.a100);\r\n this.updateContrast(paletteName, 'A200', palette.a200);\r\n this.updateContrast(paletteName, 'A400', palette.a400);\r\n this.updateContrast(paletteName, 'A700', palette.a700);\r\n }\r\n }\r\n\r\n /**\r\n * Updates the color css variable for the given theme\r\n * @param palette Palette to update\r\n * @param part Part number\r\n * @param value Value to replace with\r\n */\r\n public updateColor(palette: string, part: string, value: string): void {\r\n document.documentElement.style.setProperty(`--${palette}-color-${part}-parts`, value);\r\n }\r\n\r\n /**\r\n * Updates the color contrast css variable for the given theme\r\n * @param palette Palette to update\r\n * @param part Part number\r\n * @param value Value to replace with\r\n */\r\n public updateContrast(palette: string, part: string, value: string): void {\r\n document.documentElement.style.setProperty(`--${palette}-color-contrast-${part}-parts`, value);\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { CssOverrideDirective } from './directives/css-override.directive';\r\nimport { CssOverride } from './models/css-override';\r\n\r\nimport { ThemeService } from './services/theme.service';\r\n\r\n/** Armature saml module */\r\n@NgModule({\r\n declarations: [\r\n CssOverrideDirective\r\n ],\r\n imports: [\r\n CommonModule\r\n ],\r\n providers: [\r\n ThemeService\r\n ],\r\n exports: [\r\n CssOverrideDirective\r\n ]\r\n})\r\nexport class ThemeModule { }\r\n","import { Injector, NgModule } from '@angular/core';\r\nimport { SessionService as ServerSessionService } from './core/client-generated/api/session.service';\r\nimport { BASE_PATH } from './core/client-generated/variables';\r\nimport { SessionService } from './core/services/session.service';\r\nimport { ArmatureFooterModule } from './footer/footer.module';\r\nimport { FormsModule } from './forms/forms.module';\r\nimport { ArmatureHeaderModule } from './header/header.module';\r\nimport { NavigationModule } from './navigation/navigation.module';\r\nimport { GlobalInjectionTokens } from './shared/models/constants';\r\nimport { UserEntityService } from './core/services/user-entity.service';\r\nimport { ThemeModule } from './theming/theme.module';\r\n\r\n/** The package modules */\r\nconst packageModules = [\r\n FormsModule,\r\n NavigationModule,\r\n ArmatureHeaderModule,\r\n ArmatureFooterModule,\r\n ThemeModule\r\n];\r\n\r\n/**\r\n * Session base path factory\r\n * @param injector The angular injector\r\n */\r\nexport function sessionBasePathFactory(injector: Injector): string {\r\n const sessionBasePath = injector.get(GlobalInjectionTokens.sessionManagementBasePath, 'not-found');\r\n if (sessionBasePath !== 'not-found') {\r\n return sessionBasePath;\r\n }\r\n else {\r\n return undefined;\r\n }\r\n}\r\n\r\n/** The armature root module */\r\n@NgModule({\r\n declarations: [\r\n ],\r\n imports: [\r\n ...packageModules\r\n ],\r\n providers: [\r\n ServerSessionService,\r\n SessionService,\r\n UserEntityService,\r\n {\r\n provide: BASE_PATH,\r\n useFactory: sessionBasePathFactory,\r\n deps: [Injector]\r\n }\r\n ],\r\n exports: [\r\n ...packageModules\r\n ]\r\n})\r\nexport class ArmatureModule {\r\n\r\n /**\r\n * Constructs the module\r\n * Used to initialize services at module construction time\r\n * @param userEntityService The user entity service\r\n */\r\n constructor(\r\n userEntityService: UserEntityService\r\n ) { }\r\n\r\n}\r\n","import { ISamlRequest } from './i-saml-request';\r\n\r\n/** The redirect SAML request */\r\nexport class RedirectSamlRequest implements ISamlRequest {\r\n /** The redirect url that will be used for posting the SAML */\r\n public redirectUrl: string;\r\n\r\n /** The url to return to */\r\n public returnUrl: string;\r\n\r\n /** The OAuth 2.0 issuer */\r\n public oAuthIssuer: string;\r\n\r\n /** The OAuth 2.0 client id */\r\n public oAuthClientId: string;\r\n\r\n /** The OAuth 2.0 scopes, space delimited list */\r\n public oAuthScopes: string;\r\n\r\n /** The logo url */\r\n public logo: string;\r\n\r\n /** The theme */\r\n public theme: string;\r\n\r\n /** The CDN url for the theme */\r\n public themeCDN: string;\r\n\r\n /** The reference */\r\n public referenceId: string;\r\n\r\n /** The reference data */\r\n public referenceData: string;\r\n\r\n}\r\n","import { Observable, BehaviorSubject } from 'rxjs';\r\n\r\nimport { ISamlRequest } from '../../models/i-saml-request';\r\nimport { ISamlResponse } from '../../models/i-saml-response';\r\n\r\n/** The SAML service abstract class */\r\nexport abstract class AbstractSamlService {\r\n\r\n /** The post saml observable */\r\n abstract postSaml$: Observable<string>;\r\n\r\n /** The post saml behavior subject */\r\n abstract postSaml: BehaviorSubject<string> = new BehaviorSubject<string>('');\r\n\r\n /** The base saml request */\r\n abstract baseRequest: BehaviorSubject<ISamlRequest>;\r\n\r\n /** The base request observable */\r\n abstract baseRequest$: Observable<ISamlRequest>;\r\n\r\n /**\r\n * Gets the SAML\r\n * @param request The request\r\n * @param endpointUri The full endpoint uri\r\n */\r\n abstract getSaml(request: ISamlRequest, endpointUri: string): Observable<ISamlResponse>;\r\n}\r\n","import { AfterViewInit, Component, ElementRef, EventEmitter, Input, OnDestroy, OnInit, Output, ViewChild } from '@angular/core';\r\n\r\nimport { Subscription } from 'rxjs';\r\n\r\nimport { RedirectSamlRequest } from '../../models/redirect-saml-request';\r\nimport { AbstractSamlService } from '../../services/send-off/abstract-saml.service';\r\n\r\n/** The SAML redirect component */\r\n@Component({\r\n selector: 'saml-redirect-saml',\r\n templateUrl: './redirect-saml.component.html',\r\n styleUrls: ['./redirect-saml.component.css']\r\n})\r\nexport class RedirectSamlComponent implements OnInit, AfterViewInit, OnDestroy {\r\n\r\n /** The request used to get the SAML */\r\n @Input() public request: RedirectSamlRequest;\r\n\r\n /** The endpoint to use for getting the saml */\r\n @Input() public samlGetEndpointUri: string;\r\n\r\n /** The endpoint to post the saml to */\r\n @Input() public samlPostUrl: string;\r\n\r\n /** Event emitter for when the saml post is triggered */\r\n @Output() public readonly samlPostEvent: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n /** The saml submit button element reference */\r\n @ViewChild('samlSubmit', { static: false }) public samlSubmitBtn: ElementRef<HTMLButtonElement>;\r\n\r\n /** The saml input element reference */\r\n @ViewChild('samlInput', { static: false }) public samlInput: ElementRef<HTMLInputElement>;\r\n\r\n /** The SAML */\r\n public saml: string;\r\n\r\n /** The SAML post subscription */\r\n private readonly samlPostSubscription: Subscription;\r\n\r\n /** The saml subscription */\r\n private samlSubscription: Subscription;\r\n\r\n /**\r\n * Constructs the component\r\n * @param samlService The saml service\r\n */\r\n constructor(\r\n private readonly samlService: AbstractSamlService\r\n ) { }\r\n\r\n /** Life cycle hook from component initialization */\r\n public ngOnInit(): void {\r\n if (!this.validateComponentInputs()) {\r\n throw new Error('saml-redirect-saml component is missing required attributes');\r\n }\r\n this.samlService.baseRequest.next(this.request);\r\n }\r\n\r\n /** Life cycle hook for after component view initialization */\r\n public ngAfterViewInit(): void {\r\n // getting/posting is done here since they depend on each other and the button needs to exist\r\n\r\n // Subscribes to observable for posting a given saml\r\n this.samlSubscription = this.samlService.postSaml$.subscribe(saml => {\r\n if (saml) {\r\n this.saml = saml;\r\n setTimeout(() => {\r\n this.samlInput.nativeElement.value = saml;\r\n this.samlSubmitBtn.nativeElement.click();\r\n }, 50);\r\n }\r\n });\r\n\r\n }\r\n\r\n /** Life cycle hook for component destruction */\r\n public ngOnDestroy(): void {\r\n this.samlPostSubscription.unsubscribe();\r\n this.samlSubscription.unsubscribe();\r\n }\r\n\r\n /** Validates that component required component inputs are provided */\r\n private validateComponentInputs(): boolean {\r\n let errorCount = 0;\r\n if (!this.request) {\r\n console.error('saml-redirect-saml: Attribute \"request\" is required');\r\n errorCount++;\r\n }\r\n\r\n if (!this.samlGetEndpointUri) {\r\n console.error('saml-redirect-saml: Attribute \"samlGetEndpointUri\" is required');\r\n errorCount++;\r\n }\r\n\r\n if (!this.samlPostUrl) {\r\n console.error('saml-redirect-saml: Attribute \"samlPostUrl\" is required');\r\n errorCount++;\r\n }\r\n return errorCount === 0;\r\n }\r\n\r\n}\r\n","/** The SAML request interface */\r\nexport interface ISamlRequest {\r\n redirectUrl: string;\r\n}\r\n","/** The SAML response interface */\r\nexport interface ISamlResponse {\r\n saml: string;\r\n}\r\n","/** The Sso Gateway de-serialized SAML model */\r\nexport class SsoGatewayModel {\r\n /** The assertions dictionary */\r\n public Assertions: { [key: string]: string };\r\n\r\n /** The issuer of the saml */\r\n public Issuer: string;\r\n\r\n /** The audience of the saml */\r\n public Audience: string;\r\n\r\n /** The destination of the saml */\r\n public Destination: string;\r\n\r\n /** The hash of the assertions */\r\n public Hash: string;\r\n\r\n /** The Key Path suffix used for storing the values */\r\n public KeyPath: string;\r\n}\r\n","import { Observable } from 'rxjs';\r\nimport { SsoGatewayModel } from '../../models/sso-gateway-model';\r\n\r\n/** The abstract saml entry service */\r\nexport abstract class AbstractSamlEntryService {\r\n\r\n /** The key path prefix */\r\n public abstract keyPathPrefix: string;\r\n\r\n /**\r\n * Reads the values for the provided key path\r\n * @param keyPath The key path\r\n */\r\n public abstract readValue(keyPath: string): SsoGatewayModel;\r\n\r\n /**\r\n * Deletes value associated with the provided key path\r\n * @param keyPath The key path\r\n */\r\n public abstract deleteValue(keyPath: string): void;\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { BehaviorSubject, Observable, throwError } from 'rxjs';\r\nimport { publish } from 'rxjs/operators';\r\n\r\nimport { AbstractSamlEntryService } from './abstract-saml-entry.service';\r\nimport { SsoGatewayModel } from '../../models/sso-gateway-model';\r\n\r\n// IndexedDB set up\r\nconst wind = <any> window;\r\n//wind.indexedDB = wind.indexedDB || wind.mozIndexedDB || wind.webkitIndexedDB || wind.msIndexedDB;\r\nwind.IDBTransaction = wind.IDBTransaction || wind.webkitIDBTransaction || wind.msIDBTransaction || {\r\n READ_WRITE: \"readwrite\"\r\n};\r\nwind.IDBKeyRange = wind.IDBKeyRange || wind.webkitIDBKeyRange || wind.msIDBKeyRange;\r\n\r\nif (!window.indexedDB) {\r\n console.error('browser does not support a stable version IndexedDB');\r\n}\r\n\r\n/** The SAML entry service */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SsoGatewayEntryService extends AbstractSamlEntryService {\r\n\r\n /** The key path prefix */\r\n public keyPathPrefix: string = 'SsoGateway-';\r\n\r\n /** Constructs the service */\r\n constructor() {\r\n super();\r\n }\r\n\r\n /**\r\n * Reads the values for the provided key path\r\n * @param keyPath The key path\r\n */\r\n public readValue(keyPath: string): SsoGatewayModel {\r\n const data = window.localStorage.getItem(`${this.keyPathPrefix}${keyPath}`);\r\n return JSON.parse(data);\r\n }\r\n\r\n /**\r\n * Deletes the value associated with the provided key path\r\n * @param keyPath The key path\r\n */\r\n public deleteValue(keyPath: string): void {\r\n window.localStorage.removeItem(`${this.keyPathPrefix}${keyPath}`);\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\n\r\nimport { Observable, BehaviorSubject } from 'rxjs';\r\n\r\nimport { ISamlRequest } from '../../models/i-saml-request';\r\nimport { ISamlResponse } from '../../models/i-saml-response';\r\nimport { AbstractSamlService } from './abstract-saml.service';\r\nimport { RedirectSamlRequest } from '../../models/models-api';\r\n\r\n/** The SAML service */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SamlService extends AbstractSamlService {\r\n\r\n /** The post saml observable */\r\n public postSaml$: Observable<string>;\r\n\r\n /** The post saml behavior subject */\r\n public postSaml: BehaviorSubject<string> = new BehaviorSubject<string>('');\r\n\r\n /** The base saml request behavior subject */\r\n public baseRequest: BehaviorSubject<RedirectSamlRequest> = new BehaviorSubject<RedirectSamlRequest>(undefined);\r\n\r\n /** The base saml request behavior subject */\r\n public baseRequest$: Observable<RedirectSamlRequest>;\r\n\r\n /**\r\n * Constructs the service\r\n * @param http The http client\r\n */\r\n constructor(\r\n private readonly http: HttpClient\r\n ) {\r\n super();\r\n this.postSaml$ = this.postSaml.asObservable();\r\n this.baseRequest$ = this.baseRequest.asObservable();\r\n }\r\n\r\n /**\r\n * Gets the saml with provided body from the given endpoint\r\n * @param request The request body\r\n * @param endpointUri The full endpoint uri for getting the saml\r\n */\r\n public getSaml(request: ISamlRequest, endpointUri: string): Observable<ISamlResponse> {\r\n return this.http.post<ISamlResponse>(endpointUri, request);\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\n\r\nimport { RedirectSamlComponent } from './components/components-api';\r\nimport { AbstractSamlEntryService, AbstractSamlService, SamlService, SsoGatewayEntryService } from './services/services-api';\r\n\r\n/** The saml components */\r\nconst components = [\r\n RedirectSamlComponent\r\n];\r\n\r\n/** The implementations for the saml services */\r\nconst abstractServices = [\r\n { provide: AbstractSamlEntryService, useClass: SsoGatewayEntryService },\r\n { provide: AbstractSamlService, useClass: SamlService }\r\n];\r\n\r\n/** Armature saml module */\r\n@NgModule({\r\n declarations: [\r\n ...components\r\n ],\r\n imports: [\r\n CommonModule,\r\n ],\r\n providers: [\r\n ...abstractServices\r\n ],\r\n exports: [\r\n ...components\r\n ]\r\n})\r\nexport class SamlModule { }\r\n","/** The Navigation (Parent) Node Model */\r\nexport interface NavNode {\r\n /** the parent node title */\r\n text: string;\r\n\r\n /** the parent node fontAwesomeIcon */\r\n fontAwesomeIcon?: string;\r\n\r\n /** the parent node route */\r\n route?: string;\r\n\r\n /** the parent node sub-nodes */\r\n subNodes?: SubNavNodes[];\r\n}\r\n\r\n/** The Sub-Navigation (Child) Node Model */\r\nexport interface SubNavNodes {\r\n /** the sub-node title */\r\n text: string;\r\n\r\n /** the sub-node route */\r\n route: string;\r\n}\r\n","/** the Navigation Settings */\r\nexport interface NavigationSettings {\r\n /** the Header Menu FontAwesome icon */\r\n fontAwesomeMenuIcon?: string;\r\n\r\n /** the main menu text that appears in the mobile SubNav */\r\n mainMenuText?: string;\r\n\r\n /** the header height */\r\n headerHeight?: number;\r\n\r\n /** menu button screen reader text */\r\n menuButtonSRText?: string;\r\n}\r\n\r\n/** The Advanced Settings */\r\nexport interface NavigationAdvancedSettings {\r\n /** the top gap on desktop screens for the MD component */\r\n topGapDesktop?: number;\r\n\r\n /** the top gap on mobile screens for the MD component */\r\n topGapMobile?: number;\r\n\r\n /** the margin on desktop screens for the MD component */\r\n marginTopDesktop?: number;\r\n\r\n /** the margin on mobile screens for the MD component */\r\n marginTopMobile?: number;\r\n}\r\n","/** The Theme Settings */\r\nexport interface NavigationThemeSettings {\r\n /** the content background color */\r\n contentBgColor?: string;\r\n\r\n /** the navigation overall font color */\r\n fontColor?: string;\r\n\r\n /** the background gradient color 2 */\r\n bgGradientColor1?: string;\r\n\r\n /** the background gradient color 2 */\r\n bgGradientColor2?: string;\r\n\r\n /** the overall border right color */\r\n borderRightColor?: string;\r\n\r\n /** the list border color */\r\n listBorderColor?: string;\r\n\r\n /** the nav highlight gradient color 1 */\r\n highlightGradient1?: string;\r\n\r\n /** the nav highlight gradient color 2 */\r\n highlightGradient2?: string;\r\n\r\n /** the SubNav highlight border color */\r\n subHighlightBorderColor?: string;\r\n\r\n /** the SubNav highlight bg color */\r\n subHighlightBgColor?: string;\r\n}\r\n","import { RoutePath } from '../../shared/models/route-path';\r\nimport { Styles } from '../../shared/models/styles';\r\n\r\n/** the Header Settings */\r\nexport interface HeaderSettings {\r\n /** if the header is being paired with the armature navigation. this will auto create the room on mobile for the navigation icon */\r\n armatureNavigation?: boolean;\r\n\r\n /**\r\n * Whether to use the armature header overlay, does not mix with armature navigation\r\n * This instead will hide the right header content and display what's passed to it within the side nav.\r\n */\r\n armatureHeaderOverlay?: boolean;\r\n\r\n /** whether or not to display the logo, default false */\r\n displayLogo?: boolean;\r\n\r\n /** the logo url */\r\n logoUrl?: string;\r\n\r\n /** the logo alt text */\r\n logoAltText?: string;\r\n\r\n /** whether or not to show the logo text, default false */\r\n displayLogoText?: boolean;\r\n\r\n /** the header logo text */\r\n headerLogoText?: string;\r\n\r\n /** whether or not to show the built in drop down menu, default false */\r\n displayDropDownMenu?: boolean;\r\n\r\n /** the drop down menu screen reader text */\r\n dropDownMenuSRText?: string;\r\n\r\n /** the drop down menu aria text */\r\n dropDownAriaText?: string;\r\n\r\n /** the header menu drop down icon */\r\n headerDropDownIcon?: string;\r\n\r\n /** the link from the header logo */\r\n logoRouterLink?: string;\r\n\r\n /** The logo router link path */\r\n logoRouterLinkPath?: RoutePath;\r\n\r\n /** whether or not to show the super header, default false */\r\n displaySuperHeader?: boolean;\r\n\r\n /** The header custom styles */\r\n headerStyles?: Styles;\r\n\r\n /** The logo custom styles */\r\n logoStyles?: Styles;\r\n\r\n /** Flag for displaying auth info. */\r\n displayAuthInfo?: boolean;\r\n}\r\n","/** the Header Theme Settings */\r\nexport interface HeaderThemeSettings {\r\n\r\n /** the header color - uses a neutral background color based on the current theme (light or dark). can be primary, secondary, or warn */\r\n headerColor?: string;\r\n\r\n /** using color string icon color */\r\n iconColor?: string;\r\n\r\n /** whether or not to add a drop shadow to the header, default true */\r\n headerDropShadow?: boolean;\r\n\r\n /** the super header color */\r\n superHeaderColor?: string;\r\n}\r\n","/** The mobile header nav settings */\r\nexport interface MobileHeaderNavSettings {\r\n /** The icon color for the menu icons */\r\n iconColor?: string;\r\n /** The menu icon */\r\n menuIcon?: string;\r\n /** The close menu icon */\r\n closeMenuIcon?: string;\r\n /** The mobile header height */\r\n mobileHeaderHeight?: number;\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { RoleNavService } from '../services/role-nav.service';\r\nimport { RbacConfig } from './rbac-config';\r\n\r\n/** The injection tokens */\r\nexport class RbacInjectionTokens {\r\n\r\n /** the token delegate injection token */\r\n public static accessToken$: InjectionToken<Observable<string>> = new InjectionToken<string>('AccessToken$');\r\n\r\n /** The RBAC configuration injection token */\r\n public static rbacConfig: InjectionToken<RbacConfig> = new InjectionToken<RbacConfig>('RbacConfig');\r\n\r\n /** True if role actions should be disabled */\r\n public static disableRoleActions: InjectionToken<boolean> = new InjectionToken<boolean>('DisableRoleActions');\r\n}\r\n","import { RoleAccess } from './role-access';\r\n\r\n/** The Role Based Access Control (RBAC) configuration */\r\nexport class RbacConfig {\r\n /** The role configuration */\r\n public roleConfig: { [key: string]: RoleAccess };\r\n}\r\n","import { NavNode } from '../../navigation/models/navigation';\r\nimport { RbacConfig } from '../models/rbac-config';\r\n\r\n/** The role navigation service interface */\r\nexport abstract class RoleNavService {\r\n /**\r\n * Creates a new navigation config using the provided default navigation config and the RABC configuration\r\n * @param defaultNav The default navigation config\r\n * @param rbacConfig The rbac config used for limiting the navigation\r\n * @param roles the array of roles\r\n */\r\n public abstract createRoleControlledNavigation(defaultNav: Array<NavNode>, rbacConfig: RbacConfig, roles: Array<string>): Array<NavNode>;\r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Inject, Injectable } from '@angular/core';\r\nimport { Observable, of, ReplaySubject } from 'rxjs';\r\nimport { catchError, map } from 'rxjs/operators';\r\nimport { NavNode } from '../../navigation/navigation-api';\r\nimport { GlobalInjectionTokens } from '../../shared/models/constants';\r\nimport { AccessTokenClaims } from '../models/access-token-claims';\r\nimport { RbacInjectionTokens } from '../models/constants';\r\nimport { DecodedAccessToken } from '../models/decoded-access-token';\r\nimport { RbacConfig } from '../models/rbac-config';\r\nimport { RoleNavService } from './role-nav.service';\r\n\r\n/**\r\n * The oauth 2 role service\r\n * Supplies the role using an OAuth 2.0 access token\r\n */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class Oauth2RoleService {\r\n\r\n /** The decoded access token behavior subject */\r\n private readonly decodeToken: ReplaySubject<DecodedAccessToken> = new ReplaySubject(undefined);\r\n\r\n /** The current access token */\r\n public token: string;\r\n\r\n /** The decoded access token */\r\n public decodedToken$: Observable<DecodedAccessToken>;\r\n\r\n /**\r\n * Constructs the service\r\n * @param accessTokenDelegate The function for retrieving an access token\r\n * @param userInfoEndpoint The user info endpoint for retrieving claims for the given user\r\n * @param rbacConfig The Role Based Access Control configuration\r\n * @param httpClient The HTTP client\r\n * @param roleNavService The role nav service\r\n */\r\n constructor(\r\n // injection tokens\r\n @Inject(RbacInjectionTokens.accessToken$) private readonly accessToken$: Observable<string>,\r\n @Inject(GlobalInjectionTokens.userInfoEndpoint) private readonly userInfoEndpoint: string,\r\n @Inject(RbacInjectionTokens.rbacConfig) private readonly rbacConfig: RbacConfig,\r\n @Inject(RbacInjectionTokens.disableRoleActions) private readonly disableRoleActions: boolean,\r\n // dependencies\r\n private readonly httpClient: HttpClient,\r\n private readonly roleNavService: RoleNavService\r\n ) {\r\n // get the token initially then update it based on injected refresh time\r\n this.decodedToken$ = this.decodeToken.asObservable();\r\n this.accessToken$.subscribe(token => {\r\n this.token = token;\r\n if (!this.token) {\r\n return;\r\n }\r\n const decoded = new DecodedAccessToken(this.token);\r\n\r\n // create the headers for the user info call with the existing access token\r\n const headers = new HttpHeaders({ Authorization: `Bearer ${this.token}`, 'Access-Control-Allow-Origin': '*' });\r\n this.httpClient.get<AccessTokenClaims>(this.userInfoEndpoint, { headers })\r\n .pipe(\r\n // map the results to the props\r\n map(res => {\r\n decoded.claims = res;\r\n this.decodeToken.next(decoded);\r\n }),\r\n // continue on error and log to console\r\n catchError(error => {\r\n console.error(`Unable to retrieve user info for: ${this.token}`, error);\r\n\r\n return of(error);\r\n }))\r\n .subscribe();\r\n });\r\n\r\n }\r\n\r\n /**\r\n * Gets the role controlled navigation configuration\r\n * @param defaultNav The default navigation\r\n * @param roles The roles of the user\r\n */\r\n public getControlledNavObject(defaultNav: Array<NavNode>, roles: Array<string>): Array<NavNode> {\r\n return this.roleNavService.createRoleControlledNavigation(defaultNav, this.rbacConfig, roles);\r\n }\r\n\r\n /**\r\n * Determines if the current token has access to the action\r\n * @param action The action to check access for\r\n */\r\n public hasActionAccess(action: string): Observable<boolean> {\r\n if (this.disableRoleActions) {\r\n return of(true);\r\n }\r\n\r\n return this.decodedToken$.pipe(map(token => {\r\n const roles = token.claims.getRole;\r\n // if no roles, no action access\r\n if (!roles || roles.length === 0) {\r\n return false;\r\n }\r\n // flatten role config into one set of actions for all the actions for the user\r\n const flattenedActions: Set<string> = new Set<string>();\r\n roles.forEach(role => {\r\n const roleConfig = this.rbacConfig.roleConfig[role];\r\n if (!roleConfig || !roleConfig.actions || !roleConfig.actions.length) {\r\n return false;\r\n }\r\n roleConfig.actions.forEach(a => flattenedActions.add(a.toLowerCase()));\r\n });\r\n\r\n return flattenedActions.has(action.toLowerCase());\r\n }));\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { NavNode } from '../../navigation/models/navigation';\r\nimport { RbacConfig } from '../models/rbac-config';\r\nimport { RoleNavService } from './role-nav.service';\r\n\r\n/** The armature role navigation service */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ArRoleNavService implements RoleNavService {\r\n\r\n /** Constructs the service */\r\n constructor() { }\r\n\r\n /**\r\n * Creates a new navigation configuration using the provided RBAC configuration\r\n * @param defaultNav The default navigation configuration\r\n * @param rbacConfig The rbac configuration\r\n * @param roles The roles\r\n */\r\n public createRoleControlledNavigation(defaultNav: Array<NavNode>, rbacConfig: RbacConfig, roles: Array<string>): Array<NavNode> {\r\n const controlledNav: Array<NavNode> = [];\r\n // flatten role config into one set of pages for all the roles for the user\r\n const flattenedPages: Set<string> = new Set<string>();\r\n let roleFound = false;\r\n roles.forEach(role => {\r\n const roleConfig = rbacConfig.roleConfig[role];\r\n if (roleConfig) {\r\n roleFound = true;\r\n // if they have at least one role where they have access to everything give access to everything\r\n if (!roleConfig.pages || roleConfig.pages.length === 0) {\r\n flattenedPages.clear();\r\n\r\n return;\r\n }\r\n roleConfig.pages.forEach(page => {\r\n flattenedPages.add(page);\r\n });\r\n }\r\n });\r\n if (flattenedPages.size === 0 && !roleFound) {\r\n console.warn(`no role matching: ${roles.join(', ')} found, no access is provided`);\r\n\r\n return controlledNav;\r\n }\r\n\r\n // if the user has no pages, give them access to all of the stuff\r\n if (flattenedPages.size === 0 && roleFound) {\r\n return defaultNav;\r\n }\r\n\r\n // loop over each level 1 node\r\n const deepCopyDefaultNav: Array<NavNode> = JSON.parse(JSON.stringify(defaultNav));\r\n deepCopyDefaultNav.forEach(n1 => {\r\n // first check which n2 are listed\r\n const foundSubNodes = [];\r\n n1.subNodes.forEach(sn => {\r\n if (this.isRouteMatch(Array.from(flattenedPages.values()), sn.route)) {\r\n foundSubNodes.push(sn);\r\n }\r\n });\r\n\r\n n1.subNodes = foundSubNodes;\r\n // if level 2 nodes found or level 1 is a route match, add the level 1 node\r\n if (foundSubNodes.length > 0 || (n1.route && this.isRouteMatch(Array.from(flattenedPages.values()), n1.route))) {\r\n controlledNav.push(n1);\r\n }\r\n });\r\n\r\n return controlledNav;\r\n }\r\n\r\n /**\r\n * Determines if the route is found in the pages array\r\n * @param pages The pages\r\n * @param route The route\r\n */\r\n private isRouteMatch(pages: Array<string>, route: string): boolean {\r\n // check wild card\r\n return pages.some(p => {\r\n if (p.indexOf('**') > -1) {\r\n const baseRoute = p.replace('/**/', '')\r\n .replace('**/', '')\r\n .replace('/**', '')\r\n .replace('**', '')\r\n .toLowerCase();\r\n\r\n if (route.toLowerCase()\r\n .indexOf(baseRoute) > -1) {\r\n return true;\r\n }\r\n }\r\n else if (route.toLowerCase() === p.toLowerCase()) {\r\n return true;\r\n }\r\n });\r\n }\r\n}\r\n","import { Directive, TemplateRef, ViewContainerRef, Input, OnInit, OnDestroy } from '@angular/core';\r\nimport { Oauth2RoleService } from '../services/oauth2-role.service';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Directive({\r\n selector: '[sofArRbacAction]'\r\n})\r\nexport class RbacActionDirective implements OnInit, OnDestroy {\r\n\r\n /** The action of the directive */\r\n @Input() public sofArRbacAction: string;\r\n\r\n /** The directive subscription */\r\n private readonly directiveSub: Subscription = new Subscription();\r\n\r\n /** True if content is rendered */\r\n private isContentRendered: boolean;\r\n\r\n /**\r\n * Constructs the component\r\n * @param templateRef The template reference\r\n * @param viewContainer The view container reference\r\n * @param oAuth2RoleService The oauth 2 role service\r\n */\r\n constructor(\r\n private readonly templateRef: TemplateRef<any>,\r\n private readonly viewContainer: ViewContainerRef,\r\n private readonly oAuth2RoleService: Oauth2RoleService\r\n ) { }\r\n\r\n /** Life cycle hook for directive initialization */\r\n public ngOnInit(): void {\r\n this.directiveSub.add(this.oAuth2RoleService.hasActionAccess(this.sofArRbacAction)\r\n .subscribe(hasAccess => {\r\n if (hasAccess) {\r\n if (!this.isContentRendered) {\r\n this.viewContainer.createEmbeddedView(this.templateRef);\r\n }\r\n this.isContentRendered = true;\r\n }\r\n else {\r\n this.viewContainer.clear();\r\n this.isContentRendered = false;\r\n }\r\n }));\r\n }\r\n\r\n /** Life cycle hook for directive destruction */\r\n public ngOnDestroy(): void {\r\n this.directiveSub.unsubscribe();\r\n }\r\n\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule, ModuleWithProviders } from '@angular/core';\r\n\r\nimport { Oauth2RoleService } from './services/oauth2-role.service';\r\nimport { ArRoleNavService } from './services/ar-role-nav.service';\r\nimport { RoleNavService } from './services/role-nav.service';\r\nimport { RbacActionDirective } from './directives/rbac-action.directive';\r\nimport { RbacInjectionTokens } from './models/constants';\r\n\r\n/** The role based access control module */\r\n@NgModule({\r\n declarations: [\r\n RbacActionDirective\r\n ],\r\n imports: [\r\n CommonModule\r\n ],\r\n providers: [\r\n { provide: RbacInjectionTokens.disableRoleActions, useValue: false },\r\n Oauth2RoleService,\r\n { provide: RoleNavService, useClass: ArRoleNavService }\r\n ],\r\n exports: [\r\n RbacActionDirective\r\n ]\r\n})\r\nexport class RbacModule {\r\n /**\r\n * True if role actions should be disabled\r\n * @param options the options for the module\r\n */\r\n public static forRoot(options: {disableRoleActions?: boolean}): ModuleWithProviders {\r\n return {\r\n ngModule: RbacModule,\r\n providers: [\r\n { provide: RbacInjectionTokens.disableRoleActions, useValue: options.disableRoleActions },\r\n Oauth2RoleService,\r\n { provide: RoleNavService, useClass: ArRoleNavService }\r\n ]\r\n };\r\n }\r\n }\r\n","/** The role access class */\r\nexport class RoleAccess {\r\n /** The pages the role has access to */\r\n public pages?: Array<string> = [];\r\n\r\n /** The actions the role has access to */\r\n public actions?: Array<string> = [];\r\n}","import { InjectionToken } from '@angular/core';\r\n\r\nexport const BASE_PATH = new InjectionToken<string>('basePath');\r\nexport const COLLECTION_FORMATS = {\r\n 'csv': ',',\r\n 'tsv': ' ',\r\n 'ssv': ' ',\r\n 'pipes': '|'\r\n}\r\n","export interface ConfigurationParameters {\r\n apiKeys?: {[ key: string ]: string};\r\n username?: string;\r\n password?: string;\r\n accessToken?: string | (() => string);\r\n basePath?: string;\r\n withCredentials?: boolean;\r\n}\r\n\r\nexport class Configuration {\r\n apiKeys?: {[ key: string ]: string};\r\n username?: string;\r\n password?: string;\r\n accessToken?: string | (() => string);\r\n basePath?: string;\r\n withCredentials?: boolean;\r\n\r\n constructor(configurationParameters: ConfigurationParameters = {}) {\r\n this.apiKeys = configurationParameters.apiKeys;\r\n this.username = configurationParameters.username;\r\n this.password = configurationParameters.password;\r\n this.accessToken = configurationParameters.accessToken;\r\n this.basePath = configurationParameters.basePath;\r\n this.withCredentials = configurationParameters.withCredentials;\r\n }\r\n\r\n /**\r\n * Select the correct content-type to use for a request.\r\n * Uses {@link Configuration#isJsonMime} to determine the correct content-type.\r\n * If no content type is found return the first found type if the contentTypes is not empty\r\n * @param contentTypes - the array of content types that are available for selection\r\n * @returns the selected content-type or <code>undefined</code> if no selection could be made.\r\n */\r\n public selectHeaderContentType (contentTypes: string[]): string | undefined {\r\n if (contentTypes.length == 0) {\r\n return undefined;\r\n }\r\n\r\n let type = contentTypes.find(x => this.isJsonMime(x));\r\n if (type === undefined) {\r\n return contentTypes[0];\r\n }\r\n return type;\r\n }\r\n\r\n /**\r\n * Select the correct accept content-type to use for a request.\r\n * Uses {@link Configuration#isJsonMime} to determine the correct accept content-type.\r\n * If no content type is found return the first found type if the contentTypes is not empty\r\n * @param accepts - the array of content types that are available for selection.\r\n * @returns the selected content-type or <code>undefined</code> if no selection could be made.\r\n */\r\n public selectHeaderAccept(accepts: string[]): string | undefined {\r\n if (accepts.length == 0) {\r\n return undefined;\r\n }\r\n\r\n let type = accepts.find(x => this.isJsonMime(x));\r\n if (type === undefined) {\r\n return accepts[0];\r\n }\r\n return type;\r\n }\r\n\r\n /**\r\n * Check if the given MIME is a JSON MIME.\r\n * JSON MIME examples:\r\n * application/json\r\n * application/json; charset=UTF8\r\n * APPLICATION/JSON\r\n * application/vnd.company+json\r\n * @param mime - MIME (Multipurpose Internet Mail Extensions)\r\n * @return True if the given MIME is JSON, false otherwise.\r\n */\r\n public isJsonMime(mime: string): boolean {\r\n const jsonMime: RegExp = new RegExp('^(application\\/json|[^;/ \\t]+\\/[^;/ \\t]+[+]json)[ \\t]*(;.*)?$', 'i');\r\n return mime != null && (jsonMime.test(mime) || mime.toLowerCase() === 'application/json-patch+json');\r\n }\r\n}\r\n","/**\r\n * Sample API\r\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\r\n *\r\n * OpenAPI spec version: 1\r\n * \r\n *\r\n * NOTE: This class is auto generated by the swagger code generator program.\r\n * https://github.com/swagger-api/swagger-codegen.git\r\n * Do not edit the class manually.\r\n *//* tslint:disable:no-unused-variable member-ordering */\r\n\r\nimport { Inject, Injectable, Optional } from '@angular/core';\r\nimport { HttpClient, HttpHeaders, HttpParams,\r\n HttpResponse, HttpEvent } from '@angular/common/http';\r\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\r\n\r\nimport { Observable } from 'rxjs';\r\n\r\nimport { CreateCacheEntryRequestModel } from '../model/createCacheEntryRequestModel';\r\nimport { RetrieveCacheEntryResponseModel } from '../model/retrieveCacheEntryResponseModel';\r\nimport { UpdateCacheEntryRequestModel } from '../model/updateCacheEntryRequestModel';\r\n\r\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\r\nimport { Configuration } from '../configuration';\r\n\r\n\r\n@Injectable()\r\nexport class CacheService {\r\n\r\n protected basePath = '/';\r\n public defaultHeaders = new HttpHeaders();\r\n public configuration = new Configuration();\r\n\r\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\r\n if (basePath) {\r\n this.basePath = basePath;\r\n }\r\n if (configuration) {\r\n this.configuration = configuration;\r\n this.basePath = basePath || configuration.basePath || this.basePath;\r\n }\r\n }\r\n\r\n /**\r\n * @param consumes string[] mime-types\r\n * @return true: consumes contains 'multipart/form-data', false: otherwise\r\n */\r\n private canConsumeForm(consumes: string[]): boolean {\r\n const form = 'multipart/form-data';\r\n for (const consume of consumes) {\r\n if (form === consume) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n\r\n /**\r\n * Deletes the specified key.\r\n * \r\n * @param key The key.\r\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\r\n * @param reportProgress flag to report request and response progress.\r\n */\r\n public _delete(key: string, observe?: 'body', reportProgress?: boolean): Observable<any>;\r\n public _delete(key: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<any>>;\r\n public _delete(key: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<any>>;\r\n public _delete(key: string, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {\r\n\r\n if (key === null || key === undefined) {\r\n throw new Error('Required parameter key was null or undefined when calling _delete.');\r\n }\r\n\r\n let headers = this.defaultHeaders;\r\n\r\n // authentication (oauth2) required\r\n if (this.configuration.accessToken) {\r\n const accessToken = typeof this.configuration.accessToken === 'function'\r\n ? this.configuration.accessToken()\r\n : this.configuration.accessToken;\r\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\r\n }\r\n\r\n // to determine the Accept header\r\n let httpHeaderAccepts: string[] = [\r\n ];\r\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\r\n if (httpHeaderAcceptSelected != undefined) {\r\n headers = headers.set('Accept', httpHeaderAcceptSelected);\r\n }\r\n\r\n // to determine the Content-Type header\r\n const consumes: string[] = [\r\n ];\r\n\r\n return this.httpClient.request<any>('delete',`${this.basePath}/v1/Cache/${encodeURIComponent(String(key))}`,\r\n {\r\n withCredentials: this.configuration.withCredentials,\r\n headers: headers,\r\n observe: observe,\r\n reportProgress: reportProgress\r\n }\r\n );\r\n }\r\n\r\n /**\r\n * Creates the specified request.\r\n * \r\n * @param body The request.\r\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\r\n * @param reportProgress flag to report request and response progress.\r\n */\r\n public create(body?: CreateCacheEntryRequestModel, observe?: 'body', reportProgress?: boolean): Observable<any>;\r\n public create(body?: CreateCacheEntryRequestModel, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<any>>;\r\n public create(body?: CreateCacheEntryRequestModel, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<any>>;\r\n public create(body?: CreateCacheEntryRequestModel, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {\r\n\r\n\r\n let headers = this.defaultHeaders;\r\n\r\n // authentication (oauth2) required\r\n if (this.configuration.accessToken) {\r\n const accessToken = typeof this.configuration.accessToken === 'function'\r\n ? this.configuration.accessToken()\r\n : this.configuration.accessToken;\r\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\r\n }\r\n\r\n // to determine the Accept header\r\n let httpHeaderAccepts: string[] = [\r\n ];\r\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\r\n if (httpHeaderAcceptSelected != undefined) {\r\n headers = headers.set('Accept', httpHeaderAcceptSelected);\r\n }\r\n\r\n // to determine the Content-Type header\r\n const consumes: string[] = [\r\n 'application/json',\r\n 'text/json',\r\n 'application/_*+json'\r\n ];\r\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\r\n if (httpContentTypeSelected != undefined) {\r\n headers = headers.set('Content-Type', httpContentTypeSelected);\r\n }\r\n\r\n return this.httpClient.request<any>('post',`${this.basePath}/v1/Cache`,\r\n {\r\n body: body,\r\n withCredentials: this.configuration.withCredentials,\r\n headers: headers,\r\n observe: observe,\r\n reportProgress: reportProgress\r\n }\r\n );\r\n }\r\n\r\n /**\r\n * Refreshes the cache entry\r\n * \r\n * @param key \r\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\r\n * @param reportProgress flag to report request and response progress.\r\n */\r\n public refresh(key: string, observe?: 'body', reportProgress?: boolean): Observable<any>;\r\n public refresh(key: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<any>>;\r\n public refresh(key: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<any>>;\r\n public refresh(key: string, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {\r\n\r\n if (key === null || key === undefined) {\r\n throw new Error('Required parameter key was null or undefined when calling refresh.');\r\n }\r\n\r\n let headers = this.defaultHeaders;\r\n\r\n // authentication (oauth2) required\r\n if (this.configuration.accessToken) {\r\n const accessToken = typeof this.configuration.accessToken === 'function'\r\n ? this.configuration.accessToken()\r\n : this.configuration.accessToken;\r\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\r\n }\r\n\r\n // to determine the Accept header\r\n let httpHeaderAccepts: string[] = [\r\n ];\r\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\r\n if (httpHeaderAcceptSelected != undefined) {\r\n headers = headers.set('Accept', httpHeaderAcceptSelected);\r\n }\r\n\r\n // to determine the Content-Type header\r\n const consumes: string[] = [\r\n ];\r\n\r\n return this.httpClient.request<any>('get',`${this.basePath}/v1/Cache/refresh/${encodeURIComponent(String(key))}`,\r\n {\r\n withCredentials: this.configuration.withCredentials,\r\n headers: headers,\r\n observe: observe,\r\n reportProgress: reportProgress\r\n }\r\n );\r\n }\r\n\r\n /**\r\n * Retrieves this instance.\r\n * \r\n * @param key \r\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\r\n * @param reportProgress flag to report request and response progress.\r\n */\r\n public retrieve(key: string, observe?: 'body', reportProgress?: boolean): Observable<RetrieveCacheEntryResponseModel>;\r\n public retrieve(key: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<RetrieveCacheEntryResponseModel>>;\r\n public retrieve(key: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<RetrieveCacheEntryResponseModel>>;\r\n public retrieve(key: string, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {\r\n\r\n if (key === null || key === undefined) {\r\n throw new Error('Required parameter key was null or undefined when calling retrieve.');\r\n }\r\n\r\n let headers = this.defaultHeaders;\r\n\r\n // authentication (oauth2) required\r\n if (this.configuration.accessToken) {\r\n const accessToken = typeof this.configuration.accessToken === 'function'\r\n ? this.configuration.accessToken()\r\n : this.configuration.accessToken;\r\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\r\n }\r\n\r\n // to determine the Accept header\r\n let httpHeaderAccepts: string[] = [\r\n 'text/plain',\r\n 'application/json',\r\n 'text/json'\r\n ];\r\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\r\n if (httpHeaderAcceptSelected != undefined) {\r\n headers = headers.set('Accept', httpHeaderAcceptSelected);\r\n }\r\n\r\n // to determine the Content-Type header\r\n const consumes: string[] = [\r\n ];\r\n\r\n return this.httpClient.request<RetrieveCacheEntryResponseModel>('get',`${this.basePath}/v1/Cache/${encodeURIComponent(String(key))}`,\r\n {\r\n withCredentials: this.configuration.withCredentials,\r\n headers: headers,\r\n observe: observe,\r\n reportProgress: reportProgress\r\n }\r\n );\r\n }\r\n\r\n /**\r\n * Updates the specified key.\r\n * \r\n * @param key The key.\r\n * @param body The request.\r\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\r\n * @param reportProgress flag to report request and response progress.\r\n */\r\n public update(key: string, body?: UpdateCacheEntryRequestModel, observe?: 'body', reportProgress?: boolean): Observable<any>;\r\n public update(key: string, body?: UpdateCacheEntryRequestModel, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<any>>;\r\n public update(key: string, body?: UpdateCacheEntryRequestModel, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<any>>;\r\n public update(key: string, body?: UpdateCacheEntryRequestModel, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {\r\n\r\n if (key === null || key === undefined) {\r\n throw new Error('Required parameter key was null or undefined when calling update.');\r\n }\r\n\r\n\r\n let headers = this.defaultHeaders;\r\n\r\n // authentication (oauth2) required\r\n if (this.configuration.accessToken) {\r\n const accessToken = typeof this.configuration.accessToken === 'function'\r\n ? this.configuration.accessToken()\r\n : this.configuration.accessToken;\r\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\r\n }\r\n\r\n // to determine the Accept header\r\n let httpHeaderAccepts: string[] = [\r\n ];\r\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\r\n if (httpHeaderAcceptSelected != undefined) {\r\n headers = headers.set('Accept', httpHeaderAcceptSelected);\r\n }\r\n\r\n // to determine the Content-Type header\r\n const consumes: string[] = [\r\n 'application/json',\r\n 'text/json',\r\n 'application/_*+json'\r\n ];\r\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\r\n if (httpContentTypeSelected != undefined) {\r\n headers = headers.set('Content-Type', httpContentTypeSelected);\r\n }\r\n\r\n return this.httpClient.request<any>('put',`${this.basePath}/v1/Cache/${encodeURIComponent(String(key))}`,\r\n {\r\n body: body,\r\n withCredentials: this.configuration.withCredentials,\r\n headers: headers,\r\n observe: observe,\r\n reportProgress: reportProgress\r\n }\r\n );\r\n }\r\n\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\n\r\nexport class DistributedCacheInjectionTokens {\r\n /** The distributed cache base path */\r\n public static distributedCacheBasePath: InjectionToken<string> = new InjectionToken<string>('DistributedCacheBasePath');\r\n}","export * from './cache.service';\r\nimport { CacheService } from './cache.service';\r\nexport const APIS = [CacheService];\r\n","import { HttpEvent, HttpResponse } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { SessionService } from '../../core/services/session.service';\r\nimport { CacheService } from '../client-generated/api/api';\r\nimport { CreateCacheEntryRequestModel } from '../client-generated/model/createCacheEntryRequestModel';\r\nimport { RetrieveCacheEntryResponseModel } from '../client-generated/model/retrieveCacheEntryResponseModel';\r\nimport { UpdateCacheEntryRequestModel } from '../client-generated/model/updateCacheEntryRequestModel';\r\n\r\n/** Server side cache service */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ServerCacheService {\r\n\r\n /**\r\n * Constructs the service\r\n * @param sessionService The session service\r\n */\r\n constructor(\r\n private readonly sessionService: SessionService,\r\n private readonly cacheService: CacheService\r\n ) { }\r\n\r\n /**\r\n * Creates the server side cache entry\r\n * @param body The body\r\n * @param observe The observer\r\n * @param reportProgress Report progress flag\r\n */\r\n public create(body?: CreateCacheEntryRequestModel, observe?: 'body', reportProgress?: boolean): Observable<any>;\r\n public create(body?: CreateCacheEntryRequestModel, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<any>>;\r\n public create(body?: CreateCacheEntryRequestModel, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<any>>;\r\n public create(body?: CreateCacheEntryRequestModel, observe: any = 'body', reportProgress: boolean = false): Observable<any> {\r\n body.key = this.formatKey(body.key);\r\n\r\n return this.cacheService.create(body, observe, reportProgress);\r\n }\r\n\r\n /**\r\n * Retrieves the entry from the server cache\r\n * @param key The key to retrieve\r\n * @param observe The observer\r\n * @param reportProgress Report progress flag\r\n */\r\n public retrieve(key: string, observe?: 'body', reportProgress?: boolean): Observable<RetrieveCacheEntryResponseModel>;\r\n public retrieve(key: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<RetrieveCacheEntryResponseModel>>;\r\n public retrieve(key: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<RetrieveCacheEntryResponseModel>>;\r\n public retrieve(key: string, observe: any = 'body', reportProgress: boolean = false): Observable<any> {\r\n return this.cacheService.retrieve(this.formatKey(key), observe, reportProgress);\r\n }\r\n\r\n\r\n /**\r\n * Updates the server side cache entry\r\n * @param key The key\r\n * @param body The body\r\n * @param observe The observer\r\n * @param reportProgress Report progress flag\r\n */\r\n public update(key: string, body?: UpdateCacheEntryRequestModel, observe?: 'body', reportProgress?: boolean): Observable<any>;\r\n public update(key: string, body?: UpdateCacheEntryRequestModel, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<any>>;\r\n public update(key: string, body?: UpdateCacheEntryRequestModel, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<any>>;\r\n public update(key: string, body?: UpdateCacheEntryRequestModel, observe: any = 'body', reportProgress: boolean = false): Observable<any> {\r\n return this.cacheService.update(this.formatKey(key), body, observe, reportProgress);\r\n }\r\n\r\n /**\r\n * Deletes the specified key.\r\n * @param key The key.\r\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\r\n * @param reportProgress flag to report request and response progress.\r\n */\r\n public delete(key: string, observe?: 'body', reportProgress?: boolean): Observable<any>;\r\n public delete(key: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<any>>;\r\n public delete(key: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<any>>;\r\n public delete(key: string, observe: any = 'body', reportProgress: boolean = false): Observable<any> {\r\n return this.cacheService._delete(this.formatKey(key), observe, reportProgress);\r\n }\r\n\r\n /**\r\n * Refreshes the cache entry\r\n * @param key The key\r\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\r\n * @param reportProgress flag to report request and response progress.\r\n */\r\n public refresh(key: string, observe?: 'body', reportProgress?: boolean): Observable<any>;\r\n public refresh(key: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<any>>;\r\n public refresh(key: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<any>>;\r\n public refresh(key: string, observe: any = 'body', reportProgress: boolean = false): Observable<any> {\r\n return this.cacheService.refresh(this.formatKey(key), observe, reportProgress);\r\n }\r\n\r\n /**\r\n * Formats the provided key\r\n * @param key The key\r\n */\r\n private formatKey(key: string): string {\r\n return `${this.sessionService.sessionId}-${key}`;\r\n }\r\n\r\n}\r\n","import { NgModule, InjectionToken, ModuleWithProviders } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { CacheService } from './client-generated/api/cache.service';\r\nimport { BASE_PATH } from './client-generated/variables';\r\nimport { DistributedCacheInjectionTokens } from './models/constants';\r\nimport { ServerCacheService } from './services/server-cache.service';\r\n\r\n/** The distributed cache module */\r\n@NgModule({\r\n declarations: [],\r\n imports: [\r\n CommonModule\r\n ],\r\n providers: [\r\n {\r\n provide: BASE_PATH,\r\n useExisting: DistributedCacheInjectionTokens.distributedCacheBasePath\r\n },\r\n CacheService,\r\n ServerCacheService\r\n ]\r\n})\r\nexport class DistributedCacheModule {}\r\n","/**\r\n * Sample API\r\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\r\n *\r\n * OpenAPI spec version: 1\r\n * \r\n *\r\n * NOTE: This class is auto generated by the swagger code generator program.\r\n * https://github.com/swagger-api/swagger-codegen.git\r\n * Do not edit the class manually.\r\n */\r\n\r\n/**\r\n * The cache expiration types\r\n */\r\nexport type CacheExpirationType = 'Sliding' | 'Absolute';\r\n\r\nexport const CacheExpirationType = {\r\n Sliding: 'Sliding' as CacheExpirationType,\r\n Absolute: 'Absolute' as CacheExpirationType\r\n};","/**\r\n * Sample API\r\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\r\n *\r\n * OpenAPI spec version: 1\r\n * \r\n *\r\n * NOTE: This class is auto generated by the swagger code generator program.\r\n * https://github.com/swagger-api/swagger-codegen.git\r\n * Do not edit the class manually.\r\n */\r\nimport { CacheExpirationType } from './cacheExpirationType';\r\n\r\n/**\r\n * The Create cache entery re\r\n */\r\nexport interface CreateCacheEntryRequestModel { \r\n /**\r\n * Gets or sets the key.\r\n */\r\n key: string;\r\n /**\r\n * Gets or sets the value.\r\n */\r\n value: any;\r\n /**\r\n * Gets or sets the type of the expiration.\r\n */\r\n expirationType?: CacheExpirationType;\r\n /**\r\n * Gets or sets the expiration time minutes.\r\n */\r\n expirationTimeMinutes?: number;\r\n}","/**\r\n * Sample API\r\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\r\n *\r\n * OpenAPI spec version: 1\r\n * \r\n *\r\n * NOTE: This class is auto generated by the swagger code generator program.\r\n * https://github.com/swagger-api/swagger-codegen.git\r\n * Do not edit the class manually.\r\n */\r\n\r\n/**\r\n * The cache entry retrieve response model\r\n */\r\nexport interface RetrieveCacheEntryResponseModel { \r\n /**\r\n * Gets or sets the value.\r\n */\r\n value?: any;\r\n}","/**\r\n * Sample API\r\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\r\n *\r\n * OpenAPI spec version: 1\r\n * \r\n *\r\n * NOTE: This class is auto generated by the swagger code generator program.\r\n * https://github.com/swagger-api/swagger-codegen.git\r\n * Do not edit the class manually.\r\n */\r\n\r\n/**\r\n * Update Cache entry request model\r\n */\r\nexport interface UpdateCacheEntryRequestModel { \r\n /**\r\n * Gets or sets the value.\r\n */\r\n value: any;\r\n}","import { Person } from '../../oauth/models/generated/person';\r\nimport { Address } from '../../forms/models/address';\r\n\r\n/** The policy person */\r\nexport class PolicyPerson implements Person {\r\n /** Implemented props */\r\n public exchangeId: string;\r\n public groupPolicyNumber: string;\r\n public dob: Date;\r\n public gender: string;\r\n public firstName: string;\r\n public lastName: string;\r\n public relationship: string;\r\n\r\n /** Additional Props */\r\n public homeAddress: Address = {};\r\n public mailingAddress: Address = {};\r\n public email: string;\r\n public phone: string;\r\n public phoneType: string;\r\n}\r\n","import { Inject, Injectable, OnDestroy } from '@angular/core';\r\nimport { NavigationEnd, NavigationError, NavigationStart, Router } from '@angular/router';\r\nimport { ApmService } from '@elastic/apm-rum-angular';\r\nimport { Subscription } from 'rxjs';\r\nimport { SessionService } from '../../core/services/session.service';\r\nimport { RumConfig } from '../models/rum-config';\r\n\r\n/** The rum service */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class RumService implements OnDestroy {\r\n\r\n /** The service subscription */\r\n private readonly serviceSub: Subscription = new Subscription();\r\n\r\n /**\r\n * Constructs the service\r\n * @param router The router\r\n * @param session The session\r\n * @param apmService The apm service\r\n */\r\n constructor(\r\n private readonly router: Router,\r\n private readonly session: SessionService,\r\n @Inject(ApmService) private readonly apmService: ApmService\r\n ) { }\r\n\r\n /** Life cycle hook for service destruction */\r\n public ngOnDestroy(): void {\r\n this.serviceSub.unsubscribe();\r\n }\r\n\r\n /**\r\n * Initializes rum\r\n * @param config The config\r\n * @param user The user info\r\n */\r\n public initializeRum(config: RumConfig, user?: { userName: string, userId: string }): void {\r\n const apm = this.apmService.init({\r\n serviceName: config.serviceName,\r\n serverUrl: config.serverUrl,\r\n });\r\n apm.setUserContext({\r\n username: !!user ? user.userName : this.session.sessionId,\r\n id: !!user ? user.userId : this.session.sessionId\r\n });\r\n this.apmService.apm = apm;\r\n this.initRouteTracking();\r\n }\r\n\r\n /** initializes route tracking */\r\n private initRouteTracking(): void {\r\n let transaction;\r\n let span;\r\n this.serviceSub.add(\r\n this.router.events.subscribe(event => {\r\n if (event instanceof NavigationStart) {\r\n const name = event.url;\r\n transaction = this.apmService.apm.startTransaction(name, 'route-change', {\r\n managed: true,\r\n canReuse: false\r\n });\r\n span = transaction.startSpan(name, 'router');\r\n }\r\n\r\n else if (event instanceof NavigationError) {\r\n span.end();\r\n transaction && transaction.end();\r\n }\r\n\r\n else if (event instanceof NavigationEnd) {\r\n if (!transaction) {\r\n return;\r\n }\r\n const route = this.router.routerState.root.firstChild;\r\n\r\n if (route) {\r\n let child = route;\r\n let path = `/ ${child.routeConfig.path}`;\r\n\r\n while (child) {\r\n child = child.firstChild;\r\n if (child && child.routeConfig) {\r\n\r\n const currentPath = child.routeConfig.path;\r\n if (currentPath) {\r\n path = `${path}/${currentPath}`;\r\n }\r\n\r\n }\r\n }\r\n transaction.name = path;\r\n }\r\n span.end();\r\n transaction.end();\r\n }\r\n })\r\n );\r\n }\r\n\r\n /**\r\n * Gets a custom event\r\n * @param data The data\r\n * @param type The even type\r\n */\r\n public getCustomEvent(data: any, type: string): any {\r\n const transaction = this.apmService.apm.startTransaction(data, type, {\r\n managed: true,\r\n canReuse: false\r\n });\r\n const span = transaction.startSpan(data, type);\r\n\r\n return { transaction, span };\r\n }\r\n\r\n /**\r\n * Ends the custom event\r\n * @param event The event\r\n */\r\n public endCustomEvent(event: { transaction: any, span: any }): void {\r\n event.span.end();\r\n event.transaction.end();\r\n }\r\n}\r\n","/** The armature error class */\r\nexport class ArmError {\r\n /** The message */\r\n public message: string;\r\n /** The error name */\r\n public name: string;\r\n /** The stack trace */\r\n public stack: string;\r\n /** The current application route */\r\n public route: string;\r\n /** The user session Id */\r\n public userId: string;\r\n /** The secondary errors */\r\n public secondaryErrors: Array<ArmError> = [];\r\n /** The original error */\r\n public originalError: Error;\r\n /** The original secondary error */\r\n public originalSecondaryErrors: Array<Error> = [];\r\n\r\n /**\r\n * Constructs the component\r\n * @param error The error\r\n * @param route The route\r\n * @param userId The user ID\r\n * @param populateOriginalError True if keeping the original error\r\n */\r\n constructor(err: Error, route?: string, userId?: string, populateOriginalError: boolean = true) {\r\n let errStr = err.toString();\r\n if (errStr === '[object Object]') {\r\n errStr = JSON.stringify(err);\r\n }\r\n\r\n this.message = errStr;\r\n this.stack = err.stack;\r\n this.route = route;\r\n this.userId = userId;\r\n this.name = err.name;\r\n if (populateOriginalError) {\r\n this.originalError = err;\r\n }\r\n }\r\n}","import { Injectable, Injector } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { SessionService } from '../../core/services/session.service';\r\nimport { ArmError } from '../models/arm-error';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SharedErrorService {\r\n\r\n /** The session service */\r\n private readonly sessionService: SessionService;\r\n\r\n /** The error set */\r\n private readonly errorSet: Set<string> = new Set<string>();\r\n\r\n /**\r\n * constructs the service\r\n * @param injector the injector\r\n */\r\n constructor(\r\n private readonly injector: Injector,\r\n ) {\r\n this.sessionService = this.injector.get(SessionService);\r\n }\r\n\r\n /**\r\n * Determines if the error has been encountered before\r\n * @param err The error\r\n */\r\n public isNewError(err: Error): boolean {\r\n const error = new ArmError(err);\r\n if (this.errorSet.has(error.message)) {\r\n return false;\r\n }\r\n this.errorSet.add(error.message);\r\n\r\n return true;\r\n }\r\n\r\n /**\r\n * Formats the error\r\n * @param error The error\r\n */\r\n public formatError(error: Error, populateOriginalError: boolean = true): ArmError {\r\n console.warn(error);\r\n return new ArmError(error, window.location.pathname, this.sessionService.sessionId, populateOriginalError);\r\n }\r\n}\r\n","import { ErrorHandler, Inject, Injector, NgModule } from '@angular/core';\r\nimport { ApmService } from '@elastic/apm-rum-angular';\r\nimport { RumService } from './services/rum.service';\r\nimport { SharedErrorService } from './services/shared-error.service';\r\nimport { RouterModule } from '@angular/router';\r\n\r\n/** The real user monitoring */\r\n@NgModule({\r\n declarations: [],\r\n imports: [\r\n RouterModule\r\n ],\r\n providers: [\r\n {\r\n provide: ApmService,\r\n useClass: ApmService\r\n },\r\n RumService,\r\n SharedErrorService\r\n ]\r\n})\r\nexport class RumModule {\r\n /**\r\n * Constructs the module\r\n * @param injector The injector\r\n */\r\n constructor(@Inject(Injector) injector: Injector) {\r\n // Hack: The generic error handler causes problems so we use the service directly\r\n const handler = injector.get(ErrorHandler);\r\n const original = console.error;\r\n console.error = (error) => {\r\n let e = error;\r\n if (typeof (error) === 'string') {\r\n e = new Error(error);\r\n }\r\n handler.handleError(error);\r\n original(error);\r\n };\r\n }\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\n\r\n/** The rum configurations */\r\nexport class RumConfig {\r\n /** The service Name */\r\n public serviceName: string;\r\n\r\n /** The server url */\r\n public serverUrl: string;\r\n\r\n /** the secondary error window in Milliseconds */\r\n public secondaryErrorWindowMs: number;\r\n}\r\n","import { Injectable, Inject, ErrorHandler, Injector } from '@angular/core';\r\nimport { ApmService } from '@elastic/apm-rum-angular';\r\nimport { SharedErrorService } from './shared-error.service';\r\nimport { ArmError } from '../models/arm-error';\r\nimport { RumConfig } from '../models/rum-config';\r\n\r\n/** Handles errors and submits them to RUM */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class RumErrorHandlerService implements ErrorHandler {\r\n\r\n /** The rum config */\r\n private readonly rumConfig: RumConfig;\r\n\r\n /** the secondary error window in ms */\r\n private readonly secondaryErrorWindowMs: number = 500;\r\n\r\n /** The current error */\r\n private currentError: ArmError;\r\n\r\n /**\r\n * Constructs the Service\r\n * @param injector The injector\r\n */\r\n constructor(\r\n private readonly injector: Injector,\r\n ) {\r\n try {\r\n this.rumConfig = this.injector.get(RumConfig);\r\n }\r\n catch (e) {\r\n console.warn('No rum config found for RumErrorHandlerService using defaults');\r\n }\r\n if (this.rumConfig && this.rumConfig.secondaryErrorWindowMs) {\r\n this.secondaryErrorWindowMs = this.rumConfig.secondaryErrorWindowMs;\r\n }\r\n }\r\n\r\n /**\r\n * handles the error\r\n * @param error The error\r\n */\r\n public handleError(error: any): void {\r\n const apmService = this.injector.get<any>(ApmService);\r\n const sharedErrorService = this.injector.get<SharedErrorService>(SharedErrorService);\r\n let e = error;\r\n if (typeof (error) === 'string') {\r\n e = new Error(e);\r\n }\r\n const err = e as Error;\r\n if (!sharedErrorService.isNewError(err)) {\r\n return;\r\n }\r\n const errObj = sharedErrorService.formatError(err);\r\n err.message = `${err.message} | ${errObj.route}`;\r\n errObj.originalError = err;\r\n\r\n // HACK: For some reason calling capture error here makes the set time out code work\r\n apmService.apm.captureError(err);\r\n if (!this.currentError) {\r\n this.currentError = errObj;\r\n setTimeout(() => {\r\n apmService.apm.captureError(this.currentError.originalError);\r\n this.currentError.originalSecondaryErrors.forEach((item, index) => {\r\n item.message = `${index} ${item.message}`;\r\n apmService.apm.captureError(item);\r\n });\r\n this.currentError = undefined;\r\n }, this.secondaryErrorWindowMs);\r\n }\r\n else {\r\n errObj.message = `Secondary: ${errObj.message}`;\r\n try {\r\n this.currentError.secondaryErrors.push(errObj);\r\n this.currentError.originalSecondaryErrors.push(err);\r\n }\r\n catch (e) {\r\n console.error('Race condition hit where current error was cleared as a secondary error was thrown, re-throwing error', e);\r\n }\r\n }\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { ErrorHandler, Injectable, Injector } from '@angular/core';\r\nimport { of } from 'rxjs';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { SessionService } from '../../core/services/session.service';\r\nimport { RumConfig } from '../models/rum-config';\r\nimport { SharedErrorService } from './shared-error.service';\r\nimport { ArmError } from '../models/arm-error';\r\n\r\n/** The softheon error handler service */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SoftheonErrorHandlerService implements ErrorHandler {\r\n\r\n /** The session Service */\r\n private readonly sessionService: SessionService;\r\n\r\n /** The shared error service */\r\n private readonly sharedErrorService: SharedErrorService;\r\n\r\n /** The secondary error window in ms */\r\n private readonly secondaryErrorWindowMs: number = 500;\r\n\r\n /** The current error */\r\n private currentError: ArmError;\r\n\r\n /**\r\n * Constructs the service\r\n * @param rumConfig The rum config\r\n * @param httpClient The http client\r\n * @param injector The injector\r\n */\r\n constructor(\r\n public rumConfig: RumConfig,\r\n private readonly httpClient: HttpClient,\r\n private readonly injector: Injector\r\n ) {\r\n this.sessionService = this.injector.get(SessionService);\r\n this.sharedErrorService = this.injector.get<SharedErrorService>(SharedErrorService);\r\n if (this.rumConfig && this.rumConfig.secondaryErrorWindowMs) {\r\n this.secondaryErrorWindowMs = this.rumConfig.secondaryErrorWindowMs;\r\n }\r\n }\r\n\r\n /**\r\n * Handles the error\r\n * @param error The error\r\n */\r\n public handleError(error: any): void {\r\n let e = error;\r\n if (typeof (error) === 'string') {\r\n e = new Error(e);\r\n }\r\n const err = e as Error;\r\n const appName = `${this.rumConfig.serviceName}`;\r\n\r\n if (!this.sharedErrorService.isNewError(err)) {\r\n return;\r\n }\r\n const errObj = this.sharedErrorService.formatError(err, false);\r\n if (!this.currentError) {\r\n this.currentError = errObj;\r\n setTimeout(() => {\r\n const errStr = JSON.stringify(this.currentError);\r\n this.httpClient.post(this.rumConfig.serverUrl, { error: errStr, applicationName: appName, logLevel: \"Warn\" })\r\n .pipe(\r\n catchError(\r\n error => {\r\n console.warn(error);\r\n\r\n return of(error);\r\n }\r\n )\r\n )\r\n .subscribe(() => {\r\n this.currentError = undefined;\r\n });\r\n }, this.secondaryErrorWindowMs);\r\n }\r\n else {\r\n try {\r\n this.currentError.secondaryErrors.push(errObj);\r\n }\r\n catch (e) {\r\n console.error('Race condition hit where current error was cleared as a secondary error was thrown, re-throwing error', e);\r\n }\r\n }\r\n }\r\n}\r\n","import { County } from './county';\r\n\r\n/**\r\n * Address model\r\n */\r\nexport interface Address {\r\n\r\n /** Street 1 */\r\n street1?: string;\r\n\r\n /** Street 2 */\r\n street2?: string;\r\n\r\n /** The city */\r\n city?: string;\r\n\r\n /** County */\r\n county?: County;\r\n}\r\n","/**\r\n * County model\r\n */\r\nexport interface County {\r\n\r\n /** ZIP Code */\r\n zipCode?: string;\r\n\r\n /** FIPS Code */\r\n fipsCode?: string;\r\n\r\n /** State county is located in */\r\n state?: string;\r\n\r\n /** Name of the county */\r\n name?: string;\r\n}\r\n","/** The Error Common Configurations */\r\nexport class ErrorCommonConfig {\r\n /** True if error image should be displayed */\r\n public showErrorImage: boolean;\r\n /** The image url */\r\n public errorImageUrl: string;\r\n /** The header one text */\r\n public headerOneText: string;\r\n /** The header one classes */\r\n public headerOneClass: string;\r\n /** The header two text */\r\n public headerTwoText: string;\r\n /** The header two classes */\r\n public headerTwoClass: string;\r\n /** The info text */\r\n public infoText: string;\r\n /** The info text classes */\r\n public infoTextClass: string;\r\n\r\n /** constructs the class */\r\n constructor() {\r\n this.errorImageUrl = 'https://softheoncdnstorage.blob.core.windows.net/images/common/error-cat.svg';\r\n }\r\n}","import { Component, Input, OnInit } from '@angular/core';\r\nimport { ErrorCommonConfig } from '../../models/error-common-config';\r\n\r\n/** The Common Error component */\r\n@Component({\r\n selector: 'sof-ar-error-common',\r\n templateUrl: './error-common.component.html',\r\n styleUrls: ['./error-common.component.css']\r\n})\r\nexport class ErrorCommonComponent implements OnInit {\r\n\r\n /** The config input */\r\n @Input() public config: ErrorCommonConfig;\r\n\r\n /** Constructs the component */\r\n constructor() {}\r\n\r\n /** Life cycle hook for component initialization */\r\n public ngOnInit(): void {\r\n if (!this.config) {\r\n throw new Error('sof-ar-error-common: [config] input is required');\r\n }\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FlexLayoutModule } from '@angular/flex-layout';\r\nimport { ErrorCommonComponent } from './components/error-common/error-common.component';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\n\r\n/** The error module */\r\n@NgModule({\r\n declarations: [ErrorCommonComponent],\r\n imports: [\r\n CommonModule,\r\n FlexLayoutModule,\r\n TranslateModule,\r\n ],\r\n exports: [\r\n ErrorCommonComponent\r\n ]\r\n})\r\nexport class ErrorModule { }\r\n","\r\n/** The FAQ Config Class */\r\nexport class FAQConfig {\r\n /** The expand icon class */\r\n public expandIconClass: string;\r\n\r\n /** The minimize icon class */\r\n public minimizeIconClass: string;\r\n\r\n /** The expand icon text */\r\n public expandIconText: string;\r\n\r\n /** The minimize icon text */\r\n public minimizeIconText: string;\r\n\r\n /** The icon hex color */\r\n public iconHexColor: string;\r\n}\r\n","import { Component, OnInit, Input } from '@angular/core';\r\n\r\nimport { FAQ } from '../../models/faq';\r\nimport { FAQConfig } from '../../models/faq-config';\r\n\r\n/** FAQ Component */\r\n@Component({\r\n selector: 'sof-ar-faq',\r\n templateUrl: './faq.component.html',\r\n styleUrls: ['./faq.component.scss']\r\n})\r\nexport class FaqComponent implements OnInit {\r\n\r\n /** The FAQ INput Config */\r\n @Input() faqConfig: FAQConfig;\r\n\r\n /** The array of all FAQs */\r\n @Input() public allFaqs: Array<FAQ> = [];\r\n\r\n /** The icon color */\r\n public iconColor: string = '';\r\n\r\n /** The constructor */\r\n constructor() { }\r\n\r\n /** Life cycle hook for component initialization */\r\n public ngOnInit(): void {\r\n if (this.faqConfig && this.faqConfig.iconHexColor) {\r\n if (this.faqConfig.iconHexColor.indexOf('#') > -1) {\r\n this.iconColor = this.faqConfig.iconHexColor;\r\n }\r\n else {\r\n this.iconColor = `#${this.faqConfig.iconHexColor}`;\r\n }\r\n }\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FaqComponent } from './components/faq/faq.component';\r\nimport { FlexLayoutModule } from '@angular/flex-layout';\r\nimport { MatExpansionModule, MatButtonModule, MatCardModule, MatIconModule} from '@angular/material';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\n\r\n/** The material modules */\r\nconst materialModules = [\r\n MatExpansionModule,\r\n MatButtonModule,\r\n MatCardModule,\r\n MatIconModule,\r\n FlexLayoutModule\r\n];\r\n\r\n/** The FAQ Module */\r\n@NgModule({\r\n declarations: [FaqComponent],\r\n imports: [\r\n CommonModule,\r\n ...materialModules,\r\n TranslateModule\r\n ],\r\n exports: [FaqComponent]\r\n})\r\nexport class FaqModule { }\r\n","/** The FAQ class */\r\nexport class FAQ {\r\n /** The FAQ title */\r\n public title: string;\r\n\r\n /** The FAQ description */\r\n public description: string;\r\n\r\n /** Is the FAQ expanded */\r\n public expanded: boolean = false;\r\n}\r\n","import { SiteMapDirection } from './enum/site-map-direction';\r\nimport { RoutePath } from '../../shared/models/route-path';\r\n\r\n/**\r\n * Site Map Config\r\n */\r\nexport interface SiteMapConfig {\r\n /** Section title class style */\r\n sectionTitleClass?: string;\r\n\r\n /** Global class style for links */\r\n linkClass?: string;\r\n\r\n /** Site map graph */\r\n graph?: Array<Array<SiteMapNode>>;\r\n}\r\n\r\n/**\r\n * Site Map Node.\r\n */\r\nexport interface SiteMapNode {\r\n /** The Section Title */\r\n sectionTitle?: string;\r\n\r\n /** The Direction */\r\n direction?: SiteMapDirection;\r\n\r\n /** Site Map Link */\r\n links?: Array<SiteMapLink>;\r\n \r\n /** Whether or not if the links are icons */\r\n iconLinks?: boolean;\r\n}\r\n\r\n/**\r\n * Site Map Link\r\n */\r\nexport interface SiteMapLink {\r\n /** The Text */\r\n text?: string;\r\n\r\n /** The Router Link */\r\n routerLink?: string;\r\n\r\n /** The route path */\r\n routePath?: RoutePath; \r\n\r\n /** Specific class style for link */\r\n linkClass?: string;\r\n\r\n /** Logo style class for logo links */\r\n logoClass?: string;\r\n}","/**\r\n * Site Map Direction\r\n */\r\nexport enum SiteMapDirection {\r\n /**\r\n * Horizontal\r\n */\r\n Horizontal = 'Horizontal',\r\n\r\n /**\r\n * Vertical\r\n */\r\n Vertical = 'Vertical'\r\n}","/**\r\n * Distributed Cache API\r\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\r\n *\r\n * OpenAPI spec version: 1\r\n * \r\n *\r\n * NOTE: This class is auto generated by the swagger code generator program.\r\n * https://github.com/swagger-api/swagger-codegen.git\r\n * Do not edit the class manually.\r\n */\r\nimport { ThemePaletteModel } from './themePaletteModel';\r\n\r\n/**\r\n * The Branding Session Data\r\n */\r\nexport interface BrandingModel { \r\n /**\r\n * The logo URL\r\n */\r\n logoUrl: string;\r\n /**\r\n * The theme name\r\n */\r\n themeName: string;\r\n /**\r\n * The Theme Palette\r\n */\r\n themePalette?: ThemePaletteModel;\r\n /**\r\n * The Fav Icon Url (tab icon)\r\n */\r\n favIconUrl?: string;\r\n}","/**\r\n * Distributed Cache API\r\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\r\n *\r\n * OpenAPI spec version: 1\r\n * \r\n *\r\n * NOTE: This class is auto generated by the swagger code generator program.\r\n * https://github.com/swagger-api/swagger-codegen.git\r\n * Do not edit the class manually.\r\n */\r\n\r\n/**\r\n * The error model\r\n */\r\nexport interface ErrorModel { \r\n /**\r\n * The error message\r\n */\r\n message?: string;\r\n /**\r\n * The response status\r\n */\r\n status?: string;\r\n}","/**\r\n * Distributed Cache API\r\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\r\n *\r\n * OpenAPI spec version: 1\r\n * \r\n *\r\n * NOTE: This class is auto generated by the swagger code generator program.\r\n * https://github.com/swagger-api/swagger-codegen.git\r\n * Do not edit the class manually.\r\n */\r\n\r\n/**\r\n * The OAuth Session Data\r\n */\r\nexport interface OAuthModel { \r\n /**\r\n * The Client ID\r\n */\r\n clientId: string;\r\n /**\r\n * The issuer\r\n */\r\n issuer: string;\r\n /**\r\n * The scope\r\n */\r\n scope: string;\r\n}","/**\r\n * Distributed Cache API\r\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\r\n *\r\n * OpenAPI spec version: 1\r\n * \r\n *\r\n * NOTE: This class is auto generated by the swagger code generator program.\r\n * https://github.com/swagger-api/swagger-codegen.git\r\n * Do not edit the class manually.\r\n */\r\nimport { ErrorModel } from './errorModel';\r\nimport { SessionResponseModel } from './sessionResponseModel';\r\n\r\n/**\r\n * The get session response model\r\n */\r\nexport interface SessionGetResponseModel { \r\n response?: SessionResponseModel;\r\n /**\r\n * The error message\r\n */\r\n error?: ErrorModel;\r\n}","/**\r\n * Distributed Cache API\r\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\r\n *\r\n * OpenAPI spec version: 1\r\n * \r\n *\r\n * NOTE: This class is auto generated by the swagger code generator program.\r\n * https://github.com/swagger-api/swagger-codegen.git\r\n * Do not edit the class manually.\r\n */\r\nimport { BrandingModel } from './brandingModel';\r\nimport { OAuthModel } from './oAuthModel';\r\nimport { TrackingModel } from './trackingModel';\r\n\r\n/**\r\n * The Session Post Model\r\n */\r\nexport interface SessionPostRequestModel { \r\n /**\r\n * The session data\r\n */\r\n sessionData: any;\r\n /**\r\n * The idle life time in minutes Default is 30 minutes min is 1 max is 120\r\n */\r\n idleLifeTimeMinutes?: number;\r\n /**\r\n * The branding data\r\n */\r\n branding: BrandingModel;\r\n /**\r\n * The tracking data\r\n */\r\n tracking?: TrackingModel;\r\n /**\r\n * The OAuth Session Data\r\n */\r\n oAuth?: OAuthModel;\r\n}","/**\r\n * Distributed Cache API\r\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\r\n *\r\n * OpenAPI spec version: 1\r\n * \r\n *\r\n * NOTE: This class is auto generated by the swagger code generator program.\r\n * https://github.com/swagger-api/swagger-codegen.git\r\n * Do not edit the class manually.\r\n */\r\nimport { ErrorModel } from './errorModel';\r\nimport { SessionResponseModel } from './sessionResponseModel';\r\n\r\n/**\r\n * The session post response model\r\n */\r\nexport interface SessionPostResponseModel { \r\n response?: SessionResponseModel;\r\n /**\r\n * The error message\r\n */\r\n error?: ErrorModel;\r\n}","/**\r\n * Distributed Cache API\r\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\r\n *\r\n * OpenAPI spec version: 1\r\n * \r\n *\r\n * NOTE: This class is auto generated by the swagger code generator program.\r\n * https://github.com/swagger-api/swagger-codegen.git\r\n * Do not edit the class manually.\r\n */\r\nimport { BrandingModel } from './brandingModel';\r\nimport { OAuthModel } from './oAuthModel';\r\nimport { TrackingModel } from './trackingModel';\r\n\r\n/**\r\n * The Session Post Model\r\n */\r\nexport interface SessionPutRequestModel {\r\n /**\r\n * The initializing origin\r\n */\r\n initializingOrigin?: string;\r\n /**\r\n * The session data\r\n */\r\n sessionData: any;\r\n /**\r\n * The branding data\r\n */\r\n branding: BrandingModel;\r\n /**\r\n * The tracking data\r\n */\r\n tracking?: TrackingModel;\r\n /**\r\n * The OAuth Session Data\r\n */\r\n oAuth?: OAuthModel;\r\n}","/**\r\n * Distributed Cache API\r\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\r\n *\r\n * OpenAPI spec version: 1\r\n * \r\n *\r\n * NOTE: This class is auto generated by the swagger code generator program.\r\n * https://github.com/swagger-api/swagger-codegen.git\r\n * Do not edit the class manually.\r\n */\r\nimport { ErrorModel } from './errorModel';\r\nimport { SessionResponseModel } from './sessionResponseModel';\r\n\r\n/**\r\n * The session post response model\r\n */\r\nexport interface SessionPutResponseModel { \r\n response?: SessionResponseModel;\r\n /**\r\n * The error message\r\n */\r\n error?: ErrorModel;\r\n}","/**\r\n * Distributed Cache API\r\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\r\n *\r\n * OpenAPI spec version: 1\r\n * \r\n *\r\n * NOTE: This class is auto generated by the swagger code generator program.\r\n * https://github.com/swagger-api/swagger-codegen.git\r\n * Do not edit the class manually.\r\n */\r\nimport { BrandingModel } from './brandingModel';\r\nimport { OAuthModel } from './oAuthModel';\r\nimport { TrackingModel } from './trackingModel';\r\n\r\n/**\r\n * The session response model\r\n */\r\nexport interface SessionResponseModel {\r\n /**\r\n * The initializing origin\r\n */\r\n initializingOrigin?: string;\r\n /**\r\n * The session ID\r\n */\r\n sessionId?: string;\r\n /**\r\n * The session data\r\n */\r\n sessionData?: any;\r\n /**\r\n * The branding data\r\n */\r\n branding?: BrandingModel;\r\n /**\r\n * The tracking data\r\n */\r\n tracking?: TrackingModel;\r\n /**\r\n * The OAuth Session Data\r\n */\r\n oAuth?: OAuthModel;\r\n}","/**\r\n * Distributed Cache API\r\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\r\n *\r\n * OpenAPI spec version: 1\r\n * \r\n *\r\n * NOTE: This class is auto generated by the swagger code generator program.\r\n * https://github.com/swagger-api/swagger-codegen.git\r\n * Do not edit the class manually.\r\n */\r\n\r\n/**\r\n * The theme palette\r\n */\r\nexport interface ThemePaletteColorsModel { \r\n /**\r\n * The 50 palette color\r\n */\r\n fifty: string;\r\n /**\r\n * The 100 palette color\r\n */\r\n oneHundred: string;\r\n /**\r\n * The 200 palette color\r\n */\r\n twoHundred: string;\r\n /**\r\n * The 300 palette color\r\n */\r\n threeHundred: string;\r\n /**\r\n * The 400 palette color\r\n */\r\n fourHundred: string;\r\n /**\r\n * The 500 palette color\r\n */\r\n fiveHundred: string;\r\n /**\r\n * The 600 palette color\r\n */\r\n sixHundred: string;\r\n /**\r\n * The 700 palette color\r\n */\r\n sevenHundred: string;\r\n /**\r\n * The 800 palette color\r\n */\r\n eightHundred: string;\r\n /**\r\n * The 900 palette color\r\n */\r\n nineHundred: string;\r\n /**\r\n * The A100 palette color\r\n */\r\n a100: string;\r\n /**\r\n * The A200 palette color\r\n */\r\n a200: string;\r\n /**\r\n * The A400 palette color\r\n */\r\n a400: string;\r\n /**\r\n * The A700 palette color\r\n */\r\n a700: string;\r\n}","/**\r\n * Distributed Cache API\r\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\r\n *\r\n * OpenAPI spec version: 1\r\n * \r\n *\r\n * NOTE: This class is auto generated by the swagger code generator program.\r\n * https://github.com/swagger-api/swagger-codegen.git\r\n * Do not edit the class manually.\r\n */\r\nimport { ThemePaletteColorsModel } from './themePaletteColorsModel';\r\n\r\n/**\r\n * The theme palette\r\n */\r\nexport interface ThemePaletteModel { \r\n /**\r\n * The primary theme color palette\r\n */\r\n primaryColor: ThemePaletteColorsModel;\r\n /**\r\n * The primary theme contrast palette\r\n */\r\n primaryContrast: ThemePaletteColorsModel;\r\n /**\r\n * The accent theme color palette\r\n */\r\n accentColor: ThemePaletteColorsModel;\r\n /**\r\n * The accent theme contrast palette\r\n */\r\n accentContrast: ThemePaletteColorsModel;\r\n /**\r\n * The warning theme color palette\r\n */\r\n warningColor: ThemePaletteColorsModel;\r\n /**\r\n * The warning theme contrast palette\r\n */\r\n warningContrast: ThemePaletteColorsModel;\r\n}","/**\r\n * Distributed Cache API\r\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\r\n *\r\n * OpenAPI spec version: 1\r\n * \r\n *\r\n * NOTE: This class is auto generated by the swagger code generator program.\r\n * https://github.com/swagger-api/swagger-codegen.git\r\n * Do not edit the class manually.\r\n */\r\n\r\n/**\r\n * The tracking Data\r\n */\r\nexport interface TrackingModel { \r\n /**\r\n * The tracking ID\r\n */\r\n trackingId: string;\r\n /**\r\n * The tracking type\r\n */\r\n trackingType: string;\r\n}","/**\r\n * Softheon.UserManagement.API\r\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\r\n *\r\n * OpenAPI spec version: 1\r\n * \r\n *\r\n * NOTE: This class is auto generated by the swagger code generator program.\r\n * https://github.com/swagger-api/swagger-codegen.git\r\n * Do not edit the class manually.\r\n */\r\nimport { FolderLink } from './folderLink';\r\nimport { IdentityProfile } from './identityProfile';\r\nimport { SettingsProfile } from './settingsProfile';\r\n\r\n/**\r\n * Application User Model\r\n */\r\nexport interface ApplicationUserModel { \r\n /**\r\n * Gets or sets the child links.\r\n */\r\n childLinks?: Array<FolderLink>;\r\n /**\r\n * The IdentityProfile.\r\n */\r\n identity?: IdentityProfile;\r\n /**\r\n * The SettingsProfile.\r\n */\r\n settings?: SettingsProfile;\r\n drawerId?: number;\r\n id?: number;\r\n name?: string;\r\n state?: ApplicationUserModel.StateEnum;\r\n}\r\nexport namespace ApplicationUserModel {\r\n export type StateEnum = 'Available' | 'Locked' | 'Suspended' | 'Archived' | 'Deleted' | 'Canceled' | 'Complete' | 'Reviewed' | 'ReviewedSuspended' | 'ReviewedComplete' | 'Rejected' | 'RoutingSlipOpen' | 'ReviewedRoutingSlipOpen' | 'Undefined';\r\n export const StateEnum = {\r\n Available: 'Available' as StateEnum,\r\n Locked: 'Locked' as StateEnum,\r\n Suspended: 'Suspended' as StateEnum,\r\n Archived: 'Archived' as StateEnum,\r\n Deleted: 'Deleted' as StateEnum,\r\n Canceled: 'Canceled' as StateEnum,\r\n Complete: 'Complete' as StateEnum,\r\n Reviewed: 'Reviewed' as StateEnum,\r\n ReviewedSuspended: 'ReviewedSuspended' as StateEnum,\r\n ReviewedComplete: 'ReviewedComplete' as StateEnum,\r\n Rejected: 'Rejected' as StateEnum,\r\n RoutingSlipOpen: 'RoutingSlipOpen' as StateEnum,\r\n ReviewedRoutingSlipOpen: 'ReviewedRoutingSlipOpen' as StateEnum,\r\n Undefined: 'Undefined' as StateEnum\r\n };\r\n}","/**\r\n * Softheon.UserManagement.API\r\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\r\n *\r\n * OpenAPI spec version: 1\r\n * \r\n *\r\n * NOTE: This class is auto generated by the swagger code generator program.\r\n * https://github.com/swagger-api/swagger-codegen.git\r\n * Do not edit the class manually.\r\n */\r\nimport { ApplicationUserModel } from './applicationUserModel';\r\n\r\n/**\r\n * User Response Model\r\n */\r\nexport interface AssertedUserModel { \r\n /**\r\n * Gets or sets the user model.\r\n */\r\n userModel?: ApplicationUserModel;\r\n /**\r\n * Gets or sets the hash.\r\n */\r\n hash?: string;\r\n}","/**\r\n * Softheon.UserManagement.API\r\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\r\n *\r\n * OpenAPI spec version: 1\r\n * \r\n *\r\n * NOTE: This class is auto generated by the swagger code generator program.\r\n * https://github.com/swagger-api/swagger-codegen.git\r\n * Do not edit the class manually.\r\n */\r\n\r\nexport interface FolderLink { \r\n acl?: number;\r\n childDrawerID?: number;\r\n childEntityID?: number;\r\n childType?: number;\r\n classProperty?: number;\r\n drawerID?: number;\r\n entityID?: number;\r\n hasChildrenInSameDrawer?: boolean;\r\n id?: number;\r\n includerUserID?: number;\r\n insertionTime?: Date;\r\n modificationTime?: Date;\r\n modifierUserID?: number;\r\n name?: string;\r\n note?: string;\r\n ownerGroupID?: number;\r\n ownerUserID?: number;\r\n pageNumber?: number;\r\n parentDrawerID?: number;\r\n state?: string;\r\n virtualName?: string;\r\n}","/**\r\n * Softheon.UserManagement.API\r\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\r\n *\r\n * OpenAPI spec version: 1\r\n * \r\n *\r\n * NOTE: This class is auto generated by the swagger code generator program.\r\n * https://github.com/swagger-api/swagger-codegen.git\r\n * Do not edit the class manually.\r\n */\r\nimport { RolesRow } from './rolesRow';\r\nimport { ValidationRecordsRow } from './validationRecordsRow';\r\n\r\n/**\r\n * Identity Profile\r\n */\r\nexport interface IdentityProfile { \r\n /**\r\n * The ID.\r\n */\r\n id?: string;\r\n /**\r\n * The Email.\r\n */\r\n email?: string;\r\n /**\r\n * The PhoneNumber.\r\n */\r\n phoneNumber?: string;\r\n /**\r\n * The Provider.\r\n */\r\n provider?: string;\r\n /**\r\n * The FirstName.\r\n */\r\n firstName?: string;\r\n /**\r\n * The LastName.\r\n */\r\n lastName?: string;\r\n /**\r\n * The MiddleName.\r\n */\r\n middleName?: string;\r\n /**\r\n * The Street.\r\n */\r\n street?: string;\r\n /**\r\n * The City.\r\n */\r\n city?: string;\r\n /**\r\n * The State.\r\n */\r\n state?: string;\r\n /**\r\n * The Zip.\r\n */\r\n zip?: string;\r\n /**\r\n * The IdProofingRefNum.\r\n */\r\n idProofingRefNum?: string;\r\n /**\r\n * The LastLogin.\r\n */\r\n lastLogin?: Date;\r\n /**\r\n * The DateofBirth.\r\n */\r\n dateofBirth?: Date;\r\n /**\r\n * The Roles.\r\n */\r\n roles?: Array<RolesRow>;\r\n /**\r\n * The ValidationRecords.\r\n */\r\n validationRecords?: Array<ValidationRecordsRow>;\r\n}","/**\r\n * Softheon.UserManagement.API\r\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\r\n *\r\n * OpenAPI spec version: 1\r\n * \r\n *\r\n * NOTE: This class is auto generated by the swagger code generator program.\r\n * https://github.com/swagger-api/swagger-codegen.git\r\n * Do not edit the class manually.\r\n */\r\n\r\nexport interface PreferencesRow { \r\n key?: string;\r\n value?: string;\r\n}","/**\r\n * Softheon.UserManagement.API\r\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\r\n *\r\n * OpenAPI spec version: 1\r\n * \r\n *\r\n * NOTE: This class is auto generated by the swagger code generator program.\r\n * https://github.com/swagger-api/swagger-codegen.git\r\n * Do not edit the class manually.\r\n */\r\nimport { PreferencesRow } from './preferencesRow';\r\n\r\n/**\r\n * Settings Profile\r\n */\r\nexport interface SettingsProfile { \r\n /**\r\n * The Preferences.\r\n */\r\n preferences?: Array<PreferencesRow>;\r\n}","/**\r\n * Softheon.UserManagement.API\r\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\r\n *\r\n * OpenAPI spec version: 1\r\n * \r\n *\r\n * NOTE: This class is auto generated by the swagger code generator program.\r\n * https://github.com/swagger-api/swagger-codegen.git\r\n * Do not edit the class manually.\r\n */\r\n\r\nexport interface ValidationRecordsRow { \r\n type?: string;\r\n status?: string;\r\n referenceID?: string;\r\n validationDate?: Date;\r\n}","import { SessionResponseModel } from '../../core/client-generated/model/sessionResponseModel';\r\nimport { BrandingModel, TrackingModel, OAuthModel } from '../../core/client-generated/model/models';\r\n\r\n/** The session class */\r\nexport class TypedSession<T> implements SessionResponseModel {\r\n /** The initalizing origin */\r\n public initializingOrigin?: string;\r\n\r\n /** The session id */\r\n public sessionId?: string;\r\n\r\n /** The typed session data */\r\n public sessionData?: T;\r\n\r\n /** The branding model */\r\n public branding?: BrandingModel;\r\n\r\n /** The tracking model */\r\n public tracking?: TrackingModel;\r\n\r\n /** The oauth model */\r\n public oAuth?: OAuthModel;\r\n}","/**\r\n * CSS Override\r\n */\r\nexport class CssOverride {\r\n public selector: 'id' | 'class' | 'tag';\r\n public parameter: string;\r\n public attributes: Array<Attribute>;\r\n}\r\n\r\n/**\r\n * CSS attribute overrides\r\n */\r\nexport class Attribute {\r\n public name: string;\r\n public value: string;\r\n}\r\n"],"names":["InjectionToken","HttpHeaders","tslib_1.__values","Injectable","HttpClient","Optional","Inject","of","BehaviorSubject","switchMap","take","OAuthService","SessionService","Component","Input","NgModule","RouterModule","CommonModule","FlexLayoutModule","TranslateModule","MatButtonModule","FormControl","Validators","FormBuilder","Directive","ElementRef","HostListener","components","MatInputModule","MatFormFieldModule","MatSelectModule","ReactiveFormsModule","map","catchError","Observable","CoverageDetail","HttpClientModule","EventEmitter","AuthConfig","JwksValidationHandler","OAuthStorage","Output","materialModules","MatToolbarModule","MatMenuModule","MatButtonToggleModule","MatIconModule","MatListModule","MatSidenavModule","OAuthModule","TranslateService","ChangeDetectorRef","MediaMatcher","ViewChild","MatSliderModule","MatSlideToggleModule","filter","share","ServerSessionService","Injector","tslib_1.__extends","ReplaySubject","Subscription","TemplateRef","ViewContainerRef","BASE_PATH","COLLECTION_FORMATS","ConfigurationParameters","Configuration","NavigationStart","NavigationError","NavigationEnd","Router","ApmService","ErrorHandler","MatExpansionModule","MatCardModule","ApplicationUserModel"],"mappings":"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"}