{"version":3,"sources":["./src/app/404/templates/404.html","./src/app/homepage/contact-form/templates/contact-form.html","./src/app/nav/templates/nav-collapsed-menu.html","./src/app/nav/templates/nav.html","./src/app/search/search.template.html","./src/app/site-footer/templates/privacy-policy.html","./src/app/site-footer/templates/site-footer.html","./src/app/sitemap/templates/sitemap.html","./src/app/templates/top-level-template.html","./node_modules/tslib/tslib.es6.js","./src/$_lazy_route_resource lazy namespace object","./src/app/404/404.component.ts","./src/app/app.component.ts","./src/app/app.module.ts","./src/app/app.routes.ts","./src/app/homepage/contact-form/contact.component.scss","./src/app/homepage/contact-form/contact.component.ts","./src/app/loading-spinner/loading.component.ts","./src/app/loading-spinner/loading.service.ts","./src/app/modal.component.ts","./src/app/nav/nav-collapsed-menu.component.ts","./src/app/nav/nav.component.ts","./src/app/notification/notification.component.ts","./src/app/notification/notification.service.ts","./src/app/search/search.component.ts","./src/app/search/search.styles.scss","./src/app/services/mimics-collateral.service.ts","./src/app/services/modal.service.ts","./src/app/services/nav.service.ts","./src/app/services/ngif-autofocus.directive.ts","./src/app/services/product-list.ts","./src/app/services/status-code.service.ts","./src/app/shared/auth.service.ts","./src/app/shared/available-products.ts","./src/app/shared/backend.service.ts","./src/app/shared/browser-versions.ts","./src/app/shared/material.module.ts","./src/app/shared/pagination.component.ts","./src/app/shared/pagination.service.ts","./src/app/shared/pagination1/pagination1.component.ts","./src/app/shared/pagination1/pagination1.service.ts","./src/app/shared/scroll/scroll.ts","./src/app/shared/search.service.ts","./src/app/shared/shared.module.ts","./src/app/shared/stickydiv/ng2-sticky.ts","./src/app/site-footer/footer.component.ts","./src/app/site-footer/privacy-policy.component.ts","./src/app/sitemap/sitemap.component.ts","./src/config.ts","./src/environments/environment.ts","./src/main.ts"],"names":[],"mappings":"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","file":"main.js","sourcesContent":["export default \"
\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n ®\\n \\n

Page
Not
Found

\\n \\n
\\n
\"","export default \"
\\n \\n
\\n
\\n
\\n
\\n

\\n Thank You, {{ newEntry.controls.Name.value }}\\n \\n

\\n
One of our representatives will contact you shortly.
\\n \\n
\\n
\\n
\\n

Contact Us\\n \\n \\n \\n

\\n
\\n
\\n
\\n
\\n
\\n \\n Contact Type\\n \\n \\n {{type}}\\n \\n \\n \\n
\\n
\\n \\n I am interested in... *\\n \\n \\n \\n {{investmentProduct}}\\n \\n \\n \\n \\n {{trustProduct}}\\n \\n \\n \\n \\n {{bankingProduct}}\\n \\n \\n \\n \\n {{centralBankingProduct}}\\n \\n \\n \\n \\n {{accountingOption}}\\n \\n \\n \\n \\n {{moduleOption}}\\n \\n \\n \\n \\n Product is Required\\n \\n \\n
\\n
\\n \\n Name *\\n \\n done\\n \\n Name is Required\\n \\n \\n
\\n
\\n \\n Company Name *\\n \\n done\\n \\n Company Name is Required\\n \\n \\n
\\n
\\n \\n Email *\\n \\n done\\n \\n Email is Required\\n \\n \\n
\\n
\\n \\n Phone *\\n \\n done\\n \\n Phone is Required\\n \\n \\n
\\n \\n \\n \\n
\\n \\n Country\\n \\n \\n
\\n \\n
\\n \\n How did you hear about MIMICS?\\n \\n \\n {{type}}\\n \\n \\n \\n
\\n
\\n \\n \\n \\n \\n \\n \\n \\n
\\n
\\n \\n \\n \\n
\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\"","export default \"
\\n \\n \\n \\n
\\n \\n
\\n
\"","export default \"
\\n \\n \\n \\n \\n \\n \\n \\n
\\n\\n\\n\"","export default \"
\\r\\n \\r\\n
\\r\\n \\r\\n Search Our Software\\r\\n \\r\\n close\\r\\n \\r\\n \\r\\n
\\r\\n
0 && searchTerm.value\\\">\\r\\n {{totalEntries}} Match{{totalEntries > 1 ? \\\"es\\\" : \\\"\\\"}} Found\\r\\n
\\r\\n
\\r\\n Sorry, No Matches Found For Your Search\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
    \\r\\n
  • \\r\\n

    \\r\\n {{item.name}}\\r\\n Module: {{item.module}}\\r\\n

    \\r\\n
    {{item.desc}}
    \\r\\n
    0\\\">\\r\\n Related Products\\r\\n
    \\r\\n \\r\\n {{related.name}}\\r\\n \\r\\n
    \\r\\n
    \\r\\n
  • \\r\\n
\\r\\n
\\r\\n
\\r\\n
\"","export default \"
\\n \\n
\\n
\\n
\\n

Privacy Policy\\n \\n \\n \\n

\\n
\\n
\\n

MIMICS Inc. created this privacy policy to demonstrate our firm commitment to your privacy and the protection of your information.

\\n

\\n Why did you receive an email or Newsletter from us?
\\n If you received a mailing from us, (a) your email address is either listed with us as someone who has expressly shared this address for the purpose\\n of receiving information in the future (\\\"opt-in\\\"), or (b) you have registered or purchased or otherwise\\n have an existing relationship with us. We respect your time and attention by controlling the frequency\\n of our mailings.\\n

\\n

\\n How we protect your privacy
\\n We use security measures to protect against the loss, misuse and alteration\\n of data used by our system.\\n

\\n

\\n Sharing and Usage
\\n We will never share, sell, or rent individual personal information with anyone without\\n your advance permission or unless ordered by a court of law. Information submitted to us is only\\n available to employees managing this information for purposes of contacting you or sending you emails\\n based on your request for information and to contracted service providers for purposes of providing\\n services relating to our communications with you.\\n

\\n

\\n How can you stop receiving emails and Newsletters from us?
\\n Each email / Newsletter sent contains an easy,\\n automated way for you to cease receiving from us, or to change your expressed interests. If you wish\\n to do this, simply follow the instructions at the end of any email or Newsletter. If you have received\\n unwanted, unsolicited email or a Newsletter from us sent via our system or purporting to be sent\\n via this system, please forward a copy of that email with your comments to sales@mimics.com for\\n review.\\n

\\n
\\n
\\n
\\n
\\n
\\n
\"","export default \"\\n
\\n
\\n
\\n
Follow Us
\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n Client Login
\\n Employee Login\\n
\\n
\\n Sitemap
\\n Privacy Policy\\n
\\n
\\n
\\n
\\n Copyright © {{copyrightYear}} MIMICS, Inc. All Rights Reserved.\\n
\\n
\\n\"","export default \"
\\n
\\n
\\n
\\n
\\n

Sitemap

\\n \\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n \\n \\n \\n \\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\"","export default \"
\\r\\n \\r\\n You are using an outdated browser. Please \\r\\n upgrade {{browsername}}\\r\\n upgrade {{browsername}}\\r\\n upgrade {{browsername}}\\r\\n upgrade {{browsername}}\\r\\n upgrade {{browsername}}\\r\\n upgrade {{browsername}}\\r\\n to improve your experience.\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n
\"","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","var map = {\n\t\"app/admin/admin.module\": [\n\t\t\"./src/app/admin/admin.module.ts\",\n\t\t\"default~app-admin-admin-module~app-blog-blog-module\",\n\t\t\"app-admin-admin-module\"\n\t],\n\t\"app/archived-pages/archived-bank-op-pages.module\": [\n\t\t\"./src/app/archived-pages/archived-bank-op-pages.module.ts\",\n\t\t\"app-archived-pages-archived-bank-op-pages-module\"\n\t],\n\t\"app/archived-pages/archived-cbank-op-pages.module\": [\n\t\t\"./src/app/archived-pages/archived-cbank-op-pages.module.ts\",\n\t\t\"app-archived-pages-archived-cbank-op-pages-module\"\n\t],\n\t\"app/archived-pages/archived-general-op-pages.module\": [\n\t\t\"./src/app/archived-pages/archived-general-op-pages.module.ts\",\n\t\t\"app-archived-pages-archived-general-op-pages-module\"\n\t],\n\t\"app/archived-pages/archived-investment-pages.module\": [\n\t\t\"./src/app/archived-pages/archived-investment-pages.module.ts\",\n\t\t\"app-archived-pages-archived-investment-pages-module\"\n\t],\n\t\"app/archived-pages/archived-loans-pages.module\": [\n\t\t\"./src/app/archived-pages/archived-loans-pages.module.ts\",\n\t\t\"app-archived-pages-archived-loans-pages-module\"\n\t],\n\t\"app/archived-pages/archived-real-estate-pages.module\": [\n\t\t\"./src/app/archived-pages/archived-real-estate-pages.module.ts\",\n\t\t\"app-archived-pages-archived-real-estate-pages-module\"\n\t],\n\t\"app/archived-pages/archived-service-and-feature-pages.module\": [\n\t\t\"./src/app/archived-pages/archived-service-and-feature-pages.module.ts\",\n\t\t\"app-archived-pages-archived-service-and-feature-pages-module\"\n\t],\n\t\"app/blog/blog.module\": [\n\t\t\"./src/app/blog/blog.module.ts\",\n\t\t\"default~app-admin-admin-module~app-blog-blog-module\",\n\t\t\"app-blog-blog-module\"\n\t],\n\t\"app/demo/demo.module\": [\n\t\t\"./src/app/demo/demo.module.ts\",\n\t\t\"app-demo-demo-module\"\n\t],\n\t\"app/homepage/home.module\": [\n\t\t\"./src/app/homepage/home.module.ts\",\n\t\t\"app-homepage-home-module\"\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn Promise.all(ids.slice(1).map(__webpack_require__.e)).then(function() {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = \"./src/$$_lazy_route_resource lazy recursive\";\nmodule.exports = webpackAsyncContext;","import { Component, OnInit } from '@angular/core';\n\nimport { NavService } from '../services/nav.service';\n\n@Component({\n styles: ['#quetzal404{margin:auto;}'],\n templateUrl: './templates/404.html',\n})\nexport class FourOhFourComponent implements OnInit {\n\n constructor(private _navService: NavService) { }\n\n ngOnInit() {\n this._navService.metaChange('Page Not Found', 'Page Not Found', '', '404');\n }\n}","import { Component, OnInit, OnDestroy, Renderer2 } from '@angular/core';\r\nimport { Router, NavigationEnd } from '@angular/router';\r\nimport { Location } from '@angular/common';\r\n\r\nimport { Subscription } from 'rxjs';\r\nimport { Observable } from 'rxjs/Observable';\r\n\r\nimport { Ng2DeviceService } from 'ng2-device-detector';\r\n\r\nimport { NavService } from './services/nav.service';\r\nimport { SearchService } from './shared/search.service';\r\n\r\nimport { LatestBrowserVersions } from './shared/browser-versions';\r\n\r\n@Component({\r\n selector: 'mimics-homepage',\r\n templateUrl: './templates/top-level-template.html',\r\n styles: [`.alert {margin-bottom: 0rem;}`],\r\n})\r\nexport class AppComponent implements OnInit {\r\n modules;\r\n error: any;\r\n showHomeHeader: boolean = true;\r\n showHomeFooter: boolean = false;\r\n stickHomeHeader: boolean = false;\r\n routeSubscription: Subscription;\r\n deviceInfo: any;\r\n browserver: number;\r\n browsername: string;\r\n browserWarningOpen: boolean = false;\r\n\r\n constructor(\r\n public location: Location,\r\n public router: Router,\r\n public renderer: Renderer2,\r\n public searchService: SearchService,\r\n private _deviceService: Ng2DeviceService,\r\n public navService: NavService\r\n ) {\r\n this.checkBrowserVersion();\r\n searchService.svcRenderer = renderer;\r\n }\r\n\r\n checkBrowserVersion() {\r\n console.log('entered');\r\n this.deviceInfo = this._deviceService.getDeviceInfo();\r\n this.browserver = parseInt(this.deviceInfo.browser_version);\r\n this.browsername = this.deviceInfo.browser;\r\n if(LatestBrowserVersions[this.browsername] - 2 >= this.browserver) {\r\n this.browserWarningOpen = true;\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.routeSubscription = this.router.events\r\n .filter(event => event instanceof NavigationEnd)\r\n .subscribe(event => {\r\n /*\r\n the homepage header/footer only really seem to apply to potential clients. this hides them on any 'admin' related route- we can also use this to swap it out for an 'admin-related' header if necessary\r\n */\r\n console.log('entered');\r\n this.showHomeHeader = !event['url'].includes('admin');\r\n // this.showHomeHeader = event['url'];\r\n this.stickHomeHeader = event['url'] !== '/';\r\n // console.log(\"showHomeHeader \"+ this.showHomeHeader)\r\n this.showHomeFooter=true;\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.routeSubscription) { this.routeSubscription.unsubscribe(); }\r\n }\r\n \r\n closeBrowserWarning(){\r\n console.log('entered');\r\n this.browserWarningOpen = false;\r\n }\r\n}\r\n","// general Angular module imports\r\nimport { NgModule } from '@angular/core';\r\nimport { BrowserModule, Title, Meta } from '@angular/platform-browser';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { HttpModule } from '@angular/http';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { HttpClientModule } from '@angular/common/http';\r\n\r\n// component imports\r\nimport { AppComponent } from './app.component';\r\nimport { FourOhFourComponent } from './404/404.component';\r\nimport { LoadingComponent } from './loading-spinner/loading.component';\r\nimport { ModalComponent } from './modal.component';\r\nimport { NotificationComponent } from './notification/notification.component';\r\nimport { NavComponent } from './nav/nav.component';\r\nimport { NavCollapsedMenuComponent } from './nav/nav-collapsed-menu.component';\r\nimport { SharedModule } from './shared/shared.module';\r\nimport { SiteFooterComponent } from './site-footer/footer.component';\r\nimport { PrivacyPolicyComponent } from './site-footer/privacy-policy.component';\r\nimport { SearchComponent } from './search/search.component';\r\nimport { SitemapComponent } from './sitemap/sitemap.component';\r\nimport { Sticky } from './shared/stickydiv/ng2-sticky';\r\n\r\n//directive imports\r\nimport { IfAutofocus } from './services/ngif-autofocus.directive';\r\n\r\n// routing imports\r\nimport { routing } from './app.routes';\r\n// import { ArchivedServiceandFeaturePagesRouting } from './archived-pages/archived-service-and-feature-pages.routes';\r\n// import { ArchivedBankOpPagesRouting } from './archived-pages/archived-bank-op-pages.routes';\r\n// import { ArchivedCBankOpPagesRouting } from './archived-pages/archived-cbank-op-pages.routes';\r\n// import { ArchivedGeneralOpPagesRouting } from './archived-pages/archived-general-op-pages.routes';\r\n// import { ArchivedInvestmentPagesRouting } from './archived-pages/archived-investment-pages.routes';\r\n// import { ArchivedLoansPagesRouting } from './archived-pages/archived-loans-pages.routes';\r\n// import { ArchivedRealEstatePagesRouting } from './archived-pages/archived-real-estate-pages.routes';\r\n\r\n// services imports\r\nimport { LoadingService } from './loading-spinner/loading.service';\r\nimport { ModalService } from './services/modal.service';\r\nimport { NotificationService } from './notification/notification.service';\r\nimport { NavService } from './services/nav.service';\r\nimport { DataService } from './services/mimics-collateral.service';\r\nimport { SearchService } from './shared/search.service';\r\nimport { StatusCodeService } from './services/status-code.service';\r\nimport { PageScrollService } from 'ng2-page-scroll';\r\n\r\n// Import package for browser versions detection\r\nimport { Ng2DeviceDetectorModule } from 'ng2-device-detector';\r\n\r\n// import {MatButtonModule, MatCheckboxModule} from '@angular/material';\r\n// import {MatInputModule} from '@angular/material/input';\r\n// import {\r\n // MatAutocompleteModule,\r\n // MatButtonModule,\r\n // MatButtonToggleModule,\r\n // MatCardModule,\r\n // MatCheckboxModule,\r\n // MatChipsModule,\r\n // MatDatepickerModule,\r\n // MdDatepickerModule,\r\n // MdNativeDateModule\r\n // MatDialogModule,\r\n // MatExpansionModule,\r\n // MatFormFieldModule,\r\n // MatGridListModule,\r\n // MatIconModule,\r\n // MatInputModule,\r\n // MatListModule,\r\n // MatMenuModule,\r\n // MatPaginatorModule,\r\n // MatProgressBarModule,\r\n // MatProgressSpinnerModule,\r\n // MatRadioModule,\r\n // MatSelectModule,\r\n // MatSidenavModule,\r\n // MatSliderModule,\r\n // MatSlideToggleModule,\r\n // MatSnackBarModule,\r\n // MatSortModule,\r\n // MatTableModule,\r\n // MatTabsModule,\r\n // MatToolbarModule,\r\n // MatTooltipModule,\r\n // MatStepperModule,\r\n// } from '@angular/material';\r\n\r\n@NgModule({\r\n imports: [\r\n BrowserModule, //.withServerTransition({appId: 'frontend'}), // - ssr? doesn't yet work\r\n BrowserAnimationsModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n routing,\r\n HttpModule,\r\n HttpClientModule,\r\n SharedModule,\r\n // MatDatepickerModule,\r\n // MatCheckboxModule,\r\n // MdDatepickerModule,\r\n // MdNativeDateModule,\r\n // MatInputModule,\r\n Ng2DeviceDetectorModule.forRoot()\r\n // MatButtonModule,\r\n ],\r\n declarations: [\r\n AppComponent,\r\n IfAutofocus,\r\n FourOhFourComponent,\r\n LoadingComponent,\r\n ModalComponent,\r\n NotificationComponent,\r\n NavComponent,\r\n NavCollapsedMenuComponent,\r\n NotificationComponent,\r\n SiteFooterComponent,\r\n PrivacyPolicyComponent,\r\n SearchComponent,\r\n SitemapComponent,\r\n Sticky\r\n ],\r\n providers: [\r\n LoadingService,\r\n ModalService,\r\n NotificationService,\r\n NavService,\r\n DataService,\r\n PageScrollService,\r\n SearchService,\r\n StatusCodeService,\r\n Title,\r\n Meta\r\n ],\r\n bootstrap: [AppComponent]\r\n})\r\nexport class AppModule {\r\n}","import { Routes, RouterModule, PreloadAllModules } from '@angular/router';\r\n\r\nimport { SitemapComponent } from './sitemap/sitemap.component';\r\nimport { FourOhFourComponent } from './404/404.component';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: 'admin',\r\n loadChildren: 'app/admin/admin.module#AdminModule'\r\n },\r\n {\r\n path: '',\r\n loadChildren: 'app/homepage/home.module#HomeModule'\r\n },\r\n {\r\n path: 'news',\r\n loadChildren: 'app/blog/blog.module#BlogModule'\r\n },\r\n {\r\n path: 'demo',\r\n loadChildren: 'app/demo/demo.module#DemoModule'\r\n },\r\n {\r\n path: 'bank_operations',\r\n loadChildren: 'app/archived-pages/archived-bank-op-pages.module#ArchivedBankOpPagesModule'\r\n },\r\n {\r\n path: 'central-bank-operations',\r\n loadChildren: 'app/archived-pages/archived-cbank-op-pages.module#ArchivedCBankOpPagesModule'\r\n },\r\n {\r\n path: 'investment-management',\r\n loadChildren: 'app/archived-pages/archived-investment-pages.module#ArchivedInvestmentPagesModule'\r\n },\r\n {\r\n path: 'loans',\r\n loadChildren: 'app/archived-pages/archived-loans-pages.module#ArchivedLoansPagesModule'\r\n },\r\n {\r\n path: 'general-operations',\r\n loadChildren: 'app/archived-pages/archived-general-op-pages.module#ArchivedGeneralOpPagesModule'\r\n },\r\n {\r\n path: 'real-estate',\r\n loadChildren: 'app/archived-pages/archived-real-estate-pages.module#ArchivedRealEstatePagesModule'\r\n },\r\n {\r\n path: 'services-and-software-features',\r\n loadChildren: 'app/archived-pages/archived-service-and-feature-pages.module#ArchivedServiceandFeaturePagesModule'\r\n },\r\n { \r\n path: 'sitemap', \r\n component: SitemapComponent\r\n },\r\n {\r\n path: '**',\r\n component: FourOhFourComponent\r\n }\r\n];\r\n\r\nexport const routing = RouterModule.forRoot(routes, {preloadingStrategy: PreloadAllModules});","export default \".col-form-label {\\n padding-top: .5rem;\\n padding-bottom: .5rem;\\n margin-bottom: 0; }\\n\\n.btn {\\n margin-right: 1rem;\\n cursor: pointer; }\\n\\n.select-inline {\\n width: initial; }\\n\\n.alert {\\n margin-bottom: 0; }\\n\\n.buttons-inline {\\n display: inline-block; }\\n\\n.form-required {\\n border: 1px solid red; }\\n\\n#newEntry button {\\n border-radius: 0;\\n border-bottom-right-radius: 5px;\\n border-bottom-left-radius: 5px;\\n cursor: pointer; }\\n\\n.select-wrapper {\\n position: relative; }\\n\\n.contact-form-box {\\n cursor: default; }\\n\\n.contact-success {\\n background-color: #2ea7bc;\\n padding: 2em;\\n border-radius: 5px; }\\n\\ninput[type=text] {\\n margin: 0; }\\n\\n.fade-in-right {\\n -webkit-animation: 1.25s fade-in-right-animation;\\n animation: 1.25s fade-in-right-animation; }\\n\\n@-webkit-keyframes fade-in-right-animation {\\n from {\\n opacity: 0;\\n -webkit-transform: translateX(50px) rotate(180deg);\\n transform: translateX(50px) rotate(180deg); }\\n to {\\n opacity: 1;\\n -webkit-transform: translateX(0) rotate(0);\\n transform: translateX(0) rotate(0); } }\\n\\n@keyframes fade-in-right-animation {\\n from {\\n opacity: 0;\\n -webkit-transform: translateX(50px) rotate(180deg);\\n transform: translateX(50px) rotate(180deg); }\\n to {\\n opacity: 1;\\n -webkit-transform: translateX(0) rotate(0);\\n transform: translateX(0) rotate(0); } }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvaG9tZXBhZ2UvY29udGFjdC1mb3JtL0Q6XFxSYWdoYXZhIHByb2plY3RzXFxNSU1JQ1NDT00yMDIxXFxmcm9udGVuZC9zcmNcXGFwcFxcaG9tZXBhZ2VcXGNvbnRhY3QtZm9ybVxcY29udGFjdC5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNJLGtCQUFrQjtFQUNsQixxQkFBcUI7RUFDckIsZ0JBQWdCLEVBQUE7O0FBRXBCO0VBQ0ksa0JBQWtCO0VBQ2xCLGVBQWUsRUFBQTs7QUFFbkI7RUFDSSxjQUFjLEVBQUE7O0FBRWxCO0VBQ0ksZ0JBQWdCLEVBQUE7O0FBRXBCO0VBQ0kscUJBQXFCLEVBQUE7O0FBRXpCO0VBQ0kscUJBQXFCLEVBQUE7O0FBRXpCO0VBQ0ksZ0JBQWdCO0VBQ2hCLCtCQUErQjtFQUMvQiw4QkFBOEI7RUFDOUIsZUFBZSxFQUFBOztBQUVuQjtFQUNJLGtCQUFrQixFQUFBOztBQUd0QjtFQUNJLGVBQWUsRUFBQTs7QUFHbkI7RUFDSSx5QkFBdUM7RUFDdkMsWUFBWTtFQUNaLGtCQUFrQixFQUFBOztBQUV0QjtFQUNJLFNBQVMsRUFBQTs7QUFHYjtFQUNJLGdEQUF3QztVQUF4Qyx3Q0FBd0MsRUFBQTs7QUFHNUM7RUFDSTtJQUFPLFVBQVU7SUFBRyxrREFBMEM7WUFBMUMsMENBQTBDLEVBQUE7RUFDOUQ7SUFBSyxVQUFVO0lBQUcsMENBQWtDO1lBQWxDLGtDQUFrQyxFQUFBLEVBQUE7O0FBRXhEO0VBQ0k7SUFBTyxVQUFVO0lBQUcsa0RBQTBDO1lBQTFDLDBDQUEwQyxFQUFBO0VBQzlEO0lBQUssVUFBVTtJQUFHLDBDQUFrQztZQUFsQyxrQ0FBa0MsRUFBQSxFQUFBIiwiZmlsZSI6InNyYy9hcHAvaG9tZXBhZ2UvY29udGFjdC1mb3JtL2NvbnRhY3QuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuY29sLWZvcm0tbGFiZWwge1xyXG4gICAgcGFkZGluZy10b3A6IC41cmVtO1xyXG4gICAgcGFkZGluZy1ib3R0b206IC41cmVtO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcclxufVxyXG4uYnRuIHtcclxuICAgIG1hcmdpbi1yaWdodDogMXJlbTtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxufVxyXG4uc2VsZWN0LWlubGluZSB7XHJcbiAgICB3aWR0aDogaW5pdGlhbDtcclxufVxyXG4uYWxlcnQge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcclxufVxyXG4uYnV0dG9ucy1pbmxpbmUgeyBcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgXHJcbn1cclxuLmZvcm0tcmVxdWlyZWQge1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgcmVkO1xyXG59XHJcbiNuZXdFbnRyeSBidXR0b24ge1xyXG4gICAgYm9yZGVyLXJhZGl1czogMDtcclxuICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiA1cHg7XHJcbiAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiA1cHg7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbn1cclxuLnNlbGVjdC13cmFwcGVyIHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxufVxyXG5cclxuLmNvbnRhY3QtZm9ybS1ib3gge1xyXG4gICAgY3Vyc29yOiBkZWZhdWx0O1xyXG59XHJcblxyXG4uY29udGFjdC1zdWNjZXNzIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoNDYsIDE2NywgMTg4LCAxKTtcclxuICAgIHBhZGRpbmc6IDJlbTtcclxuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcclxufVxyXG5pbnB1dFt0eXBlPXRleHRdIHtcclxuICAgIG1hcmdpbjogMDtcclxufVxyXG5cclxuLmZhZGUtaW4tcmlnaHQge1xyXG4gICAgYW5pbWF0aW9uOiAxLjI1cyBmYWRlLWluLXJpZ2h0LWFuaW1hdGlvbjtcclxufVxyXG5cclxuQC13ZWJraXQta2V5ZnJhbWVzIGZhZGUtaW4tcmlnaHQtYW5pbWF0aW9uIHsgXHJcbiAgICBmcm9tIHsgb3BhY2l0eTogMDsgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg1MHB4KSByb3RhdGUoMTgwZGVnKTsgfSBcclxuICAgIHRvIHsgb3BhY2l0eTogMTsgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKSByb3RhdGUoMCk7IH0gIFxyXG59XHJcbkBrZXlmcmFtZXMgZmFkZS1pbi1yaWdodC1hbmltYXRpb24geyBcclxuICAgIGZyb20geyBvcGFjaXR5OiAwOyAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDUwcHgpIHJvdGF0ZSgxODBkZWcpOyB9IFxyXG4gICAgdG8geyBvcGFjaXR5OiAxOyAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApIHJvdGF0ZSgwKTsgfSAgICBcclxufSJdfQ== */\"","import CONFIG from '../../../config';\n\nimport { NavService } from '../../services/nav.service';\nimport { Component, OnInit } from '@angular/core';\nimport { NgForm, FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\n\nimport { investmentProducts, trustProducts, bankingProducts, centralBankingProducts, accountingOptions, moduleOptions } from '../../shared/available-products';\nimport { BackendService } from '../../shared/backend.service';\nimport { NotificationService } from '../../notification/notification.service';\n\n@Component({\n\tselector: 'contact-form',\n templateUrl: './templates/contact-form.html',\n styleUrls: ['./contact.component.scss']\n})\nexport class ContactComponent implements OnInit {\n contactFormOpen: boolean = false;\n submitted: boolean = false;\n success: boolean = false;\n\n contactTypePlaceholder: string = '';\n productPlaceholder: string = 'I am Interested In...';\n discoverySourcePlaceholder: string = 'How did you hear about MIMICS?';\n\n contactTypes: string[] = ['Request a Demo', 'Request Info', 'Comments', 'Suggestions'];\n discoverySources: string[] = ['Referral', 'Web Search', 'Web Ad', 'Cold Call', 'Other'];\n\n investmentProducts: string[] = investmentProducts;\n trustProducts: string[] = trustProducts;\n bankingProducts: string[] = bankingProducts;\n centralBankingProducts: string[] = centralBankingProducts;\n accountingOptions: string[] = accountingOptions;\n moduleOptions: string[] = moduleOptions;\n\n availableSelectDefaults = {\n 'ContactMade': this.discoverySourcePlaceholder,\n 'ContactType': this.contactTypePlaceholder,\n 'Products': this.productPlaceholder\n };\n \n newEntry: FormGroup;\n\n constructor(\n public _formBuilder: FormBuilder,\n public backendService: BackendService,\n public navService: NavService,\n public notificationService: NotificationService\n ) {\n this.setForm();\n }\n\n contactFormChanges(){\n this.navService.contactOpen$.subscribe(status => this.openContact(status));\n this.navService.contactformContactTypeChange$.subscribe(value => this.changeContactType(value));\n this.navService.contactformProductChange$.subscribe(value => this.changeProduct(value));\n }\n\n ngOnInit(){\n this.contactFormChanges();\n }\n\n contactToggle(){\n this.contactFormOpen = !this.contactFormOpen;\n if(this.submitted) {\n this.notificationService.hideNotification();\n this.submitted = false;\n this.setForm();\n }\n if(this.success) { this.success = false; }\n }\n\n onSubmit(contact) { \n console.log(contact);\n this.submitted = true;\n if (this.newEntry.valid) {\n this.success = true;\n this.stripSelectPlaceholders(contact);\n this.backendService.postData(contact, CONFIG.salesRequestsApiUrlBase, false)\n // .map(response => JSON.parse(response))\n .subscribe(response => {\n //TODO: we return early for speed, but if server returns an error, notify dev?\n if (!response) {\n console.log('error processing email:', response);\n }\n }, error => {\n this.contactToggle();\n this.notificationService.showNotification({\n type: 'warning',\n message: 'There was an error processing your form- please contact sales@mimics.com directly',\n timer: 0,\n closeable: true\n });\n });\n } else {\n this.notificationService.showNotification({\n type: 'error',\n message: 'Please provide required values',\n timer: 4000\n });\n }\n }\n\n stripSelectPlaceholders(contact) {\n //remove the initial value from select lists (useful for display, but shouldn't be included in db)\n for(let item in this.availableSelectDefaults) {\n if(contact[item] === this.availableSelectDefaults[item]) {\n contact[item] = '';\n }\n }\n }\n\n onReset() { \n this.contactToggle();\n this.setForm();\n }\n\n setForm() {\n this.newEntry = this._formBuilder.group({\n 'ContactType': [''],\n 'Products': [this.productPlaceholder, Validators.required],\n 'Name': ['', Validators.required],\n 'CompanyName': ['', Validators.required],\n 'Email': ['', [Validators.required, Validators.email]],\n 'Phone': ['', Validators.required],\n 'Address': [''],\n //'Address1': [''],\n 'Country': [''],\n //'State': [''],\n //'City': [''],\n //'PostalCode': [''],\n 'ContactMade': [this.discoverySourcePlaceholder],\n 'Comments': ['']\n });\n }\n\n openContact(status){\n this.contactFormOpen = status;\n }\n\n changeContactType(value){\n this.contactFormOpen = true;\n this.newEntry.controls.ContactType.setValue(value);\n }\n \n changeProduct(value){\n this.newEntry.controls.Products.setValue(value);\n }\n}","import {Component} from '@angular/core';\r\n\r\nimport {LoadingService} from './loading.service';\r\n\r\n@Component({\r\n selector: 'loading-component',\r\n template: `\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ®\r\n \r\n

loading ...

\r\n
\r\n
\r\n `,\r\n styles: [`\r\n .fullscreen {\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n z-index: 9999;\r\n background-color: rgba(255,255,255,0.9);\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n justify-content: center;\r\n }\r\n `]\r\n})\r\n\r\nexport class LoadingComponent {\r\n constructor(public loadingService: LoadingService) { }\r\n}\r\n","import {Injectable} from '@angular/core';\r\n\r\n@Injectable()\r\nexport class LoadingService {\r\n loaderHidden: boolean = true;\r\n delay: number = 500; //delay before showing timer (default=500ms)\r\n timerHandle;\r\n\r\n constructor() {}\r\n\r\n show() {\r\n if(this.timerHandle || !this.loaderHidden) {\r\n return;\r\n }\r\n\r\n this.timerHandle = setTimeout(() => {\r\n this.loaderHidden = false;\r\n }, this.delay);\r\n }\r\n\r\n hide() {\r\n if(this.timerHandle) {\r\n clearTimeout(this.timerHandle);\r\n this.timerHandle = undefined;\r\n }\r\n this.loaderHidden = true;\r\n }\r\n}\r\n","import {Component, OnInit, OnDestroy} from '@angular/core';\r\nimport {ModalService} from './services/modal.service';\r\n\r\n@Component({\r\n selector: 'modal-component',\r\n template: `\r\n\t
\r\n\t\t
\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t{{modalService.header}}\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t
\r\n\t
\r\n\t`\r\n})\r\n\r\nexport class ModalComponent implements OnInit, OnDestroy {\r\n\r\n constructor(\r\n public modalService: ModalService\r\n ) { }\r\n\r\n ngOnInit() { }\r\n\r\n ngOnDestroy() { }\r\n}","import { Component } from '@angular/core';\nimport { NavService } from '../services/nav.service';\nimport { SearchService } from '../shared/search.service';\n\n@Component({\n selector: 'collapsed-nav',\n templateUrl: './templates/nav-collapsed-menu.html',\n})\nexport class NavCollapsedMenuComponent {\n dropdownOpen: boolean = false;\n\n navItems = [\n {title:'Software', anchor:'#find-your-software'},\n {title:'Options', anchor:'#module-options'},\n {title:'How We Help', anchor:'#how-we-help'},\n {title:'About Us', anchor:'#about'},\n ];\n constructor(public navService: NavService, public searchService: SearchService) {}\n dropdownToggle(){\n console.log('entered');\n this.dropdownOpen = !this.dropdownOpen;\n }\n openContact(status){\n console.log('entered');\n this.navService.openContact(status);\n this.navService.changeFormContactType('Request a Demo');\n this.dropdownOpen = false;\n }\n}","import { Component, Directive, ViewChild,\n AfterViewInit, QueryList, ElementRef,\n OnChanges, Input, SimpleChange, Output, EventEmitter, OnInit\n } from '@angular/core';//, View\n//import { NgFor, NgIf, NgClass } from '@angular/common';\nimport { Subscription } from 'rxjs';\n\nimport { NavService } from '../services/nav.service'\nimport { SearchService } from '../shared/search.service';\n\n@Component({\n selector: 'home-nav',\n templateUrl: './templates/nav.html',\n})\nexport class NavComponent {\n sectionInViewSubscription: Subscription;\n sectionInView;\n navItems = [\n {title:'Software', anchor:'#find-your-software'},\n {title:'Options', anchor:'#module-options'},\n {title:'How We Help', anchor:'#how-we-help'},\n {title:'About Us', anchor:'#about'},\n ];\n buttonItems = [\n {title:'Log In', pane:'login', icon:'power-off'},\n ];\n public disabled:boolean = false;\n public status:{isopen:boolean} = {isopen: false};\n\n constructor(\n public navService: NavService,\n public searchService: SearchService\n ) { }\n\n sectionInViewChange(value) {\n console.log('entered', value);\n // this.inView = value; {title:'Software', id:'software', anchor:'#software', icon:'keyboard_arrow_right'},\n // {title:'Modules Features', id:'features', anchor:'#features', icon:'keyboard_arrow_right'},\n // {title:'How We Help', id:'how-we-help', anchor:'#how-we-help', icon:'keyboard_arrow_right'},\n // console.log(value);\n this.sectionInView = value;\n // this.pageInViewClass = '';\n // if (value === 'page-top') { this.pageInView = ''; }\n // if (value === 'software' || value === 'overview-transition') { this.pageInView = 'QTZL Modules'; }\n // if (value === 'features' || value === 'crm' || value === 'accounting-rules' || value === 'interfaces') { this.pageInView = 'Module Features'; }\n // if (value === 'scalability' || value === 'ux' || value === 'accessibility') { this.pageInView = 'How We Help'; }\n // if (value === 'productivity') { this.pageInView = 'How We Help'; this.pageInViewClass = 'gold'; }\n // if (value === 'get-started') { this.pageInView = 'Get Started'; }\n }\n ngOnInit() {\n console.log('Dropdown is now: ', open);\n this.sectionInViewSubscription = this.navService.sectionInViewChange$.subscribe(sectionInView => this.sectionInViewChange(sectionInView));\n }\n ngOnDestroy() {\n if (this.sectionInViewSubscription) { this.sectionInViewSubscription.unsubscribe(); }\n }\n\n setPane(value) {\n \n this.navService.setPane(value);\n };\n \n paneSet(value) {\n \n return this.navService.currentPane === value;\n };\n \n\n public toggled(open:boolean):void {\n console.log('Dropdown is now: ', open);\n }\n\n public toggleDropdown($event:MouseEvent):void {\n \n $event.preventDefault();\n $event.stopPropagation();\n this.status.isopen = !this.status.isopen;\n }\n}","import {Component, OnInit} from '@angular/core';\r\n\r\nimport {NotificationService} from './notification.service';\r\n\r\n@Component({\r\n selector: 'notification-component',\r\n template: `\r\n
\r\n
{{notificationService.message}}
\r\n \r\n
\r\n `,\r\n styles: [`\r\n .notification-wrapper {\r\n opacity: 1;\r\n position: fixed;\r\n box-sizing: border-box;\r\n bottom: 15px;\r\n right: 15px;\r\n min-width: 250px;\r\n max-width: 50%;\r\n border-radius: 5px;\r\n color: #fff;\r\n display: flex;\r\n justify-content: space-around;\r\n align-items: center;\r\n padding: 12px;\r\n font-size: 1em;\r\n -webkit-backface-visibility: hidden;\r\n transform: translateY(0);\r\n transition: transform 0.5s ease;\r\n z-index: 9999;\r\n cursor: pointer;\r\n }\r\n .pushdown {\r\n transform: translateY(200%);\r\n }\r\n `]\r\n})\r\nexport class NotificationComponent implements OnInit {\r\n showNotice;\r\n\r\n constructor(\r\n public notificationService: NotificationService\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.showNotice = this.notificationService.showNotification;\r\n this.notificationService.manualDismiss = false;\r\n this.notificationService.timeToClose = 3000;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n//options are optional, but if provided, this will help guide types and choices\r\nexport interface NotificationOptions {\r\n message?: string;\r\n timer?: number;\r\n type?: string;\r\n closeable?: boolean;\r\n}\r\n\r\n@Injectable()\r\nexport class NotificationService {\r\n notfications: any[];\r\n isNotificationHidden: boolean = true;\r\n manualDismiss: boolean = false;\r\n timeToClose: any = 3000;\r\n timerHandle: any;\r\n message: string;\r\n bgType: string;\r\n iconType: string;\r\n\r\n constructor() { }\r\n\r\n showNotification(options?: NotificationOptions) {\r\n if(!this.isNotificationHidden) {\r\n return;\r\n }\r\n\r\n if(options && (options.timer || options.timer === 0)) {\r\n //special case for timer = 0 (a simple check will always return false)\r\n this.timeToClose = options.timer;\r\n } else {\r\n this.timeToClose = 3000;\r\n }\r\n\r\n this.message = (options && options.message) || 'System Notification';\r\n const type = (options && options.type) || 'default';\r\n this.manualDismiss = (options && options.closeable) || false;\r\n\r\n switch (type) {\r\n case 'success':\r\n this.bgType = 'bg-success';\r\n this.iconType = 'fa-thumbs-o-up';\r\n break;\r\n case 'error':\r\n this.bgType = 'bg-danger';\r\n this.iconType = 'fa-asterisk';\r\n break;\r\n case 'warning':\r\n this.bgType = 'bg-warning';\r\n this.iconType = 'fa-exclamation-triangle';\r\n break;\r\n case 'default':\r\n default:\r\n this.bgType = 'bg-primary';\r\n this.iconType = 'fa-exclamation-triangle';\r\n break;\r\n }\r\n\r\n this.isNotificationHidden = false;\r\n\r\n //if timer is passed in config and set to 0, we don't want to hide it after a timeout (user has to click to dismiss\r\n if (this.timeToClose > 0) {\r\n this.setTimers();\r\n } else {\r\n this.manualDismiss = true;\r\n }\r\n }\r\n\r\n hideNotification() {\r\n if(this.timerHandle) {\r\n clearTimeout(this.timerHandle);\r\n this.timerHandle = null;\r\n }\r\n this.isNotificationHidden = true;\r\n this.resetNotificationInfo;\r\n }\r\n\r\n resetNotificationInfo() {\r\n this.message = '';\r\n this.bgType = '';\r\n this.iconType = '';\r\n this.manualDismiss = false;\r\n this.timeToClose = 3000;\r\n }\r\n\r\n setTimers() {\r\n //remove css effect takes 500ms - make sure that completes before removing content from notice.\r\n //let timePadding = this.timeToClose + 600;\r\n this.timerHandle = setTimeout(() => {\r\n this.isNotificationHidden = true;\r\n setTimeout(() => {\r\n this.resetNotificationInfo();\r\n }, 600);\r\n }, this.timeToClose);\r\n }\r\n}\r\n","import { Component, OnInit, OnDestroy, Inject, ViewChild, ElementRef } from '@angular/core';\r\nimport { NgForm, FormBuilder, FormControl, FormGroup } from '@angular/forms';\r\nimport { Router } from '@angular/router';\r\n\r\nimport { NavService } from '../services/nav.service';\r\nimport { SearchService } from '../shared/search.service';\r\nimport { IfAutofocus } from '../services/ngif-autofocus.directive';\r\nimport { allProductsForSearch } from '../shared/available-products';\r\n\r\nimport { Subscription } from 'rxjs';\r\n\r\n\r\n@Component({\r\n selector: 'search',\r\n templateUrl: './search.template.html',\r\n styleUrls: ['./search.styles.scss']\r\n})\r\nexport class SearchComponent implements OnInit, OnDestroy {\r\n searchTerm: FormControl;\r\n searchResults: string = '';\r\n searchArray: string[] = ['name', 'module', 'desc'];\r\n items: Object[] = []; //items on display (page)\r\n originalItems: Object[] = allProductsForSearch; //original items (for reset)\r\n totalEntries: number = 0;\r\n\r\n allSubscription: Subscription;\r\n SearchProducts: FormGroup;\r\n\r\n constructor(\r\n public navService: NavService,\r\n public router: Router,\r\n public searchService: SearchService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.searchTerm = new FormControl();\r\n this.SearchProducts = new FormGroup({\r\n searchTerm: this.searchTerm\r\n });\r\n\r\n this.allSubscription = this.searchTerm.valueChanges\r\n .subscribe(result => {\r\n let itemsToSearch = this.originalItems;\r\n this.searchService.findItemsFromMultiple(result, itemsToSearch, this.searchArray)\r\n .then(allFiltered => {\r\n this.items = result.length > 0 ? allFiltered : [];\r\n this.totalEntries = this.items.length;\r\n });\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.allSubscription.unsubscribe();\r\n }\r\n\r\n clearSearch() {\r\n this.searchService.closeSearch();\r\n this.searchTerm.setValue('');\r\n this.items = [];\r\n }\r\n\r\n goToSoftware(evt) {\r\n evt.preventDefault();\r\n this.clearSearch();\r\n this.router.navigateByUrl('/')\r\n .then(result => {\r\n this.navService.goToAnchor('#find-your-software');\r\n });\r\n }\r\n\r\n goToContact(evt) {\r\n evt.preventDefault();\r\n this.clearSearch();\r\n this.navService.openContactDefault();\r\n }\r\n\r\n navigateToProduct(path, evt?) {\r\n if(evt) { evt.preventDefault(); }\r\n this.clearSearch();\r\n this.router.navigateByUrl(`/${path}`);\r\n }\r\n}","export default \"#search {\\n padding: 2em 1em 1em 1em;\\n position: fixed;\\n top: 0;\\n left: 0;\\n height: 100vh;\\n width: 100%;\\n z-index: 100;\\n background-color: rgba(129, 202, 214, 0.98);\\n display: -webkit-box;\\n display: -ms-flexbox;\\n display: flex;\\n -webkit-box-pack: center;\\n -ms-flex-pack: center;\\n justify-content: center;\\n -webkit-box-align: start;\\n -ms-flex-align: start;\\n align-items: flex-start;\\n -webkit-animation: 0.5s bg-fade-in;\\n animation: 0.5s bg-fade-in;\\n cursor: default; }\\n #search #search-form-box {\\n position: absolute;\\n left: 12.5%;\\n right: 12.5%;\\n width: 75%;\\n min-width: 300px;\\n height: 90%; }\\n #search #search-form-box mat-form-field {\\n font-size: 1.5rem; }\\n #search #search-form-box input[type=text] {\\n margin: 0;\\n font-weight: 200; }\\n #search .search-backdrop {\\n position: absolute;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n cursor: pointer; }\\n #search h1 {\\n position: relative;\\n margin: 0;\\n -webkit-animation: 1s fade-in-down;\\n animation: 1s fade-in-down; }\\n #search .search-results {\\n height: 90%;\\n width: 100%;\\n position: absolute;\\n overflow: auto;\\n margin: 1rem 0; }\\n #search .search-notice {\\n font-size: 1.25rem;\\n font-weight: 100; }\\n #search .options {\\n display: -webkit-box;\\n display: -ms-flexbox;\\n display: flex;\\n -ms-flex-pack: distribute;\\n justify-content: space-around;\\n -webkit-box-align: center;\\n -ms-flex-align: center;\\n align-items: center;\\n text-align: center;\\n margin-top: 4.5rem; }\\n #search .options div {\\n margin: 1.5rem 0; }\\n #search .options a {\\n display: block;\\n color: #57acbc;\\n cursor: pointer;\\n font-size: 2rem;\\n -webkit-transition: -webkit-transform 0.25s ease;\\n transition: -webkit-transform 0.25s ease;\\n transition: transform 0.25s ease;\\n transition: transform 0.25s ease, -webkit-transform 0.25s ease; }\\n #search .options a:hover {\\n color: #6ED7EA;\\n -webkit-transform: scale(1.05);\\n transform: scale(1.05); }\\n @media (max-width: 500px) {\\n #search .options {\\n display: block;\\n margin-top: 2.5rem; }\\n #search .options div {\\n width: 100%;\\n margin-bottom: 1.5rem; } }\\n #search .search-results-list {\\n padding: 0;\\n margin: 2rem 0 0 0; }\\n #search .search-results-list a {\\n text-decoration: none;\\n color: inherit; }\\n #search .search-results-list a:hover {\\n text-decoration: none; }\\n #search .search-results-list h2 {\\n display: -webkit-box;\\n display: -ms-flexbox;\\n display: flex;\\n -ms-flex-wrap: wrap;\\n flex-wrap: wrap;\\n -webkit-box-pack: justify;\\n -ms-flex-pack: justify;\\n justify-content: space-between;\\n -webkit-box-align: center;\\n -ms-flex-align: center;\\n align-items: center;\\n color: #003842; }\\n #search .search-results-list h2 a:hover {\\n cursor: pointer;\\n color: #0087a1; }\\n #search .search-results-list h2 span {\\n font-size: 12px;\\n font-style: italic;\\n opacity: 0.9; }\\n #search .search-results-list li {\\n padding: 0.5rem 0;\\n margin: 1rem 1rem 2.5rem 0;\\n list-style-type: none; }\\n #search .related-products {\\n margin-top: 0.5rem; }\\n #search .related-products span {\\n opacity: 0.9;\\n font-weight: 100; }\\n #search .product-details-wrapper {\\n display: -webkit-box;\\n display: -ms-flexbox;\\n display: flex;\\n -ms-flex-wrap: wrap;\\n flex-wrap: wrap;\\n -webkit-box-pack: start;\\n -ms-flex-pack: start;\\n justify-content: flex-start; }\\n #search .product-details-wrapper span {\\n padding: 3px;\\n font-size: 0.85rem;\\n border-radius: 3px;\\n margin-right: 6px;\\n margin-bottom: 6px;\\n background-color: #57acbc;\\n color: #111;\\n font-weight: 400 !important;\\n cursor: pointer; }\\n #search .product-details-wrapper span:hover {\\n background-color: #6ED7EA;\\n opacity: 1; }\\n .cancel {\\n position: absolute;\\n right: 5px;\\n bottom: 5px;\\n cursor: pointer;\\n font-size: 2rem;\\n opacity: 0.75;\\n -webkit-transition: opacity 0.3s ease;\\n transition: opacity 0.3s ease; }\\n .cancel:hover {\\n opacity: 1; }\\n ::-webkit-scrollbar {\\n width: 8px;\\n border-radius: 8px;\\n background-color: #999; }\\n ::-webkit-scrollbar-thumb {\\n border-radius: 8px;\\n background-color: #333; }\\n ::-webkit-scrollbar-track {\\n border-radius: 8px;\\n background-color: #999; }\\n @-webkit-keyframes bg-fade-in {\\n from {\\n opacity: 0; }\\n to {\\n opacity: 1; } }\\n @keyframes bg-fade-in {\\n from {\\n opacity: 0; }\\n to {\\n opacity: 1; } }\\n @-webkit-keyframes bg-fade-out {\\n from {\\n opacity: 1; }\\n to {\\n opacity: 0; } }\\n @keyframes bg-fade-out {\\n from {\\n opacity: 1; }\\n to {\\n opacity: 0; } }\\n @-webkit-keyframes fade-in-down {\\n from {\\n opacity: 0;\\n -webkit-transform: translateY(-150px);\\n transform: translateY(-150px); }\\n to {\\n opacity: 1;\\n -webkit-transform: translateY(0);\\n transform: translateY(0); } }\\n @keyframes fade-in-down {\\n from {\\n opacity: 0;\\n -webkit-transform: translateY(-150px);\\n transform: translateY(-150px); }\\n to {\\n opacity: 1;\\n -webkit-transform: translateY(0);\\n transform: translateY(0); } }\\n @-webkit-keyframes fade-out-up {\\n from {\\n opacity: 1;\\n -webkit-transform: translateY(0);\\n transform: translateY(0); }\\n to {\\n opacity: 0;\\n -webkit-transform: translateY(-150px);\\n transform: translateY(-150px); } }\\n @keyframes fade-out-up {\\n from {\\n opacity: 1;\\n -webkit-transform: translateY(0);\\n transform: translateY(0); }\\n to {\\n opacity: 0;\\n -webkit-transform: translateY(-150px);\\n transform: translateY(-150px); } }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2VhcmNoL0Q6XFxSYWdoYXZhIHByb2plY3RzXFxNSU1JQ1NDT00yMDIxXFxmcm9udGVuZC9zcmNcXGFwcFxcc2VhcmNoXFxzZWFyY2guc3R5bGVzLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDSSx3QkFBd0I7RUFDeEIsZUFBZTtFQUNmLE1BQU07RUFDTixPQUFPO0VBQ1AsYUFBYTtFQUNiLFdBQVc7RUFDWCxZQUFZO0VBRVosMkNBQTJDO0VBQzNDLG9CQUFhO0VBQWIsb0JBQWE7RUFBYixhQUFhO0VBQ2Isd0JBQXVCO01BQXZCLHFCQUF1QjtVQUF2Qix1QkFBdUI7RUFDdkIsd0JBQXVCO01BQXZCLHFCQUF1QjtVQUF2Qix1QkFBdUI7RUFDdkIsa0NBQTBCO1VBQTFCLDBCQUEwQjtFQUMxQixlQUFlLEVBQUE7RUFkbkI7SUFpQlEsa0JBQWtCO0lBQ2xCLFdBQVc7SUFDWCxZQUFZO0lBQ1osVUFBVTtJQUNWLGdCQUFnQjtJQUNoQixXQUFXLEVBQUE7RUF0Qm5CO01Bd0JZLGlCQUFpQixFQUFBO0VBeEI3QjtNQThCWSxTQUFTO01BQ1QsZ0JBQWdCLEVBQUE7RUEvQjVCO0lBb0NNLGtCQUFrQjtJQUNsQixNQUFNO0lBQ04sUUFBUTtJQUNSLFNBQVM7SUFDVCxPQUFPO0lBQ1AsZUFBZSxFQUFBO0VBekNyQjtJQTZDTSxrQkFBa0I7SUFDbEIsU0FBUztJQUNULGtDQUEwQjtZQUExQiwwQkFBMEIsRUFBQTtFQS9DaEM7SUFtRFEsV0FBVztJQUNYLFdBQVc7SUFDWCxrQkFBa0I7SUFDbEIsY0FBYztJQUNkLGNBQWMsRUFBQTtFQXZEdEI7SUEyRFEsa0JBQWtCO0lBQ2xCLGdCQUFnQixFQUFBO0VBNUR4QjtJQWdFUSxvQkFBYTtJQUFiLG9CQUFhO0lBQWIsYUFBYTtJQUNiLHlCQUE2QjtRQUE3Qiw2QkFBNkI7SUFDN0IseUJBQW1CO1FBQW5CLHNCQUFtQjtZQUFuQixtQkFBbUI7SUFDbkIsa0JBQWtCO0lBQ2xCLGtCQUFrQixF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QTZCLEVBQUEsRUFBQSIsImZpbGUiOiJzcmMvYXBwL3NlYXJjaC9zZWFyY2guc3R5bGVzLnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIjc2VhcmNoIHtcclxuICAgIHBhZGRpbmc6IDJlbSAxZW0gMWVtIDFlbTtcclxuICAgIHBvc2l0aW9uOiBmaXhlZDtcclxuICAgIHRvcDogMDtcclxuICAgIGxlZnQ6IDA7XHJcbiAgICBoZWlnaHQ6IDEwMHZoO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICB6LWluZGV4OiAxMDA7XHJcbiAgICAvLyBjb2xvcjogI0Y4RjhGRjtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTI5LCAyMDIsIDIxNCwgMC45OCk7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcclxuICAgIGFuaW1hdGlvbjogMC41cyBiZy1mYWRlLWluO1xyXG4gICAgY3Vyc29yOiBkZWZhdWx0O1xyXG5cclxuICAgICNzZWFyY2gtZm9ybS1ib3gge1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICBsZWZ0OiAxMi41JTtcclxuICAgICAgICByaWdodDogMTIuNSU7XHJcbiAgICAgICAgd2lkdGg6IDc1JTtcclxuICAgICAgICBtaW4td2lkdGg6IDMwMHB4O1xyXG4gICAgICAgIGhlaWdodDogOTAlOyBcclxuICAgICAgICBtYXQtZm9ybS1maWVsZCB7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS41cmVtO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaW5wdXRbdHlwZT10ZXh0XSB7XHJcbiAgICAgICAgICAgIC8vIGNvbG9yOiAjZmZmO1xyXG4gICAgICAgICAgICAvLyBmb250LXNpemU6IDJyZW07XHJcbiAgICAgICAgICAgIG1hcmdpbjogMDtcclxuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDIwMDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLnNlYXJjaC1iYWNrZHJvcCB7XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgdG9wOiAwO1xyXG4gICAgICByaWdodDogMDtcclxuICAgICAgYm90dG9tOiAwO1xyXG4gICAgICBsZWZ0OiAwO1xyXG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIGgxIHtcclxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICBtYXJnaW46IDA7XHJcbiAgICAgIGFuaW1hdGlvbjogMXMgZmFkZS1pbi1kb3duO1xyXG4gICAgfVxyXG5cclxuICAgIC5zZWFyY2gtcmVzdWx0cyB7XHJcbiAgICAgICAgaGVpZ2h0OiA5MCU7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xyXG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xyXG4gICAgfVxyXG5cclxuICAgIC5zZWFyY2gtbm90aWNlIHtcclxuICAgICAgICBmb250LXNpemU6IDEuMjVyZW07XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IDEwMDtcclxuICAgIH1cclxuXHJcbiAgICAub3B0aW9ucyB7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcclxuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICBtYXJnaW4tdG9wOiA0LjVyZW07XHJcblxyXG4gICAgICAgIGRpdiB7XHJcbiAgICAgICAgICAgIG1hcmdpbjogMS41cmVtIDA7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBhIHtcclxuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgIGNvbG9yOiAjNTdhY2JjO1xyXG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMnJlbTtcclxuICAgICAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMjVzIGVhc2U7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBhOmhvdmVyIHtcclxuICAgICAgICAgICAgY29sb3I6ICM2RUQ3RUE7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wNSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA1MDBweCkge1xyXG4gICAgICAgIC5vcHRpb25zIHtcclxuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDIuNXJlbTtcclxuICAgIFxyXG4gICAgICAgICAgICBkaXYge1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLnNlYXJjaC1yZXN1bHRzLWxpc3Qge1xyXG4gICAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgICAgbWFyZ2luOiAycmVtIDAgMCAwO1xyXG5cclxuICAgICAgICBhIHtcclxuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gICAgICAgICAgICBjb2xvcjogaW5oZXJpdDtcclxuICAgICAgICB9XHJcbiAgICAgICAgXHJcbiAgICAgICAgYTpob3ZlciB7XHJcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGgyIHtcclxuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xyXG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAgICAgIGNvbG9yOiAjMDAzODQyO1xyXG5cclxuICAgICAgICAgICAgYTpob3ZlciB7XHJcbiAgICAgICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogIzAwODdhMTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgc3BhbiB7XHJcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDEycHg7XHJcbiAgICAgICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XHJcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLnNlYXJjaC1yZXN1bHRzLWxpc3QgbGkge1xyXG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwO1xyXG4gICAgICAgIG1hcmdpbjogMXJlbSAxcmVtIDIuNXJlbSAwO1xyXG4gICAgICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcclxuICAgIH1cclxuXHJcbiAgICAucmVsYXRlZC1wcm9kdWN0cyB7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xyXG5cclxuICAgICAgICBzcGFuIHtcclxuICAgICAgICAgICAgb3BhY2l0eTogMC45O1xyXG4gICAgICAgICAgICBmb250LXdlaWdodDogMTAwO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAucHJvZHVjdC1kZXRhaWxzLXdyYXBwZXIge1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xyXG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcclxuXHJcbiAgICAgICAgc3BhbiB7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDNweDtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAwLjg1cmVtO1xyXG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7XHJcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogNnB4O1xyXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA2cHg7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM1N2FjYmM7XHJcbiAgICAgICAgICAgIGNvbG9yOiAjMTExO1xyXG4gICAgICAgICAgICBmb250LXdlaWdodDogNDAwICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgICAgICB9XHJcbiAgICAgICAgc3Bhbjpob3ZlciB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM2RUQ3RUE7XHJcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4uY2FuY2VsIHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHJpZ2h0OiA1cHg7XHJcbiAgICBib3R0b206IDVweDtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIGZvbnQtc2l6ZTogMnJlbTtcclxuICAgIG9wYWNpdHk6IDAuNzU7XHJcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZTtcclxufVxyXG4uY2FuY2VsOmhvdmVyIHtcclxuICAgIG9wYWNpdHk6IDE7XHJcbn1cclxuXHJcbjo6LXdlYmtpdC1zY3JvbGxiYXIge1xyXG4gICAgd2lkdGg6IDhweDtcclxuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICM5OTk7XHJcbn1cclxuOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XHJcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzMzO1xyXG59XHJcbjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sge1xyXG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzk5OTtcclxufVxyXG5cclxuQGtleWZyYW1lcyBiZy1mYWRlLWluIHtcclxuICAgIGZyb20ge29wYWNpdHk6IDB9IHRvIHtvcGFjaXR5OiAxfVxyXG59XHJcblxyXG5cclxuQGtleWZyYW1lcyBiZy1mYWRlLW91dCB7XHJcbiAgICBmcm9tIHtvcGFjaXR5OiAxfSB0byB7b3BhY2l0eTogMH1cclxufVxyXG5cclxuQGtleWZyYW1lcyBmYWRlLWluLWRvd24ge1xyXG4gICAgZnJvbSB7XHJcbiAgICAgICAgb3BhY2l0eTogMDtcclxuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTE1MHB4KTtcclxuICAgIH1cclxuICAgIHRvIHtcclxuICAgICAgICBvcGFjaXR5OiAxO1xyXG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcclxuICAgIH1cclxufVxyXG5cclxuXHJcbkBrZXlmcmFtZXMgZmFkZS1vdXQtdXAge1xyXG4gICAgZnJvbSB7XHJcbiAgICAgICAgb3BhY2l0eTogMTtcclxuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XHJcbiAgICB9XHJcbiAgICB0byB7XHJcbiAgICAgICAgb3BhY2l0eTogMDtcclxuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTE1MHB4KTtcclxuICAgIH1cclxufSJdfQ== */\"","import { Injectable } from '@angular/core';\n// import { Product } from './product';\nimport { SOFTWARE } from './product-list';\n@Injectable()\nexport class DataService {\n// getSoftwareList(): Promise {\n getSoftwareList(): Promise {\n return Promise.resolve(SOFTWARE);\n }\n}","import {Injectable, Output} from '@angular/core';\r\n\r\n@Injectable()\r\nexport class ModalService {\r\n modalBackdropHidden: boolean = true;\r\n header: string;\r\n body: string;\r\n confirmModalHidden: boolean = true;\r\n callback;\r\n callbackName;\r\n confirmButton;\r\n confirmCallback;\r\n element;\r\n\r\n constructor() {\r\n\r\n }\r\n\r\n closeModal() {\r\n this.modalBackdropHidden = true;\r\n }\r\n\r\n //show a modal dialog- pass it a config object with options, or nothing for a basic modal:\r\n\t/*\r\n\t\theadline: string (the headline for the modal)\r\n\t\tbody: string (body of the modal)\r\n\t\ttype(optional): 'confirm' (adds ok/cancel buttons to bottom)\r\n\t\telement(options, required with type): reference to 'this' of original object\r\n\t*/\r\n showModal(config) {\r\n //set up defaults just in case\r\n let type = config && config.type ? config.type : 'none';\r\n let headline = config && config.headline ? config.headline : 'Default Modal Headline';\r\n let body = config && config.body ? config.body : 'This is the default modal bodytext';\r\n this.callback = config && config.callback ? config.callback : '';\r\n this.element = config && config.element ? config.element : 'none';\r\n\r\n if (type === 'confirm') {\r\n this.confirmModalHidden = false;\r\n //tricky here- we need the 'this' binding from the calling component- best way is to pass it in the config object- see contactedit.component.ts for process\r\n this.confirmCallback = this.callback.bind(this.element);\r\n }\r\n this.header = headline;\r\n this.body = body;\r\n this.modalBackdropHidden = false;\r\n }\r\n}","import { Injectable, Inject } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { Headers, Http } from '@angular/http';\nimport { Subject } from 'rxjs';\nimport { Title, Meta } from '@angular/platform-browser';\n\nimport { PageScrollConfig, PageScrollService, PageScrollInstance } from 'ng2-page-scroll';\n\n@Injectable()\nexport class NavService {\n sectionInView;\n engine = '';\n product;\n title;\n description;\n subModule;\n engineRoute;\n productRoute;\n subModuleRoute;\n url;\n scrollToComponent;\n currentPane = '';\n contactOpen;\n\n // Observable string sources\n private sectionInViewChangeConfirmedSource = new Subject();\n private dataChangeConfirmedSource = new Subject();\n private engineChangeConfirmedSource = new Subject();\n private productChangeConfirmedSource = new Subject();\n private subModuleChangeConfirmedSource = new Subject();\n private engineRouteChangeConfirmedSource = new Subject();\n private productRouteChangeConfirmedSource = new Subject();\n private subModuleRouteChangeConfirmedSource = new Subject();\n private contactOpenConfirmedSource = new Subject();\n private formContactTypeChangeConfirmedSource = new Subject();\n private formProductChangeConfirmedSource = new Subject();\n private detailTabChangeConfirmedSource = new Subject();\n // private scrollTriggerConfirmedSource = new Subject();\n\n // Observable string streams\n // dataChangeConfirmed$ = this.dataChangeConfirmedSource.asObservable();\n sectionInViewChange$ = this.sectionInViewChangeConfirmedSource.asObservable();\n dashSwitch$ = this.dataChangeConfirmedSource.asObservable();\n engineChange$ = this.engineChangeConfirmedSource.asObservable();\n subModuleChange$ = this.subModuleChangeConfirmedSource.asObservable();\n productChange$ = this.productChangeConfirmedSource.asObservable();\n engineRouteChange$ = this.engineRouteChangeConfirmedSource.asObservable();\n productRouteChange$ = this.productRouteChangeConfirmedSource.asObservable();\n subModuleRouteChange$ = this.subModuleRouteChangeConfirmedSource.asObservable();\n contactOpen$ = this.contactOpenConfirmedSource.asObservable();\n contactformContactTypeChange$ = this.formContactTypeChangeConfirmedSource.asObservable();\n contactformProductChange$ = this.formProductChangeConfirmedSource.asObservable();\n detailTabChange$ = this.detailTabChangeConfirmedSource.asObservable();\n // scrollTrigger$ = this.scrollTriggerConfirmedSource.asObservable();\n\n scrollSpy(sectionInView: string) { \n this.sectionInView = sectionInView;\n this.sectionInViewChangeConfirmedSource.next(sectionInView);\n }\n\n constructor(\n private http: Http,\n private titleService: Title,\n private metaService: Meta,\n private pageScrollService: PageScrollService,\n @Inject(DOCUMENT) private document: any\n ) {\n PageScrollConfig.defaultScrollOffset = 35;\n PageScrollConfig.defaultDuration = 250;\n }\n\n paneSet(value) {\n console.log('entered');\n return this.currentPane === value;\n }\n\n setPane(value) {\n console.log('entered');\n return this.currentPane = value;\n };\n\n dashPaneChange(currentPane: string) {\n console.log('entered');\n this.currentPane = currentPane;\n // this.dataChangeConfirmedSource.next(currentPane);\n }\n engineChange(engine: string, engineRoute: string, description: string, keywords: string) {\n console.log('entered');\n this.engine = engine;\n this.engineRoute = engineRoute;\n this.product = '';\n this.productRoute = '';\n this.subModule = '';\n this.subModuleRoute = '';\n this.engineChangeConfirmedSource.next(engine);\n this.engineRouteChangeConfirmedSource.next(engineRoute);\n this.metaChange(this.engine, description, keywords);\n }\n productChange(product: string, productRoute: string, description: string, keywords: string) {\n console.log('entered');\n this.product = product;\n this.productRoute = productRoute;\n this.subModule = '';\n this.subModuleRoute = '';\n this.productChangeConfirmedSource.next(product);\n this.productRouteChangeConfirmedSource.next(productRoute);\n this.metaChange(this.product, description, keywords);\n }\n\n subModuleChange(subModule: string, subModuleRoute: string, product: string, productRoute: string, description: string, keywords: string) {\n this.product = product;\n console.log('entered');\n this.productRoute = productRoute;\n this.subModule = subModule;\n this.subModuleRoute = subModuleRoute;\n this.productChangeConfirmedSource.next(product);\n this.productRouteChangeConfirmedSource.next(productRoute);\n this.subModuleChangeConfirmedSource.next(subModule);\n this.subModuleRouteChangeConfirmedSource.next(subModuleRoute);\n this.metaChange(this.subModule, description, keywords);\n }\n\n resetAll() {\n console.log('entered');\n this.product = '';\n this.productRoute = '';\n this.subModule = '';\n this.subModuleRoute = '';\n this.productChangeConfirmedSource.next(this.product);\n this.productRouteChangeConfirmedSource.next(this.productRoute);\n this.subModuleChangeConfirmedSource.next(this.subModule);\n this.subModuleRouteChangeConfirmedSource.next(this.subModuleRoute);\n this.metaChange(this.subModule, '', '');\n }\n\n metaChange(title, description, keywords, prerenderCode?): void {\n console.log('entered');\n console.log(title, description, keywords, prerenderCode);\n if (title === 'MIMICS Financial Software' || !title) {\n this.title = 'MIMICS Financial Software';\n } else {\n this.title = title + ' | MIMICS Financial Software';\n }\n\n //check for window object first (can throw error in ssr)\n this.url = window ? window.location.href : 'https://www.mimics.com';\n\n this.description = description;\n\n this.titleService.setTitle(this.title);\n\n this.metaService.updateTag({ content: this.title }, \"name='twitter:title'\");\n this.metaService.updateTag({ content: keywords }, \"name='keywords'\");\n this.metaService.updateTag({ content: this.description }, \"name='description'\");\n this.metaService.updateTag({ content: this.description }, \"name='twitter:description'\");\n this.metaService.updateTag({ content: this.title }, \"property='og:title'\");\n this.metaService.updateTag({ content: this.description }, \"property='og:description'\");\n this.metaService.updateTag({ content: this.url }, \"property='og:url'\");\n if (prerenderCode) { this.setHttpStatusCode(prerenderCode); }\n }\n\n setHttpStatusCode(code: string = '200'): void {\n this.metaService.updateTag({ content: code, name: 'prerender-status-code' });\n }\n\n openContact(status: boolean) {\n console.log('entered');\n this.contactOpen = status;\n this.contactOpenConfirmedSource.next(status);\n }\n\n changeFormContactType(formContactTypeChange: string) {\n console.log('entered');\n this.formContactTypeChangeConfirmedSource.next(formContactTypeChange);\n }\n\n changeFormProduct(formProductChange: string) {\n console.log('entered');\n this.formProductChangeConfirmedSource.next(formProductChange);\n }\n\n openContactDefault() {\n console.log('entered');\n this.openContact(true);\n this.changeFormContactType('Contact Type');\n this.changeFormProduct('I am Interested In...');\n }\n\n openContactProductDemo(product, evt?) {\n console.log('entered');\n if (evt) { evt.preventDefault(); }\n this.openContact(true);\n this.changeFormContactType('Request a Demo');\n this.changeFormProduct(product);\n }\n\n openContactProductMoreInfo(product, evt?) {\n console.log('entered');\n if (evt) { evt.preventDefault(); }\n this.openContact(true);\n this.changeFormContactType('Request Info');\n this.changeFormProduct(product);\n }\n\n changeDetailTab(detailTabChange: string) {\n console.log('entered');\n this.detailTabChangeConfirmedSource.next(detailTabChange);\n }\n\n goToAnchor(anchorName) {\n console.log('entered');\n let pageScrollInstance: PageScrollInstance = PageScrollInstance.simpleInstance(this.document, anchorName);\n this.pageScrollService.start(pageScrollInstance);\n };\n}","import { AfterViewInit, Directive, ElementRef } from '@angular/core';\r\n\r\n/*\r\nnecessary if you have an input element inside an ngIf div you want to autofocus on creation (regular autofocus will work first time, but only first time)\r\n*/\r\n\r\n@Directive({ selector: '[ifautofocus]' })\r\nexport class IfAutofocus implements AfterViewInit {\r\n constructor(\r\n private elementRef: ElementRef\r\n ) {}\r\n\r\n ngAfterViewInit() {\r\n this.elementRef.nativeElement.focus();\r\n }\r\n}","// import { Product } from './product';\n// export const SOFTWARE: Product[] = [\nexport const SOFTWARE: any = \n{\n \"name\": \"Find Your Software\",\n \"industries\":[],\n \"children\": [\n {\n \"name\": \"Full Product List\",\n \"industries\":[],\n \"children\": [\n {\n \"name\": \"Accounting\",\n \"children\": [\n {\n \"name\":\"Accounts Payable\", \n \"industries\":[\n \" BrokerageFirms \",\n \" CentralBanks \",\n \" CommercialBanks \",\n \"Corporations\",\n \"FundManagers\",\n \"InvestmentManagers\",\n \"InsuranceCompanies\",\n \"Municipalities\"\n ],\n \"route\": \"accounts-payable\"\n },\n {\n \"name\":\"Accounts Receivable\", \n \"industries\":[\n \" CommercialBanks \"\n ],\n \"route\":\"accounts-receivable-software\"\n },\n {\n \"name\":\"Account Reconciliation\", \n \"industries\":[\n \" BrokerageFirms \",\n \" CentralBanks \",\n \" CommercialBanks \",\n \"Corporations\",\n \"FundManagers\",\n \"InvestmentManagers\",\n \"InsuranceCompanies\"\n ],\n \"route\":\"account-reconciliation\"\n },\n {\n \"name\":\"Fixed Assets\", \n \"industries\":[\n \" CommercialBanks \",\n \"Municipalities\",\n \"RealEstate\"\n ],\n \"route\":\"fixed-assets-management\"\n },\n {\n \"name\":\"General Ledger\", \n \"industries\":[\n \" BrokerageFirms \",\n \" CentralBanks \",\n \" CommercialBanks \",\n \"Corporations\",\n \"FundManagers\",\n \"InvestmentManagers\",\n \"InsuranceCompanies\",\n \"Municipalities\",\n \"RealEstate\"\n ],\n \"route\":\"general-ledger\"\n },\n {\n \"name\":\"Payment Processing\", \n \"industries\":[\n \" CommercialBanks \"\n ],\n \"route\":\"payment-processing\"\n },\n {\n \"name\":\"Purchasing\", \n \"industries\":[\n \" BrokerageFirms \",\n \" CentralBanks \",\n \" CommercialBanks \",\n \"Corporations\",\n \"FundManagers\",\n \"InvestmentManagers\",\n \"InsuranceCompanies\"\n ],\n \"route\":\"purchasing-software\"\n }\n ],\n \"industries\": [\n \" BrokerageFirms \",\n \" CentralBanks \",\n \" CommercialBanks \",\n \"Corporations\",\n \"FundManagers\",\n \"InvestmentManagers\",\n \"InsuranceCompanies\",\n \"Municipalities\",\n \"RealEstate\"\n ]\n },\n {\n \"name\": \"Bank Operations\",\n \"children\": [\n {\n \"name\":\"Cash Orders\", \n \"industries\": [\n \" CentralBanks \",\n \" CommercialBanks \"\n ],\n \"route\":\"cash-order-application\",\n },\n {\n \"name\":\"Documentary Collections\", \n \"industries\": [\n \" CommercialBanks \"\n ],\n \"route\":\"documentary-collections-software\",\n },\n {\n \"name\":\"Fed Funds\", \n \"industries\": [\n \" CommercialBanks \"\n ],\n \"route\":\"fed-funds\",\n },\n {\n \"name\":\"Forex Cashier\", \n \"industries\":[\n \" CentralBanks \",\n \" CommercialBanks \"\n ],\n \"route\":\"forex-cashier\",\n },\n {\n \"name\":\"Item Collection\", \n \"industries\":[\n \" CommercialBanks \"\n ],\n \"route\":\"item-collections\",\n },\n {\n \"name\":\"Safekeeping\", \n \"industries\":[\n \" CommercialBanks \"\n ],\n \"route\":\"safekeeping-software\",\n }\n ],\n \"industries\": [\n \" CentralBanks \",\n \" CommercialBanks \"\n ]\n },\n {\n \"name\": \"Central Bank Operations\",\n \"children\": [\n {\n \"name\":\"Auction Processing\", \n \"industries\":[\n \" CentralBanks \"\n ],\n \"route\":\"central-bank-auction-processing\",\n },\n {\n \"name\":\"Bond Issuance\", \n \"industries\":[\n \" CentralBanks \"\n ],\n \"route\":\"central-bank-bonds\",\n },\n {\n \"name\":\"Currency Management\", \n \"industries\":[\n \" CentralBanks \"\n ],\n \"route\":\"central-bank-currency-management\",\n },\n {\n \"name\":\"Dormant Accounts\", \n \"industries\":[\n \" CentralBanks \"\n ],\n \"route\":\"central-bank-dormant-accounts\",\n },\n {\n \"name\":\"ExchangeControl\", \n \"industries\":[\n \" CentralBanks \"\n ],\n \"route\":\"central-bank-exchange-control\",\n },\n {\n \"name\":\"Foreign Exchange Management\", \n \"industries\":[\n \" CentralBanks \"\n ],\n \"route\":\"central-bank-forex\",\n },\n {\n \"name\":\"Numismatic Management\", \n \"industries\":[\n \" CentralBanks \"\n ],\n \"route\":\"central-bank-numismatic-management\",\n },\n {\n \"name\":\"Portfolio Management for Central Bank\", \n \"industries\":[\n \" CentralBanks \"\n ],\n \"route\":\"portfolio-management/central-bank-portfolio\",\n },\n {\n \"name\":\"Treasury Bills\", \n \"industries\":[\n \" CentralBanks \"\n ],\n \"route\":\"central-bank-treasury-bills\",\n },\n {\n \"name\":\"Teller\", \n \"industries\":[\n \" CentralBanks \",\n \" CommercialBanks \"\n ],\n \"route\":\"teller-software\",\n },\n {\n \"name\":\"Web Interfaces for CentralBanks \", \n \"industries\":[\n \" CentralBanks \"\n ],\n \"route\":\"central-bank-web-interfaces\",\n }\n ],\n \"industries\": [\n \" CentralBanks \",\n \" CommercialBanks \"\n ]\n },\n {\n \"name\": \"Investment Management\",\n \"children\": [\n {\n \"name\":\"Back Office\", \n \"industries\":[\n \" BrokerageFirms \",\n \" CentralBanks \",\n \" CommercialBanks \",\n \"Corporations\",\n \"FundManagers\",\n \"InvestmentManagers\",\n \"InsuranceCompanies\"\n ],\n \"route\":\"back-office\",\n },\n {\n \"name\":\"Bond Tax Swap\", \n \"industries\":[\n \" BrokerageFirms \",\n \" CommercialBanks \",\n \"Corporations\",\n \"InvestmentManagers\",\n \"InsuranceCompanies\"\n ],\n \"route\":\"bond-tax-swap\",\n },\n {\n \"name\":\"Equity Trading\", \n \"industries\":[\n \" BrokerageFirms \",\n \" CommercialBanks \",\n \"FundManagers\",\n \"InvestmentManagers\",\n \"RTA(Registrar/Transfer/PayingAgent)\"\n ],\n \"route\":\"equity-trading\",\n },\n {\n \"name\":\"FOREX\", \n \"industries\":[\n \" BrokerageFirms \",\n \" CentralBanks \",\n \" CommercialBanks \",\n \"Corporations\",\n \"FundManagers\",\n \"InvestmentManagers\",\n \"InsuranceCompanies\"\n ],\n \"route\":\"forex-software\",\n },\n {\n \"name\":\"Front Office\", \n \"industries\":[\n \" BrokerageFirms \",\n \" CentralBanks \",\n \" CommercialBanks \",\n \"FundManagers\",\n \"InvestmentManagers\",\n \"InsuranceCompanies\"\n ],\n \"route\":\"front-office\",\n },\n {\n \"name\":\"Hedge Fund\", \n \"industries\":[\n \" BrokerageFirms \",\n \" CommercialBanks \",\n \"Corporations\",\n \"FundManagers\",\n \"InvestmentManagers\",\n \"InsuranceCompanies\"\n ],\n \"route\":\"hedge-fund\",\n },\n {\n \"name\":\"Investment Calculator\", \n \"industries\":[\n \" BrokerageFirms \",\n \" CentralBanks \",\n \" CommercialBanks \",\n \"Corporations\",\n \"FundManagers\",\n \"InvestmentManagers\",\n \"InsuranceCompanies\"\n ],\n \"route\":\"investment-calculator\",\n },\n {\n \"name\":\"Order Management\", \n \"industries\":[\n \" BrokerageFirms \",\n \" CommercialBanks \",\n \"FundManagers\",\n \"InvestmentManagers\",\n \"RTA(Registrar/Transfer/PayingAgent)\"\n ],\n \"route\":\"order-management\",\n },\n {\n \"name\":\"Portfolio Analysis\", \n \"industries\":[\n \" BrokerageFirms \",\n \" CentralBanks \",\n \" CommercialBanks \",\n \"Corporations\",\n \"FundManagers\",\n \"InvestmentManagers\",\n \"InsuranceCompanies\"\n ],\n \"route\":\"portfolio-analysis\",\n },\n {\n \"name\":\"Portfolio Management\",\n \"industries\":[\n \" BrokerageFirms \",\n \" CentralBanks \",\n \" CommercialBanks \",\n \"Corporations\",\n \"FundManagers\",\n \"InvestmentManagers\",\n \"InsuranceCompanies\",\n \"Municipalities\",\n \"RTA(Registrar/Transfer/PayingAgent)\"\n ],\n \"route\":\"portfolio-management\",\n \"children\": [\n {\n \"name\":\"FundPortfolio\", \n \"industries\":[\n \" BrokerageFirms \",\n \" CentralBanks \",\n \" CommercialBanks \",\n \"FundManagers\",\n \"InvestmentManagers\",\n \"InsuranceCompanies\",\n \"Municipalities\",\n \"RTA(Registrar/Transfer/PayingAgent)\"\n ],\n \"route\":\"portfolio-management/fund-portfolio\"\n },\n {\n \"name\":\"Treasury Portfolio\", \n \"industries\":[\n \" CommercialBanks \",\n \"InvestmentManagers\"\n ],\n \"route\":\"portfolio-management/treasury-portfolio\"\n },\n {\n \"name\":\"Customer Portfolio\", \n \"industries\":[\n \" BrokerageFirms \",\n \" CommercialBanks \",\n \"InvestmentManagers\",\n \"InsuranceCompanies\"\n ],\n \"route\":\"portfolio-management/customer-portfolio\",\n }\n ]\n },\n {\n \"name\":\"Precious Metals Management\", \n \"industries\":[\n \" CommercialBanks \",\n \"InvestmentManagers\"\n ],\n \"route\":\"precious-metals-software\",\n },\n {\n \"name\":\"Public Fund Deposit Collateralization\", \n \"industries\":[\n \" BrokerageFirms \",\n \" CommercialBanks \",\n \"FundManagers\",\n \"InvestmentManagers\",\n \"InsuranceCompanies\"\n ],\n \"route\":\"public-fund-deposit-collateralization\",\n },\n {\n \"name\":\"Repo & Reverse Repo Agreement\", \n \"industries\":[\n \" BrokerageFirms \",\n \" CommercialBanks \",\n \"FundManagers\",\n \"InvestmentManagers\",\n \"InsuranceCompanies\"\n ],\n \"route\":\"repo-software\",\n },\n {\n \"name\":\"Sales Commissions\", \n \"industries\":[\n \" BrokerageFirms \",\n \" CommercialBanks \",\n \"InvestmentManagers\",\n \"InsuranceCompanies\"\n ],\n \"route\":\"sales-commissions\",\n },\n {\n \"name\":\"Security Trading\", \n \"industries\":[\n \" BrokerageFirms \",\n \" CentralBanks \",\n \" CommercialBanks \",\n \"InvestmentManagers\"\n ],\n \"route\":\"security-trading\",\n }\n ],\n \"industries\": [\n \" BrokerageFirms \",\n \" CentralBanks \",\n \" CommercialBanks \",\n \"Corporations\",\n \"FundManagers\",\n \"InvestmentManagers\",\n \"InsuranceCompanies\",\n \"Municipalities\",\n \"RTA(Registrar/Transfer/PayingAgent)\"\n ]\n },\n {\n \"name\": \"Loans\",\n \"children\": [\n {\n \"name\":\"Debt Collections\", \n \"industries\":[\n \" CommercialBanks \"\n ],\n \"route\":\"debt-collections\",\n },\n {\n \"name\":\"Loan Teller\", \n \"industries\":[\n \" BrokerageFirms \",\n \" CommercialBanks \",\n \"FundManagers\",\n \"InsuranceCompanies\"\n ],\n \"route\":\"loan-cashier\",\n },\n {\n \"name\":\"Loan Management\", \n \"industries\":[\n \" BrokerageFirms \",\n \" CommercialBanks \",\n \"FundManagers\",\n \"InsuranceCompanies\"\n ],\n \"route\":\"loan-processing\",\n },\n {\n \"name\":\"Loan Origination\", \n \"industries\":[\n \" CommercialBanks \"\n ],\n \"route\":\"loan-origination\",\n }\n ],\n \"industries\": [\n \" BrokerageFirms \",\n \" CommercialBanks \",\n \"FundManagers\",\n \"InsuranceCompanies\"\n ]\n },\n {\n \"name\": \"General Operations\",\n \"children\": [\n {\n \"name\":\"Customer Relationship Management\", \n \"industries\":[\n \" BrokerageFirms \",\n \" CentralBanks \",\n \" CommercialBanks \",\n \"Corporations\",\n \"FundManagers\",\n \"InvestmentManagers\",\n \"InsuranceCompanies\"\n ],\n \"route\":\"crm-software-system\",\n },\n {\n \"name\":\"FATCA CRM Option\", \n \"industries\":[\n \" BrokerageFirms \",\n \" CentralBanks \",\n \" CommercialBanks \",\n \"Corporations\",\n \"FundManagers\",\n \"InvestmentManagers\",\n \"InsuranceCompanies\"\n ],\n \"route\":\"fatca-crm-software-option\",\n },\n {\n \"name\":\"Process Flow\", \n \"industries\":[\n \" BrokerageFirms \",\n \" CentralBanks \",\n \" CommercialBanks \",\n \"Corporations\",\n \"FundManagers\",\n \"InvestmentManagers\",\n \"InsuranceCompanies\"\n ],\n \"route\":\"process-flow-module\",\n },\n {\n \"name\":\"Reconciliation\", \n \"industries\":[\n \" BrokerageFirms \",\n \" CentralBanks \",\n \" CommercialBanks \",\n \"Corporations\",\n \"FundManagers\",\n \"InvestmentManagers\",\n \"InsuranceCompanies\",\n \"RealEstate\",\n \"RTA(Registrar/Transfer/PayingAgent)\"\n ],\n \"route\":\"reconciliation\",\n }\n ],\n \"industries\": [\n \" BrokerageFirms \",\n \" CentralBanks \",\n \" CommercialBanks \",\n \"Corporations\",\n \"FundManagers\",\n \"InvestmentManagers\",\n \"InsuranceCompanies\",\n \"RealEstate\",\n \"RTA(Registrar/Transfer/PayingAgent)\"\n ]\n },\n {\n \"name\": \"Real Estate\",\n \"children\": [\n {\n \"name\":\"Real Estate\", \n \"industries\":[\n \" CommercialBanks \",\n \"RealEstate\"\n ],\n \"route\":\"real-estate-software-system\",\n },\n {\n \"name\":\"REO Management\", \n \"industries\":[\n \" BrokerageFirms \",\n \" CommercialBanks \",\n \"FundManagers\",\n \"InsuranceCompanies\",\n \"RealEstate\"\n ],\n \"route\":\"reo-management\",\n },\n {\n \"name\":\"REIT\", \n \"industries\":[\n \" CommercialBanks \",\n \"FundManagers\",\n \"InvestmentManagers\",\n \"RealEstate\",\n \"RTA(Registrar/Transfer/PayingAgent)\"\n ],\n \"route\":\"reit-software\",\n }\n ],\n \"industries\": [\n \" BrokerageFirms \",\n \" CommercialBanks \",\n \"FundManagers\",\n \"InsuranceCompanies\",\n \"InvestmentManagers\",\n \"RealEstate\",\n \"RTA(Registrar/Transfer/PayingAgent)\"\n ]\n },\n {\n \"name\": \"Trust\",\n \"children\": [\n {\n \"name\":\"Annuities\", \n \"industries\":[\n \" CommercialBanks \",\n \"InvestmentManagers\",\n \"InsuranceCompanies\"\n ],\n \"route\":\"annuities-software\",\n },\n {\n \"name\":\"Bond Paying Agent & Transfer Agent\", \n \"industries\":[\n \" CommercialBanks \",\n \"Municipalities\",\n \"RTA(Registrar/Transfer/PayingAgent)\"\n ],\n \"route\":\"bond-paying-agent\",\n },\n {\n \"name\":\"CD Custody\", \n \"industries\":[\n \" CommercialBanks \"\n ],\n \"route\":\"cd-custody\",\n },\n {\n \"name\":\"CD Issuance\", \n \"industries\":[\n \" BrokerageFirms \",\n \" CommercialBanks \",\n \"Corporations\",\n \"Municipalities\",\n \"RTA(Registrar/Transfer/PayingAgent)\"\n ],\n \"route\":\"cd-issuance\",\n },\n {\n \"name\":\"Commercial Paper Issuance\", \n \"industries\":[\n \" BrokerageFirms \",\n \" CommercialBanks \",\n \"RTA(Registrar/Transfer/PayingAgent)\"\n ],\n \"route\":\"commercial-paper-issuance\",\n },\n {\n \"name\":\"DebtManagement\", \n \"industries\":[\n \" BrokerageFirms \",\n \" CommercialBanks \",\n \"Corporations\",\n \"Municipalities\",\n \"RTA(Registrar/Transfer/PayingAgent)\"\n ],\n \"route\":\"debt-management\",\n },\n {\n \"name\":\"IRA Management\", \n \"industries\":[\n \" BrokerageFirms \",\n \" CommercialBanks \",\n \"Corporations\",\n \"FundManagers\",\n \"InvestmentManagers\",\n \"InsuranceCompanies\",\n \"Municipalities\",\n \"RTA(Registrar/Transfer/PayingAgent)\"\n ],\n \"route\":\"ira-management\",\n },\n {\n \"name\":\"LSA (Long-Term Savings Accounts)\", \n \"industries\":[\n \" BrokerageFirms \",\n \" CentralBanks \",\n \" CommercialBanks \",\n \"Corporations\",\n \"FundManagers\",\n \"InvestmentManagers\",\n \"InsuranceCompanies\",\n \"Municipalities\",\n \"RTA(Registrar/Transfer/PayingAgent)\"\n ],\n \"route\":\"long-term-savings-account-software\",\n },\n {\n \"name\":\"Money Desk\", \n \"industries\":[\n \" BrokerageFirms \",\n \" CommercialBanks \"\n ],\n \"route\":\"money-desk-software-system\",\n },\n {\n \"name\":\"Mutual Fund\", \n \"industries\":[\n \" BrokerageFirms \",\n \" CommercialBanks \",\n \"FundManagers\",\n \"InvestmentManagers\",\n \"InsuranceCompanies\",\n \"RTA(Registrar/Transfer/PayingAgent)\"\n ],\n \"route\":\"mutual-fund\",\n },\n {\n \"name\":\"Open Time Deposit\", \n \"industries\":[\n \" BrokerageFirms \",\n \" CommercialBanks \",\n \"Corporations\",\n \"RTA(Registrar/Transfer/PayingAgent)\"\n ],\n \"route\":\"open-time-deposit\",\n },\n {\n \"name\":\"Pension Management\", \n \"industries\":[\n \" BrokerageFirms \",\n \" CentralBanks \",\n \" CommercialBanks \",\n \"Corporations\",\n \"FundManagers\",\n \"InvestmentManagers\",\n \"InsuranceCompanies\",\n \"Municipalities\",\n \"RTA(Registrar/Transfer/PayingAgent)\"\n ],\n \"route\":\"pension-management\",\n },\n {\n \"name\":\"Shareholder Accounting\", \n \"industries\":[\n \" CommercialBanks \",\n \"RTA(Registrar/Transfer/PayingAgent)\"\n ],\n \"route\":\"shareholder-accounting\",\n },\n {\n \"name\":\"eProxy Web Interface\", \n \"industries\":[\n \" CommercialBanks \",\n \"RTA(Registrar/Transfer/PayingAgent)\"\n ],\n \"route\":\"eproxy-system\",\n }\n ],\n \"industries\": [\n \" BrokerageFirms \",\n \" CentralBanks \",\n \" CommercialBanks \",\n \"Corporations\",\n \"FundManagers\",\n \"InvestmentManagers\",\n \"InsuranceCompanies\",\n \"Municipalities\",\n \"RTA(Registrar/Transfer/PayingAgent)\"\n ]\n },\n {\n \"name\": \"Services and Software Features\",\n \"children\": [\n {\n \"name\":\"Consulting\", \n \"industries\":[\n \" BrokerageFirms \",\n \" CentralBanks \",\n \" CommercialBanks \",\n \"Corporations\",\n \"FundManagers\",\n \"InvestmentManagers\",\n \"InsuranceCompanies\",\n \"Municipalities\",\n \"RealEstate\",\n \"RTA(Registrar/Transfer/PayingAgent)\"\n ],\n \"route\":\"consulting-services\",\n },\n {\n \"name\":\"Disaster Recovery\", \n \"industries\":[\n \" BrokerageFirms \",\n \" CentralBanks \",\n \" CommercialBanks \",\n \"Corporations\",\n \"FundManagers\",\n \"InvestmentManagers\",\n \"InsuranceCompanies\",\n \"Municipalities\",\n \"RealEstate\",\n \"RTA(Registrar/Transfer/PayingAgent)\"\n ],\n \"route\":\"disaster-recovery\",\n },\n {\n \"name\":\"Email Option\", \n \"industries\":[\n \" BrokerageFirms \",\n \" CentralBanks \",\n \" CommercialBanks \",\n \"Corporations\",\n \"FundManagers\",\n \"InvestmentManagers\",\n \"InsuranceCompanies\",\n \"Municipalities\",\n \"RealEstate\",\n \"RTA(Registrar/Transfer/PayingAgent)\"\n ],\n \"route\":\"email-option-software-feature\",\n },\n {\n \"name\":\"Interfaces\", \n \"industries\":[\n \" BrokerageFirms \",\n \" CentralBanks \",\n \" CommercialBanks \",\n \"Corporations\",\n \"FundManagers\",\n \"InvestmentManagers\",\n \"InsuranceCompanies\",\n \"Municipalities\",\n \"RealEstate\",\n \"RTA(Registrar/Transfer/PayingAgent)\"\n ],\n \"route\":\"mimics-interfaces\",\n },\n {\n \"name\":\"Mobile Device Access\", \n \"industries\":[\n \" BrokerageFirms \",\n \" CentralBanks \",\n \" CommercialBanks \",\n \"Corporations\",\n \"FundManagers\",\n \"InvestmentManagers\",\n \"InsuranceCompanies\",\n \"Municipalities\",\n \"RealEstate\",\n \"RTA(Registrar/Transfer/PayingAgent)\"\n ],\n \"route\":\"mobile-device-access\",\n },\n {\n \"name\":\"Outsourcing\", \n \"industries\":[\n \" BrokerageFirms \",\n \" CentralBanks \",\n \" CommercialBanks \",\n \"Corporations\",\n \"FundManagers\",\n \"InvestmentManagers\",\n \"InsuranceCompanies\",\n \"Municipalities\",\n \"RealEstate\",\n \"RTA(Registrar/Transfer/PayingAgent)\"\n ],\n \"route\":\"outsourcing-services\",\n },\n {\n \"name\":\"Web Interfaces\", \n \"industries\":[\n \" BrokerageFirms \",\n \" CentralBanks \",\n \" CommercialBanks \",\n \"Corporations\",\n \"FundManagers\",\n \"InvestmentManagers\",\n \"InsuranceCompanies\",\n \"Municipalities\",\n \"RealEstate\",\n \"RTA(Registrar/Transfer/PayingAgent)\"\n ],\n \"route\":\"web-interface\",\n }\n ],\n \"industries\": [\n \" BrokerageFirms \",\n \" CentralBanks \",\n \" CommercialBanks \",\n \"Corporations\",\n \"FundManagers\",\n \"InvestmentManagers\",\n \"InsuranceCompanies\",\n \"Municipalities\",\n \"RealEstate\",\n \"RTA(Registrar/Transfer/PayingAgent)\"\n ]\n }\n ]\n }\n ]\n}","import { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class StatusCodeService {\r\n private _statusCode: number;\r\n\r\n getStatusCode() {\r\n return this._statusCode;\r\n }\r\n\r\n setStatusCode(newCode: number) {\r\n this._statusCode = newCode;\r\n }\r\n}","\r\nimport {throwError as observableThrowError } from 'rxjs';\r\nimport CONFIG from '../../config';\r\nimport { Injectable } from '@angular/core';\r\nimport { Http, Response, Headers, RequestOptions } from '@angular/http';\r\nimport { Router } from '@angular/router';\r\nimport { LoadingService } from '../loading-spinner/loading.service';\r\nimport { Observable } from 'rxjs/Observable';\r\n\r\n@Injectable()\r\nexport class AuthService {\r\n public loggedIn: boolean;\r\n public AccountName: string = localStorage.getItem('AccountName') || sessionStorage.getItem('AccountName');\r\n public token: string = localStorage.getItem('token') || sessionStorage.getItem('token');\r\n public UserName: string = localStorage.getItem('UserName') || sessionStorage.getItem('UserName'); \r\n public UserID: string = localStorage.getItem('UserID') || sessionStorage.getItem('UserID');\r\n public DemoUserName: string = localStorage.getItem('DemoUserName') || sessionStorage.getItem('DemoUserName');\r\n public token1: string = localStorage.getItem('token1') || sessionStorage.getItem('token1');\r\n\r\n\r\n constructor(\r\n private _http: Http,\r\n private _router: Router,\r\n private _loadingService: LoadingService,\r\n ) {}\r\n\r\n // login(loginData): Observable {\r\n // console.log(loginData)\r\n // this._loadingService.show();\r\n // const body = JSON.stringify(loginData);\r\n // // const headers={\r\n // // headers: new HttpHeaders({\r\n // // 'Content-Type': 'application/json'\r\n // // })\r\n // // }\r\n // const headers = new Headers({\r\n // 'Content-Type': 'application/json',\r\n // 'Accept': 'application/json'\r\n // });\r\n // const options = new RequestOptions({ headers: headers });\r\n\r\n // return this._http.post(CONFIG.loginApiUrlBase, body, options)\r\n // .map(response => {\r\n // return response.json();\r\n // })\r\n // .catch(this.handleError)\r\n // .finally(() => {\r\n // this._loadingService.hide();\r\n // });\r\n // }\r\n\r\n login(loginData): Observable {\r\n this._loadingService.show();\r\n const body = JSON.stringify(loginData);\r\n const headers = new Headers({\r\n 'Content-Type': 'application/json',\r\n 'Accept': 'application/json'\r\n });\r\n const options = new RequestOptions({ headers: headers });\r\n return this._http.post(CONFIG.loginApiUrlBase, body, options)\r\n .map(response => {\r\n return response.json();\r\n })\r\n .catch(this.handleError)\r\n .finally(() => {\r\n this._loadingService.hide();\r\n });\r\n }\r\n Demologin(loginData): Observable {\r\n this._loadingService.show();\r\n const body = JSON.stringify(loginData);\r\n const headers = new Headers({\r\n 'Content-Type': 'application/json',\r\n 'Accept': 'application/json'\r\n });\r\n const options = new RequestOptions({ headers: headers });\r\n return this._http.post(CONFIG.demoUserAccessLogin, body, options)\r\n .map(response => {\r\n return response.json();\r\n })\r\n .catch(this.handleError)\r\n .finally(() => {\r\n this._loadingService.hide();\r\n });\r\n }\r\n logout() {\r\n this._loadingService.show();\r\n this.loggedIn = false;\r\n \r\n this._http.get(CONFIG.loginApiUrlBase)\r\n .subscribe(response => {\r\n this._loadingService.hide();\r\n\r\n //if the user had the 'remember me' flag enabled, session info stored in localStorage\r\n if (localStorage.getItem('token') !== null) {\r\n localStorage.removeItem('Expires/Max-Age');\r\n localStorage.removeItem('token');\r\n localStorage.removeItem('UserName');\r\n }\r\n\r\n //if the user did not have the 'remember me' flag enabled, session info stored in sessionStorage\r\n if (sessionStorage.getItem('token') !== null) {\r\n sessionStorage.removeItem('token');\r\n sessionStorage.removeItem('UserName');\r\n }\r\n\r\n //remove locally cached identity variables\r\n this.token = null;\r\n this.loggedIn = false;\r\n this.UserName = null;\r\n\r\n this._router.navigate(['/']);\r\n },\r\n error => {\r\n this.handleError(error);\r\n },\r\n () => {\r\n this._loadingService.hide();\r\n });\r\n }\r\n\r\n logout1() {\r\n this._loadingService.show();\r\n this.loggedIn = false;\r\n \r\n this._http.get(CONFIG.loginApiUrlBase)\r\n .subscribe(response => {\r\n this._loadingService.hide();\r\n\r\n //if the user had the 'remember me' flag enabled, session info stored in localStorage\r\n if (localStorage.getItem('token1') !== null) {\r\n localStorage.removeItem('Expires/Max-Age');\r\n localStorage.removeItem('token1');\r\n localStorage.removeItem('UserID');\r\n localStorage.removeItem('DemoUserName');\r\n }\r\n\r\n //if the user did not have the 'remember me' flag enabled, session info stored in sessionStorage\r\n if (sessionStorage.getItem('token1') !== null) {\r\n sessionStorage.removeItem('token1');\r\n sessionStorage.removeItem('UserID');\r\n sessionStorage.removeItem('DemoUserName');\r\n }\r\n\r\n //remove locally cached identity variables\r\n this.token1 = null;\r\n this.loggedIn = false;\r\n this.DemoUserName = null;\r\n\r\n this._router.navigate(['/demo']);\r\n },\r\n error => {\r\n this.handleError(error);\r\n },\r\n () => {\r\n this._loadingService.hide();\r\n });\r\n }\r\n\r\n /*\r\n Utility error handler function for server errors\r\n */\r\n private handleError(error) {\r\n const errMsg = error.message || 'Server error';\r\n return observableThrowError(error);\r\n }\r\n}","export const investmentProducts = [ 'Back Office', 'Bond Tax Swap', 'Equity Trading', 'FOREX', 'Front Office', 'Hedge Fund', 'Investment Calculator', 'Order Management', 'Portfolio Analysis', 'Portfolio Management', 'Fund Portfolio', 'Treasury Portfolio', 'Customer Portfolio', 'Precious Metals Management', 'Sales Commissions', 'Security Trading'];\r\n\r\nexport const trustProducts = [ 'Annuities', 'Bond Paying Agent & Transfer Agent', 'CD Custody', 'CD Issuance', 'Commercial Paper Issuance', 'Debt Management', 'IRA Management', 'LSA (Long-Term Savings Accounts)', 'Money Desk', 'Mutual Fund', 'Open Time Deposit', 'Pension Admin', 'REIT', 'Shareholder Accounting', 'eProxy Web Interface'];\r\n\r\nexport const bankingProducts = [ 'Core Processing', 'Cash Orders', 'Documentary Collections', 'Fed Funds', 'Forex Cashier', 'Loan Teller', 'Loan Management', 'Debt Collections', 'Loan Origination', 'Item Collections', 'Safekeeping', 'Real Estate', 'REO Management', 'Repos', 'Public Fund Deposit Collateralization'];\r\n\r\nexport const centralBankingProducts = ['Auction Processing', 'Public Debt Issuance', 'Currency Vault Management', 'Dormant Accounts', 'Exchange Control', 'Foreign Exchange Management', 'Numismatic Management', 'Reserve Portfolio Management', 'Treasury Bills', 'Teller', 'Regulatory Reporting Web Portal', 'Pension Admin (Central Banking)'];\r\n\r\nexport const accountingOptions = [ 'Accounts Payable', 'Accounts Receivable', 'Account Reconciliation', 'Fixed Assets', 'General Ledger', 'Payment Processing', 'Purchasing'];\r\n\r\nexport const moduleOptions = [ 'Consulting', 'Customer Relationship Management', 'FATCA CRM Option', 'Direct Data Connection', 'Disaster Recovery', 'Email Option', 'Interfaces', 'Mobile Device Access', 'Outsourcing', 'Process Flow', 'Reconciliation', 'Web Interfaces'];\r\n\r\nexport const allProducts = [ ...investmentProducts, ...trustProducts, ...bankingProducts, ...centralBankingProducts, ...accountingOptions, ...moduleOptions];\r\n\r\n//using product name and keywords for search field\r\n//may convert 'related' array into keys (and add key to each object), may move to db (if this info will need to be updated frequently?)\r\nexport const allProductsForSearch = [\r\n {\r\n \"name\": \"Accounts Payable\",\r\n \"module\": \"Accounting\",\r\n \"route\": \"/accounting/accounts-payable\",\r\n \"tags\": [\"accounts\", \"payable\", \"invoices\", \"processing\", \"checks\", \"direct\", \"deposits\", \"deposit\", \"printing\"],\r\n \"desc\": \"Provides all of the functions needed by an Accounts Payable department. Has features ranging from entering multiple types of invoices, verifying invoices entered, and processing payments for the invoices entered, including printing checks or making direct deposits.\",\r\n \"related\": [\r\n {\"name\": \"General Ledger\", \"route\": \"/accounting/general-ledger\"},\r\n {\"name\": \"Purchasing Software\", \"route\": \"/accounting/purchasing-software\"}\r\n ]\r\n },\r\n {\r\n \"name\": \"Accounts Receivable\",\r\n \"module\": \"Accounting\",\r\n \"route\": \"/accounting/accounts-receivable-software\",\r\n \"tags\": [\"accounts\", \"receivable\", \"ledger\", \"invoices\", \"tracking\", \"recurring\", \"bills\", \"deposits\", \"credits\"],\r\n \"desc\": \"Provides the features required by an Accounts Receivable department and interfaces with the MIMICS General Ledger or exports to other general ledger systems. Has features ranging from generating invoices, tracking received payments and outstanding invoices, handling recurring bills, and tracking customer deposits and credits.\",\r\n \"related\": [\r\n {\"name\": \"General Ledger\", \"route\": \"/accounting/general-ledger\"}\r\n ]\r\n },\r\n {\r\n \"name\": \"Account Reconciliation\",\r\n \"module\": \"Accounting\",\r\n \"route\": \"/accounting/account-reconciliation\",\r\n \"tags\": [\"account\", \"reconciliation\", \"tracking\", \"checking\", \"banks\", \"statements\", \"accounting\"],\r\n \"desc\": \"Allows the tracking and reconciliation of any number of checking accounts at any number of different banks. Imports statements submitted from the banks in an importable format (ie. Excel, CSV, Text) and imports the activity that must be reconciled.\",\r\n \"related\": []\r\n },\r\n {\r\n \"name\": \"Fixed Assets\",\r\n \"module\": \"Accounting\",\r\n \"route\": \"/accounting/fixed-assets-management\",\r\n \"tags\": [\"tracking\", \"assets\", \"locations\", \"cost centers\", \"branches\", \"buildings\", \"departments\", \"transfer processing\", \"work orders\", \"historical location tracking\", \"asset category modeling\", \"claim processing\", \"missing assets\", \"depreciation methods\", \"straight line\", \"declining balance\", \"acrs\", \"macrs\", \"purchases\", \"disposals\", \"disposition\", \"multiple books\", \"corporate\", \"grouping\", \"federal\", \"state\", \"governmental\", \"foreign\", \"web\", \"interface\"],\r\n \"desc\": \"Provides a completely automated solution for managing corporate assets. The assets can be categorized by asset type, and a user defined modeling feature allows for quick asset entry while minimizing entry errors.\",\r\n \"related\": [\r\n {\"name\": \"General Ledger\", \"route\": \"/accounting/general-ledger\"},\r\n {\"name\": \"Accounting System\", \"route\": \"/accounting\"}\r\n ]\r\n },\r\n {\r\n \"name\": \"General Ledger\",\r\n \"module\": \"Accounting\",\r\n \"route\": \"/accounting/general-ledger\",\r\n \"tags\": [],\r\n \"desc\": \"Interfaces directly with any other MIMICS module, or can stand-alone. It is a fully functioning general ledger with budgeting, analysis, and other features. A journal entry feature allows the user to post entries that are always balanced.\",\r\n \"related\": [\r\n {\"name\": \"Accounting System\", \"route\": \"/accounting\"},\r\n {\"name\": \"Portfolio Management\", \"route\": \"/investment/portfolio-management\"},\r\n {\"name\": \"Pension Admin\", \"route\": \"/trust/pension-management\"},\r\n {\"name\": \"Pension Admin\", \"route\": \"/trust/pension-management\"}\r\n ]\r\n },\r\n {\r\n \"name\": \"Payment Processing\",\r\n \"module\": \"Accounting\",\r\n \"route\": \"/accounting/payment-processing\",\r\n \"tags\": [],\r\n \"desc\": \"Provides a quick and easy way for branches to process various types of payments, including payments by Check (including Cashier’s Checks and Money Orders), Direct Deposit, Credit Advice, ACH, SWIFT and RTGS. This module also can facilitate Remittance Payments and Receipts.\",\r\n \"related\": [\r\n {\"name\": \"General Ledger\", \"route\": \"/accounting/general-ledger\"},\r\n {\"name\": \"Accounting System\", \"route\": \"/accounting\"}\r\n ]\r\n },\r\n {\r\n \"name\": \"Purchasing\",\r\n \"module\": \"Accounting\",\r\n \"route\": \"/accounting/purchasing-software\",\r\n \"tags\": [],\r\n \"desc\": \"Provides all of the functions of the Purchasing department that interfaces to the MIMICS General Ledger or exports to other General Ledger systems. The system will initialize and update inventory as needed. The system will track inventory information such as the number of units available, the amount of inventory that is in stock, the amount pending for an order, and the price per unit.\",\r\n \"related\": [\r\n {\"name\": \"General Ledger\", \"route\": \"/accounting/general-ledger\"},\r\n {\"name\": \"Accounting System\", \"route\": \"/accounting\"}\r\n ]\r\n },\r\n {\r\n \"name\": \"Core Processing\",\r\n \"module\": \"Banking\",\r\n \"route\": \"/banking/core-processing\",\r\n \"tags\": [],\r\n \"desc\": \"The MIMICS Core Processing Solution handles all core functions needed by a Bank or Credit Union. The MIMICS Customer Relationship Management (CRM) functionality, as part of the larger Core Processing Solution, can help your organization track, manage and build all aspects of customer relationships, from early sales stages through to complete customer maintenance. Full KYC tracking is included, and options for FATCA or CRS are available. Optional interfaces for AML or Watchlists can also be utilized.\",\r\n \"features\": [\"Customer Relationship Management\", \"Checking Accounts\", \"Savings Accounts\", \"CDs / Fixed Deposits\", \"Check Clearing\", \"Online Banking\", \"Teller Functionality\", \"General Ledger / Accounting\", \"Loan Management\", \"Full Audit and Reporting\"\r\n ],\r\n \"related\": [\r\n {\"name\": \"Customer Relationship Management\", \"route\": \"/module-options/crm\"},\r\n {\"name\": \"Teller\", \"route\": \"/central-banking/teller-software\"},\r\n {\"name\": \"General Ledger\", \"route\": \"/accounting/general-ledger\"},\r\n {\"name\": \"Loan Management\", \"route\": \"/banking/loan-management\"}\r\n ]\r\n },\r\n {\r\n \"name\": \"Cash Orders\",\r\n \"module\": \"Banking\",\r\n \"route\": \"/bank_operations/cash-order-application\",\r\n \"tags\": [],\r\n \"desc\": \"Provides a web portal front-end for customers to enter their cash order request. The in-house component of the application then receives the requests, and if approved handles the processing of the order, with safeguards and audit logging at each step.\",\r\n \"related\": [\r\n {\"name\": \"Currency Vault Management\", \"route\": \"/central-banking/central-bank-currency-management\"},\r\n {\"name\": \"Customer Relationship Management\", \"route\": \"/module-options/crm\"}\r\n ]\r\n },\r\n {\r\n \"name\": \"Documentary Collections\",\r\n \"module\": \"Banking\",\r\n \"route\": \"/banking/documentary-collections\",\r\n \"productRoute\": \"/documentary-collections\",\r\n \"tags\": [],\r\n \"desc\": \"The MIMICS Documentary Collections system is used primarily for export/import transactions, and automates functions such as receiving and processing incoming and outgoing items. It creates and tracks all necessary documents, and handles any number of fees for foreign collections with multiple intermediary banks. It disburses collected amounts to payee by check or directly to the customer's account. It also interfaces to the MIMICS General Ledger system or any third-party general ledger system. \",\r\n \"features\": [\"Handles the processing of documents, including such steps as: Presentation of the item, Receiving payment from the paying agent, Paying the presenter\", \"Processes documentary collections items as well as any other kind of user-defined items\", \"Tracks items paid, those due and those paid, and those due but still receivable; allows items to be paid before payment is received\", \"Stores all parties to the transaction on file for future use\", \"Creates and prints cover letters and collection letters, tracers, receipts and any other type of custom form required; all forms can be micr encoded\", \"Provides a full audit trail for all system activity\", \"Fees are calculated and applied automatically, and entries can be transmitted to your GL and/or DDA system\", \"Produces a full complement of reports, including: new items, outstanding items, interest accrual, etc.\"\r\n ],\r\n \"related\": [\r\n {\"name\": \"General Ledger\", \"route\": \"/accounting/general-ledger\"}\r\n ]\r\n },\r\n {\r\n \"name\": \"Fed Funds\",\r\n \"module\": \"Banking\",\r\n \"route\": \"/banking/fed-funds\",\r\n \"tags\": [],\r\n \"desc\": \"The MIMICS Fed Funds module handles both principal and agent trades. Agent trades can be pooled, allowing for allocation to any number of upstream purchasers. Agent confirmations provide full disclosure of the distribution of funds, weighted average rates, and upstream rates. Purchase blocks may be split into any number of sales, and sales may be made up of any number of purchase blocks; any unsold blocks are highlighted for trade by end of the day. Principal confirmations can also be produced. Upstream and downstream trades can be handled. Rates may be fixed or variable. The system can electronically sweep DDA balances from your downstream banks, prepare ACH entries and prepare and print confirmations designed to your specifications.\",\r\n \"features\": [\"Handles any number of user-defined categories of funds, such as affiliate overnight purchases and upstream term sales\", \"Allows the term of the funds to be set as overnight, term (set maturity date) or TFN (open)\", \"Allows rates to be fixed, pegged to a base rate, calculated as an offset from a weighted average rate, or based on principal tiers\", \"Monitors agent funds sold so that they will not exceed fund purchases\", \"Allows the weighted average rate of the sales to be allocated to the downstream purchases for pooled funds\", \"Can issue weekly advices to customers that show the principal for each day of the week, the rate for the given day, and the resulting interest amounts and totals\", \"Includes a full package of standard reports\"],\r\n \"related\": []\r\n },\r\n {\r\n \"name\": \"Item Collections\",\r\n \"module\": \"Banking\",\r\n \"route\": \"/banking/item-collections\",\r\n \"tags\": [],\r\n \"desc\": \"The MIMICS Item Collections system automates the receiving, collecting and processing functions of your item collections department. It sends and receives collection items, issues receipts and maintains a pending file of open items. It issues collection documents to paying and presenting institutions, disburses collected amounts to payee by check or directly to the customer's account. It handles any fees required, and interfaces to your general ledger system.\",\r\n \"features\": [\"Processes any number of drafts, coupon envelopes, bonds, NSFs, foreign items and any other kind of user-defined items\", \"Balances items automatically, while displaying sub-totals and totals as you go\", \"Tracks items paid, those due and those paid, and those due but still receivable; allows items to be paid before payment is received \", \"Stores all presenter and paying agent information for future use\", \"Creates and prints collection letters, tracers, receipts and any other custom type of form required; all forms can be micr encoded\", \"Fees are calculated and applied automatically, and entries can be transmitted to your GL and/or DDA system\", \"Produces a full complement of reports, including: new items, outstanding items, interest accrual, etc.\", \"Prints and/or electronically produces 1099s and reports to the IRS\", \"A Centralized Installation utilizes one central database to process transactions for any number of branches; reporting can be done by branch or across multiple branches\", \"A Distributed Installation utilizes a separate database at each branch; the MIMICS Consolidated Reporting option can connect to all of the separate databases for reporting across the branches\"],\r\n \"related\": []\r\n },\r\n {\r\n \"name\": \"Loan Teller\",\r\n \"module\": \"Banking\",\r\n \"route\": \"/banking/loan-teller\",\r\n \"tags\": [],\r\n \"desc\": \"The MIMICS Teller system can organize, monitor and streamline your entire teller operation. This front-end module can facilitate any type of receipt or deposit, and process disbursements or other types of payments, to the full range of teller functions including cashing checks, currency exchange, CD management, loan payments, as well as remittances. \",\r\n \"features\": [\"Records addresses, phone numbers, and email addresses of both individual and business contacts\", \"Allows for any number of branches and tills, and money can be transferred between chief teller tills, between the chief teller till and teller tills and between teller tills at one location\", \"Handles payments for any purpose, including deposits; prints receipts on customized templates\", \"Facilitates till balancing with full audit reports\", \"Maintains checking and savings accounts, allowing for deposits, withdrawals, rollovers and transfers between accounts\", \"Allows for full, partial or overpayment direct loan payments \", \"Allows for exchanges in any currency; direct or indirect rates can be assigned daily or at set intervals\", \"Allows the easy issuance of CDs, and handles all the procedures of paying agent\", \"Produces a full audit trail, including timestamps, user IDs, and computers used\", \"Allows for a broad range of reports, such as loan reports, teller balance reports and transaction summaries\", \"Interfaces with the MIMICS Debt Management module for issuances of CDs, commercial paper, promissory notes, etc.\", \"Interfaces with the MIMICS CRM module to provide more flexibility with handling customer accounts\"],\r\n \"related\": [\r\n {\"name\": \"Teller Software\", \"route\": \"/central-banking/teller-software\"},\r\n {\"name\": \"Loan Management\", \"route\": \"/banking/loan-management\"}\r\n ]\r\n },\r\n {\r\n \"name\": \"Real Estate\",\r\n \"module\": \"Banking\",\r\n \"route\": \"/banking/real-estate\",\r\n \"tags\": [],\r\n \"desc\": \"The MIMICS Real Estate system tracks real estate owned by a financial institution from foreclosure through the eventual sale of the property. During the time that the property is held, the system handles the property management, appraisals, litigation and all other required procedures. The system contains a real estate budgeting feature for full planning support.\",\r\n \"features\": [\"Creates accounting entries with user-defined rules that can be exported to an external GL system or integrated with the MIMICS General Ledger module\", \"Stores extensive details on all commercial and residential properties by unit, including maintenance, rental and lease payments, parking spaces, etc.\", \"Tracks sales processes of units, including inspections, appraisals, liens, escrow and taxes\", \"Handles all litigation involved with properties, including attorney data and judgment records\", \"Utilities, taxes and other payments, as well as income feed into the accounting system, which can then be exported via ACH or other formats\", \"Prints checks on blank or pre-printed stock, with micr lines\", \"Provides a full complement of reports, including Foreclosure Information, Appraisal Information, Insurance Premium Due and many more\"],\r\n \"related\": [\r\n {\"name\": \"REIT\", \"route\": \"/trust/reit-software\"}\r\n ]\r\n },\r\n {\r\n \"name\": \"Loan Management\",\r\n \"module\": \"Banking\",\r\n \"route\": \"/banking/loan-management\",\r\n \"tags\": [],\r\n \"desc\": \"The MIMICS Loan Management system allows you to originate new loans, disburse funds, process payments received, and manage the closing of loans, along with other types of transactions. The system prints amortization schedules, checks, invoices, statements and a full suite of standard reports. The term of the loan can be fixed or on-demand. Rates can be fixed, variable or pegged to another rate, and interest can be simple or compounded. Different payment schedules can be handled, including interest-only loans, principal paydown, balloon payments, and various combinations thereof. Payments can be based upon a projected loan schedule, or it can be calculated and pro-rated at the time of payment without a fixed loan schedule.\",\r\n \"features\": [\"Interfaces with the MIMICS Loan Origination module for the creation of loans, or loan parameters can be directly entered; produces amortization schedules as appropriate\", \"Tracks detailed information related to the loan, such as collateral, appraisals, insurance, etc.\", \"Processes the disbursement of funds via check, ACH and other payment methods\", \"Receives normal or unscheduled payments; handles underpayments and overpayments; overpayments can be applied to the next scheduled payment, used to pay down principal, applied to escrow, and various other options\", \"Handles early payoffs, restructuring, and other types of schedule adjustments\", \"Allows for draws to be made during the term of the loan; limits are determined at origination, and new payment schedules are printed\", \"Generates forms such as Amortization Statements, Checks, Invoices, Statements, Payment Coupons and Customer Loan Detail Statements \", \"Produces a variety of reports for tracking outstanding loans, payments due, maturities due, billing statements, etc.\", \"Allows for late fees to be incurred automatically and manually; the fee amount can be a percentage or a specified amount\", \"Interfaces with general ledger modules\", \"Interfaces with the MIMICS Debt Collections module, as well as the MIMICS Portfolio module.\"],\r\n \"related\": [\r\n {\"name\": \"Loan Origination\", \"route\": \"/banking/loan-origination\"},\r\n {\"name\": \"Debt Collections\", \"route\": \"/banking/loan-management/debt-collections\"},\r\n {\"name\": \"General Ledger\", \"route\": \"/accounting/general-ledger\"},\r\n {\"name\": \"REO Software\", \"route\": \"/banking/real-estate-software-system/reo-management\"},\r\n {\"name\": \"Loan Teller\", \"route\": \"/banking/loan-teller\"}\r\n ]\r\n },\r\n {\r\n \"name\": \"Debt Collections\",\r\n \"module\": \"Banking\",\r\n \"route\": \"/banking/loan-management/debt-collections\",\r\n \"tags\": [],\r\n \"desc\": \"Delinquent loans being tracked via the Loan Management module can be passed to collections directly via this product.\",\r\n \"related\": [\r\n {\"name\": \"Loan Management\", \"route\": \"/banking/loan-management\"}\r\n ]\r\n },\r\n {\r\n \"name\": \"Loan Origination\",\r\n \"module\": \"Banking\",\r\n \"route\": \"/banking/loan-origination\",\r\n \"tags\": [],\r\n \"desc\": \"The MIMICS Loan Origination system provides the tools to effectively manage the loan application process from start to finish. User-defined criteria can be specified and the required data entered for each application. The system will analyze the financial statements, provide standard financial ratios and review for completeness. All written and verbal communications with the applicants and clients are recorded to the system, and letters and other documents can be produced. Loans can be tracked after approval of the application through the MIMICS Loan Management module.\",\r\n \"features\": [\"Allows for user-defined parameters to be set for required data, acceptable values in the loan application, acceptable financial ratios and many other system features\", \"Checks all information entered for each application against the user-defined parameters to automatically flag and categorize applications\", \"Stores any number of years of financial information and calculates trend lines and net cash flows to help determine payback ability\", \"Logs all communications with customers, including emails and phone calls; calls and reminders can be scheduled in advance\", \"Tracks appraisal values, insurance and other features of the assets, which can be passed upon acceptance to the MIMICS Loan Management system to continue the life of the loan\", \"Facilitates the complete review up to final approval, rejection or temporary rejection of all loan applications\", \"Prepares and prints any number of documents, such as commitment letters, customized to your specifications, with logos and any other images\", \"Reports can be printed in hard copy, pdf, spreadsheet and all data can be exported to other systems\", \"Interfaces with all MIMICS software as well as your general ledger\", \"Interfaces with the secure MIMICS Web Portal to allow your customers to their initial application\"],\r\n \"related\": [\r\n {\"name\": \"Loan Management\", \"route\": \"/banking/loan-management\"}\r\n ]\r\n },\r\n {\r\n \"name\": \"Safekeeping\",\r\n \"module\": \"Banking\",\r\n \"route\": \"/banking/safekeeping-software\",\r\n \"tags\": [],\r\n \"desc\": \"The MIMICS Safekeeping module assists with the daily processing and operations of custodians, including handling receipts/purchases, withdrawals/redemptions, interest, mortgage-backed security principal pay-downs and interest, stock dividend payments, partial calls and puts for bonds and all payment features and corporate actions for other securities. Prices and factors can be imported from data providers. It handles sub-accounting for downstream banks/organizations, and can automatically produce accounting entries and ACH/GL exports to your core processing system. The system can prepare 1099s and other tax documents for your customers and the IRS. The system automates the calculation and invoicing of safekeeping fees per your configured options.\",\r\n \"features\": [\"Tracks all customer details and preferences; allows user to set hard-dollar or soft-dollar fee schedules by individual customer; fees may be flat, by receipt, by certificate or by amount of par, as well as periodic maintenance fees\", \"Facilitates the entry of the receipt of securities for your customers\", \"Handles all interest calendars and payment schedules, as well as rate types such as fixed, graduated, pegged, reset at payment and variable\", \"Processes mortgage-backed securities and related securities; paydowns can be by actual amount or by factor, with interest calculated according to assigned delay\", \"Handles all forms of discount securities including maturity processing\", \"Supports common stock and other unitized investments, with dividend processing; handles splits, mergers and other corporate actions\", \"Allows securities to be pledged in whole or in part, and pledging can be split among several pledgees; mortgage-backed securities are pledged by current par\", \"Produces receipts, maturity notices, interest and dividend advices, coupon envelopes, debit and credit advices, statements, and invoices\", \"Prepares and prints various tax forms such as 1099s for your customers; creates tax reporting in electronic IRS format\", \"Allows for user-defined accounting rules that will prepare accounting entries for interface to any general ledger or core processing system; ACH format exports included\", \"Interfaces with all MIMICS software, including CRM, Repos and Back Office, as well as pricing, factor and other interfaces\"],\r\n \"related\": []\r\n },\r\n {\r\n \"name\": \"Real Estate\",\r\n \"module\": \"Banking\",\r\n \"route\": \"/banking/real-estate-software-system\",\r\n \"tags\": [],\r\n \"desc\": \"Tracks real estate owned by the financial institution from foreclosure or purchase through the eventual sale of the property. During the time that the property is held, the system handles the property management, appraisals, litigation and all other required procedures.\",\r\n \"related\": [\r\n {\"name\": \"REO Budgeting\", \"route\": \"/banking/real-estate-software-system/reo-management\"}\r\n ]\r\n },\r\n {\r\n \"name\": \"REO Management\",\r\n \"module\": \"Banking\",\r\n \"route\": \"/banking/real-estate-software-system/reo-management\",\r\n \"tags\": [],\r\n \"desc\": \"Fully processes REO properties from inception through final disposition. The basic information defining the property is entered along with the foreclosure data. Any legal information regarding associated litigation can be entered.\",\r\n \"related\": [\r\n {\"name\": \"Loan Management\", \"route\": \"/banking/loan-management\"}\r\n ]\r\n },\r\n {\r\n \"name\": \"REO Management\",\r\n \"module\": \"Banking\",\r\n \"route\": \"/banking/real-estate-software-system/reo-management\",\r\n \"tags\": [],\r\n \"desc\": \"Fully processes REO properties from inception through final disposition. The basic information defining the property is entered along with the foreclosure data. Any legal information regarding associated litigation can be entered.\",\r\n \"related\": [\r\n {\"name\": \"Loan Management\", \"route\": \"/banking/loan-management\"}\r\n ]\r\n },\r\n {\r\n \"name\": \"Repos\",\r\n \"module\": \"Banking\",\r\n \"route\": \"/banking/repo-software\",\r\n \"tags\": [],\r\n \"desc\": \"The MIMICS Repos module is specifically designed to maintain the efficiency of your back office operations, allowing for comprehensive management of repos and reverse repos. Overnight and term repos can be entered manually or by way of automatic electronic sweeps, and the collateral can be reverse repos, trading inventory or portfolio securities. Variable principals and rates are allowed, and rates can be fixed, variable, tiered, or they can float against a user-defined peg rate. The module also interfaces with your core processor to automate daily operations.\",\r\n \"features\": [\"Allows you to invest funds at another bank and receive collateral temporarily for reverse repos that can then be used to collateralize customer repos\", \"Allows variable principals and rates; rates can be fixed, variable, tiered, or they can float against a user-defined peg rate\", \"Allows customer-specific collateral allocation methods\", \"Handles overnight, Term and TFN Repos\", \"Reports a full audit trail with history posting\", \"Generates 1099s for IRS reporting\", \"Automates printing/emailing of confirmations, statements, interest payment tickets, checks, advices and any other forms for your customers \", \"Supports electronic pricing, factor processing and pricing and factor interfaces\", \"Interfaces with DDA Import, DDA Export, Clearance Export, and general ledger export\", \"Interfaces with MIMICS Treasury Portfolio\"],\r\n \"related\": [\r\n {\"name\": \"Public Fund Deposit Collateralization\", \"route\": \"/banking/repo-software/public-fund-deposit-collateralization\"}\r\n ]\r\n },\r\n {\r\n \"name\": \"Public Fund Deposit Collateralization\",\r\n \"module\": \"Banking\",\r\n \"route\": \"/investment-management/public-fund-deposit-collateralization\",\r\n \"tags\": [],\r\n \"desc\": \"Allows you to either manually enter or sweep in the balances of your public funds customer deposits. The system can collateralize the deposits automatically based on collateralization preferences, or you can collateralize the deposits manually.\",\r\n \"related\": [\r\n {\"name\": \"Repos\", \"route\": \"/banking/repo-software\"}\r\n ]\r\n },\r\n {\r\n \"name\": \"Auction Processing\",\r\n \"module\": \"Central Banking\",\r\n \"route\": \"/central-banking/central-bank-auction-processing\",\r\n \"tags\": [],\r\n \"desc\": \"The MIMICS Auction Processing system handles the full auction process for central banks for interest-bearing securities, discount securities and precious metals, and features a web portal for auction participants to place bids and view results. This portal interacts with the entire MIMICS Central Bank Engine to further track the holdings, depository and paying/transfer agent functionality.\",\r\n \"features\": [\"Allows user to release any new security to auction manually or using pre-defined dates and times, and to set specifications for auction size, types of eligible participants and more\", \"Allows participants to log in to secure web portal to view and bid on securities, and track their bid history for current and finished auctions\", \"Offers many different auction processing methods, including English, Dutch, Proportional, Tranche, Traditional, Interactive, Fixed Rate, Counter Banking, etc.\", \"Allows payments to be processed at time of sale or invoiced; invoiced payments are tracked and holdings are issued at time of payment processing\", \"Includes full reporting, such as bidding history, auction results history, payments due, payment history, etc.\", \"Provides audit stamps for any process done in the software system or through the web portal\", \"Allows bidding from individuals as well as credit institutions, as per user configuration\", \"Interfaces with entire MIMICS Central Bank Engine of software\", \"Interfaces with MIMICS Customer Relationship Management module\"],\r\n \"related\": [\r\n {\"name\": \"Customer Relationship Management\", \"route\": \"/module-options/crm\"}\r\n ]\r\n },\r\n {\r\n \"name\": \"Public Debt Issuance\",\r\n \"module\": \"Central Banking\",\r\n \"route\": \"/central-banking/central-bank-bonds\",\r\n \"tags\": [],\r\n \"desc\": \"The MIMICS Public Debt Issuance module effectively manages the auctions, issuance, transfers and payments associated with your government bonds, external corporate or municipal bonds, T-bills and notes. The system facilitates the auction process of government securities by allocating the applications received and producing letters of acceptance or rejection. After the auction process, the system maintains and tracks the holdings. Payments are made for interest, calls and maturities, and end-of-year tax reporting can be processed if applicable. A full complement of reports is available to print.\",\r\n \"features\": [\"Automates entire auction process, from declaration of securities to conversions into certificates or production of refund checks and direct deposits\", \"Stores all applicant information and groups each within a customer types with default priority levels set for each\", \"Calculates values such as the average discount rate, average tender rate, market rate and re-discount rate automatically\", \"Tracks current and historical holdings for each investor and produces customer statements; holdings can be restricted, hypothecated or can have a vesting schedule\", \"Allows full or partial transfers to be made between holders, or from an existing holder to a new holder; these can be one-to-one, one-to-many, many-to-one, or many-to-many\", \"Projects Interest payments in advance; after verification, interest can be processed by security or by issuer and payments issued by check, direct deposit or by wire.\", \"Prints checks with micr lines, signatures and logos\", \"Maturities are projected and can be processed; they will flag when mature, but retain their history\", \"Generates accounting entries from your daily operations and creates a daily or real-time export file\", \"Produces a full complement of reports, including detailed information about holdings, transfer history, payment history, projected payments, auction allocation, holdings, and maturities due\", \"Interfaces with all MIMICS Central Bank Engine software, as well as with external systems to allow you to import or export current data and information\"],\r\n \"related\": [\r\n {\"name\": \"Bond Paying Agent\", \"route\": \"/trust/bond-paying-agent\"},\r\n {\"name\": \"Debt Management\", \"route\": \"/trust/debt-management\"},\r\n {\"name\": \"Treasury Bills\", \"route\": \"/central-banking/central-bank-treasury-bills\"}\r\n ]\r\n },\r\n {\r\n \"name\": \"Currency Vault Management\",\r\n \"module\": \"Central Banking\",\r\n \"route\": \"/central-banking/central-bank-currency-management\",\r\n \"tags\": [],\r\n \"desc\": \"The MIMICS Currency Vault Management system provides all the functionality needed by a central bank or monetary authority to manage the flow of currency into and out of circulation. It tracks the entire vault management of out-of-circulation notes and coins, tracks all counting and sorting and provides full verification and complete audit trails of all activity entered in the system.\",\r\n \"features\": [\"Tracks all steps of currency taken out of or put into circulation, currency deposits and withdrawals by commercial banks through dual (or more)-control verification and full audit tracking\", \"Tracks results of counting machine processing, including the valid currency, currency fit for reissue, the value of unfit currency to be destroyed, counterfeits, and mis-categorized currency\", \"Tracks the full process of removing specific sets of currency through the vault to the counting room\", \"Tracks the details of treasury meetings for transfer of currency to and from armored vehicles\", \"Tracks all activity that occurs inside the vault, including new orders of currency from minters/printers, any movement of currency in the vault and shipments of foreign currency\", \"Handles all numismatic operations, including saving the full inventory of collectable items, and the request, transfer or sale of those items\", \"Provides a full audit trail, including the user, computer, and time-stamp of each activity\", \"Interfaces with payment processing systems, such as RTGS, and counting machines\", \"Interfaces with customized MIMICS Web Portal to allow commercial banks to schedule deposits or withdrawals, including denomination breakdowns\"],\r\n \"related\": [\r\n {\"name\": \"Portfolio Management\", \"route\": \"/central-banking/central-bank-portfolio\"},\r\n {\"name\": \"Teller\", \"route\": \"/central-banking/teller-software\"},\r\n {\"name\": \"Web Interfaces\", \"route\": \"/central-banking/central-bank-web-interfaces\"},\r\n {\"name\": \"Mobile Device Access\", \"route\": \"/module-options/customer-web-portal\"},\r\n {\"name\": \"Numismatic Management\", \"route\": \"/central-banking/central-bank-numismatic-management\"}\r\n ]\r\n },\r\n {\r\n \"name\": \"Dormant Accounts\",\r\n \"module\": \"Central Banking\",\r\n \"route\": \"/central-banking/central-bank-dormant-accounts\",\r\n \"tags\": [],\r\n \"desc\": \"The MIMICS Dormant Accounts system effectively manages your dormant accounts. It handles the input or import of the newly-dormant accounts in your country. Customer claims can be managed, with or without interest being paid to the customer. Claim checks can be cut to the bank of origin. Dormant account funds can be invested in fixed deposits and the interest accrued can be calculated and reinvested. Our standard system can be customized to your institution’s unique operations and statement requirements.\",\r\n \"features\": [\"Allows gathered funds to be invested in fixed deposits, and the interest accrued to be calculated and reinvested\", \"Sets up a rate, calendar and date range for interest rate payments, which can be calculated automatically by the system against the average rate of the investments over time\", \"Prints checks to bank of origin individually or batched daily, and can be sent with a letter breaking down each check to each account\", \"Includes an extensive list of customizable reports, including detail and summary reports of accounts by bank, currency and year\", \"Allows for accounts to be added directly to the system by a central bank user, or from the originating banks via a manual entry or Excel spreadsheet upload through a MIMICS Web Portal, or by email \", \"Produces investment reports that include multi-currency holdings reports, interest accrual reports, monthly and annual averages reports, and maturities due\", \"Interfaces with all MIMICS Central Bank Engine software, as well as a customizable Web Portal\"],\r\n \"related\": [\r\n {\"name\": \"Auction Processing\", \"route\": \"/central-banking/central-bank-auction-processing\"},\r\n {\"name\": \"Bond Issuance\", \"route\": \"/central-banking/central-bank-bonds\"},\r\n {\"name\": \"Currency Vault Management\", \"route\": \"/central-banking/central-bank-currency-management\"},\r\n {\"name\": \"Numismatic Management\", \"route\": \"/central-banking/central-bank-numismatic-management\"},\r\n {\"name\": \"Portfolio Management\", \"route\": \"/central-banking/central-bank-portfolio\"},\r\n {\"name\": \"Teller\", \"route\": \"/central-banking/teller-software\"},\r\n {\"name\": \"Web Interfaces\", \"route\": \"/central-banking/central-bank-web-interfaces\"}\r\n ]\r\n },\r\n {\r\n \"name\": \"Exchange Control\",\r\n \"module\": \"Central Banking\",\r\n \"route\": \"/central-banking/central-bank-exchange-control\",\r\n \"tags\": [],\r\n \"desc\": \"The MIMICS Exchange Control system tracks activity that affects the domestic currency supply and transactions with international financial implications. The software maintains a register of foreign direct investment scenarios, including foreign investment projects and portfolio investment. The system tracks all foreign exchange transactions from banks, companies, foreign investment projects or cambio operations of official money changers. A customized web portal facilitates direct regulatory reporting from clients, corporations or commercial banks. An extensive list of reports is included in the system.\",\r\n \"features\": [\"Tracks all aspects of foreign currency accounts, including owning company, account type, bank, branch, sector, approval information, location, and if it is tied to foreign direct investment\", \"Tracks all activity on the account, including the transaction date, debit or credit amount, payee, purpose, and transfer information in the case where funds are transferred between accounts\", \"Provides a customized web interface that allows companies to submit information via grid entry or spreadsheet uploads; companies can also download reports for submission history, activity history, etc.\", \"Handles foreign direct investment scenarios and saves information such as the investment project type, size, projected completion date, approval info, companies involved, etc.\", \"Tracks all foreign exchange transactions from banks or cambio operations of official money changers\", \"Tracks exchange approvals and renewal and expiration dates with customized notifications\", \"Includes an extensive list of reports, including detailed information about accounts, investment projects, activity submission and history\", \"Interfaces with all MIMICS Central Bank Engine software\"],\r\n \"related\": [\r\n {\"name\": \"Auction Processing\", \"route\": \"/central-banking/central-bank-auction-processing\"},\r\n {\"name\": \"Bond Issuance\", \"route\": \"/central-banking/central-bank-bonds\"},\r\n {\"name\": \"Currency Vault Management\", \"route\": \"/central-banking/central-bank-currency-management\"},\r\n {\"name\": \"Numismatic Management\", \"route\": \"/central-banking/central-bank-numismatic-management\"},\r\n {\"name\": \"Portfolio Management\", \"route\": \"/central-banking/central-bank-portfolio\"},\r\n {\"name\": \"Teller\", \"route\": \"/central-banking/teller-software\"},\r\n {\"name\": \"Treasury Bills\", \"route\": \"/central-banking/central-bank-treasury-bills\"},\r\n {\"name\": \"Web Interfaces\", \"route\": \"/central-banking/central-bank-web-interfaces\"}\r\n ]\r\n },\r\n {\r\n \"name\": \"Foreign Exchange Management\",\r\n \"module\": \"Central Banking\",\r\n \"route\": \"/central-banking/central-bank-forex\",\r\n \"tags\": [],\r\n \"desc\": \"The MIMICS Forex Trading system effectively handles the trading and accounting procedures required for institutional currency trading. It provides an efficient and effective way to print contracts and manage all aspects of operating accounts.\",\r\n \"features\": [\"Groups customers into types, and calculates any taxes and commissions necessary; tracks all beneficiaries\", \"Allows for a base currency to be established, and default exchange rates to be saved, downloaded, or entered manually at time of trade\", \"Incorporates a multi-user platform that allows for different levels of security access and managerial approval/verification\", \"Calculates all fees and commissions\", \"Allows for direct or indirect exchange rates\", \"Allows trades to be made at par or to either pay or receive commissions\", \"Produces a full complement of reports, including detailed purchases and sales reports, currency summary, exchange rate and commission reports\", \"Interfaces with the all MIMICS modules, including Portfolio Management, as well as all third-party programs\"],\r\n \"related\": [\r\n {\"name\": \"External Reserves Portfolio\", \"route\": \"/central-banking/central-bank-portfolio\"}\r\n ]\r\n },\r\n {\r\n \"name\": \"Numismatic Management\",\r\n \"module\": \"Central Banking\",\r\n \"route\": \"/central-banking/central-bank-numismatic-management\",\r\n \"tags\": [],\r\n \"desc\": \"Tracks the vault contents of Numismatic (Collectors') Currency Items, including the categories of General Stock, Consignment Stock (available for sale), Redeemed Stock, Gratis Stock (items to be given as gifts), and Archive Stock (the Bank's Collection). It allows for the entry of requests for numismatic items for sale or as gifts, and tracks the process of their removal from the vault and delivery to the proper department, with full audit capabilities.\",\r\n \"related\": [\r\n {\"name\": \"Currency Vault Management\", \"route\": \"/central-banking/central-bank-currency-management\"},\r\n {\"name\": \"Portfolio Management\", \"route\": \"/central-banking/central-bank-portfolio\"},\r\n {\"name\": \"Teller\", \"route\": \"/central-banking/teller-software\"}\r\n ]\r\n },\r\n {\r\n \"name\": \"Pension Admin (Central Banking)\",\r\n \"module\": \"Central Banking\",\r\n \"route\": \"/central-banking/pension-management\",\r\n \"tags\": [],\r\n \"desc\": \"The MIMICS Pension Admin module manages pension plans from inception of the plan, through contributions, to lump sum payments and recurring pension payments. The software tracks all contributions made, documents filed, any payments made and any number of adjustments to the plans as they occur, as set by the user.\",\r\n \"features\": [\"Tracks and records all contributions, payments, adjustments for an unlimited number of plans\", \"Enables users to manage Defined Benefit and Defined Contribution plans\", \"Handles different forms of lump-sum payments for retirement, termination, disability or death according to plan-defined vesting schedule\", \"Records and tracks the requirements of the board of trustees to maintain compliance\", \"Produces customized member benefit statements and other forms for members\", \"Allows users to run ‘what-if’ scenarios such as early retirement for clients\", \"Manages and issues reminders for documents required by the government as well as those required by the user\", \"Produces reports for local regulatory requirements\", \"Allows the plan to maintain a complaint register\", \"Calculates and processes recurring pension payments through check, ACH or other payment methods\", \"Generates over forty different analytical reports\"],\r\n \"related\": [\r\n {\"name\": \"Fund Portfolio Management\", \"route\": \"/investment/portfolio-management/fund-portfolio\"}\r\n ]\r\n },\r\n {\r\n \"name\": \"Reserve Portfolio Management\",\r\n \"module\": \"Central Banking\",\r\n \"route\": \"/central-banking/central-bank-portfolio\",\r\n \"tags\": [],\r\n \"desc\": \"The MIMICS Reserve Portfolio Management has been designed specifically for the unique needs of central banks, including the management of the External Reserves portfolio and sub-portfolios, tracking of Sinking Fund portfolios, and handling of Pension Portfolios. It offers many configurable options that conform to your specific investment guidelines, international regulations and accounting standards.\",\r\n \"features\": [\"Manages equity, fixed income, equity derivatives, fixed income derivatives, commodities, repos, forex contracts and other investment types\", \"Provides price/yield calculations\", \"Monitors external reserve valuation in real time\", \"Manages data points specific to central banks, such as demand liabilities and SDR balances\", \"Tracks and records transaction history\", \"Allows for multi-step approval processes for all transaction types\", \"Produces projected cash flow reports to see the portfolio’s expected income \", \"Prepares all compliance reporting automatically\", \"Facilitates entry of your purchase, sale, and income transactions and forex trades\", \"Handles an unlimited number of portfolios and sub-portfolios of any size, with independent limit-setting for each\", \"Interfaces seamlessly with your core processing system as well as third-party systems such as ACH, SWIFT, RTGS, etc.\", \"Interfaces with the MIMICS Portfolio Analysis module for full performance and risk analytics\"],\r\n \"related\": [\r\n {\"name\": \"Back Office\", \"route\": \"/investment/back-office\"},\r\n {\"name\": \"Front Office\", \"route\": \"/investment/front-office\"},\r\n {\"name\": \"Currency Vault Management\", \"route\": \"/central-banking/central-bank-currency-management\"},\r\n {\"name\": \"Foreign Exchange Management\", \"route\": \"/central-banking/central-bank-forex\"},\r\n {\"name\": \"Repos\", \"route\": \"/banking/repo-software\"},\r\n {\"name\": \"Portfolio Analysis\", \"route\": \"/investment/portfolio-analysis\"}\r\n ]\r\n },\r\n {\r\n \"name\": \"Treasury Bills\",\r\n \"module\": \"Central Banking\",\r\n \"route\": \"/central-banking/central-bank-treasury-bills\",\r\n \"tags\": [],\r\n \"desc\": \"Handles the management of the Treasury Bills and Notes from the Auction to their Maturity. Our standard software can be customized to your institution's exact needs.\",\r\n \"related\": [\r\n {\"name\": \"Bond Issuance\", \"route\": \"/central-banking/central-bank-bonds\"}\r\n ]\r\n },\r\n {\r\n \"name\": \"Teller\",\r\n \"module\": \"Central Banking\",\r\n \"route\": \"/central-banking/teller-software\",\r\n \"tags\": [],\r\n \"desc\": \"The MIMICS Teller system can organize, monitor and streamline your entire teller operation. This front-end module can facilitate any type of receipt or deposit, and process disbursements or other types of payments, to the full range of teller functions including cashing checks, currency exchange, CD management, loan payments, as well as remittances.\",\r\n \"features\": [\"Records addresses, phone numbers, and email addresses of both individual and business contacts\", \"Allows for any number of branches and tills, and money can be transferred between chief teller tills, between the chief teller till and teller tills and between teller tills at one location\", \"Handles payments for any purpose, including deposits; prints receipts on customized templates\", \"Facilitates till balancing with full audit reports\", \"Maintains checking and savings accounts, allowing for deposits, withdrawals, rollovers and transfers between accounts\", \"Allows for full, partial or overpayment direct loan payments \", \"Allows for exchanges in any currency; direct or indirect rates can be assigned daily or at set intervals\", \"Allows the easy issuance of CDs, and handles all the procedures of paying agent\", \"Produces a full audit trail, including timestamps, user IDs, and computers used\", \"Allows for a broad range of reports, such as loan reports, teller balance reports and transaction summaries\", \"Interfaces with the MIMICS Debt Management module for issuances of CDs, commercial paper, promissory notes, etc.\", \"Interfaces with the MIMICS CRM module to provide more flexibility with handling customer accounts\"],\r\n \"related\": [\r\n {\"name\": \"Customer Relationship Management\", \"route\": \"/module-options/crm\"},\r\n {\"name\": \"Customer Portfolio\", \"route\": \"/investment/portfolio-management/customer-portfolio\"},\r\n {\"name\": \"CD Issuance\", \"route\": \"/trust/cd-issuance\"},\r\n {\"name\": \"Loan Processing\", \"route\": \"/banking/loan-management\"},\r\n {\"name\": \"Annuities\", \"route\": \"/trust/annuities-software\"}\r\n ]\r\n },\r\n {\r\n \"name\": \"Regulatory Reporting Web Portal\",\r\n \"module\": \"Central Banking\",\r\n \"route\": \"/central-banking/central-bank-web-interfaces\",\r\n \"tags\": [],\r\n \"desc\": \"The MIMICS Regulatory Reporting Web Portal provides a web-based solution to facilitate data delivery between commercial and central banks. The portals allow each bank to log in remotely to transmit required information in an efficient, secure manner. Portals can be created for currency management, dormant accounts, corporation exchange, commercial bank exchange, or any other regulatory portal requested. All portals are customized to match the look and feel of the individual clients’ websites.\",\r\n \"features\": [\"Allows commercial banks to electronically enter information regarding currency (notes & coins) that they will be depositing to or withdrawing from the central bank (Currency Management)\", \"Allows commercial banks to submit their annual newly-dormant accounts manually through a grid or uploaded via a spreadsheet (Dormant Accounts)\", \"Allows corporations and commercial banks to submit required information periodically to the central bank, e.g. foreign investments and foreign currency account activity (Exchange Control)\", \"Facilitates the efficient flow of all information into queues that then interface seamlessly with corresponding MIMICS modules\", \"Provides full security for all data, and can include verification of submitted information\", \"Custom portals can be created to suit your specific regulatory needs\"],\r\n \"related\": [\r\n {\"name\": \"Currency Vault Management\", \"route\": \"/central-banking/central-bank-currency-management\"},\r\n {\"name\": \"Dormant Accounts\", \"route\": \"/central-banking/central-bank-dormant-accounts\"},\r\n {\"name\": \"Exchange Control\", \"route\": \"/central-banking/central-bank-exchange-control\"},\r\n {\"name\": \"Web Interfaces\", \"route\": \"/central-banking/central-bank-web-interfaces\"}\r\n ]\r\n },\r\n {\r\n \"name\": \"Back Office\",\r\n \"module\": \"Investment\",\r\n \"route\": \"/investment/back-office\",\r\n \"tags\": [],\r\n \"desc\": \"Will process security purchases and sales, make the payments for the transactions, and assist in the delivery of the securities. Our software handles a wide variety of investment instruments efficiently.\",\r\n \"related\": []\r\n },\r\n {\r\n \"name\": \"Bond Tax Swap\",\r\n \"module\": \"Investment\",\r\n \"route\": \"/investment/bond-tax-swap\",\r\n \"tags\": [],\r\n \"desc\": \"Provides a flexible method to design swaps. The bonds you are considering replacing – the Held bonds – can be either taxable issues or non-taxable. You can consider one or more bonds in your Held bond portfolio if you interface with the MIMICS Portfolio Management Software. Otherwise, you can enter the parameters of the bonds to be swapped out as they occur.\",\r\n \"related\": [\r\n {\"name\": \"Portfolio Management\", \"route\": \"/investment/portfolio-management\"}\r\n ]\r\n },\r\n {\r\n \"name\": \"Equity Trading\",\r\n \"module\": \"Investment\",\r\n \"route\": \"/investment/equity-trading\",\r\n \"tags\": [],\r\n \"desc\": \"The MIMICS Equity Trading system facilitates the placement of equity orders for your organization or on behalf of clients, processing the completion of the orders and processing additional equity corporate actions, such as dividends and splits. The system also processes additional stock exchange and legal actions, such as certificate lodgment, pledging, indemnity fees and transfer taxes. Fees, commissions, and taxes can be calculated and tracked for all activity. Full reporting is available.\",\r\n \"features\": [\"Allows entry of all buy and sell equity orders, including limit and stop/loss prices, order duration (day order, good until a specified date, good until canceled, etc.), and other flexible order parameters such as all-or-nothing, minimum shares, block shares, etc.\", \"Allows you to specify number of shares, specific par or specific value, or to place the order at market price\", \"If the stock exchange where the order is placed provides interface options, the MIMICS system can interface for placing orders, receiving the completion or orders, price imports, bonus shares imports, etc.\", \"Allows order completion to be done manually or by way of an import file sent by the exchange; system verifies that completion falls within the proper parameters specified at time of order\", \"Calculates fees and commissions as flat or tiered; tiered schedules can have different tiers as flat amounts or as a percentage of principal\", \"Calculates taxes on the fees and commissions charged; fees and commissions can be overridden manually\", \"Processes corporate actions, including cash and stock dividends, stock splits and corporate mergers \", \"Processes additional equity activity such as lodging and withdrawing certificates from the exchange, pledging certificates, releasing pledges and entering indemnity fees and transfer taxes\", \"Tracks customer account balances in the system; prints disbursement checks and maintains check register\", \"Full complement of reports is available in the system for all types of activity\", \"Interfaces with all MIMICS software and can be set up to interface with a custom Web Portal to allow your customers to view and download reports and statements\"],\r\n \"related\": [\r\n {\"name\": \"Web Interfaces\", \"route\": \"/module-options/customer-web-portal\"}\r\n ]\r\n },\r\n {\r\n \"name\": \"FOREX\",\r\n \"module\": \"Investment\",\r\n \"route\": \"/investment/forex-software\",\r\n \"tags\": [],\r\n \"desc\": \"The MIMICS Forex Trading system effectively handles the trading and accounting procedures required for institutional currency trading. It provides an efficient and effective way to print contracts and manage all aspects of operating accounts.\",\r\n \"features\": [\"Groups customers into types, and calculates any taxes and commissions necessary; tracks all beneficiaries\", \"Allows for a base currency to be established, and default exchange rates to be saved, downloaded, or entered manually at time of trade\", \"Incorporates a multi-user platform that allows for different levels of security access and managerial approval/verification\", \"Calculates all fees and commissions\", \"Allows for direct or indirect exchange rates\", \"Allows trades to be made at par or to either pay or receive commissions\", \"Produces a full complement of reports, including detailed purchases and sales reports, currency summary, exchange rate and commission reports\", \"Interfaces with the all MIMICS modules, including Portfolio Management, as well as all third-party programs\"],\r\n \"related\": [\r\n {\"name\": \"Portfolio Management\", \"route\": \"/investment/portfolio-management\"}\r\n ]\r\n },\r\n {\r\n \"name\": \"Front Office\",\r\n \"module\": \"Investment\",\r\n \"route\": \"/investment/front-office\",\r\n \"tags\": [],\r\n \"desc\": \"Shows your available inventory to help you give quick quotes to your customers. The system handles fixed income securities, equities, fixed income derivatives, and equity derivatives. Once there is a sale, your trades are automatically transmitted to the back office for further processing.\",\r\n \"related\": [\r\n {\"name\": \"Back Office\", \"route\": \"/investment/back-office\"}\r\n ]\r\n },\r\n {\r\n \"name\": \"Hedge Fund\",\r\n \"module\": \"Investment\",\r\n \"route\": \"/investment/hedge-fund\",\r\n \"tags\": [],\r\n \"desc\": \"Evolved to match today's market requirements. The system manages security portfolios for any type of security, and it maintains margin accounts. An embedded General Ledger System provides all financial reporting for the fund. Accounting is entirely flexible, and the system can handle any kind of accounting transaction.\",\r\n \"related\": [\r\n {\"name\": \"General Ledger\", \"route\": \"/accounting/general-ledger\"},\r\n {\"name\": \"Portfolio Management\", \"route\": \"/investment/portfolio-management\"}\r\n ]\r\n },\r\n {\r\n \"name\": \"Investment Calculator\",\r\n \"module\": \"Investment\",\r\n \"route\": \"/investment/investment-calculator\",\r\n \"tags\": [],\r\n \"desc\": \"Performs daily calculations instantly, and displays all pertinent data at a single glance. This system will eliminate the need for another calculator or terminal on the desk. The calculations can be saved for later use.\",\r\n \"related\": [\r\n {\"name\": \"Back Office\", \"route\": \"/investment/back-office\"},\r\n {\"name\": \"Front Office\", \"route\": \"/investment/front-office\"},\r\n {\"name\": \"Portfolio Management\", \"route\": \"/investment/portfolio-management\"},\r\n {\"name\": \"Security Trading\", \"route\": \"/investment-management/security-trading\"}\r\n ]\r\n },\r\n {\r\n \"name\": \"Order Management\",\r\n \"module\": \"Investment\",\r\n \"route\": \"/investment/order-management\",\r\n \"tags\": [],\r\n \"desc\": \"Designed to facilitate taking and entering buy and sell orders from clients of any instrument type, processing the completion of the orders, and processing additional exchange and legal actions, such as certificate lodgment, pledging, indemnity fees, and transfer taxes. Fee and commissions are tracked for all activity. Full reporting is available.\",\r\n \"related\": [\r\n {\"name\": \"Equity Trading\", \"route\": \"/investment/equity-trading\"},\r\n {\"name\": \"Portfolio Management\", \"route\": \"/investment/portfolio-management\"},\r\n {\"name\": \"Web Interfaces\", \"route\": \"/module-options/customer-web-portal\"}\r\n ]\r\n },\r\n {\r\n \"name\": \"Portfolio Analysis\",\r\n \"module\": \"Investment\",\r\n \"route\": \"/investment/portfolio-analysis\",\r\n \"tags\": [],\r\n \"desc\": \"The MIMICS Portfolio Analysis module is designed to assist a portfolio manager with assessing different risk and performance measurements on any portfolio being tracked by the MIMICS Portfolio Management system. Different categories of risk management features are offered, including credit risk, market risk and different sensitivity analysis measurements.\",\r\n \"features\": [\"Allows myriad limits to be placed on portfolios, such as those according to security ratings categories, asset type, security type, industry type, etc.\", \"Allows for credit limits on loan recipient customers and counterparties to be initialized and tracked\", \"Allows for trade limits to be enabled for regulation in the MIMICS system based upon type of trade, value, open positions, etc.\", \"Manages liquidity risk through the built-in Asset/Liability Management feature, which tracks the ratio of assets and liabilities in the present position as well as for future cash flow periods\", \"Calculates and reports on several risk management factors, such as Value At Risk (VaR), Duration, Modified Duration, and the Greeks; yield curves can be parameterized, graphed and analyzed \", \"Performs what-if scenarios, and simulations and optimizations can be run \", \"Performs stress testing, back testing and Interest rate sensitivity testing\"],\r\n \"related\": [\r\n {\"name\": \"Portfolio Management\", \"route\": \"/investment/portfolio-management\"},\r\n {\"name\": \"Repo Agreements\", \"route\": \"/banking/repo-software\"}\r\n ]\r\n },\r\n {\r\n \"name\": \"Portfolio Management\",\r\n \"module\": \"Investment\",\r\n \"route\": \"/investment/portfolio-management\",\r\n \"tags\": [],\r\n \"desc\": \"Offers powerful and flexible out-of-the-box solutions for managing your business’ portfolio needs. Get up and running quickly with our software’s many configurable options that easily adapt for different international and accounting standards. An extensive list of standard interfaces integrates directly with our software. We have software modules that manage proprietary trading; customer’s trading; mutual, pension, and hedge funds; and foreign-exchange reserves.\",\r\n \"related\": [\r\n {\"name\": \"Treasury Portfolio\", \"route\": \"/investment/portfolio-management/treasury-portfolio\"},\r\n {\"name\": \"Customer Portfolio\", \"route\": \"/investment/portfolio-management/customer-portfolio\"},\r\n {\"name\": \"Fund Portfolio\", \"route\": \"/investment/portfolio-management/fund-portfolio\"},\r\n {\"name\": \"Reserve Portfolio Management\", \"route\": \"/central-banking/central-bank-portfolio\"}\r\n ]\r\n },\r\n {\r\n \"name\": \"Fund Portfolio\",\r\n \"module\": \"Investment\",\r\n \"route\": \"/investment/portfolio-management/fund-portfolio\",\r\n \"parent\": \"Portfolio Management\",\r\n \"productRoute\": \"/portfolio-management\",\r\n \"subModule\": \"Fund Portfolio\",\r\n \"subModuleRoute\": \"/fund-portfolio\",\r\n \"tags\": [],\r\n \"keywords\": \"fund portfolio investment\",\r\n \"desc\": \"The MIMICS Fund Portfolio Management module manages the portfolios of all foreign and domestic investments types, with fixed or variable rates. It organizes and simplifies the processing requirements for funds, and calculates the Net Asset Value (NAV). Investments can be segregated, and it maintains the funds’ holdings, income, and transaction history.\",\r\n \"features\": [\"Manages equity, fixed income, equity derivatives, fixed income derivatives, commodities, real estate, repos and other investment types\", \"Calculates the Net Asset Value (NAV)\", \"Calculates management and incentive fees per your configured settings\", \"Prepares all compliance reporting automatically\", \"Handles an unlimited number of portfolios of any size\", \"Interfaces with the MIMICS General Ledger module or third-party general ledgers, as well systems such as ACH, SWIFT, RTGS, etc.\", \"Interfaces with the MIMICS Portfolio Analysis module for full performance and risk analytics\", \"Interfaces with the MIMICS Mutual Funds Admin and MIMICS Pension Admin modules\"\r\n ],\r\n \"related\": [\r\n {\"name\": \"General Ledger\", \"route\": \"/accounting/general-ledger\"},\r\n {\"name\": \"Portfolio Management\", \"route\": \"/investment/portfolio-management\"},\r\n {\"name\": \"Pension Admin\", \"route\": \"/trust/pension-management\"},\r\n {\"name\": \"Portfolio Analysis\", \"route\": \"/investment/portfolio-analysis\"}\r\n ]\r\n },\r\n {\r\n \"name\": \"Treasury Portfolio\",\r\n \"module\": \"Investment\",\r\n \"route\": \"/investment/portfolio-management/treasury-portfolio\",\r\n \"tags\": [],\r\n \"desc\": \"The MIMICS Treasury Portfolio Management allows you to segregate your investments and automatically prepare all of your compliance reporting, and offers many configurable options, to comply with individual international and accounting standards.\",\r\n \"features\": [\"Manages equity, fixed income, equity derivatives, fixed income derivatives, commodities, repos and other investment types\", \"Automates compliance reporting, set to your specific accounting standards\", \"Tracks and records all transaction history\", \"Automatically calculates your tax obligation\", \"Allows for dozens of report types on transactions, positions, accounting and more \", \"Facilitates entry of your purchase, sale and income transactions\", \"Provides price/yield calculations\", \"Interfaces seamlessly with your core processing system as well as third-party systems such as ACH, SWIFT, RTGS, etc.\", \"Handles an unlimited number of portfolios of any size\", \"Interfaces with the MIMICS Portfolio Analysis module for full performance and risk analytics\"],\r\n \"related\": [\r\n {\"name\": \"MIMICS Interfaces\", \"route\": \"/module-options/mimics-interfaces\"},\r\n {\"name\": \"Portfolio Management\", \"route\": \"/investment/portfolio-management\"}\r\n ]\r\n },\r\n {\r\n \"name\": \"Customer Portfolio\",\r\n \"module\": \"Investment\",\r\n \"route\": \"/investment/portfolio-management/customer-portfolio\",\r\n \"tags\": [],\r\n \"desc\": \"The MIMICS Customer Portfolio Management manages your customers’ trading efficiently while scaling to your particular business needs. An unlimited number of portfolios can be set up for any number of customers in any number of investment types and currencies.\",\r\n \"features\": [\"Manages equity, fixed income, equity derivatives, fixed income derivatives, commodities, repos and other investment types\", \"Tracks settlement account cash balances as part of overall portfolio valuation\", \"Calculates taxes, fees and commissions as per your configuration\", \"Allows setup of allocation models, investment guidelines and portfolio limits\", \"Produces projected cash flow reports to provide your clients with the expected income for holdings \", \"Generates professional reports, statements and confirmations for your clients, with your logo at the top\", \"Interfaces seamlessly with your core processing system as well as third-party systems such as ACH, SWIFT, RTGS, etc.\", \"Interfaces with the MIMICS Portfolio Analysis module for full performance and risk analytics\"],\r\n \"related\": []\r\n },\r\n {\r\n \"name\": \"Precious Metals Management\",\r\n \"module\": \"Investment\",\r\n \"route\": \"/investment/precious-metals-software\",\r\n \"tags\": [],\r\n \"desc\": \"The MIMICS Precious Metals system handles the complete cycle of investment in precious metals for your customers. From the receipt of funds from investors, to the purchase and storage of metals, to the eventual sale and disbursement of funds, the system provides comprehensive management of all investor information, complete audit tracking and full reporting.\",\r\n \"features\": [\"Tracks all information of the investors, including KYC information and details of all individuals on an account; omnibus accounts, with any number of subaccounts, can be tracked as well\", \"Handles the receipting of funds from the customers, which can go through an approval process in the system\", \"Allows purchasing or transferring in of precious metals for your customer through an easy-to-use grid that allows the entry of any number of items to be entered on the same purchase; the system counts down the available customer funds as each item is entered; the system can require approval of transactions entered\", \"Details of the item can be tracked, including the weight, value, fineness, serial number, hallmark, and confirmation number\", \"Tracks the custodial location of the particular vault details of each investment at any number of locations; delivery of the investment is also tracked\", \"Allows metal prices to be entered into the system or to be imported from external sources for investment revaluation\", \"Calculates and tracks transactional fees based on user configurations; administrative or other fees accrued daily can also be tracked, and invoices produced for periodic fees\", \"Sales and transfers outs can be entered; the system will display all customer inventory available to be selected; profit and fees can be calculated; disbursements can be processed by Check, ACH, and by direct delivery of inventory to the customer.\", \"Provides a full audit history of all transactions and a full inventory audit of vaults\", \"Produces a full range of customized forms, including: receipts, disbursement advices, disbursement checks, certificates, purchase confirmations, authorization to release material, sale confirmations (both preliminary and finalized) and statements\", \"Provides full reporting, including transaction history, inventory and positions, market values, gains/losses, fee accruals, blotters and audit reports\", \"Interfaces with all MIMICS software and the MIMICS Web Portal, which allows customers to log in and view/download account information and request sales or disbursements\"],\r\n \"related\": [\r\n {\"name\": \"Web Interfaces\", \"route\": \"/module-options/customer-web-portal\"}\r\n ]\r\n },\r\n {\r\n \"name\": \"Sales Commissions\",\r\n \"module\": \"Investment\",\r\n \"route\": \"/investment-management/sales-commissions\",\r\n \"tags\": [],\r\n \"desc\": \"Can be used in a standalone mode - without interfacing with any other MIMICS system - or it can be embedded in virtually any MIMICS products you wish. The system will automatically calculate sales commissions for any trade in the system depending upon the parameters that you, the user, define.\",\r\n \"related\": [\r\n {\"name\": \"General Ledger\", \"route\": \"/accounting/general-ledger\"}\r\n ]\r\n },\r\n {\r\n \"name\": \"Security Trading\",\r\n \"module\": \"Investment\",\r\n \"route\": \"/investment-management/security-trading\",\r\n \"tags\": [],\r\n \"desc\": \"Combines the functionality of the front and back offices. Trades start at the front office where the sales reps have visual access to their trade date and settlement date inventories based on the real time updates by the traders' purchases. Sales reps are instantly notified of positions that meet the interest criteria of their clients or prospects.\",\r\n \"related\": [\r\n {\"name\": \"Back Office\", \"route\": \"/investment/back-office\"},\r\n {\"name\": \"Customer Relationship Management\", \"route\": \"/module-options/crm\"},\r\n {\"name\": \"Front Office\", \"route\": \"/investment/front-office\"},\r\n {\"name\": \"Investment Calculator\", \"route\": \"/investment/investment-calculator\"},\r\n {\"name\": \"Customer Relationship Management\", \"route\": \"/module-options/crm\"},\r\n {\"name\": \"Money Desk\", \"route\": \"/trust/money-desk-software-system\"}\r\n ]\r\n },\r\n {\r\n \"name\": \"Annuities\",\r\n \"module\": \"Trust\",\r\n \"route\": \"/trust/annuities-software\",\r\n \"tags\": [],\r\n \"desc\": \"The MIMICS Annuities module manages your customers’ annuities from the point of purchase until the final payout is made. This system handles fixed, variable and fund-indexed annuities, and tracks lump-sum payments and ongoing contributions for immediate or deferred annuities. It will track different interest rates, fees that are applied and the contributions made in the accumulation phase and the payouts made in the annuitization phase. It accommodates different types of payouts, and allows flexibility in the payout patterns for your customers’ accounts, whether it is monthly, quarterly, semi-annually or annually. These payments can be made by check or ACH. The system can run multi-user on a Windows or Novell network.\",\r\n \"features\": [\"Handles all types of annuities from purchase to payout, with different type of payouts and payment schedules\", \"Tracks different interest rates, fees applied in contribution and accumulation phases and payouts made in annuitization phase\", \"Calculates the amortization schedule for the annuities; other payment and contribution projections can also be calculated\", \"Provides single-screen access to customer information such as primary and secondary contacts, beneficiaries’ information, fee schedule and contribution and payout status\", \"Tracks various types of fees and expenses that your organization charges for the purchasing and managing of the annuities, both recurring and non-recurring\", \"Tracks commissions for your sales department according to each broker or sales representative’s commission rates and handles override commissions\"],\r\n \"related\": [\r\n {\"name\": \"Back Office\", \"route\": \"/investment/back-office\"},\r\n {\"name\": \"Customer Relationship Management\", \"route\": \"/module-options/crm\"},\r\n {\"name\": \"Front Office\", \"route\": \"/investment/front-office\"},\r\n {\"name\": \"Investment Calculator\", \"route\": \"/investment/investment-calculator\"},\r\n {\"name\": \"Customer Relationship Management\", \"route\": \"/module-options/crm\"},\r\n {\"name\": \"Money Desk\", \"route\": \"/trust/money-desk-software-system\"}\r\n ]\r\n },\r\n {\r\n \"name\": \"Bond Paying & Transfer Agent\",\r\n \"module\": \"Trust\",\r\n \"route\": \"/trust/bond-paying-agent\",\r\n \"tags\": [],\r\n \"desc\": \"The MIMICS Bond Paying & Transfer Agent system manages the issuance and maintenance of bonds and other debt instruments. It tracks all transfers and sales, all holder positions, and handles payments including interest, principal, maturity, calls and puts. Payments can be made via many different payment options and in different currencies, configurable on the holder level. The software can print certificates, receipts, confirmations, checks, mailing labels and other customizable templates. The software facilitates tax reporting, both electronic and printed. Full reporting and audit functionality is included.\",\r\n \"features\": [\"Tracks and records all transfers and sales, all holder positions, and handles payments including interest, principal, maturity, calls and puts\", \"Processes interest payments for both fixed rate and floating rate bonds; interest can be compounded on any schedule\", \"Features full reporting functionality and complete audit trail recording\", \"Facilitates both electronic and printed tax reporting\", \"Prints certificates, receipts, confirmations, checks, mailing labels and other customizable templates\", \"Integrates with the MIMICS Shareholder Accounting system for management of both stocks and bonds with the same ease and convenience\"],\r\n \"related\": [\r\n {\"name\": \"Shareholder Accounting\", \"route\": \"/trust/shareholder-accounting\"}\r\n ]\r\n },\r\n {\r\n \"name\": \"CD Custody\",\r\n \"module\": \"Trust\",\r\n \"route\": \"/trust/cd-custody\",\r\n \"tags\": [],\r\n \"desc\": \"Manages the custodial CD holdings of your customers from the point the order is posted on the website. Interest Bearing and Discount CDs are handled. Our software tracks multiple levels of status of the CDs, from Pending to Approved, based on different compliance issues needed to complete the transaction.\",\r\n \"related\": [\r\n {\"name\": \"Web Interfaces\", \"route\": \"/module-options/customer-web-portal\"}\r\n ]\r\n },\r\n {\r\n \"name\": \"CD Issuance\",\r\n \"module\": \"Trust\",\r\n \"route\": \"/trust/cd-issuance\",\r\n \"tags\": [],\r\n \"desc\": \"Provides the functions of paying agent, registrar, and transfer agent for certificates of deposit. Interest can be simple or compounded and can pay and compound according to a variety of schedules. On the customer side, holdings are tracked, principal and interest are distributed, and 1099s are prepared. On the issuer side, the obligation to the holders is accounted for by the system.\",\r\n \"related\": [\r\n {\"name\": \"Debt Management\", \"route\": \"/trust/debt-management\"}\r\n ]\r\n },\r\n {\r\n \"name\": \"Commercial Paper Issuance\",\r\n \"module\": \"Trust\",\r\n \"route\": \"/trust/commercial-paper-issuance\",\r\n \"tags\": [],\r\n \"desc\": \"Designed to eliminate many of the cumbersome and often repetitive bookkeeping chores associated with the issuance of primary market Commercial Paper. Offers the issuing agent the flexibility needed to handle transactions on behalf of different issuers who may all use different certificate formats.\",\r\n \"related\": [\r\n {\"name\": \"Customer Relationship Management\", \"route\": \"/module-options/crm\"},\r\n ]\r\n },\r\n {\r\n \"name\": \"Debt Management\",\r\n \"module\": \"Trust\",\r\n \"route\": \"/trust/debt-management\",\r\n \"tags\": [],\r\n \"desc\": \"The MIMICS Debt Management system is designed for companies that issue their own debt instruments, such as certificates of indebtedness, debentures, commercial paper, promissory notes, GICs and all other types of debt. The system performs all of the functions of registrar, paying agent and transfer agent. The system tracks the holders of the issues and distributes interest. Interest can be simple or compounded, and can pay and compound according to a variety of schedules. The system allows for easy deposits and withdrawals, and recalculates interest accordingly.\",\r\n \"features\": [\"Allows debt to be issued with a wide variety of payment schedules; interest can be fixed, variable, or pegged to another rate, and compounded according to many types of schedules\", \"Handles fixed maturity debt instruments as well as debt with open maturity dates\", \"Contains all the procedures of paying agent for the securities, including printing and inventorying certificates, printing checks, and reporting to appropriate taxing authorities\", \"Allows transfers between parties or from one security to another; rollovers with or without changes to the parameters of the debt instrument can be made automatically or manually\", \"Allows reports to be printed to hard copy or to another format such as PDF, RichText, Microsoft Excel, and others\", \"Maintains a full history of transactions; the history is available for printing, displaying or exporting\", \"Updates check register with new check payments; register can be maintained by entering cleared or voided checks\", \"Interfaces with a customized MIMICS Web Portal that allows your customers to log in to view and download reports and statements\"],\r\n \"related\": []\r\n },\r\n {\r\n \"name\": \"IRA Management\",\r\n \"module\": \"Trust\",\r\n \"route\": \"/trust/ira-management\",\r\n \"tags\": [],\r\n \"desc\": \"The MIMICS IRA Management system allows financial organizations, corporations and fund managers to track employee Individual Retirement Accounts, payroll contributions, withdrawals, lump-sum payments and fund investments. Contributions may be imported directly from a payroll system to minimize manual entries by the users. The user-defined vesting schedule allows for flexibility in the investment of contributions by both the employee and employer. Various reports and forms can be generated by the system, and it can be set up with country-specific parameters.\",\r\n \"features\": [\"Handles an unlimited number of IRA accounts, and maintains holder’s enrollment information, plan association, contribution tracking, and beneficiary and dependent data for each\", \"Allows for any number and types of beneficiaries; payments can be made to beneficiaries if authorized via ACH or check\", \"Records all contributions, whether mandatory or voluntary; interest can be calculated on contributions or values can be set by NAV/Share\", \"Lump-sum payments can be printed on pre-printed check stock or blank check stock; the system can print with micr encoding\", \"Manages all of the parties to the plans, their license or certification numbers if required, as well as vesting information\", \"Manages documents required by the government; reminders are provided for filing requirements\", \"Maintains a complaint register for logging all complaints and recording all complaint resolutions\", \"Allows what-if scenarios to be run for situations such as early retirements and other questions\", \"Allows for set up to be in full compliance with any country’s regulations and requirements\", \"Generates reports such as IRA statements (disclosing investment allocation and return history), history reports and the holdings reports\", \"Interfaces with the MIMICS Portfolio Management system to manage all of the securities in the IRA portfolio including equities, fixed income securities and the derivatives of each\"],\r\n \"related\": [\r\n {\"name\": \"Pension Admin\", \"route\": \"/trust/pension-management\"},\r\n {\"name\": \"Customer Portfolio\", \"route\": \"/investment/portfolio-management/customer-portfolio\"}\r\n ]\r\n },\r\n {\r\n \"name\": \"LSA (Long-Term Savings Accounts)\",\r\n \"module\": \"Trust\",\r\n \"route\": \"/trust/long-term-savings-account-software\",\r\n \"tags\": [],\r\n \"desc\": \"Comprehensive management system for handling long term saving accounts, a special deposit instrument created by Parliament on June 1, 1999. The Government of Jamaica had introduced this Jamaican Dollar denominated tax-free account specifically for individuals.\",\r\n \"related\": [\r\n {\"name\": \"Pension Admin\", \"route\": \"/trust/pension-management\"}\r\n ]\r\n },\r\n {\r\n \"name\": \"Money Desk\",\r\n \"module\": \"Trust\",\r\n \"route\": \"/trust/money-desk-software-system\",\r\n \"tags\": [],\r\n \"desc\": \"Allows money desk operations to be integrated into a single module, providing reporting across all products and a simple GL or DDA interface to your core system. You can process investments from overnight through longer terms.\",\r\n \"related\": []\r\n },\r\n {\r\n \"name\": \"Mutual Fund Admin\",\r\n \"module\": \"Trust\",\r\n \"route\": \"/trust/mutual-fund\",\r\n \"tags\": [],\r\n \"desc\": \"The MIMICS Mutual Fund Admin module manages the trading and tracking of unlimited mutual fund issuances. It handles the registrar, transfer agent, and paying agent functionality for the customer administration. It can handle periodic dividends, daily dividends, or interest-bearing funds, as well as Front Load, Back Load, or No Load funds. The software allows various other configurable fees on any transaction, and the software can automatically manage a Buy/Sell Spread. It also interfaces seamlessly with the MIMICS Fund Portfolio Management to calculate the Net Asset Value (NAV).\",\r\n \"features\": [\"Handles an unlimited number of mutual funds of any size\", \"Produces customized forms, such as statements, acknowledgements, confirmations, etc., set to your design\", \"Allows for user-defined accounting rules to produce financial reports\", \"Offers a full suite of standard reports, with the option to allow you to create your own\", \"Prepares annual IRS documentation for electronic reporting\", \"Verifies the fund requirements when the customer information is entered, such as nationality and net worth requirements\", \"Interfaces with general ledger, DDA Import for sweeps and DDA Export to ACH for settlement\", \"Interfaces seamlessly with the MIMICS Fund Portfolio for Net Asset Value (NAV) calculations\"],\r\n \"related\": [\r\n {\"name\": \"Fund Portfolio Management\", \"route\": \"/investment/portfolio-management/fund-portfolio\"}\r\n ]\r\n },\r\n {\r\n \"name\": \"Open Time Deposit\",\r\n \"module\": \"Trust\",\r\n \"route\": \"/trust/open-time-deposit\",\r\n \"tags\": [],\r\n \"desc\": \"Enables your organization to easily manage your customers’ open time deposit accounts. Handles fixed rate, variable rate, and rates pegged to another rate such as LIBOR. Both simple interest and compound interest are handled.\",\r\n \"related\": []\r\n },\r\n {\r\n \"name\": \"Pension Admin\",\r\n \"module\": \"Trust\",\r\n \"route\": \"/trust/pension-management\",\r\n \"tags\": [],\r\n \"desc\": \"The MIMICS Pension Admin module manages pension plans or provident funds from inception of the plan, through contributions, to lump sum payments and recurring pension payments. The software tracks all contributions made, documents filed, any payments made and any number of adjustments to the plans as they occur, as set by the user.\",\r\n \"features\": [\"Tracks and records all contributions, payments, adjustments for an unlimited number of plans\", \"Enables users to manage Defined Benefit and Defined Contribution plans\", \"Handles different forms of lump-sum payments for retirement, termination, disability or death according to plan-defined vesting schedule\", \"Records and tracks the requirements of the board of trustees to maintain compliance\", \"Produces customized member benefit statements and other forms for members\", \"Allows users to run ‘what-if’ scenarios such as early retirement for clients\", \"Manages and issues reminders for documents required by the government as well as those required by the user\", \"Produces reports for local regulatory requirements\", \"Allows the plan to maintain a complaint register\", \"Calculates and processes recurring pension payments through check, ACH or other payment methods\", \"Generates over forty different analytical reports\"],\r\n \"related\": [\r\n {\"name\": \"Fund Portfolio Management\", \"route\": \"/investment/portfolio-management/fund-portfolio\"}\r\n ]\r\n },\r\n {\r\n \"name\": \"REIT\",\r\n \"module\": \"Trust\",\r\n \"route\": \"/trust/reit-software\",\r\n \"tags\": [],\r\n \"desc\": \"The MIMICS Real Estate Investment Trust (REIT) system allows your firm to streamline and automate the processing for registrar, paying agent and transfer agent functionality for REIT issuances. The system handles any number of REITs and Operating Partnerships, including facilities for processing issuance, redemption, transfers, revaluations, dividends, and tax reporting.\",\r\n \"features\": [\"Handles all aspects of the registrar, paying agent and transfer agent functions for REITS and Operating Partnerships\", \"Tracks current and historical holdings for each investor and produces customer statements\", \"Holdings can be restricted, hypothecated or can have a vesting schedule \", \"Allows full or partial transfers to be made between existing holders, new holders and/or the trust; these can be one-to-one, one-to-many, many-to-one, or many-to-many; full transfer journal details are saved\", \"Tracks brokers and salespeople on the customer level and produces commission records automatically\", \"Dividends can be calculated using various different calculation methods, including based on the holdings as of the record date, or pro-rated across the dividend period\", \"Payments can be made by Check, ACH, reinvestment or through custom formats\", \"Generates accounting entries from your daily operations and creates a daily or real-time export file\", \"Produces a full complement of reports, including detailed information about holdings, transfer history, payment history, projected payments, and holdings\", \"Separates dividend amounts in bulk into Regular Non-Qualifying Dividends, Capital Disbursements, and Long-Term Capital Gains for tax reporting purposes Prints and electronically records 1099s and K-1s for tax reporting\", \"An optional Web Portal can be utilized to allow your investors to view their holdings and history online\"],\r\n \"related\": []\r\n },\r\n {\r\n \"name\": \"Shareholder Accounting\",\r\n \"module\": \"Trust\",\r\n \"route\": \"/trust/shareholder-accounting\",\r\n \"tags\": [],\r\n \"desc\": \"The MIMICS Shareholder Accounting module manages and maintains all aspects of stock transactions for private and public companies, as well as registered paying and transfer agents. It handles common and preferred stock, stock options, rights, warrants, convertible bonds and employee stock option programs.\",\r\n \"features\": [\"Tracks all transfers and sales and holder positions in real time\", \"Automates dividend calculations and payments\", \"Processes payments in many forms and in any currency, set to your specifications\", \"Handles stock splits, mergers, bonus shares and other corporate actions\", \"Automates printing of certificates, receipts, confirmations, checks, mailing labels and customized templates\", \"Facilitates electronic and printed tax reporting\", \"Tracks full audit trail of users and time stamps\"],\r\n \"related\": [\r\n {\"name\": \"Bond Paying Agent & Transfer Agent\", \"route\": \"/trust/bond-paying-agent\"}\r\n ]\r\n },\r\n {\r\n \"name\": \"eProxy Web Interface\",\r\n \"module\": \"Trust\",\r\n \"route\": \"/trust/eproxy-system\",\r\n \"tags\": [],\r\n \"desc\": \"Provides online proxy materials and voting capabilities for your shareholders. The site can be hosted by MIMICS or any other web host. The site allows anyone to download the materials that are uploaded by the company.\",\r\n \"related\": [\r\n {\"name\": \"Shareholder Accounting\", \"route\": \"/trust/shareholder-accounting\"}\r\n ]\r\n },\r\n {\r\n \"name\": \"Consulting\",\r\n \"module\": \"Module Options\",\r\n \"route\": \"/module-options/consulting-services\",\r\n \"tags\": [],\r\n \"desc\": \"Implementation & Customization: In order to minimize the overall implementation cost, MIMICS completes much of the data migration and verification, and setting up custom reports prior to the on-site visit. This allows our consulting team to focus on in-depth end user training, parallel testing, and additional custom changes to the system while on-site. Reporting & Data Mining: Both in-house and external auditing can be an arduous and lengthy process for many departments. Before, during, and after major audits, MIMICS clients request new reports for internal and external submission. Depending on the scope of the project and the urgency, MIMICS Consulting Services can assist with this project.\",\r\n \"related\": [\r\n {\"name\": \"Disaster Recovery\", \"route\": \"/module-options/disaster-recovery\"},\r\n {\"name\": \"Interfaces\", \"route\": \"/module-options/mimics-interfaces\"},\r\n {\"name\": \"Mobile Device Access\", \"route\": \"/module-options/customer-web-portal\"},\r\n {\"name\": \"Outsourcing\", \"route\": \"/services-and-software-features/outsourcing-services\"},\r\n {\"name\": \"Web Interfaces\", \"route\": \"/module-options/customer-web-portal\"}\r\n ]\r\n },\r\n {\r\n \"name\": \"Customer Relationship Management (CRM)\",\r\n \"module\": \"Module Options\",\r\n \"route\": \"/module-options/crm\",\r\n \"tags\": [],\r\n \"desc\": \"Allows financial organizations, corporations, investment managers, and credit collections departments to record and manage contact information, sales and service communications, collections information, customer history, new product offerings, and other sales and marketing campaigns.\",\r\n \"related\": [\r\n {\"name\": \"FATCA\", \"route\": \"/module-options/crm/fatca-software-option\"},\r\n {\"name\": \"Web Interfaces\", \"route\": \"/module-options/customer-web-portal\"}\r\n ]\r\n },\r\n {\r\n \"name\": \"FATCA CRM Option\",\r\n \"module\": \"Module Options\",\r\n \"route\": \"/module-options/crm/fatca-software-option\",\r\n \"tags\": [],\r\n \"desc\": \"An add-on to the MIMICS CRM Software System that allows for the capture and processing of FATCA required data according to the U.S. Foreign Account Tax Compliance Act. It allows for the seamless integration of other software systems, such as Customer Portfolio Management in order to manage the real-time current balances for customers.\",\r\n \"related\": [\r\n {\"name\": \"Bond Paying Agent & Transfer Agent\", \"route\": \"/trust/bond-paying-agent\"},\r\n {\"name\": \"Customer Portfolio\", \"route\": \"/investment/portfolio-management/customer-portfolio\"},\r\n {\"name\": \"Customer Relationship Management\", \"route\": \"/module-options/crm\"},\r\n {\"name\": \"Safekeeping\", \"route\": \"/banking/safekeeping-software\"},\r\n {\"name\": \"Shareholder Accounting\", \"route\": \"/trust/shareholder-accounting\"}\r\n ]\r\n },\r\n {\r\n \"name\": \"Disaster Recovery\",\r\n \"module\": \"Module Options\",\r\n \"route\": \"/module-options/disaster-recovery\",\r\n \"tags\": [],\r\n \"desc\": \"MIMICS Inc. currently offers two types of Disaster Recovery Service: Backup Server Option at the client's site (great control and flexibility) and the Off-Site Storage Option hosted by MIMICS (for clients with limited hard drive space or clients with small networks or one server).\",\r\n \"related\": [\r\n {\"name\": \"Consulting\", \"route\": \"/module-options/consulting-services\"},\r\n {\"name\": \"Interfaces\", \"route\": \"/module-options/mimics-interfaces\"},\r\n {\"name\": \"Mobile Device Access\", \"route\": \"/module-options/customer-web-portal\"},\r\n {\"name\": \"Outsourcing\", \"route\": \"/services-and-software-features/outsourcing-services\"},\r\n {\"name\": \"Web Interfaces\", \"route\": \"/module-options/customer-web-portal\"}\r\n ]\r\n },\r\n {\r\n \"name\": \"Email Option\",\r\n \"module\": \"Module Options\",\r\n \"route\": \"/module-options/email-automation\",\r\n \"tags\": [],\r\n \"desc\": \"Allows customer forms such as confirmations and statements to be encrypted and emailed automatically. The Email Option can be set up for any MIMICS Software that you have licensed. The choice of what forms are enabled for the Email Option is up to you. The layout of those forms is based upon your specifications.\",\r\n \"related\": [\r\n {\"name\": \"Consulting\", \"route\": \"/module-options/consulting-services\"},\r\n {\"name\": \"Disaster Recovery\", \"route\": \"/module-options/disaster-recovery\"},\r\n {\"name\": \"Interfaces\", \"route\": \"/module-options/mimics-interfaces\"},\r\n {\"name\": \"Mobile Device Access\", \"route\": \"/module-options/customer-web-portal\"},\r\n {\"name\": \"Outsourcing\", \"route\": \"/services-and-software-features/outsourcing-services\"},\r\n {\"name\": \"Web Interfaces\", \"route\": \"/module-options/customer-web-portal\"}\r\n ]\r\n },\r\n {\r\n \"name\": \"Interfaces\",\r\n \"module\": \"Module Options\",\r\n \"route\": \"/module-options/mimics-interfaces\",\r\n \"tags\": [],\r\n \"desc\": \"MIMICS has interfaced with over 150 different third-party systems over the years, such as Electronic Data Interchange (EDI), Daily/Periodic Interfaces and Data Conversions.\",\r\n \"related\": [\r\n {\"name\": \"Consulting\", \"route\": \"/module-options/consulting-services\"},\r\n {\"name\": \"Disaster Recovery\", \"route\": \"/module-options/disaster-recovery\"},\r\n {\"name\": \"Mobile Device Access\", \"route\": \"/module-options/customer-web-portal\"},\r\n {\"name\": \"Outsourcing\", \"route\": \"/services-and-software-features/outsourcing-services\"},\r\n {\"name\": \"Web Interfaces\", \"route\": \"/module-options/customer-web-portal\"}\r\n ]\r\n },\r\n {\r\n \"name\": \"Web Interfaces\",\r\n \"module\": \"Module Options\",\r\n \"route\": \"/module-options/customer-web-portal\",\r\n \"tags\": [],\r\n \"desc\": \"MIMICS offers a wide array of web programming services, including: Standard Web Products, Web Interfaces, and Outsourcing, among others. Options include fully web-based products or those that are often installed in conjunction with a Win32 client/server MIMICS module or other third-party modules. and do not have an internal Win32 component. We can also handle the programming of websites from scratch to client specifications, and utilizing the technologies requested by the client.\",\r\n \"related\": [\r\n {\"name\": \"Website Security\", \"route\": \"/module-options/customer-web-portal\"}\r\n ]\r\n },\r\n {\r\n \"name\": \"Website Security\",\r\n \"module\": \"Module Options\",\r\n \"route\": \"/module-options/customer-web-portal\",\r\n \"tags\": [],\r\n \"desc\": \"MIMICS uses various techniques to secure the websites it creates. MIMICS always recommends the acquisition of an SSL Certificate for the domain of the website. An SSL (Secure Socket Layer) Certificate will allow the User's browser to validate the identity of the web site and then create an encrypted connection with the server. All information sent from the User's browser to the web server will then be encrypted and secure.\",\r\n \"related\": [\r\n {\"name\": \"Web Interfaces\", \"route\": \"/module-options/customer-web-portal\"}\r\n ]\r\n },\r\n {\r\n \"name\": \"Outsourcing\",\r\n \"module\": \"Module Options\",\r\n \"route\": \"/services-and-software-features/outsourcing-services\",\r\n \"tags\": [],\r\n \"desc\": \"In-house programming of new applications can be costly and time consuming, while off the shelf products do not provide the flexibility you need. If you have a special project that requires programming or you have a need for application development for your own proprietary use, MIMICS can supplement your programming department or act as a proxy if you do not have staff programmers.\",\r\n \"related\": [\r\n {\"name\": \"Consulting\", \"route\": \"/module-options/consulting-services\"},\r\n {\"name\": \"Disaster Recovery\", \"route\": \"/module-options/disaster-recovery\"},\r\n {\"name\": \"Interfaces\", \"route\": \"/module-options/mimics-interfaces\"},\r\n {\"name\": \"Mobile Device Access\", \"route\": \"/module-options/customer-web-portal\"},\r\n {\"name\": \"Web Interfaces\", \"route\": \"/module-options/customer-web-portal\"}\r\n ]\r\n },\r\n {\r\n \"name\": \"Process Flow\",\r\n \"module\": \"Module Options\",\r\n \"route\": \"/module-options/process-flow-module\",\r\n \"tags\": [],\r\n \"desc\": \"Generalized so that any process can be tracked. It defines what steps are taken during any process. MIMICS Process Flow System allows the user to define the flow of a process with both automated and manual components. The user defines the events and decision points that occur during the flow and follow the transactions through the process.\",\r\n \"related\": []\r\n },\r\n {\r\n \"name\": \"Reconciliation\",\r\n \"module\": \"Module Options\",\r\n \"route\": \"/module-options/reconciliation\",\r\n \"tags\": [],\r\n \"desc\": \"Used to reconcile cash balances, cash transactions, share balances, share transactions and any other fields between any two electronic files or sources, including from any other MIMICS software system.\",\r\n \"related\": [\r\n {\"name\": \"Process Flow\", \"route\": \"/module-options/process-flow-module\"},\r\n {\"name\": \"Customer Portfolio\", \"route\": \"/investment/portfolio-management/customer-portfolio\"}\r\n ]\r\n },\r\n];","import {throwError as observableThrowError} from 'rxjs';\r\nimport {Injectable} from '@angular/core';\r\nimport { Response, RequestOptions} from '@angular/http';\r\nimport {HttpClient, HttpHeaders, HttpResponse} from '@angular/common/http';\r\nimport { AuthService } from './auth.service';\r\nimport { LoadingService } from '../loading-spinner/loading.service';\r\nimport { Request, ResponseContentType } from '@angular/http';\r\nimport { catchError,map } from 'rxjs/operators';\r\nimport CONFIG from './../../config';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport 'rxjs/Rx';\r\n\r\n\r\n\r\n@Injectable()\r\nexport class BackendService {\r\n\r\n constructor(\r\n public _http: HttpClient,\r\n public _authService: AuthService,\r\n public _loadingService: LoadingService\r\n ) {}\r\n\r\n getData(url, showLoader = true) { \r\n this._loadingService.show();\r\n const httpOptions = { \r\n headers: new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n 'Authorization': `Bearer ${this._authService.token}`\r\n }),\r\n //responseType: \"text\"\r\n }; \r\n return this._http.get(url, httpOptions)\r\n .map(response => {\r\n if (response) {\r\n return response;\r\n } else {\r\n throw new Error('Error Getting Data');\r\n }\r\n }) \r\n .catch(this.handleError) \r\n .finally(() => {\r\n this._loadingService.hide();\r\n }) \r\n \r\n }\r\n\r\n getUsersData(url) {\r\n this._loadingService.show();\r\n const httpOptions = {\r\n headers: new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n 'Authorization': `Bearer ${this._authService.token1}`\r\n })\r\n };\r\n\r\n return this._http.get(url, httpOptions)\r\n .pipe(map(response => {\r\n if (response) {\r\n console.log(\"TEST by error case in server\");\r\n console.log(response);\r\n\r\n return response;\r\n } else {\r\n throw new Error('Error Getting Data');\r\n }\r\n }))\r\n }\r\n\r\n getDemoData(url, showLoader = true) { \r\n this._loadingService.show();\r\n const httpOptions = { \r\n headers: new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n 'Authorization': `Bearer ${this._authService.token1}`\r\n }),\r\n //responseType: \"text\"\r\n }; \r\n return this._http.get(url, httpOptions)\r\n .map(response => {\r\n if (response) {\r\n return response;\r\n } else {\r\n throw new Error('Error Getting Data');\r\n }\r\n }) \r\n .catch(this.handleError) \r\n .finally(() => {\r\n this._loadingService.hide();\r\n })\r\n \r\n \r\n }\r\n deleteData(url, showLoader = true) {\r\n this._loadingService.show();\r\n const httpOptions = { \r\n headers: new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n 'Authorization': `Bearer ${this._authService.token}`\r\n })\r\n };\r\n // const httpOptions = new RequestOptions({ headers: headers });\r\n return this._http.delete(url, httpOptions)\r\n .map(response => {\r\n return response;\r\n })\r\n .catch(this.handleError)\r\n .finally(() => {\r\n this._loadingService.hide();\r\n });\r\n }\r\n\r\n postData(newData, url, showLoader = true) {\r\n console.log(newData);\r\n this._loadingService.show(); \r\n const httpOptions = { \r\n headers: new HttpHeaders({\r\n \r\n 'Content-Type': 'application/json',\r\n 'Authorization': `Bearer ${this._authService.token}`\r\n })\r\n };\r\n const body = JSON.stringify(newData);\r\n // const body = newData;\r\n \r\n console.log(url, body, httpOptions);\r\n return this._http.post(url, body, httpOptions) \r\n .map(response => {\r\n console.log(url, body, httpOptions);\r\n return response;\r\n })\r\n .catch(this.handleError)\r\n .finally(() => {\r\n this._loadingService.hide();\r\n });\r\n }\r\n \r\n putData(updatedData, url, showLoader = true) {\r\n this._loadingService.show();\r\n const httpOptions = { \r\n headers: new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n 'Authorization': `Bearer ${this._authService.token}`\r\n })\r\n };\r\n const body = JSON.stringify(updatedData);\r\n console.log(body);\r\n return this._http.put(url, body, httpOptions)\r\n .map(response => {\r\n return response;\r\n })\r\n .catch(this.handleError)\r\n .finally(() => {\r\n this._loadingService.hide();\r\n });\r\n \r\n }\r\n download(Url) {\r\n console.log(Url);\r\n return this._http.get(Url, {\r\n responseType: 'blob',\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\")\r\n });\r\n }\r\n // getData(url, showLoader = true) {\r\n // console.log('entered from single column component');\r\n // const authToken = this._authService.token || localStorage.getItem('token') || sessionStorage.getItem('token');\r\n // if(showLoader) { this._loadingService.show(); }\r\n\r\n // const headers = new Headers({\r\n // 'Content-Type': 'application/json',\r\n // 'Authorization': `Bearer ${authToken}`\r\n // });\r\n // const httpOptions = { \r\n // headers: new HttpHeaders({\r\n // 'Content-Type': 'application/json',\r\n // 'Authorization': `Bearer ${this._authService.token}`\r\n // })\r\n // };\r\n \r\n // return this._http.get(url, httpOptions) \r\n \r\n // //const options: { headers?: HttpHeaders } = { headers: headers };\r\n // const options = new RequestOptions({ headers: headers });\r\n\r\n // return this._http.get(url, options)\r\n // .map(response => {\r\n // if (response.json()) {\r\n // return response.json();\r\n // } else {\r\n // throw new Error('Error Getting Data');\r\n // }\r\n // })\r\n // .catch(this.handleError)\r\n // .finally(() => {\r\n // if(showLoader) { this._loadingService.hide(); }\r\n // });\r\n // }\r\n\r\n // deleteData(url, showLoader = true) {\r\n // const authToken = this._authService.token || localStorage.getItem('token') || sessionStorage.getItem('token');\r\n // if(showLoader) { this._loadingService.show(); }\r\n\r\n // const headers = new Headers({ \r\n // 'Content-Type': 'application/json',\r\n // 'Authorization': `Bearer ${authToken}`\r\n // });\r\n\r\n // const options = new RequestOptions({ headers: headers });\r\n\r\n // return this._http.delete(url, options)\r\n // .map(response => {\r\n // return response.json();\r\n // })\r\n // .catch(this.handleError)\r\n // .finally(() => {\r\n // if(showLoader) { this._loadingService.hide(); }\r\n // });\r\n // }\r\n\r\n // postData(newData, url, showLoader = true) {\r\n // const authToken = this._authService.token || localStorage.getItem('token') || sessionStorage.getItem('token');\r\n // if(showLoader) { this._loadingService.show(); }\r\n\r\n // const headers = new Headers({\r\n // 'Content-Type': 'application/json',\r\n // 'Authorization': `Bearer ${authToken}`\r\n // });\r\n\r\n // const options = new RequestOptions({ headers: headers });\r\n // const body = JSON.stringify(newData);\r\n\r\n // return this._http.post(url, body, options)\r\n // .map(response => {\r\n // return response.json();\r\n // })\r\n // .catch(this.handleError)\r\n // .finally(() => {\r\n // if(showLoader) { this._loadingService.hide(); }\r\n // });\r\n // }\r\n\r\n // putData(updatedData, url, showLoader = true) {\r\n // const authToken = this._authService.token || localStorage.getItem('token') || sessionStorage.getItem('token');\r\n // if(showLoader) { this._loadingService.show(); };\r\n\r\n // const headers = new Headers({\r\n // 'Content-Type': 'application/json',\r\n // 'Authorization': `Bearer ${authToken}`\r\n // });\r\n\r\n // const options = new RequestOptions({ headers: headers });\r\n // const body = JSON.stringify(updatedData);\r\n\r\n // return this._http.put(url, body, options)\r\n // .map(response => {\r\n // return response.json();\r\n // })\r\n // .catch(this.handleError)\r\n // .finally(() => {\r\n // if(showLoader) { this._loadingService.hide(); }\r\n // });\r\n // }\r\n\r\n /*\r\n Utility error handler function for server errors\r\n */\r\n private handleError(error) {\r\n console.log('backend service error, likely not logged in:', error);\r\n if(error.status && error.status === 401) {\r\n return observableThrowError('Session Expired- please log in');\r\n }\r\n\r\n return observableThrowError('Server Error');\r\n }\r\n\r\n // private HttpErrorResponse(err){ \r\n // if (err.status >= 200 && err.status < 300) {\r\n // const res = new HttpResponse({\r\n // body: null,\r\n // headers: err.headers,\r\n // status: err.status,\r\n // statusText: err.statusText,\r\n // url: err.url\r\n // });\r\n \r\n // return Observable.of(res);\r\n // } else {\r\n // return Observable.throw(err);\r\n // }\r\n \r\n // }\r\n}","export const LatestBrowserVersions = {\r\n 'chrome': 60,\r\n 'firefox': 55,\r\n 'opera': 47,\r\n 'safari': 11,\r\n 'ms-edge': 15,\r\n 'IE': 11\r\n};","import { NgModule } from '@angular/core';\n// import { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { MatButtonModule, } from '@angular/material/button';\n// import { MatButtonToggleModule } from '@angular/material/button-toggle';\n// import { MatCardModule } from '@angular/material/card';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatChipsModule } from '@angular/material/chips';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\n// import { MatDialogModule } from '@angular/material/dialog';\n// import { MatExpansionModule } from '@angular/material/expansion';\nimport { MatFormFieldModule } from '@angular/material/form-field';\n// import { MatGridListModule } from '@angular/material/grid-list';\nimport { MatInputModule } from '@angular/material/input';\n// import { MatListModule } from '@angular/material/list';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatNativeDateModule } from '@angular/material/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatPaginatorModule } from '@angular/material/paginator';\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\n// import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\n// import { MatRadioModule } from '@angular/material/radio';\nimport { MatSelectModule } from '@angular/material/select';\n// import { MatSidenavModule } from '@angular/material/sidenav';\n// import { MatSliderModule } from '@angular/material/slider';\n// import { MatSlideToggleModule } from '@angular/material/slide-toggle';\n\n// import { MatSnackBarModule } from '@angular/material/snack-bar';\n// import { MatStepperModule } from '@angular/material/stepper';\n// import { MatSortModule } from '@angular/material/sort';\n// import { MatTableModule } from '@angular/material/table';\n// import { MatTabsModule } from '@angular/material/tabs';\n// import { MatToolbarModule } from '@angular/material/toolbar';\n// import { MatTooltipModule } from '@angular/material/tooltip';\n\n// import { MatIconRegistry } from '@angular/material/icon';\n// import { MatBadgeModule } from '@angular/material/badge';\n// import { MatRippleModule } from '@angular/material/core';\n// import { MatTreeModule } from '@angular/material/tree';\n\n\n@NgModule({\n imports: [ \n // MatAutocompleteModule, \n // MatDialogModule,\n MatFormFieldModule,\n MatInputModule,\n MatProgressBarModule,\n // MatProgressSpinnerModule,\n // MatRippleModule,\n MatSelectModule,\n // MatSidenavModule,\n // MatSlideToggleModule,\n // MatSliderModule,\n MatNativeDateModule,\n // MatListModule,\n MatButtonModule,\n // MatButtonToggleModule,\n // MatCardModule,\n MatCheckboxModule,\n MatDatepickerModule,\n MatIconModule,\n MatPaginatorModule,\n // MatSidenavModule,\n // MatRadioModule,\n MatChipsModule,\n // MatExpansionModule,\n MatMenuModule,\n // MatGridListModule,\n // MatSnackBarModule,\n // MatSortModule,\n // MatStepperModule,\n // MatTableModule,\n // MatTabsModule,\n // MatToolbarModule,\n // MatTooltipModule,\n // MatRadioModule,\n ],\n exports: [ \n // MatAutocompleteModule, \n // MatDialogModule,\n MatFormFieldModule,\n MatInputModule,\n MatProgressBarModule,\n // MatProgressSpinnerModule,\n // MatRippleModule,\n MatSelectModule,\n // MatSidenavModule,\n // MatSlideToggleModule,\n // MatSliderModule,\n MatNativeDateModule,\n // MatListModule,\n MatButtonModule,\n // MatButtonToggleModule,\n // MatCardModule,\n MatCheckboxModule,\n MatDatepickerModule,\n MatIconModule,\n MatPaginatorModule,\n // MatSidenavModule,\n MatChipsModule,\n // MatExpansionModule,\n MatMenuModule,\n // MatGridListModule,\n // MatSnackBarModule,\n // MatSortModule,\n // MatStepperModule,\n // MatTableModule,\n // MatTabsModule,\n // MatToolbarModule,\n // MatTooltipModule,\n // MatRadioModule,\n ],\n})\nexport class MaterialModule {}","import { Component, OnInit, OnDestroy } from '@angular/core';\r\n\r\nimport { Subscription } from 'rxjs';\r\n\r\nimport { PaginationService } from './pagination.service';\r\nimport { PageEvent } from '@angular/material';\r\n\r\n@Component({\r\n selector: 'pagination',\r\n template: `\r\n \r\n \r\n `,\r\n styles: [`\r\n .pagination-bottom-wrapper {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n margin: 36px 0 36px 0;\r\n }\r\n .page-status {\r\n width: 49%;\r\n }\r\n .pagination {\r\n display: flex;\r\n justify-content: flex-end;\r\n width: 49%;\r\n }\r\n .pagination .btn { \r\n border-radius: 0;\r\n }\r\n .page-numbers-wrapper {\r\n display: flex;\r\n justify-content: flex-end;\r\n }\r\n .page-numbers-wrapper .btn {\r\n color: #fff;\r\n }\r\n .page-numbers-wrapper .btn:hover {\r\n background-color: #333;\r\n }\r\n .onpage {\r\n background-color: #666;\r\n }\r\n `]\r\n})\r\nexport class PaginationComponent implements OnInit, OnDestroy {\r\n firstEntryOnScreen: number = 0;\r\n lastEntryOnScreen: number = 0;\r\n entryRange: Subscription;\r\n // MatPaginator Inputs\r\n length;\r\n pageSize = 10;\r\n pageSizeOptions = [5, 10, 25, 100];\r\n\r\n // MatPaginator Output\r\n pageEvent: PageEvent;\r\n\r\n constructor(public _paginationService: PaginationService) {}\r\n\r\n ngOnInit() {\r\n this._paginationService.totalEntries = 0;\r\n this.firstEntryOnScreen = 0;\r\n\r\n this.entryRange = this._paginationService.entryRange\r\n .subscribe(range => {\r\n this.firstEntryOnScreen = range[0];\r\n this.lastEntryOnScreen = range[1];\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.entryRange.unsubscribe();\r\n }\r\n}","import CONFIG from '../../config';\r\n\r\nimport { Injectable } from '@angular/core';\r\n\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class PaginationService {\r\n private _entryRange = new BehaviorSubject>([0, 10]);\r\n entryRange = this._entryRange.asObservable();\r\n paginationArray: Array = [1];\r\n paginationArrayDisplay: Array = [];\r\n maxItemsOnPage: number = 10;\r\n totalPages: number = 0;\r\n totalEntries: number = 0;\r\n maxPagesInListing: number = 5;\r\n currentPage: number = 1;\r\n currentPageIndexTop: number = 1;\r\n\r\n constructor() {}\r\n\r\n setGrid(start, total?) {\r\n //passing a total entries variable is optional- needs to be done on first load and any filter by parent component\r\n if(total !== undefined) {\r\n this.totalEntries = total;\r\n }\r\n\r\n this.paginationArray = [1];\r\n\r\n let totalPages = Math.ceil(this.totalEntries / this.maxItemsOnPage);\r\n\r\n //push each group of maxItemsOnPage into an array\r\n for(var i = 1; i < totalPages; i += 1) {\r\n this.paginationArray.push(i * this.maxItemsOnPage + 1);\r\n }\r\n\r\n //get the current page and check which should be displayed on screen\r\n let paginationArrayMid = this.paginationArray.indexOf(start);\r\n if(paginationArrayMid - 2 < 0) {\r\n paginationArrayMid = 2;\r\n } else if(paginationArrayMid + 3 > totalPages) {\r\n paginationArrayMid = totalPages - 3;\r\n }\r\n\r\n let paginationArrayMin = paginationArrayMid - 2;\r\n let paginationArrayMax = paginationArrayMid + 3;\r\n\r\n //limit # of page links in bottom section, show more as you scroll (but only if number of pages is greater than set max)\r\n if(totalPages > this.maxPagesInListing) {\r\n this.paginationArrayDisplay = this.paginationArray.slice(paginationArrayMin, paginationArrayMax);\r\n } else {\r\n this.paginationArrayDisplay = this.paginationArray;\r\n }\r\n\r\n this.currentPage = (start + (this.maxItemsOnPage - 1)) / this.maxItemsOnPage;\r\n\r\n //this is to pass the index of the first item on the page displaying back to the component using this service- allows for save/edit/delete on a page and stay on that page (instead of reverting to page 1).\r\n this.currentPageIndexTop = start;\r\n\r\n //fire observable update to send page range to pagination component and parent component\r\n this._entryRange.next([start - 1, start + (this.maxItemsOnPage - 1)]);\r\n }\r\n\r\n updateMaxItemsOnPage(value) {\r\n this.maxItemsOnPage = +value;\r\n this.setGrid(1);\r\n }\r\n updatePage(pageIndex, pageSize){\r\n this.maxItemsOnPage = +pageSize;\r\n // console.log(pageIndex*pageSize+1);\r\n \r\n this.setGrid(pageIndex*pageSize+1);\r\n }\r\n}\r\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { PageEvent } from '@angular/material';\nimport { Subscription } from 'rxjs';\nimport { Pagination1Service } from './pagination1.service';\n\n@Component({\n selector: 'app-pagination1',\n template: `\n \n \n`,\nstyles: [`\n .pagination-bottom-wrapper {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin: 36px 0 36px 0;\n }\n .page-status {\n width: 49%;\n }\n .pagination {\n display: flex;\n justify-content: flex-end;\n width: 49%;\n }\n .pagination .btn { \n border-radius: 0;\n }\n .page-numbers-wrapper {\n display: flex;\n justify-content: flex-end;\n }\n .page-numbers-wrapper .btn {\n color: #fff;\n }\n .page-numbers-wrapper .btn:hover {\n background-color: #333;\n }\n .onpage {\n background-color: #666;\n }\n`]\n})\nexport class Pagination1Component implements OnInit, OnDestroy {\n\n firstEntryOnScreen: number = 0;\n lastEntryOnScreen: number = 0;\n entryRange: Subscription;\n // MatPaginator Inputs\n length;\n pageSize = 10;\n pageSizeOptions = [5, 10, 25, 100];\n\n // MatPaginator Output\n pageEvent: PageEvent;\n\n constructor(public _paginationService: Pagination1Service) {}\n\n ngOnInit() {\n this._paginationService.totalEntries = 0;\n this.firstEntryOnScreen = 0;\n\n this.entryRange = this._paginationService.entryRange\n .subscribe(range => {\n this.firstEntryOnScreen = range[0];\n this.lastEntryOnScreen = range[1];\n });\n }\n\n ngOnDestroy() {\n this.entryRange.unsubscribe();\n }\n}\n","\r\nimport { Injectable } from '@angular/core';\r\n\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class Pagination1Service {\r\n private _entryRange = new BehaviorSubject>([0, 10]);\r\n entryRange = this._entryRange.asObservable();\r\n paginationArray: Array = [1];\r\n paginationArrayDisplay: Array = [];\r\n maxItemsOnPage: number = 10;\r\n totalPages: number = 0;\r\n totalEntries: number = 0;\r\n maxPagesInListing: number = 5;\r\n currentPage: number = 1;\r\n currentPageIndexTop: number = 1;\r\n\r\n constructor() {}\r\n\r\n setGrid1(start, total?) {\r\n //passing a total entries variable is optional- needs to be done on first load and any filter by parent component\r\n\r\n console.log(total)\r\n console.log(start)\r\n if(total !== undefined) {\r\n this.totalEntries = total;\r\n }\r\n\r\n this.paginationArray = [1];\r\n\r\n let totalPages = Math.ceil(this.totalEntries / this.maxItemsOnPage);\r\n\r\n //push each group of maxItemsOnPage into an array\r\n for(var i = 1; i < totalPages; i += 1) {\r\n this.paginationArray.push(i * this.maxItemsOnPage + 1);\r\n }\r\n\r\n //get the current page and check which should be displayed on screen\r\n let paginationArrayMid = this.paginationArray.indexOf(start);\r\n if(paginationArrayMid - 2 < 0) {\r\n paginationArrayMid = 2;\r\n } else if(paginationArrayMid + 3 > totalPages) {\r\n paginationArrayMid = totalPages - 3;\r\n }\r\n\r\n let paginationArrayMin = paginationArrayMid - 2;\r\n let paginationArrayMax = paginationArrayMid + 3;\r\n\r\n //limit # of page links in bottom section, show more as you scroll (but only if number of pages is greater than set max)\r\n if(totalPages > this.maxPagesInListing) {\r\n this.paginationArrayDisplay = this.paginationArray.slice(paginationArrayMin, paginationArrayMax);\r\n } else {\r\n this.paginationArrayDisplay = this.paginationArray;\r\n }\r\n\r\n this.currentPage = (start + (this.maxItemsOnPage - 1)) / this.maxItemsOnPage;\r\n\r\n //this is to pass the index of the first item on the page displaying back to the component using this service- allows for save/edit/delete on a page and stay on that page (instead of reverting to page 1).\r\n this.currentPageIndexTop = start;\r\n\r\n //fire observable update to send page range to pagination component and parent component\r\n this._entryRange.next([start - 1, start + (this.maxItemsOnPage - 1)]);\r\n }\r\n\r\n updateMaxItemsOnPage1(value) {\r\n this.maxItemsOnPage = +value;\r\n this.setGrid1(1);\r\n }\r\n updatePage1(pageIndex, pageSize){\r\n this.maxItemsOnPage = +pageSize;\r\n // console.log(pageIndex*pageSize+1);\r\n \r\n this.setGrid1(pageIndex*pageSize+1);\r\n }\r\n}\r\n","import {Directive, ElementRef, Input, Output, EventEmitter, OnInit, OnDestroy, AfterViewInit} from '@angular/core';\nimport { NavService } from '../../services/nav.service';\n\n@Directive({\n selector: '[sticky]'\n})\nexport class Scroll implements OnInit, OnDestroy, AfterViewInit {\n\n @Input('sticky') stickyContent: string;\n @Input('sticky-zIndex') zIndex: number = 10;\n @Input('sticky-offset-top') offsetTop: number = 0;\n @Input('sticky-offset-bottom') offsetBottom: number = 0;\n @Input('sticky-absolute-offset') offsetAbsolute: number = 0;\n @Input('sticky-start') start: number = 0;\n @Input('sticky-start-vh') startvh: number = 0;\n @Input('sticky-class') stickClass: string = 'sticky';\n @Input('sticky-end-class') endStickClass: string = 'sticky-end';\n @Input('sticky-media-query') mediaQuery: string = '';\n @Input('sticky-parent') parentMode: boolean = false;\n @Input('scroll-spy') scrollSpy: boolean = false;\n @Input('sticky-warning') warning: number = 0;\n @Input('sticky-warning-vh') warningvh: number = 0;\n @Input('sticky-warning-class') warningClass: string = 'sticky-warning';\n @Input('dont-stick') notSticky: boolean = false;\n\n @Output() activated = new EventEmitter();\n @Output() deactivated = new EventEmitter();\n\n private onScrollBind: EventListener = this.onScroll.bind(this);\n private onResizeBind: EventListener = this.onResize.bind(this);\n\n private isStuck: boolean = false;\n private isWarning: boolean = false;\n\n private elem: any;\n private container: any;\n private originalCss: any;\n private originalPosition: any;\n\n private bodyScrollHeight: number;\n private windowHeight: number;\n private windowWidth: number;\n private containerHeight: number;\n private elemHeight: number;\n private containerStart: number;\n private warningStart: number;\n private fontpx: number;\n private scrollFinish: number;\n\n constructor(\n private element: ElementRef,\n public navService: NavService\n ) {\n this.elem = element.nativeElement;\n console.log(this.elem);\n }\n\n ngOnInit(): void {\n window.addEventListener('scroll', this.onScrollBind);\n window.addEventListener('resize', this.onResizeBind);\n }\n\n ngAfterViewInit(): void {\n\n // define scroll container as parent element\n this.container = this.elem.parentNode;\n\n this.originalCss = {\n zIndex: this.getCssValue(this.elem, 'zIndex'),\n position: this.getCssValue(this.elem, 'position'),\n height: this.getCssNumber(this.elem, 'height') || 'auto',\n top: this.getCssValue(this.elem, 'top'),\n right: this.getCssValue(this.elem, 'right'),\n left: this.getCssValue(this.elem, 'left'),\n bottom: this.getCssValue(this.elem, 'bottom')\n };\n\n this.originalPosition = {\n right: this.getBoundingClientRectValue(this.elem, 'right'),\n left: this.getBoundingClientRectValue(this.elem, 'left'),\n windowWidth: window.innerWidth,\n };\n\n this.defineDimensions();\n\n this.sticker();\n }\n\n ngOnDestroy(): void {\n window.removeEventListener('scroll', this.onScrollBind);\n window.removeEventListener('resize', this.onResizeBind);\n }\n\n onScroll(): void {\n if (this.bodyScrollHeight!==document.body.scrollHeight){\n this.onResize();\n }\n this.sticker();\n }\n\n onResize(): void {\n this.defineDimensions();\n if (this.isStuck && !this.notSticky) { // adjusts width of stuck elements that are less than 100% w\n let resizeDiff = window.innerWidth/this.originalPosition.windowWidth;\n\n this.elem.style.left = resizeDiff * this.originalPosition.left + 'px';\n this.elem.style.right = this.windowWidth - resizeDiff * this.originalPosition.right + 'px';\n return;\n }\n }\n\n defineDimensions(): void {\n let containerTop: number = this.getBoundingClientRectValue(this.container, 'top');\n this.bodyScrollHeight = document.body.scrollHeight;\n this.windowHeight = window.innerHeight;\n this.windowWidth = window.innerWidth;\n this.fontpx = this.getCssNumber(this.elem, 'font-size') //for multiplying by font-size to make sticky-start in REMs\n this.elemHeight = this.getCssNumber(this.elem, 'height');\n this.containerHeight = this.getCssNumber(this.container, 'height');\n this.containerStart = containerTop + this.scrollbarYPos() - this.offsetTop*this.fontpx - this.offsetAbsolute*this.fontpx + this.start*this.fontpx + this.startvh*this.windowHeight/100;\n //multiplying by font-size to make sticky-start in REMs\n this.warningStart = this.containerStart - (this.warning*this.fontpx) - (this.warningvh*(this.windowHeight/100));\n if (this.parentMode) {\n this.scrollFinish = this.containerStart - this.start*this.fontpx - this.offsetBottom*this.fontpx + (this.containerHeight - this.elemHeight);\n } if (this.scrollSpy) {\n this.scrollFinish = this.containerStart - this.start*this.fontpx - this.offsetBottom*this.fontpx + this.elemHeight;\n } else {\n this.scrollFinish = document.body.scrollHeight; \n }\n }\n\n resetElement(): void {\n this.elem.classList.remove(this.stickClass);\n Object.assign(this.elem.style, this.originalCss);\n }\n warningElement(): void {\n this.isWarning = true;\n this.elem.classList.add(this.warningClass);\n }\n removeWarningElement(): void {\n this.isWarning = false;\n this.elem.classList.remove(this.warningClass);\n }\n\n stuckElement(): void {\n\n this.isStuck = true;\n this.elem.classList.remove(this.endStickClass);\n this.elem.classList.add(this.stickClass);\n\n if (!this.notSticky){\n let elementLeft = this.getBoundingClientRectValue(this.elem, 'left');\n let elementRight = this.getBoundingClientRectValue(this.elem, 'right');\n this.elem.style.zIndex = this.zIndex;\n this.elem.style.position = 'fixed';\n this.elem.style.top = this.offsetTop * this.fontpx + 'px';\n this.elem.style.right = 'auto';\n this.elem.style.left = elementLeft + 'px';\n this.elem.style.right = this.windowWidth - elementRight + 'px';\n this.elem.style.bottom = 'auto';\n };\n if (this.scrollSpy){\n this.navService.scrollSpy(this.elem.id);\n console.log(this.elem.id);\n }\n\n this.activated.next(this.elem);\n }\n\n unstuckElement(): void {\n this.isStuck = false;\n\n this.elem.classList.add(this.endStickClass);\n\n if (!this.notSticky){\n this.container.style.position = 'relative';\n this.elem.style.position = 'absolute';\n this.elem.style.top = 'auto';\n this.elem.style.right = 0;\n this.elem.style.left = 'auto';\n this.elem.style.bottom = this.offsetBottom * this.fontpx + 'px';\n };\n this.deactivated.next(this.elem);\n }\n\n matchMediaQuery(): any {\n if (!this.mediaQuery) return true;\n return (\n window.matchMedia('(' + this.mediaQuery + ')').matches ||\n window.matchMedia(this.mediaQuery).matches\n );\n }\n\n sticker(): void {\n\n // check media query\n if (this.isStuck && !this.matchMediaQuery()) {\n this.resetElement();\n return;\n }\n\n // detecting when a container's height changes\n let currentContainerHeight: number = this.getCssNumber(this.container, 'height');\n if (currentContainerHeight !== this.containerHeight) {\n this.defineDimensions();\n }\n\n let position: number = this.scrollbarYPos();\n\n // unstick\n if (this.isStuck && (position < this.containerStart || position > this.scrollFinish) || position > this.scrollFinish) {\n this.resetElement();\n if (position > this.scrollFinish) this.unstuckElement();\n this.isStuck = false;\n }\n // remove warning\n if (this.isWarning && position < this.warningStart) {\n this.removeWarningElement();\n }\n // warning\n if (this.isStuck === false && position > this.warningStart && position < this.scrollFinish) {\n this.warningElement();\n }\n \n // stick\n if (this.isStuck === false && position > this.containerStart && position < this.scrollFinish) {\n this.stuckElement();\n }\n }\n\n private scrollbarYPos(): number {\n return window.pageYOffset || document.documentElement.scrollTop;\n }\n\n private getBoundingClientRectValue(element: any, property: string): number {\n let result = 0;\n if (element.getBoundingClientRect) {\n let rect = element.getBoundingClientRect();\n result = (typeof rect[property] !== 'undefined') ? rect[property] : 0;\n }\n return result;\n }\n\n private getCssValue(element: any, property: string): any {\n let result: any = '';\n let style = element.currentStyle || window.getComputedStyle(element); \n if (typeof style[property] !== 'undefined') {\n result = style[property];\n } else {\n result = style.getPropertyValue(property);\n }\n return result;\n }\n\n private getCssNumber(element: any, property: string): number {\n return parseInt(this.getCssValue(element, property), 10) || 0;\n }\n}","import { Injectable, Renderer2 } from '@angular/core';\r\nimport { Observable } from 'rxjs/Observable';\r\n\r\n@Injectable()\r\nexport class SearchService {\r\n searchOpen: boolean = false;\r\n svcRenderer: Renderer2; //this is injected by app.component- only way to manipulate the body to hide overflow when search it open (can't directly inject renderer into a service- only a component)\r\n\r\n openSearch() { \r\n this.searchOpen = true;\r\n this.svcRenderer.addClass(document.body, 'hide-overflow'); \r\n }\r\n\r\n closeSearch() { \r\n this.svcRenderer.removeClass(document.body, 'hide-overflow');\r\n this.searchOpen = false; \r\n }\r\n\r\n findItems(item, group: Array, property: any): Promise> {\r\n /*\r\n find item from larger group (within that group's property). passed property can be a string (single field search) or array of strings (searching more than one field)\r\n uses data already provided on screen load (but we can add http module if we need a version that hits the backend.\r\n */\r\n return new Promise(\r\n function (resolve, reject) {\r\n const lowerItem = typeof item === 'string' ? item.toLowerCase() : item;\r\n let filtered: Array = [];\r\n\r\n filtered = group.filter(g => {\r\n if (g[property]) {\r\n const lowerProp = g[property].toLowerCase();\r\n\r\n //search group (by property provided) for substring item\r\n if (lowerProp.search(lowerItem) !== -1) {\r\n return g[property];\r\n }\r\n }\r\n });\r\n\r\n resolve(filtered);\r\n }\r\n );\r\n }\r\n\r\n findItemsFromMultiple(item, group: Array, property: Array): Promise> {\r\n return new Promise(\r\n function (resolve, reject) {\r\n const itemToStr = item.toString();\r\n const lowerItem = itemToStr.toLowerCase();\r\n let filtered: Array = [];\r\n\r\n filtered = group.filter((g, index, arr) => {\r\n for (let i = 0, l = property.length; i < l; i += 1) {\r\n if(g[property[i]]) {\r\n if(typeof g[property[i]] === 'string') {\r\n const lowerProp = g[property[i]].toLowerCase();\r\n if (lowerProp.includes(lowerItem)) {\r\n return g[property[i]];\r\n }\r\n } else {\r\n if(g[property[i]].toString().includes(itemToStr)) {\r\n return g[property[i]];\r\n }\r\n }\r\n }\r\n }\r\n });\r\n\r\n resolve(filtered);\r\n }\r\n );\r\n }\r\n\r\n findItemsInDateRange(start: Date, end: Date, group: Array, property: string): Promise> {\r\n return new Promise(\r\n function (resolve, reject) {\r\n let filtered: Array = [];\r\n\r\n filtered = group.filter(g => {\r\n let thisDateAsNumber = +new Date(g[property]);\r\n if(thisDateAsNumber >= +start && thisDateAsNumber <= +end) {\r\n return g[property];\r\n }\r\n });\r\n\r\n resolve(filtered);\r\n }\r\n );\r\n }\r\n}","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { Scroll } from './scroll/scroll';\n// import { Sticky } from './stickydiv/ng2-sticky';\nimport { Ng2PageScrollModule } from 'ng2-page-scroll';\n\nimport { AuthService } from '../shared/auth.service';\nimport { BackendService } from '../shared/backend.service';\n\n//import { PageScrollService } from 'ng2-page-scroll';\n//import { FilterOptions } from '../shared/filter-options.component';\nimport { PaginationComponent } from './pagination.component';\n//import { PaginationService } from './pagination.service';\n\n// nav elements\n//import { SubmoduleTabsComponent } from './nav/tabs.component';\nimport { ContactComponent } from '../homepage/contact-form/contact.component';\n// import {\n// MatFormFieldModule,\n// MatIconModule,\n// MatInputModule,\n// MatSelectModule,\n// MatButtonModule,\n// MatDatepickerModule,\n// MatNativeDateModule,\n// MatCheckboxModule,\n// MatMenuModule,\n// MatPaginatorModule, \n// } from '@angular/material';\nimport { MaterialModule } from './material.module';\nimport { Pagination1Component } from './pagination1/pagination1.component';\n\n\n@NgModule({\n imports: [ \n CommonModule,\n Ng2PageScrollModule,\n FormsModule,\n ReactiveFormsModule,\n MaterialModule,\n // MatFormFieldModule,\n // MatIconModule,\n // MatInputModule,\n // MatSelectModule,\n // MatButtonModule,\n // MatDatepickerModule,\n // MatNativeDateModule,\n // MatCheckboxModule,\n // MatMenuModule,\n // MatPaginatorModule,\n ],\n declarations: [\n Scroll,\n PaginationComponent,\n Pagination1Component,\n ContactComponent\n ],\n exports: [ \n Scroll,\n CommonModule, \n Ng2PageScrollModule,\n FormsModule,\n ReactiveFormsModule,\n PaginationComponent,\n Pagination1Component,\n ContactComponent,\n MaterialModule,\n // MatFormFieldModule,\n // MatIconModule,\n // MatInputModule,\n // MatSelectModule,\n // MatButtonModule,\n // MatDatepickerModule,\n // MatNativeDateModule,\n // MatCheckboxModule,\n // MatMenuModule,\n // MatPaginatorModule,\n ],\n providers: [\n AuthService,\n BackendService\n //PageScrollService\n ]\n})\nexport class SharedModule { }","import {Directive, ElementRef, Input, Output, EventEmitter, OnInit, OnDestroy, AfterViewInit} from '@angular/core';\n\n@Directive({\n selector: '[sticky]'\n})\nexport class Sticky implements OnInit, OnDestroy, AfterViewInit {\n\n @Input('sticky') stickyContent: string;\n @Input('sticky-zIndex') zIndex: number = 10;\n @Input('sticky-offset-top') offsetTop: number = 0;\n @Input('sticky-offset-bottom') offsetBottom: number = 0;\n @Input('sticky-absolute-offset') offsetAbsolute: number = 0;\n @Input('sticky-start') start: number = 0;\n @Input('sticky-start-vh') startvh: number = 0;\n @Input('sticky-class') stickClass: string = 'sticky';\n @Input('sticky-end-class') endStickClass: string = 'sticky-end';\n @Input('sticky-media-query') mediaQuery: string = '';\n @Input('sticky-parent') parentMode: boolean = true;\n @Input('sticky-squish') squish: number = 0; // has bugs\n @Input('sticky-warning') warning: number = 0;\n @Input('sticky-warning-vh') warningvh: number = 0;\n @Input('sticky-warning-class') warningClass: string = 'sticky-warning';\n @Input('dont-stick') notSticky: boolean = false;\n\n @Output() activated = new EventEmitter();\n @Output() deactivated = new EventEmitter();\n\n private onScrollBind: EventListener = this.onScroll.bind(this);\n private onResizeBind: EventListener = this.onResize.bind(this);\n\n private isStuck: boolean = false;\n private isWarning: boolean = false;\n private isSquishing: boolean = false;\n\n private elem: any;\n private container: any;\n private originalCss: any;\n private originalPosition: any;\n\n private bodyScrollHeight: number;\n private windowHeight: number;\n private windowWidth: number;\n private containerHeight: number;\n private elemHeight: number;\n private containerStart: number;\n private squishStart: number;\n private warningStart: number;\n private fontpx: number;\n private scrollFinish: number;\n\n constructor(private element: ElementRef) {\n this.elem = element.nativeElement;\n }\n\n ngOnInit(): void {\n window.addEventListener('scroll', this.onScrollBind);\n window.addEventListener('resize', this.onResizeBind);\n }\n\n ngAfterViewInit(): void {\n\n // define scroll container as parent element\n this.container = this.elem.parentNode;\n\n this.originalCss = {\n zIndex: this.getCssValue(this.elem, 'zIndex'),\n position: this.getCssValue(this.elem, 'position'),\n height: this.getCssNumber(this.elem, 'height') || 'auto',\n top: this.getCssValue(this.elem, 'top'),\n right: this.getCssValue(this.elem, 'right'),\n left: this.getCssValue(this.elem, 'left'),\n bottom: this.getCssValue(this.elem, 'bottom')\n };\n\n this.originalPosition = {\n right: this.getBoundingClientRectValue(this.elem, 'right'),\n left: this.getBoundingClientRectValue(this.elem, 'left'),\n windowWidth: window.innerWidth,\n };\n\n this.defineDimensions();\n\n this.sticker();\n }\n\n ngOnDestroy(): void {\n window.removeEventListener('scroll', this.onScrollBind);\n window.removeEventListener('resize', this.onResizeBind);\n }\n\n onScroll(): void {\n if (this.bodyScrollHeight!==document.body.scrollHeight){\n this.onResize();\n }\n this.sticker();\n if (this.isSquishing===true){\n this.elem.style.height = this.originalCss.height - this.scrollbarYPos() + this.squishStart+'px';\n // console.log(this.originalCss.height - this.scrollbarYPos() + this.squishStart+'px');\n }\n }\n\n onResize(): void {\n this.defineDimensions();\n if (this.isStuck === true) { // adjusts width of stuck elements that are less than 100% w\n let resizeDiff = window.innerWidth/this.originalPosition.windowWidth;\n\n this.elem.style.left = resizeDiff * this.originalPosition.left + 'px';\n this.elem.style.right = this.windowWidth - resizeDiff * this.originalPosition.right + 'px';\n return;\n }\n }\n\n defineDimensions(): void {\n let containerTop: number = this.getBoundingClientRectValue(this.container, 'top');\n this.bodyScrollHeight = document.body.scrollHeight;\n this.windowHeight = window.innerHeight;\n this.windowWidth = window.innerWidth;\n this.fontpx = this.getCssNumber(this.elem, 'font-size') //for multiplying by font-size to make sticky-start in REMs\n this.elemHeight = this.getCssNumber(this.elem, 'height');\n this.containerHeight = this.getCssNumber(this.container, 'height');\n this.containerStart = containerTop + this.scrollbarYPos() - this.offsetTop*this.fontpx - this.offsetAbsolute*this.fontpx + this.start*this.fontpx + this.startvh*this.windowHeight/100;\n //multiplying by font-size to make sticky-start in REMs\n this.squishStart = this.containerStart - (this.squish*this.fontpx);\n this.warningStart = this.containerStart - (this.warning*this.fontpx) - (this.warningvh*(this.windowHeight/100));\n if (this.parentMode) {\n this.scrollFinish = this.containerStart - this.start*this.fontpx - this.offsetBottom*this.fontpx + (this.containerHeight - this.elemHeight);\n } else {\n this.scrollFinish = document.body.scrollHeight;\n // console.log('this.scrollFinish'+document.body.scrollHeight);\n \n }\n }\n\n resetElement(): void {\n this.elem.classList.remove(this.stickClass);\n Object.assign(this.elem.style, this.originalCss);\n }\n squishElement(): void {\n this.isSquishing = true;\n console.log('squish');\n // this.elem.style.height = 10+'px';\n }\n warningElement(): void {\n this.isWarning = true;\n this.elem.classList.add(this.warningClass);\n }\n removeWarningElement(): void {\n this.isWarning = false;\n this.elem.classList.remove(this.warningClass);\n }\n\n stuckElement(): void {\n\n this.isStuck = true;\n this.isSquishing = false;\n this.elem.classList.remove(this.endStickClass);\n this.elem.classList.add(this.stickClass);\n\n if (!this.notSticky){\n let elementLeft = this.getBoundingClientRectValue(this.elem, 'left');\n let elementRight = this.getBoundingClientRectValue(this.elem, 'right');\n this.elem.style.zIndex = this.zIndex;\n this.elem.style.position = 'fixed';\n this.elem.style.top = this.offsetTop * this.fontpx + 'px';\n this.elem.style.right = 'auto';\n this.elem.style.left = elementLeft + 'px';\n this.elem.style.right = this.windowWidth - elementRight + 'px';\n this.elem.style.bottom = 'auto';\n };\n\n this.activated.next(this.elem);\n }\n\n unstuckElement(): void {\n this.isStuck = false;\n this.isSquishing = false;\n\n this.elem.classList.add(this.endStickClass);\n\n this.container.style.position = 'relative';\n this.elem.style.position = 'absolute';\n this.elem.style.top = 'auto';\n this.elem.style.right = 0;\n this.elem.style.left = 'auto';\n this.elem.style.bottom = this.offsetBottom * this.fontpx + 'px';\n\n this.deactivated.next(this.elem);\n }\n\n matchMediaQuery(): any {\n if (!this.mediaQuery) return true;\n return (\n window.matchMedia('(' + this.mediaQuery + ')').matches ||\n window.matchMedia(this.mediaQuery).matches\n );\n }\n\n sticker(): void {\n\n // check media query\n if (this.isStuck && !this.matchMediaQuery()) {\n this.resetElement();\n return;\n }\n\n // detecting when a container's height changes\n let currentContainerHeight: number = this.getCssNumber(this.container, 'height');\n if (currentContainerHeight !== this.containerHeight) {\n this.defineDimensions();\n }\n\n let position: number = this.scrollbarYPos();\n\n // unstick\n if (this.isStuck && (position < this.containerStart || position > this.scrollFinish) || position > this.scrollFinish) {\n this.resetElement();\n if (position > this.scrollFinish) this.unstuckElement();\n this.isStuck = false;\n // if (this.squish > 0 && position < this.squishStart) this.squishElement();\n }\n // remove warning\n if (this.isWarning && position < this.warningStart) {\n this.removeWarningElement();\n }\n // warning\n if (this.isStuck === false && position > this.warningStart && position < this.scrollFinish) {\n this.warningElement();\n }\n // unsquish\n if (this.isSquishing && position < this.squishStart) {\n this.isSquishing = false; \n }\n // squish\n if (this.squish !==0 && this.isStuck === false && position > this.squishStart && position < this.containerStart) {\n console.log('position:'+position);\n console.log('this.containerStart:'+this.containerStart);\n this.squishElement();\n }\n \n // stick\n else if (this.isStuck === false && position > this.containerStart && position < this.scrollFinish) {\n this.stuckElement();\n }\n }\n\n private scrollbarYPos(): number {\n return window.pageYOffset || document.documentElement.scrollTop;\n }\n\n private getBoundingClientRectValue(element: any, property: string): number {\n let result = 0;\n if (element.getBoundingClientRect) {\n let rect = element.getBoundingClientRect();\n result = (typeof rect[property] !== 'undefined') ? rect[property] : 0;\n }\n return result;\n }\n\n private getCssValue(element: any, property: string): any {\n let result: any = '';\n let style = element.currentStyle || window.getComputedStyle(element); \n if (typeof style[property] !== 'undefined') {\n result = style[property];\n } else {\n result = style.getPropertyValue(property);\n }\n return result;\n }\n\n private getCssNumber(element: any, property: string): number {\n return parseInt(this.getCssValue(element, property), 10) || 0;\n }\n}","import { Component } from '@angular/core';\n\nimport { ModalService } from '../services/modal.service';\n\n@Component({\n selector: 'site-footer',\n templateUrl: './templates/site-footer.html',\n styles: [`.footer-link { cursor: pointer; }`]\n})\nexport class SiteFooterComponent {\n policyOpen: boolean = false;\n copyrightYear: number = new Date().getFullYear();\n\n constructor(public modalService: ModalService) {}\n\n policyClose(event){ this.policyOpen = event; };\n scrollToTop() {\n window.scrollTo(0, 0);\n }\n}","import { Component, Input, Output, EventEmitter } from '@angular/core';\n\n@Component({\n selector: 'privacy-policy',\n templateUrl: './templates/privacy-policy.html',\n})\nexport class PrivacyPolicyComponent {\n @Input() policyOpen;\n @Output() change: EventEmitter = new EventEmitter();\n toggle(){\n this.change.emit(false);\n // this.policyOpen = false;\n }\n}","import { Component, OnInit, ElementRef, ViewChild } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { NavService } from '../services/nav.service';\n//import { DOCUMENT } from '@angular/common';\n\n@Component({\n templateUrl: './templates/sitemap.html',\n})\nexport class SitemapComponent implements OnInit {\n// @ViewChild('container','test')\n// private container: ElementRef;\n\n title = 'Sitemap';\n description = '';\n keywords = '';\n engine = '';\n product = '';\n subModule = '';\n pageRoute = '/sitemap';\n engineRoute = '';\n productRoute = '';\n subModuleRoute = '';\n\n constructor(\n public navService: NavService\n ) {}\n\n ngOnInit() {\n this.navService.goToAnchor('#Sitemap');\n }\n\n changeEngine(engine, route) {\n this.engine = engine;\n this.engineRoute = route;\n }\n}","import { environment } from './environments/environment';\r\n\r\n//pdx1 - production\r\n//const apiUrlBase = 'https://www.mimics.com:9000';\r\n//const demoapiUrlBase = 'https://www.mimics.com:9001/';\r\n //const apiUrlBase = 'https://www.mimics.com:8000';\r\n// const serverUrlBase = 'https://www.mimics.com';\r\n// const crawlerUrl = 'https://www.mimics.com:8078';\r\n// const healthCheckUrlBase = 'http://pdx3.mimics.us:8079';\r\n\r\n//pdx3 - staging\r\n//const apiUrlBase = 'http://pdx3.mimics.us:8000';\r\n//const apiUrlBase = 'http://localhost:56178/';\r\nconst serverUrlBase = 'http://pdx3.mimics.us:4444';\r\nconst crawlerUrl = 'http://pdx3.mimics.us:8078';\r\nconst healthCheckUrlBase = 'http://pdx3.mimics.us:8079';\r\n\r\n//const localdemohost=`http://localhost:8000/`;\r\n//local dev only \r\n//const apiUrlBase = 'http://96.89.127.57:1991'; \r\n//const apiUrlBase = 'http://localhost:56178';\r\n// const serverUrlBase = 'http://localhost:4444';\r\n// const crawlerUrl = 'http://localhost:8078';\r\n// const healthCheckUrlBase = 'http://localhost:8079';\r\n\r\n//pdx7 -production\r\nconst apiUrlBase = 'https://www.mimics.com:9003/';\r\nconst demoapiUrlBase = 'https://www.mimics.com:9002/';\r\nconst CONFIG = {\r\n //blog api routes\r\n blogsApiUrlBase: `${apiUrlBase}/api/blogs/view`,\r\n blogsbodyApiUrlBase: `${apiUrlBase}/api/blogs/getblogbody`,\r\n blogsAddApiUrlBase: `${apiUrlBase}/api/blogs/add-blog`,\r\n blogsEditApiUrlBase: `${apiUrlBase}/api/blogs/edit`,\r\n blogsdeleteApiUrlBase: `${apiUrlBase}/api/blogs/delete`,\r\n categoryApiUrlBase: `${apiUrlBase}/api/blogs/category`,\r\n categoryAddApiUrlBase: `${apiUrlBase}/api/blogs/add-category`,\r\n categoryEditApiUrlBase: `${apiUrlBase}/api/blogs/category-edit`,\r\n categoryDeleteApiUrlBase: `${apiUrlBase}/api/blogs/category-delete`,\r\n\r\n profileApiUrlBase: `${apiUrlBase}/api/profile`,\r\n profileblogsApiUrlBase: `${apiUrlBase}/api/profileblogs`,\r\n usersApiUrlBase: `${apiUrlBase}/api/users`,\r\n addUserApiUrlBase: `${apiUrlBase}/api/add-user`,\r\n getSAViewGrid: `${apiUrlBase}/saviewgrid/`,\r\n salesRequestsApiUrlBase: `${apiUrlBase}/api/sales-requests`,\r\n latestsalesRequestsApiUrlBase: `${apiUrlBase}/api/latest-sales-requests`,\r\n demoAccessManegemant:`${apiUrlBase}/api/DemoAccessSaveorEdit`,\r\n demoAccessGetData:`${apiUrlBase}/api/DemoAccessGetData`,\r\n userSaveApiUrlBase: `${apiUrlBase}/api/UserDemoAccessSaveorEdit`,\r\n demoUserAccessGetData: `${apiUrlBase}/api/DemoAccessUserGetData`,\r\n demoUserAccessDelete: `${apiUrlBase}/api/DemoAccessDeleteUsers`,\r\n demoAccessDataDelete: `${apiUrlBase}/api/DemoAccessDeleteData`,\r\n demoAccessDataVideo: `${apiUrlBase}/api/GetDemoAccessVideoData`,\r\n demoAccessDataImage: `${apiUrlBase}/api/GetDemoAccessImageData`,\r\n demoVidedisplayData:`${apiUrlBase}/api/DemoAccessGetDataByUserId`,\r\n demoUserAccessVideos: `${apiUrlBase}/api/DemoAccessUserGetDataByUserId`,\r\n demoUserAccessLogin: `${apiUrlBase}/api/DemoAccessUserLogin`,\r\n DemologinApiUrlBase: `${apiUrlBase}/api/checklogin`,\r\n //login routes do not use api prefix\r\n loginApiUrlBase: `${apiUrlBase}/api/login`,\r\n sendemailApiUrlBase: `${apiUrlBase}/sendemail/`,\r\n deleteUserApiUrlBase: `${apiUrlBase}/api/users`,\r\n uploadFiles: `${apiUrlBase}/api/uploadFiles/`,\r\n DemovideoUrlpx1:`${demoapiUrlBase}/`,\r\n //ssr crawler api\r\n crawlerUrl,\r\n //health check\r\n healthCheck: healthCheckUrlBase\r\n};\r\n\r\nexport default CONFIG;\r\n","// The file contents for the current environment will overwrite these during build.\n// The build system defaults to the dev environment which uses `environment.ts`, but if you do\n// `ng build --env=prod` then `environment.prod.ts` will be used instead.\n// The list of which env maps to which file can be found in `.angular-cli.json`.\n\nexport const environment = {\n production: false\n};\n","import 'hammerjs';\nimport { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule);\n"],"sourceRoot":"webpack:///"}