{"version":3,"sources":["./$_lazy_route_resource lazy namespace object","./node_modules/moment/locale sync ^\\.\\/.*$","./src/app/activity/activity.component.html","./src/app/activity/dialog.html","./src/app/add-score-card/add-score-card.component.html","./src/app/add-score-card/response-dialog.html","./src/app/add-score-card/validation-dialog.html","./src/app/alerts/alerts.component.html","./src/app/app.component.html","./src/app/case/case.component.html","./src/app/case/dialog.html","./src/app/common/dialog.html","./src/app/company/company.component.html","./src/app/company/dialog.html","./src/app/dashboard/dashboard.component.html","./src/app/departments/departments.component.html","./src/app/departments/dialog.html","./src/app/employee/dialog.html","./src/app/employee/employee.component.html","./src/app/frustration-comments/frustration-comments.component.html","./src/app/frustration-reports/frustration-reports.component.html","./src/app/frustrationstype/dialog.html","./src/app/frustrationstype/frustrationstype.component.html","./src/app/goals/dialog.html","./src/app/goals/goals.component.html","./src/app/hipriority/hipriority.component.html","./src/app/login/dialog.html","./src/app/login/login.component.html","./src/app/metric/dialog.html","./src/app/metric/metric.component.html","./src/app/metricdata/dialog.html","./src/app/metricdata/metricdata.component.html","./src/app/nometric-process/nometric-process.component.html","./src/app/organization/dialog.html","./src/app/organization/organization.component.html","./src/app/other-frustration/other-frustration.component.html","./src/app/performance-score-card/dialog.html","./src/app/performance-score-card/performance-score-card.component.html","./src/app/pointer/dialog.html","./src/app/pointer/pointer.component.html","./src/app/process-map/dialog.html","./src/app/process-map/process-map.component.html","./src/app/process/dialog.html","./src/app/process/process.component.html","./src/app/project/dialog.html","./src/app/project/project.component.html","./src/app/projects-noactions/projects-noactions.component.html","./src/app/quarter/quarter.component.html","./src/app/report-activity-issues/report-activity-issues.component.html","./src/app/report-category/dialog.html","./src/app/report-category/report-category.component.html","./src/app/report-hipriority/dialog.html","./src/app/report-hipriority/report-hipriority.component.html","./src/app/report-metric-process/dialog.html","./src/app/report-metric-process/report-metric-process.component.html","./src/app/report-process/dialog.html","./src/app/report-process/report-process.component.html","./src/app/report-project/dialog.html","./src/app/report-project/report-project.component.html","./src/app/reports/reports.component.html","./src/app/roles/dialog.html","./src/app/roles/roles.component.html","./src/app/sub-company/sub-company.component.html","./src/app/teams/dialog.html","./src/app/teams/teams.component.html","./src/app/user-permisions/user-permisions.component.html","./src/app/usermanual/usermanual.component.html","./src/app/view-score-card/view-score-card.component.html","./src/app/activity/activity.component.ts","./src/app/add-score-card/add-score-card.component.scss","./src/app/add-score-card/add-score-card.component.ts","./src/app/add-score-card/add-score-card.model.ts","./src/app/add-score-card/response-dialog.ts","./src/app/add-score-card/validation-dialog.ts","./src/app/alerts/alerts.component.ts","./src/app/app-routing.module.ts","./src/app/app.component.scss","./src/app/app.component.ts","./src/app/app.module.ts","./src/app/case/case.component.ts","./src/app/common/dialog.ts","./src/app/common/directives/numbers-only.directive.ts","./src/app/common/models/login-level.model.ts","./src/app/company/company.component.scss","./src/app/company/company.component.ts","./src/app/copyRight.model.ts","./src/app/dashboard/dashboard.component.scss","./src/app/dashboard/dashboard.component.ts","./src/app/departments/departments.component.scss","./src/app/departments/departments.component.ts","./src/app/dorsey.service.ts","./src/app/employee/employee.component.ts","./src/app/frustration-comments/frustration-comments.component.ts","./src/app/frustration-reports/frustration-reports.component.ts","./src/app/frustrationstype/frustrationstype.component.ts","./src/app/goals/goals.component.scss","./src/app/goals/goals.component.ts","./src/app/hipriority/hipriority.component.ts","./src/app/login/azure-details.model.ts","./src/app/login/dialog.css","./src/app/login/login.component.scss","./src/app/login/login.component.ts","./src/app/login/msal-user.service.ts","./src/app/long-press.ts","./src/app/metric/metric.component.ts","./src/app/metricdata/metricdata.component.ts","./src/app/nometric-process/nometric-process.component.ts","./src/app/organization/organization.component.scss","./src/app/organization/organization.component.ts","./src/app/other-frustration/other-frustration.component.ts","./src/app/performance-score-card/performance-score-card.component.scss","./src/app/performance-score-card/performance-score-card.component.ts","./src/app/performance-score-card/performance-score-card.model.ts","./src/app/performance-score-card/performance-score-card.service.ts","./src/app/pointer/dialog.css","./src/app/pointer/pointer.component.ts","./src/app/process-map/dialog.css","./src/app/process-map/process-map.component.scss","./src/app/process-map/process-map.component.ts","./src/app/process/process.component.ts","./src/app/project/project.component.ts","./src/app/projects-noactions/projects-noactions.component.ts","./src/app/quarter/quarter.component.scss","./src/app/quarter/quarter.component.ts","./src/app/quarter/quarter.model.ts","./src/app/report-activity-issues/report-activity-issues.component.scss","./src/app/report-activity-issues/report-activity-issues.component.ts","./src/app/report-category/report-category.component.ts","./src/app/report-hipriority/report-hipriority.component.ts","./src/app/report-metric-process/report-metric-process.component.ts","./src/app/report-process/report-process.component.ts","./src/app/report-project/report-project.component.ts","./src/app/reports/reports.component.ts","./src/app/roles/dialog.scss","./src/app/roles/roles.component.ts","./src/app/services/company.service.ts","./src/app/services/department.service.ts","./src/app/services/goal.service.ts","./src/app/services/organization.service.ts","./src/app/services/quarter.service.ts","./src/app/sort.pipe.ts","./src/app/sub-company/sub-company.component.scss","./src/app/sub-company/sub-company.component.ts","./src/app/teams/teams.component.ts","./src/app/user-permisions/user-permisions.component.scss","./src/app/user-permisions/user-permisions.component.ts","./src/app/usermanual/usermanual.component.scss","./src/app/usermanual/usermanual.component.ts","./src/app/view-score-card/view-score-card.component.scss","./src/app/view-score-card/view-score-card.component.ts","./src/environments/environment.ts","./src/main.ts","fs (ignored)","crypto (ignored)","stream (ignored)","zlib (ignored)","webpack:///fs (ignored)?0c95","http (ignored)","https (ignored)","url (ignored)"],"names":[],"mappings":";;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA,4CAA4C,WAAW;AACvD;AACA;AACA,wE;;;;;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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","file":"main-es2015.a7e7f7a5f15929749a87.js","sourcesContent":["function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"./$$_lazy_route_resource lazy recursive\";","var map = {\n\t\"./af\": \"./node_modules/moment/locale/af.js\",\n\t\"./af.js\": \"./node_modules/moment/locale/af.js\",\n\t\"./ar\": \"./node_modules/moment/locale/ar.js\",\n\t\"./ar-dz\": \"./node_modules/moment/locale/ar-dz.js\",\n\t\"./ar-dz.js\": \"./node_modules/moment/locale/ar-dz.js\",\n\t\"./ar-kw\": \"./node_modules/moment/locale/ar-kw.js\",\n\t\"./ar-kw.js\": \"./node_modules/moment/locale/ar-kw.js\",\n\t\"./ar-ly\": \"./node_modules/moment/locale/ar-ly.js\",\n\t\"./ar-ly.js\": \"./node_modules/moment/locale/ar-ly.js\",\n\t\"./ar-ma\": \"./node_modules/moment/locale/ar-ma.js\",\n\t\"./ar-ma.js\": \"./node_modules/moment/locale/ar-ma.js\",\n\t\"./ar-sa\": \"./node_modules/moment/locale/ar-sa.js\",\n\t\"./ar-sa.js\": \"./node_modules/moment/locale/ar-sa.js\",\n\t\"./ar-tn\": \"./node_modules/moment/locale/ar-tn.js\",\n\t\"./ar-tn.js\": \"./node_modules/moment/locale/ar-tn.js\",\n\t\"./ar.js\": \"./node_modules/moment/locale/ar.js\",\n\t\"./az\": \"./node_modules/moment/locale/az.js\",\n\t\"./az.js\": \"./node_modules/moment/locale/az.js\",\n\t\"./be\": \"./node_modules/moment/locale/be.js\",\n\t\"./be.js\": \"./node_modules/moment/locale/be.js\",\n\t\"./bg\": \"./node_modules/moment/locale/bg.js\",\n\t\"./bg.js\": \"./node_modules/moment/locale/bg.js\",\n\t\"./bm\": \"./node_modules/moment/locale/bm.js\",\n\t\"./bm.js\": \"./node_modules/moment/locale/bm.js\",\n\t\"./bn\": \"./node_modules/moment/locale/bn.js\",\n\t\"./bn-bd\": \"./node_modules/moment/locale/bn-bd.js\",\n\t\"./bn-bd.js\": \"./node_modules/moment/locale/bn-bd.js\",\n\t\"./bn.js\": \"./node_modules/moment/locale/bn.js\",\n\t\"./bo\": \"./node_modules/moment/locale/bo.js\",\n\t\"./bo.js\": \"./node_modules/moment/locale/bo.js\",\n\t\"./br\": \"./node_modules/moment/locale/br.js\",\n\t\"./br.js\": \"./node_modules/moment/locale/br.js\",\n\t\"./bs\": \"./node_modules/moment/locale/bs.js\",\n\t\"./bs.js\": \"./node_modules/moment/locale/bs.js\",\n\t\"./ca\": \"./node_modules/moment/locale/ca.js\",\n\t\"./ca.js\": \"./node_modules/moment/locale/ca.js\",\n\t\"./cs\": \"./node_modules/moment/locale/cs.js\",\n\t\"./cs.js\": \"./node_modules/moment/locale/cs.js\",\n\t\"./cv\": \"./node_modules/moment/locale/cv.js\",\n\t\"./cv.js\": \"./node_modules/moment/locale/cv.js\",\n\t\"./cy\": \"./node_modules/moment/locale/cy.js\",\n\t\"./cy.js\": \"./node_modules/moment/locale/cy.js\",\n\t\"./da\": \"./node_modules/moment/locale/da.js\",\n\t\"./da.js\": \"./node_modules/moment/locale/da.js\",\n\t\"./de\": \"./node_modules/moment/locale/de.js\",\n\t\"./de-at\": \"./node_modules/moment/locale/de-at.js\",\n\t\"./de-at.js\": \"./node_modules/moment/locale/de-at.js\",\n\t\"./de-ch\": \"./node_modules/moment/locale/de-ch.js\",\n\t\"./de-ch.js\": \"./node_modules/moment/locale/de-ch.js\",\n\t\"./de.js\": \"./node_modules/moment/locale/de.js\",\n\t\"./dv\": \"./node_modules/moment/locale/dv.js\",\n\t\"./dv.js\": \"./node_modules/moment/locale/dv.js\",\n\t\"./el\": \"./node_modules/moment/locale/el.js\",\n\t\"./el.js\": \"./node_modules/moment/locale/el.js\",\n\t\"./en-au\": \"./node_modules/moment/locale/en-au.js\",\n\t\"./en-au.js\": \"./node_modules/moment/locale/en-au.js\",\n\t\"./en-ca\": \"./node_modules/moment/locale/en-ca.js\",\n\t\"./en-ca.js\": \"./node_modules/moment/locale/en-ca.js\",\n\t\"./en-gb\": \"./node_modules/moment/locale/en-gb.js\",\n\t\"./en-gb.js\": \"./node_modules/moment/locale/en-gb.js\",\n\t\"./en-ie\": \"./node_modules/moment/locale/en-ie.js\",\n\t\"./en-ie.js\": \"./node_modules/moment/locale/en-ie.js\",\n\t\"./en-il\": \"./node_modules/moment/locale/en-il.js\",\n\t\"./en-il.js\": \"./node_modules/moment/locale/en-il.js\",\n\t\"./en-in\": \"./node_modules/moment/locale/en-in.js\",\n\t\"./en-in.js\": \"./node_modules/moment/locale/en-in.js\",\n\t\"./en-nz\": \"./node_modules/moment/locale/en-nz.js\",\n\t\"./en-nz.js\": \"./node_modules/moment/locale/en-nz.js\",\n\t\"./en-sg\": \"./node_modules/moment/locale/en-sg.js\",\n\t\"./en-sg.js\": \"./node_modules/moment/locale/en-sg.js\",\n\t\"./eo\": \"./node_modules/moment/locale/eo.js\",\n\t\"./eo.js\": \"./node_modules/moment/locale/eo.js\",\n\t\"./es\": \"./node_modules/moment/locale/es.js\",\n\t\"./es-do\": \"./node_modules/moment/locale/es-do.js\",\n\t\"./es-do.js\": \"./node_modules/moment/locale/es-do.js\",\n\t\"./es-mx\": \"./node_modules/moment/locale/es-mx.js\",\n\t\"./es-mx.js\": \"./node_modules/moment/locale/es-mx.js\",\n\t\"./es-us\": \"./node_modules/moment/locale/es-us.js\",\n\t\"./es-us.js\": \"./node_modules/moment/locale/es-us.js\",\n\t\"./es.js\": \"./node_modules/moment/locale/es.js\",\n\t\"./et\": \"./node_modules/moment/locale/et.js\",\n\t\"./et.js\": \"./node_modules/moment/locale/et.js\",\n\t\"./eu\": \"./node_modules/moment/locale/eu.js\",\n\t\"./eu.js\": \"./node_modules/moment/locale/eu.js\",\n\t\"./fa\": \"./node_modules/moment/locale/fa.js\",\n\t\"./fa.js\": \"./node_modules/moment/locale/fa.js\",\n\t\"./fi\": \"./node_modules/moment/locale/fi.js\",\n\t\"./fi.js\": \"./node_modules/moment/locale/fi.js\",\n\t\"./fil\": \"./node_modules/moment/locale/fil.js\",\n\t\"./fil.js\": \"./node_modules/moment/locale/fil.js\",\n\t\"./fo\": \"./node_modules/moment/locale/fo.js\",\n\t\"./fo.js\": \"./node_modules/moment/locale/fo.js\",\n\t\"./fr\": \"./node_modules/moment/locale/fr.js\",\n\t\"./fr-ca\": \"./node_modules/moment/locale/fr-ca.js\",\n\t\"./fr-ca.js\": \"./node_modules/moment/locale/fr-ca.js\",\n\t\"./fr-ch\": \"./node_modules/moment/locale/fr-ch.js\",\n\t\"./fr-ch.js\": \"./node_modules/moment/locale/fr-ch.js\",\n\t\"./fr.js\": \"./node_modules/moment/locale/fr.js\",\n\t\"./fy\": \"./node_modules/moment/locale/fy.js\",\n\t\"./fy.js\": \"./node_modules/moment/locale/fy.js\",\n\t\"./ga\": \"./node_modules/moment/locale/ga.js\",\n\t\"./ga.js\": \"./node_modules/moment/locale/ga.js\",\n\t\"./gd\": \"./node_modules/moment/locale/gd.js\",\n\t\"./gd.js\": \"./node_modules/moment/locale/gd.js\",\n\t\"./gl\": \"./node_modules/moment/locale/gl.js\",\n\t\"./gl.js\": \"./node_modules/moment/locale/gl.js\",\n\t\"./gom-deva\": \"./node_modules/moment/locale/gom-deva.js\",\n\t\"./gom-deva.js\": \"./node_modules/moment/locale/gom-deva.js\",\n\t\"./gom-latn\": \"./node_modules/moment/locale/gom-latn.js\",\n\t\"./gom-latn.js\": \"./node_modules/moment/locale/gom-latn.js\",\n\t\"./gu\": \"./node_modules/moment/locale/gu.js\",\n\t\"./gu.js\": \"./node_modules/moment/locale/gu.js\",\n\t\"./he\": \"./node_modules/moment/locale/he.js\",\n\t\"./he.js\": \"./node_modules/moment/locale/he.js\",\n\t\"./hi\": \"./node_modules/moment/locale/hi.js\",\n\t\"./hi.js\": \"./node_modules/moment/locale/hi.js\",\n\t\"./hr\": \"./node_modules/moment/locale/hr.js\",\n\t\"./hr.js\": \"./node_modules/moment/locale/hr.js\",\n\t\"./hu\": \"./node_modules/moment/locale/hu.js\",\n\t\"./hu.js\": \"./node_modules/moment/locale/hu.js\",\n\t\"./hy-am\": \"./node_modules/moment/locale/hy-am.js\",\n\t\"./hy-am.js\": \"./node_modules/moment/locale/hy-am.js\",\n\t\"./id\": \"./node_modules/moment/locale/id.js\",\n\t\"./id.js\": \"./node_modules/moment/locale/id.js\",\n\t\"./is\": \"./node_modules/moment/locale/is.js\",\n\t\"./is.js\": \"./node_modules/moment/locale/is.js\",\n\t\"./it\": \"./node_modules/moment/locale/it.js\",\n\t\"./it-ch\": \"./node_modules/moment/locale/it-ch.js\",\n\t\"./it-ch.js\": \"./node_modules/moment/locale/it-ch.js\",\n\t\"./it.js\": \"./node_modules/moment/locale/it.js\",\n\t\"./ja\": \"./node_modules/moment/locale/ja.js\",\n\t\"./ja.js\": \"./node_modules/moment/locale/ja.js\",\n\t\"./jv\": \"./node_modules/moment/locale/jv.js\",\n\t\"./jv.js\": \"./node_modules/moment/locale/jv.js\",\n\t\"./ka\": \"./node_modules/moment/locale/ka.js\",\n\t\"./ka.js\": \"./node_modules/moment/locale/ka.js\",\n\t\"./kk\": \"./node_modules/moment/locale/kk.js\",\n\t\"./kk.js\": \"./node_modules/moment/locale/kk.js\",\n\t\"./km\": \"./node_modules/moment/locale/km.js\",\n\t\"./km.js\": \"./node_modules/moment/locale/km.js\",\n\t\"./kn\": \"./node_modules/moment/locale/kn.js\",\n\t\"./kn.js\": \"./node_modules/moment/locale/kn.js\",\n\t\"./ko\": \"./node_modules/moment/locale/ko.js\",\n\t\"./ko.js\": \"./node_modules/moment/locale/ko.js\",\n\t\"./ku\": \"./node_modules/moment/locale/ku.js\",\n\t\"./ku.js\": \"./node_modules/moment/locale/ku.js\",\n\t\"./ky\": \"./node_modules/moment/locale/ky.js\",\n\t\"./ky.js\": \"./node_modules/moment/locale/ky.js\",\n\t\"./lb\": \"./node_modules/moment/locale/lb.js\",\n\t\"./lb.js\": \"./node_modules/moment/locale/lb.js\",\n\t\"./lo\": \"./node_modules/moment/locale/lo.js\",\n\t\"./lo.js\": \"./node_modules/moment/locale/lo.js\",\n\t\"./lt\": \"./node_modules/moment/locale/lt.js\",\n\t\"./lt.js\": \"./node_modules/moment/locale/lt.js\",\n\t\"./lv\": \"./node_modules/moment/locale/lv.js\",\n\t\"./lv.js\": \"./node_modules/moment/locale/lv.js\",\n\t\"./me\": \"./node_modules/moment/locale/me.js\",\n\t\"./me.js\": \"./node_modules/moment/locale/me.js\",\n\t\"./mi\": \"./node_modules/moment/locale/mi.js\",\n\t\"./mi.js\": \"./node_modules/moment/locale/mi.js\",\n\t\"./mk\": \"./node_modules/moment/locale/mk.js\",\n\t\"./mk.js\": \"./node_modules/moment/locale/mk.js\",\n\t\"./ml\": \"./node_modules/moment/locale/ml.js\",\n\t\"./ml.js\": \"./node_modules/moment/locale/ml.js\",\n\t\"./mn\": \"./node_modules/moment/locale/mn.js\",\n\t\"./mn.js\": \"./node_modules/moment/locale/mn.js\",\n\t\"./mr\": \"./node_modules/moment/locale/mr.js\",\n\t\"./mr.js\": \"./node_modules/moment/locale/mr.js\",\n\t\"./ms\": \"./node_modules/moment/locale/ms.js\",\n\t\"./ms-my\": \"./node_modules/moment/locale/ms-my.js\",\n\t\"./ms-my.js\": \"./node_modules/moment/locale/ms-my.js\",\n\t\"./ms.js\": \"./node_modules/moment/locale/ms.js\",\n\t\"./mt\": \"./node_modules/moment/locale/mt.js\",\n\t\"./mt.js\": \"./node_modules/moment/locale/mt.js\",\n\t\"./my\": \"./node_modules/moment/locale/my.js\",\n\t\"./my.js\": \"./node_modules/moment/locale/my.js\",\n\t\"./nb\": \"./node_modules/moment/locale/nb.js\",\n\t\"./nb.js\": \"./node_modules/moment/locale/nb.js\",\n\t\"./ne\": \"./node_modules/moment/locale/ne.js\",\n\t\"./ne.js\": \"./node_modules/moment/locale/ne.js\",\n\t\"./nl\": \"./node_modules/moment/locale/nl.js\",\n\t\"./nl-be\": \"./node_modules/moment/locale/nl-be.js\",\n\t\"./nl-be.js\": \"./node_modules/moment/locale/nl-be.js\",\n\t\"./nl.js\": \"./node_modules/moment/locale/nl.js\",\n\t\"./nn\": \"./node_modules/moment/locale/nn.js\",\n\t\"./nn.js\": \"./node_modules/moment/locale/nn.js\",\n\t\"./oc-lnc\": \"./node_modules/moment/locale/oc-lnc.js\",\n\t\"./oc-lnc.js\": \"./node_modules/moment/locale/oc-lnc.js\",\n\t\"./pa-in\": \"./node_modules/moment/locale/pa-in.js\",\n\t\"./pa-in.js\": \"./node_modules/moment/locale/pa-in.js\",\n\t\"./pl\": \"./node_modules/moment/locale/pl.js\",\n\t\"./pl.js\": \"./node_modules/moment/locale/pl.js\",\n\t\"./pt\": \"./node_modules/moment/locale/pt.js\",\n\t\"./pt-br\": \"./node_modules/moment/locale/pt-br.js\",\n\t\"./pt-br.js\": \"./node_modules/moment/locale/pt-br.js\",\n\t\"./pt.js\": \"./node_modules/moment/locale/pt.js\",\n\t\"./ro\": \"./node_modules/moment/locale/ro.js\",\n\t\"./ro.js\": \"./node_modules/moment/locale/ro.js\",\n\t\"./ru\": \"./node_modules/moment/locale/ru.js\",\n\t\"./ru.js\": \"./node_modules/moment/locale/ru.js\",\n\t\"./sd\": \"./node_modules/moment/locale/sd.js\",\n\t\"./sd.js\": \"./node_modules/moment/locale/sd.js\",\n\t\"./se\": \"./node_modules/moment/locale/se.js\",\n\t\"./se.js\": \"./node_modules/moment/locale/se.js\",\n\t\"./si\": \"./node_modules/moment/locale/si.js\",\n\t\"./si.js\": \"./node_modules/moment/locale/si.js\",\n\t\"./sk\": \"./node_modules/moment/locale/sk.js\",\n\t\"./sk.js\": \"./node_modules/moment/locale/sk.js\",\n\t\"./sl\": \"./node_modules/moment/locale/sl.js\",\n\t\"./sl.js\": \"./node_modules/moment/locale/sl.js\",\n\t\"./sq\": \"./node_modules/moment/locale/sq.js\",\n\t\"./sq.js\": \"./node_modules/moment/locale/sq.js\",\n\t\"./sr\": \"./node_modules/moment/locale/sr.js\",\n\t\"./sr-cyrl\": \"./node_modules/moment/locale/sr-cyrl.js\",\n\t\"./sr-cyrl.js\": \"./node_modules/moment/locale/sr-cyrl.js\",\n\t\"./sr.js\": \"./node_modules/moment/locale/sr.js\",\n\t\"./ss\": \"./node_modules/moment/locale/ss.js\",\n\t\"./ss.js\": \"./node_modules/moment/locale/ss.js\",\n\t\"./sv\": \"./node_modules/moment/locale/sv.js\",\n\t\"./sv.js\": \"./node_modules/moment/locale/sv.js\",\n\t\"./sw\": \"./node_modules/moment/locale/sw.js\",\n\t\"./sw.js\": \"./node_modules/moment/locale/sw.js\",\n\t\"./ta\": \"./node_modules/moment/locale/ta.js\",\n\t\"./ta.js\": \"./node_modules/moment/locale/ta.js\",\n\t\"./te\": \"./node_modules/moment/locale/te.js\",\n\t\"./te.js\": \"./node_modules/moment/locale/te.js\",\n\t\"./tet\": \"./node_modules/moment/locale/tet.js\",\n\t\"./tet.js\": \"./node_modules/moment/locale/tet.js\",\n\t\"./tg\": \"./node_modules/moment/locale/tg.js\",\n\t\"./tg.js\": \"./node_modules/moment/locale/tg.js\",\n\t\"./th\": \"./node_modules/moment/locale/th.js\",\n\t\"./th.js\": \"./node_modules/moment/locale/th.js\",\n\t\"./tk\": \"./node_modules/moment/locale/tk.js\",\n\t\"./tk.js\": \"./node_modules/moment/locale/tk.js\",\n\t\"./tl-ph\": \"./node_modules/moment/locale/tl-ph.js\",\n\t\"./tl-ph.js\": \"./node_modules/moment/locale/tl-ph.js\",\n\t\"./tlh\": \"./node_modules/moment/locale/tlh.js\",\n\t\"./tlh.js\": \"./node_modules/moment/locale/tlh.js\",\n\t\"./tr\": \"./node_modules/moment/locale/tr.js\",\n\t\"./tr.js\": \"./node_modules/moment/locale/tr.js\",\n\t\"./tzl\": \"./node_modules/moment/locale/tzl.js\",\n\t\"./tzl.js\": \"./node_modules/moment/locale/tzl.js\",\n\t\"./tzm\": \"./node_modules/moment/locale/tzm.js\",\n\t\"./tzm-latn\": \"./node_modules/moment/locale/tzm-latn.js\",\n\t\"./tzm-latn.js\": \"./node_modules/moment/locale/tzm-latn.js\",\n\t\"./tzm.js\": \"./node_modules/moment/locale/tzm.js\",\n\t\"./ug-cn\": \"./node_modules/moment/locale/ug-cn.js\",\n\t\"./ug-cn.js\": \"./node_modules/moment/locale/ug-cn.js\",\n\t\"./uk\": \"./node_modules/moment/locale/uk.js\",\n\t\"./uk.js\": \"./node_modules/moment/locale/uk.js\",\n\t\"./ur\": \"./node_modules/moment/locale/ur.js\",\n\t\"./ur.js\": \"./node_modules/moment/locale/ur.js\",\n\t\"./uz\": \"./node_modules/moment/locale/uz.js\",\n\t\"./uz-latn\": \"./node_modules/moment/locale/uz-latn.js\",\n\t\"./uz-latn.js\": \"./node_modules/moment/locale/uz-latn.js\",\n\t\"./uz.js\": \"./node_modules/moment/locale/uz.js\",\n\t\"./vi\": \"./node_modules/moment/locale/vi.js\",\n\t\"./vi.js\": \"./node_modules/moment/locale/vi.js\",\n\t\"./x-pseudo\": \"./node_modules/moment/locale/x-pseudo.js\",\n\t\"./x-pseudo.js\": \"./node_modules/moment/locale/x-pseudo.js\",\n\t\"./yo\": \"./node_modules/moment/locale/yo.js\",\n\t\"./yo.js\": \"./node_modules/moment/locale/yo.js\",\n\t\"./zh-cn\": \"./node_modules/moment/locale/zh-cn.js\",\n\t\"./zh-cn.js\": \"./node_modules/moment/locale/zh-cn.js\",\n\t\"./zh-hk\": \"./node_modules/moment/locale/zh-hk.js\",\n\t\"./zh-hk.js\": \"./node_modules/moment/locale/zh-hk.js\",\n\t\"./zh-mo\": \"./node_modules/moment/locale/zh-mo.js\",\n\t\"./zh-mo.js\": \"./node_modules/moment/locale/zh-mo.js\",\n\t\"./zh-tw\": \"./node_modules/moment/locale/zh-tw.js\",\n\t\"./zh-tw.js\": \"./node_modules/moment/locale/zh-tw.js\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"./node_modules/moment/locale sync recursive ^\\\\.\\\\/.*$\";","module.exports = \"<link href=\\\"../../assets/css/dmapp.css\\\" rel=\\\"stylesheet\\\" id=\\\"bootstrap-css\\\">\\r\\n\\r\\n<div class=\\\"row\\\" id=\\\"container\\\">\\r\\n <div class=\\\"\\\" id=\\\"heading\\\">\\r\\n <h4>Activity</h4>\\r\\n </div>\\r\\n <div id=\\\"wrapper\\\">\\r\\n <div id=\\\"tableActions\\\">\\r\\n <div class=\\\"\\\" id=\\\"search\\\" *ngIf=\\\"!disableSearch\\\">\\r\\n <mat-form-field style=\\\"margin-top: -5px;\\\" id=\\\"searchField\\\">\\r\\n <mat-placeholder class=\\\"placeholder\\\">Search here</mat-placeholder>\\r\\n <input matInput id=\\\"newGroup\\\" [disabled]=\\\"disableSearch\\\" (keyup)=\\\"Searchtext()\\\" name=\\\"search\\\"\\r\\n [(ngModel)]=\\\"searchtext\\\" value=\\\"\\\" autocomplete=\\\"off\\\">\\r\\n </mat-form-field>\\r\\n </div>\\r\\n <div class=\\\"\\\" id=\\\"excelBtn\\\" *ngIf=\\\"!isDisable\\\">\\r\\n <button class=\\\"darkbtnbg btn btn-info\\\" [disabled]=\\\"isDisable\\\" matTooltip=\\\"Export as excel\\\"\\r\\n style=\\\"margin-top:11px;cursor: pointer;\\\" (click)=\\\"exportAsXLSX()\\\">\\r\\n\\r\\n Excel\\r\\n </button>\\r\\n </div>\\r\\n <div class=\\\"\\\" id=\\\"createBtn\\\">\\r\\n <button mat-accent class=\\\"darkbtnbg btn btn-info\\\" style=\\\"margin-top: 11px;\\\"\\r\\n [disabled]=\\\"!MenuPermissions[menuName][menuID]['C']\\\" (click)='OpenActivity(\\\"new\\\")'\\r\\n matTooltip=\\\"New activity\\\">New</button>\\r\\n </div>\\r\\n <div class=\\\"\\\" id=\\\"createBtn\\\">\\r\\n <button mat-accent class=\\\"darkbtnbg btn btn-info\\\" style=\\\"margin-top: 11px;white-space: nowrap;\\\"\\r\\n [disabled]=\\\"!MenuPermissions[menuName][menuID]['C'] || activityData.length===0\\\" (click)='OpenActivity(\\\"sub\\\")'\\r\\n matTooltip=\\\"New sub activity\\\">New Sub Activity</button>\\r\\n </div>\\r\\n\\r\\n </div>\\r\\n </div>\\r\\n</div>\\r\\n<div>\\r\\n <div class=\\\"tableDiv\\\">\\r\\n <table>\\r\\n <thead>\\r\\n <tr>\\r\\n <th class=\\\"pointer\\\" (click)=\\\"sort('TeamName')\\\"> Team\\r\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\r\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\r\\n </th>\\r\\n <th class=\\\"pointer\\\" (click)=\\\"sort('ProcessName')\\\"> Process\\r\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\r\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\r\\n </th>\\r\\n\\r\\n\\r\\n <th cName class=\\\"pointer\\\" (click)=\\\"sort('ActivityName')\\\"> Activity\\r\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\r\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\r\\n </th>\\r\\n <th cName class=\\\"pointer\\\" (click)=\\\"sort('Parentname')\\\"> Parent\\r\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\r\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\r\\n\\r\\n </th>\\r\\n\\r\\n <th cName class=\\\"pointer\\\" (click)=\\\"sort('ActivityTypeName')\\\"> Activity Type\\r\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\r\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\r\\n\\r\\n </th>\\r\\n\\r\\n <th cName class=\\\"pointer\\\" (click)=\\\"sort('squence')\\\"> Sequence\\r\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\r\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\r\\n\\r\\n </th>\\r\\n\\r\\n <th action>Action</th>\\r\\n </tr>\\r\\n </thead>\\r\\n <tbody *ngIf=\\\"empID===0\\\">\\r\\n <tr\\r\\n *ngFor=\\\"let element of activityData | paginate: { itemsPerPage: rowsOnPage, currentPage: p } | sort: {property: column, direction: direction}; let i = index\\\">\\r\\n\\r\\n <td> {{element.TeamName}}</td>\\r\\n\\r\\n <td> {{element.ProcessName}}</td>\\r\\n\\r\\n <td> {{element.ActivityName}}</td>\\r\\n <td>{{element.Parentname}}</td>\\r\\n <td>{{element.ActivityTypeName}}</td>\\r\\n <td>{{element.squence}}</td>\\r\\n\\r\\n <td>\\r\\n <span> <a matTooltip=\\\"Edit activity\\\" (click)=\\\"EditActivity(element)\\\"\\r\\n [style.pointer-events]=\\\"!(MenuPermissions[menuName][menuID]['U'])?'none':'auto'\\\"\\r\\n [ngClass]=\\\"{'removeColor':!(MenuPermissions[menuName][menuID]['U']),'AddColor':(MenuPermissions[menuName][menuID]['U'] )}\\\"><i\\r\\n style=\\\"cursor: pointer;\\\" class=\\\"fa fa-pencil-square-o \\\" aria-hidden=\\\"true\\\"></i></a>\\r\\n <a matTooltip=\\\"Delete activity\\\" (click)=\\\"DeleteActivity(element)\\\"\\r\\n [style.pointer-events]=\\\"!(MenuPermissions[menuName][menuID]['D'])?'none':'auto'\\\"\\r\\n [ngClass]=\\\"{'removeColor':!(MenuPermissions[menuName][menuID]['D']),'AddColor':(MenuPermissions[menuName][menuID]['D'] )}\\\"><i\\r\\n style=\\\"cursor: pointer;\\\" class=\\\"fa fa-trash-o \\\" aria-hidden=\\\"true\\\"></i></a> </span>\\r\\n </td>\\r\\n\\r\\n </tr>\\r\\n </tbody>\\r\\n <tbody\\r\\n *ngFor=\\\"let element of activityData | paginate: { itemsPerPage: rowsOnPage, currentPage: p } | sort: {property: column, direction: direction}; let i = index\\\">\\r\\n <tr *ngIf=\\\"empID!==0 && element.R\\\">\\r\\n\\r\\n\\r\\n <td> {{element.TeamName}}</td>\\r\\n <td> {{element.ProcessName}}</td>\\r\\n\\r\\n <td> {{element.ActivityName}}</td>\\r\\n <td>{{element.Parentname}}</td>\\r\\n <td>{{element.ActivityTypeName}}</td>\\r\\n <td>{{element.squence}}</td>\\r\\n <td style=\\\" cursor:pointer;\\\">\\r\\n\\r\\n <span>\\r\\n\\r\\n <a matTooltip=\\\"Edit activity\\\" (click)=\\\"EditActivity(element)\\\"\\r\\n [style.pointer-events]=\\\"!(element.U)?'none':'auto'\\\"\\r\\n [ngClass]=\\\"{'removeColor':!(element.U),'AddColor':(element.U)}\\\"><i style=\\\"cursor: pointer;\\\"\\r\\n class=\\\"fa fa-pencil-square-o \\\" aria-hidden=\\\"true\\\"></i></a>\\r\\n <a matTooltip=\\\"Delete activity\\\" (click)=\\\"DeleteActivity(element)\\\"\\r\\n [style.pointer-events]=\\\"!(element.D )?'none':'auto'\\\"\\r\\n [ngClass]=\\\"{'removeColor':!(element.D),'AddColor':(element.D)}\\\"><i style=\\\"cursor: pointer;\\\"\\r\\n class=\\\"fa fa-trash-o \\\" aria-hidden=\\\"true\\\"></i></a>\\r\\n </span>\\r\\n </td>\\r\\n\\r\\n </tr>\\r\\n\\r\\n\\r\\n\\r\\n <tr *ngIf=\\\"empID!==0\\\">\\r\\n\\r\\n\\r\\n <td> {{element.TeamName}}</td>\\r\\n <td> {{element.ProcessName}}</td>\\r\\n\\r\\n <td> {{element.ActivityName}}</td>\\r\\n\\r\\n <td>{{element.Parentname}}</td>\\r\\n\\r\\n <td>{{element.ActivityTypeName}}</td>\\r\\n <td>{{element.squence}}</td>\\r\\n\\r\\n <td>\\r\\n\\r\\n <span>\\r\\n\\r\\n <a matTooltip=\\\"Edit activity\\\" (click)=\\\"EditActivity(element)\\\"\\r\\n [style.pointer-events]=\\\"!(MenuPermissions[menuName][menuID]['U'])?'none':'auto'\\\"\\r\\n [ngClass]=\\\"{'removeColor':!(MenuPermissions[menuName][menuID]['U']),'AddColor':(MenuPermissions[menuName][menuID]['U'])}\\\"><i\\r\\n style=\\\"cursor: pointer;\\\" class=\\\"fa fa-pencil-square-o \\\" aria-hidden=\\\"true\\\"></i></a>\\r\\n <a matTooltip=\\\"Delete activity\\\" (click)=\\\"DeleteActivity(element)\\\"\\r\\n [style.pointer-events]=\\\"!(MenuPermissions[menuName][menuID]['D'] )?'none':'auto'\\\"\\r\\n [ngClass]=\\\"{'removeColor':!(MenuPermissions[menuName][menuID]['D']),'AddColor':(MenuPermissions[menuName][menuID]['D'])}\\\"><i\\r\\n style=\\\"cursor: pointer;\\\" class=\\\"fa fa-trash-o \\\" aria-hidden=\\\"true\\\"></i></a>\\r\\n </span>\\r\\n </td>\\r\\n\\r\\n </tr>\\r\\n\\r\\n </tbody>\\r\\n </table><br>\\r\\n\\r\\n\\r\\n\\r\\n <div class=\\\"warningMsg\\\" *ngIf=\\\"(activityData === null||activityData===undefined || activityData.length === 0)\\\">\\r\\n\\r\\n <span>No data available</span>\\r\\n\\r\\n\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <div class=\\\"pageContainer\\\" *ngIf=\\\"activityPaging && activityData.length>0\\\">\\r\\n\\r\\n <div class=\\\"rowsSelection\\\">\\r\\n <mat-form-field style=\\\"width: 50px; margin-top: -15px;\\\">\\r\\n <mat-select [(ngModel)]=\\\"rowsOnPage\\\">\\r\\n <mat-option *ngFor=\\\"let row of rowsOnPageSet\\\" [value]=\\\"row\\\">\\r\\n {{row}}\\r\\n </mat-option>\\r\\n </mat-select>\\r\\n </mat-form-field>\\r\\n </div>\\r\\n\\r\\n\\r\\n <div class=\\\"pageSelection\\\">\\r\\n\\r\\n <!-- style=\\\"margin-top: -50px\\\" -->\\r\\n <pagination-controls (pageChange)=\\\"p = $event\\\"></pagination-controls>\\r\\n </div>\\r\\n </div>\\r\\n</div>\\r\\n\"","module.exports = \"<link href=\\\"../../assets/css/dmapp.css\\\" rel=\\\"stylesheet\\\" id=\\\"bootstrap-css\\\">\\r\\n<div\\r\\n *ngIf=\\\"data !== 'new' && data !== 'sub' &&data !== 'edit' && data!== 'rearrange' && data!='log'&& data !== 'progress' && data !== 'status'\\\">\\r\\n <mat-dialog-content>{{data}}</mat-dialog-content>\\r\\n <mat-dialog-actions align=\\\"center\\\">\\r\\n <div *ngIf=\\\"condition\\\">\\r\\n <button mat-raised-button mat-accent mat-dialog-close (click)=\\\"onNoClick()\\\">No</button>\\r\\n <!-- Can optionally provide a result for the closing dialog. -->\\r\\n <button mat-raised-button mat-accent [mat-dialog-close]=\\\"true\\\" (click)=\\\"onYesClick()\\\">Yes</button>\\r\\n </div>\\r\\n\\r\\n <div *ngIf=\\\"!condition && data !== 'progress' && data !== 'status'\\\">\\r\\n <div class=\\\"container\\\" fxLayout fxLayout.xs=\\\"column\\\" fxLayoutAlign=\\\"center\\\" fxLayoutGap=\\\"10px\\\" fxLayoutGap.xs=\\\"0\\\">\\r\\n <div class=\\\"item item-3 \\\">\\r\\n <button mat-button mat-accent mat-dialog-close>Ok</button>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </mat-dialog-actions>\\r\\n</div>\\r\\n\\r\\n\\r\\n<div *ngIf=\\\"data === 'new' ||data === 'sub' || data === 'edit' || data === 'rearrange'\\\"><br>\\r\\n <div class=\\\"XBtn\\\">\\r\\n <span (click)=\\\"Clear()\\\" matTooltip=\\\"Close\\\" class=\\\"close\\\">×</span>\\r\\n </div>\\r\\n <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n <div id=\\\"Rowheading\\\">\\r\\n\\r\\n <h4 class=\\\"alignheader\\\">\\r\\n <b *ngIf=\\\"data!=='sub' && ParentActivityID==0\\\"> {{data | titlecase}} Activity</b>\\r\\n <b *ngIf=\\\"data==='sub' || ParentActivityID!==0\\\"><span *ngIf=\\\"data==='sub'\\\">New </span>{{data | titlecase}}<span\\r\\n *ngIf=\\\"data!=='sub'|| data==='edit'\\\"> Sub </span> Activity</b>\\r\\n <!-- <b *ngIf=\\\"data==='sub'\\\"> New Sub Activity</b> -->\\r\\n </h4>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <div class=\\\"inputFields\\\">\\r\\n <div>\\r\\n <mat-form-field>\\r\\n <mat-placeholder *ngIf=\\\"data!=='sub' && ParentActivityID==0\\\">Activity <span\\r\\n style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n <mat-placeholder *ngIf=\\\"data==='sub' || ParentActivityID!==0\\\"> Sub Activity <span\\r\\n style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n <input matInput autocomplete=\\\"off\\\" [disabled]='data === \\\"rearrange\\\"' maxlength=\\\"40\\\" id=\\\"lblActivityName\\\"\\r\\n [(ngModel)]=\\\"ActivityName\\\" value=\\\"\\\">\\r\\n </mat-form-field>\\r\\n\\r\\n </div>\\r\\n <div>\\r\\n\\r\\n <mat-form-field>\\r\\n <mat-label *ngIf=\\\"processData.length === 0;else template\\\" style=\\\"color: red;\\\"> Key Process<span\\r\\n style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-label>\\r\\n <ng-template #template>\\r\\n <mat-label>Key Process<span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-label>\\r\\n </ng-template>\\r\\n <!-- <mat-placeholder>Key Process <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder> -->\\r\\n <mat-select (selectionChange)=\\\"process($event)\\\" [(ngModel)]=\\\"ProcessID\\\"\\r\\n [disabled]=\\\"conditionActivity!='' ||data === 'rearrange' \\\">\\r\\n <!-- || data==='edit' -->\\r\\n <mat-option *ngFor=\\\"let data of processData;let i=index;\\\" [value]=\\\"processData[i].ProcessID\\\">\\r\\n {{processData[i].ProcessName}}\\r\\n </mat-option>\\r\\n </mat-select>\\r\\n </mat-form-field>\\r\\n </div>\\r\\n <div *ngIf=\\\"data==='sub' || data==='process' ||ParentActivityID!==0 || data=='activity'\\\">\\r\\n <mat-form-field>\\r\\n <mat-placeholder>Activity <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n <mat-select\\r\\n [disabled]=\\\"!ProcessID || data === 'rearrange' || data==='process' || data=='activity' || conditionActivity!==''\\\"\\r\\n (selectionChange)=\\\"bindSequence($event)\\\" [(ngModel)]=\\\"ParentActivityID\\\">\\r\\n <mat-option *ngFor=\\\"let data of tempActivity;let i=index;\\\" [value]=\\\"data.ActivityID\\\">\\r\\n {{data.ActivityName}}\\r\\n </mat-option>\\r\\n </mat-select>\\r\\n </mat-form-field>\\r\\n </div>\\r\\n <div>\\r\\n <mat-form-field>\\r\\n <mat-label> Team</mat-label>\\r\\n <mat-select (change)=\\\"setSelected($event.target)\\\" [(ngModel)]=\\\"TeamID\\\" #select class=\\\"\\\" [disabled]=true>\\r\\n <mat-option *ngFor=\\\"let data of teamData;let i=index;\\\" [value]=\\\"teamData[i].TeamID\\\">\\r\\n {{teamData[i].TeamName}}\\r\\n </mat-option>\\r\\n </mat-select>\\r\\n </mat-form-field>\\r\\n </div>\\r\\n <div>\\r\\n <mat-form-field>\\r\\n\\r\\n <mat-placeholder>Sequence <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n <mat-select [(ngModel)]=\\\"squence\\\">\\r\\n <mat-option *ngFor=\\\"let data of sequenceList;let i=index;\\\" [value]=\\\"data\\\">\\r\\n {{data}}\\r\\n </mat-option>\\r\\n </mat-select>\\r\\n </mat-form-field>\\r\\n </div>\\r\\n <div>\\r\\n\\r\\n <mat-form-field>\\r\\n\\r\\n <mat-placeholder>Activity Type <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n <mat-select (selectionChange)=\\\"activityType($event)\\\" [(ngModel)]=\\\"ActivityTypeID\\\"\\r\\n [disabled]=\\\"data === 'rearrange'\\\">\\r\\n <mat-option *ngFor=\\\"let activityType of activityTypeData;let i=index;\\\"\\r\\n [value]=\\\"activityTypeData[i].ActivityTypeID\\\">\\r\\n {{activityTypeData[i].ActivityTypeName}}\\r\\n </mat-option>\\r\\n </mat-select>\\r\\n </mat-form-field>\\r\\n\\r\\n </div>\\r\\n\\r\\n </div>\\r\\n\\r\\n <!-- <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n <div id=\\\"Rowwrapper\\\">\\r\\n <div id=\\\"RowtableAction\\\">\\r\\n <div id=\\\"field\\\">\\r\\n <mat-form-field >\\r\\n <mat-placeholder *ngIf=\\\"data!=='sub' && ParentActivityID==0\\\">Activity <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n <mat-placeholder *ngIf=\\\"data==='sub' || ParentActivityID!==0\\\"> Sub Activity <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n <input matInput autocomplete=\\\"off\\\" [disabled]='data === \\\"rearrange\\\"' maxlength=\\\"40\\\" id=\\\"lblActivityName\\\" [(ngModel)]=\\\"ActivityName\\\" \\r\\n value=\\\"\\\">\\r\\n </mat-form-field>\\r\\n\\r\\n </div>\\r\\n <div >\\r\\n </div>\\r\\n <div id=\\\"field\\\">\\r\\n\\r\\n <mat-form-field >\\r\\n <mat-label *ngIf=\\\"processData.length === 0;else template\\\" style=\\\"color: red;\\\"> Key Process<span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-label>\\r\\n <ng-template #template><mat-label>Key Process<span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-label></ng-template>\\r\\n \\r\\n <mat-select (selectionChange)=\\\"process($event)\\\" [(ngModel)]=\\\"ProcessID\\\" [disabled]=\\\"conditionActivity!='' ||data === 'rearrange' \\\">\\r\\n \\r\\n <mat-option *ngFor=\\\"let data of processData;let i=index;\\\" [value]=\\\"processData[i].ProcessID\\\" >\\r\\n {{processData[i].ProcessName}}\\r\\n </mat-option>\\r\\n </mat-select>\\r\\n </mat-form-field> \\r\\n </div>\\r\\n \\r\\n \\r\\n <div >\\r\\n </div>\\r\\n <div id=\\\"field\\\" >\\r\\n <mat-form-field *ngIf=\\\"data==='sub' || data==='process' ||ParentActivityID!==0 || data=='activity'\\\" >\\r\\n <mat-placeholder>Activity <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n <mat-select [disabled]=\\\"!ProcessID || data === 'rearrange' || data==='process' || data=='activity' || conditionActivity!==''\\\" (selectionChange)=\\\"bindSequence($event)\\\" [(ngModel)]=\\\"ParentActivityID\\\">\\r\\n <mat-option *ngFor=\\\"let data of tempActivity;let i=index;\\\" [value]=\\\"data.ActivityID\\\" >\\r\\n {{data.ActivityName}}\\r\\n </mat-option>\\r\\n </mat-select>\\r\\n </mat-form-field> \\r\\n </div> \\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n \\r\\n <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n <div id=\\\"Rowwrapper\\\">\\r\\n <div id=\\\"RowtableAction\\\">\\r\\n <div id=\\\"field\\\">\\r\\n <mat-form-field>\\r\\n <mat-label> Team</mat-label>\\r\\n <mat-select (change)=\\\"setSelected($event.target)\\\"\\r\\n \\r\\n [(ngModel)]=\\\"TeamID\\\" #select class=\\\"\\\" [disabled]=true>\\r\\n <mat-option *ngFor=\\\"let data of teamData;let i=index;\\\" [value]=\\\"teamData[i].TeamID\\\" >\\r\\n {{teamData[i].TeamName}}\\r\\n </mat-option>\\r\\n </mat-select>\\r\\n </mat-form-field>\\r\\n \\r\\n \\r\\n </div>\\r\\n \\r\\n <div>\\r\\n </div>\\r\\n <div id=\\\"field\\\">\\r\\n <mat-form-field >\\r\\n \\r\\n <mat-placeholder>Sequence <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n <mat-select [(ngModel)]=\\\"squence\\\" >\\r\\n <mat-option *ngFor=\\\"let data of sequenceList;let i=index;\\\" [value]=\\\"data\\\" >\\r\\n {{data}}\\r\\n </mat-option>\\r\\n </mat-select>\\r\\n </mat-form-field> \\r\\n </div>\\r\\n \\r\\n <div >\\r\\n </div>\\r\\n <div >\\r\\n </div>\\r\\n \\r\\n <br>\\r\\n </div>\\r\\n </div></div>\\r\\n\\r\\n\\r\\n <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n <div id=\\\"Rowwrapper\\\">\\r\\n <div id=\\\"RowtableAction\\\">\\r\\n <div id=\\\"field\\\">\\r\\n \\r\\n <mat-form-field>\\r\\n \\r\\n <mat-placeholder>Activity Type <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n <mat-select (selectionChange)=\\\"activityType($event)\\\" [(ngModel)]=\\\"ActivityTypeID\\\" [disabled]=\\\"data === 'rearrange'\\\">\\r\\n <mat-option *ngFor=\\\"let activityType of activityTypeData;let i=index;\\\" [value]=\\\"activityTypeData[i].ActivityTypeID\\\" >\\r\\n {{activityTypeData[i].ActivityTypeName}}\\r\\n </mat-option>\\r\\n </mat-select>\\r\\n </mat-form-field>\\r\\n\\r\\n <br>\\r\\n \\r\\n </div>\\r\\n \\r\\n\\r\\n <div >\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div> -->\\r\\n\\r\\n\\r\\n <div class=\\\"container\\\" fxLayout fxLayout.xs=\\\"column\\\" fxLayoutAlign=\\\"center\\\" fxLayoutGap=\\\"10px\\\" fxLayoutGap.xs=\\\"0\\\">\\r\\n <div class=\\\"item item-1\\\" fxFlex=\\\"35%\\\" style=\\\"display: none;\\\">\\r\\n\\r\\n <mat-form-field>\\r\\n\\r\\n <mat-placeholder>Employee <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n <mat-select (selectionChange)=\\\"employee($event)\\\" [disabled]='data === \\\"rearrange\\\"' [(ngModel)]=\\\"EmployeeID\\\">\\r\\n <mat-option *ngFor=\\\"let data of employeeData;let i=index;\\\" [value]=\\\"employeeData[i].EmployeeID\\\">\\r\\n {{employeeData[i].EmployeeName}}\\r\\n </mat-option>\\r\\n </mat-select>\\r\\n </mat-form-field>\\r\\n </div>\\r\\n\\r\\n\\r\\n <div class=\\\"item item-1\\\" fxFlex=\\\"3%\\\">\\r\\n </div>\\r\\n <div class=\\\"item item-1\\\" fxFlex=\\\"35%\\\" style=\\\"display: none;\\\">\\r\\n\\r\\n <mat-form-field>\\r\\n\\r\\n <mat-placeholder>Department <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n <mat-select (selectionChange)=\\\"department($event)\\\" [disabled]='data === \\\"rearrange\\\"' [(ngModel)]=\\\"DepartmentID\\\">\\r\\n <mat-option *ngFor=\\\"let data of departmentData;let i=index;\\\" [value]=\\\"departmentData[i].DepartmentID\\\">\\r\\n {{departmentData[i].DepartmentName}}\\r\\n </mat-option>\\r\\n </mat-select>\\r\\n </mat-form-field>\\r\\n </div>\\r\\n <div class=\\\"item item-1\\\" fxFlex=\\\"25%\\\">\\r\\n </div>\\r\\n </div>\\r\\n <br>\\r\\n <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n <div id=\\\"Rowwrapper\\\">\\r\\n <div id=\\\"RowtableActions\\\">\\r\\n <div id=\\\"buttonview\\\">\\r\\n <button class=\\\"addButtons btn\\\" mat-accent (click)=\\\"AddActivity()\\\" [disabled]=\\\"btnDisabled\\\"><span\\r\\n *ngIf=\\\"data === 'new' ||data === 'sub' || data==='rearrange'\\\">Save</span><span\\r\\n *ngIf=\\\"data === 'edit'\\\">Update</span></button>\\r\\n\\r\\n </div>\\r\\n\\r\\n <div id=\\\"buttonview\\\">\\r\\n <button mat-accent class=\\\"addButtons btn\\\" (click)='Clear()'>Cancel</button>\\r\\n </div>\\r\\n\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <br>\\r\\n <mat-dialog-content class=\\\"warningMsg\\\">{{dataSelf}}</mat-dialog-content>\\r\\n <mat-dialog-content class=\\\"successMsg\\\"></mat-dialog-content>\\r\\n\"","module.exports = \"<div class=\\\"m-2\\\">\\r\\n <div class=\\\"row form-group\\\">\\r\\n <div class=\\\"col-sm-1 col-md-1 col-lg-1\\\">\\r\\n <button class=\\\"btn btn-default\\\" [routerLink]=\\\"['/performance-score-card']\\\"\\r\\n matTooltip=\\\"Back to Score Card List\\\">Back\\r\\n </button>\\r\\n </div>\\r\\n <div class=\\\"col-sm-11 col-md-11 col-lg-11 text-center\\\">\\r\\n <h5 class=\\\"text-underline\\\">Performance Score Card</h5>\\r\\n </div>\\r\\n </div>\\r\\n <mat-card>\\r\\n <div class=\\\"row form-group\\\">\\r\\n <div class=\\\"col-sm-3 col-md-3 col-lg-3\\\">\\r\\n <span><b>Score Card Type:</b> </span> {{scoreCard.ScoreCardType}}\\r\\n </div>\\r\\n <div class=\\\"col-sm-4 col-md-4 col-lg-4\\\">\\r\\n <span><b>Department Name:</b> </span> {{scoreCard.DepartmentName}}\\r\\n </div>\\r\\n <div class=\\\"col-sm-3 col-md-3 col-lg-3\\\" *ngIf=\\\"teamName\\\">\\r\\n <span><b>Team Name:</b></span> {{teamName}}\\r\\n </div>\\r\\n </div>\\r\\n </mat-card>\\r\\n <br>\\r\\n <mat-accordion class=\\\"example-headers-align\\\" style=\\\"width: 100%;\\\">\\r\\n <!-- <mat-expansion-panel [expanded]=\\\"step === 0\\\" (opened)=\\\"setStep(0)\\\" hideToggle>\\r\\n <mat-expansion-panel-header>\\r\\n <mat-panel-title>\\r\\n Score Card Details\\r\\n </mat-panel-title>\\r\\n </mat-expansion-panel-header>\\r\\n <div class=\\\"row form-group\\\">\\r\\n <div class=\\\"col-sm-3 col-md-3 col-lg-3\\\">\\r\\n <label>Score Card Type : </label> {{scoreCard.ScoreCardType}}\\r\\n </div>\\r\\n <div class=\\\"col-sm-3 col-md-3 col-lg-3\\\">\\r\\n <label>Department Name : </label> {{scoreCard.DepartmentName}}\\r\\n </div>\\r\\n <div class=\\\"col-sm-3 col-md-3 col-lg-3\\\" *ngIf=\\\"teamName\\\">\\r\\n <label>Team Name :</label> {{teamName}}\\r\\n </div>\\r\\n </div>\\r\\n <mat-action-row>\\r\\n <button mat-button color=\\\"primary\\\" (click)=\\\"nextStep()\\\">Next</button>\\r\\n </mat-action-row>\\r\\n </mat-expansion-panel> -->\\r\\n\\r\\n <mat-expansion-panel [expanded]=\\\"step === 0\\\" (opened)=\\\"setStep(0)\\\" hideToggle>\\r\\n <mat-expansion-panel-header>\\r\\n <mat-panel-title>\\r\\n <div class=\\\"row w-100\\\">\\r\\n <div class=\\\"col-sm-3 col-md-3 col-lg-3\\\">\\r\\n <span>Quarter Details</span>\\r\\n </div>\\r\\n <div class=\\\"col-sm-5 col-md-5 col-lg-5\\\" style=\\\"font-weight: 100;font-size: small;\\\"\\r\\n *ngIf=\\\"quarterName\\\">\\r\\n <span>Selected Quarter - {{quarterName}}</span>\\r\\n </div>\\r\\n <div class=\\\"col-sm-4 col-md-4 col-lg-4\\\" style=\\\"font-weight: 100;font-size: small;\\\"\\r\\n *ngIf=\\\"selectedYearName\\\">\\r\\n <span>Selected Year - {{selectedYearName}}</span>\\r\\n </div>\\r\\n </div>\\r\\n </mat-panel-title>\\r\\n </mat-expansion-panel-header>\\r\\n <div class=\\\"p-t-20\\\">\\r\\n <mat-form-field>\\r\\n <mat-label> Select Quarter <span style=\\\"color:red; font-size: 15px;\\\">*</span></mat-label>\\r\\n <mat-select [disabled]=\\\"scoreCardMasterId != 0 ? true : false\\\" [(ngModel)]=\\\"selectedQuarterId\\\">\\r\\n <mat-option *ngFor=\\\"let quarter of quarterList;\\\" [value]=\\\"quarter.QuarterId\\\">\\r\\n {{quarter.QuarterName}}\\r\\n </mat-option>\\r\\n </mat-select>\\r\\n </mat-form-field>\\r\\n <mat-form-field>\\r\\n <input matInput autocomplete=\\\"off\\\" readonly='true'\\r\\n [disabled]=\\\"scoreCardMasterId != 0 ? true : false\\\" [(ngModel)]=\\\"selectedYear\\\" minMode=\\\"year\\\"\\r\\n [minDate]=\\\"minDate\\\" [maxDate]=\\\"maxDate\\\" placeholder=\\\"YYYY\\\" bsDatepicker\\r\\n [bsConfig]=\\\"YearPickerConfig\\\" [outsideClick]=\\\"true\\\">\\r\\n <mat-label>Select Year<span style=\\\"color:red; font-size: 15px;\\\">*</span></mat-label>\\r\\n </mat-form-field>\\r\\n <div *ngIf=\\\"quarterDetails.length === 0\\\" class=\\\"quarter-message\\\">\\r\\n No Quarters generated for this company\\r\\n </div>\\r\\n </div>\\r\\n <mat-action-row>\\r\\n <!-- <button mat-button color=\\\"warn\\\" (click)=\\\"prevStep()\\\">Previous</button> -->\\r\\n <button mat-button color=\\\"primary\\\" (click)=\\\"getMetrics()\\\">Next</button>\\r\\n </mat-action-row>\\r\\n </mat-expansion-panel>\\r\\n\\r\\n <mat-expansion-panel [expanded]=\\\"step === 1\\\" (opened)=\\\"setStep(1)\\\" hideToggle>\\r\\n <mat-expansion-panel-header>\\r\\n <mat-panel-title>Metric List</mat-panel-title>\\r\\n </mat-expansion-panel-header>\\r\\n <div class=\\\"warningMsg\\\" style=\\\"margin-top: 10px;\\\" *ngIf=\\\"pscMetricDetails.length === 0 \\\">\\r\\n <span>No metrics available</span>\\r\\n </div>\\r\\n <div class=\\\"p-t-20\\\" *ngIf=\\\"pscMetricDetails.length != 0 \\\">\\r\\n <div class=\\\"row\\\">\\r\\n <ng-container *ngFor=\\\"let metric of pscMetricDetails\\\">\\r\\n <div class=\\\"col-sm-3\\\">\\r\\n <mat-checkbox [(ngModel)]=\\\"metric.IsSelected\\\" (change)=\\\"metricChange(metric)\\\">\\r\\n {{metric.Description}}\\r\\n </mat-checkbox>\\r\\n </div>\\r\\n </ng-container>\\r\\n\\r\\n </div>\\r\\n </div>\\r\\n <mat-action-row>\\r\\n <button mat-button color=\\\"warn\\\" (click)=\\\"goToQuarterSelection()\\\">Previous</button>\\r\\n <button mat-button color=\\\"primary\\\" (click)=\\\"getSelectedMetrics()\\\">Next</button>\\r\\n </mat-action-row>\\r\\n </mat-expansion-panel>\\r\\n <mat-expansion-panel [expanded]=\\\"step === 2\\\" (opened)=\\\"setStep(2)\\\" hideToggle>\\r\\n <mat-expansion-panel-header>\\r\\n <mat-panel-title>\\r\\n Selected Metrics\\r\\n </mat-panel-title>\\r\\n </mat-expansion-panel-header>\\r\\n <div class=\\\"p-t-20\\\">\\r\\n <div class=\\\"table-responsive\\\" style=\\\"font-size: small;\\\">\\r\\n <table class=\\\"table table-bordered\\\" id=\\\"table1\\\">\\r\\n <thead>\\r\\n <tr>\\r\\n <th class=\\\"min-width-100 text-center v-m\\\" rowspan=\\\"2\\\">Goal</th>\\r\\n <th class=\\\"min-width-100\\\" rowspan=\\\"2\\\">Metric</th>\\r\\n <th class=\\\"min-width-500\\\" style=\\\"padding: 0px;border: 0px;\\\">\\r\\n <div class=\\\"\\\" style=\\\"text-align: center;\\\">Target</div>\\r\\n <hr style=\\\"margin: 0;background-color: white;\\\">\\r\\n <div class=\\\"row text-center p-0 m-0 min-width-500\\\">\\r\\n <div class=\\\"col\\\"> Green</div>\\r\\n <div class=\\\"col\\\">Yellow</div>\\r\\n <div class=\\\"col\\\">Red</div>\\r\\n </div>\\r\\n </th>\\r\\n <th>Frequency</th>\\r\\n <th>UOM</th>\\r\\n </tr>\\r\\n </thead>\\r\\n <tbody id=\\\"databody\\\">\\r\\n <tr *ngFor=\\\"let metric of selectedMetrics\\\">\\r\\n <td class=\\\"min-width-100 text-center v-m\\\" [attr.rowspan]=\\\"metric.goalSpan\\\"\\r\\n *ngIf=\\\"metric.goalSpan\\\">\\r\\n {{metric.GoalName}}</td>\\r\\n <td class=\\\"min-width-100\\\">{{metric.Description}}</td>\\r\\n <td class=\\\"min-width-500\\\">\\r\\n <div class=\\\"row\\\">\\r\\n <div class=\\\"col p-r-0\\\" style=\\\"display: flex;\\\">\\r\\n <select [(ngModel)]=\\\"metric.GreenTargetSymbol\\\"\\r\\n (change)=\\\"targetChange(metric)\\\">\\r\\n <option [value]=\\\"null\\\">Select</option>\\r\\n <option *ngFor=\\\"let symbol of targetSymbolsList;\\\" [value]=\\\"symbol\\\">\\r\\n {{symbol == '==' ? '=' : symbol}}\\r\\n </option>\\r\\n </select> \\r\\n <input class=\\\"target-width\\\" numbersOnly\\r\\n [disabled]=\\\"metric.GreenTargetSymbol == 'Yes' || metric.GreenTargetSymbol == 'No' ? true : false\\\"\\r\\n [(ngModel)]=\\\"metric.GreenMinimum\\\" (change)=\\\"setTargets(metric)\\\">\\r\\n <span class=\\\"f-b\\\" *ngIf=\\\"!metric.GreenTargetSymbol\\\"> - </span>\\r\\n <input *ngIf=\\\"!metric.GreenTargetSymbol\\\" class=\\\"target-width\\\" numbersOnly\\r\\n [(ngModel)]=\\\"metric.GreenMaximum\\\" (change)=\\\"setTargets(metric)\\\">\\r\\n </div>\\r\\n <div class=\\\"col p-r-0\\\" style=\\\"display: flex;\\\">\\r\\n <select (change)=\\\"targetChange(metric)\\\"\\r\\n [(ngModel)]=\\\"metric.YellowTargetSymbol\\\">\\r\\n <option [value]=\\\"null\\\">Select</option>\\r\\n <option *ngFor=\\\"let symbol of targetSymbolsList;\\\" [value]=\\\"symbol\\\">\\r\\n {{symbol == '==' ? '=' : symbol}}\\r\\n </option>\\r\\n </select> \\r\\n <input class=\\\"target-width\\\" numbersOnly\\r\\n [disabled]=\\\"metric.YellowTargetSymbol == 'Yes' || metric.YellowTargetSymbol == 'No' ? true : false\\\"\\r\\n [(ngModel)]=\\\"metric.YellowMinimum\\\" (change)=\\\"setTargets(metric)\\\">\\r\\n <span *ngIf=\\\"!metric.YellowTargetSymbol\\\" class=\\\"f-b\\\"> - </span>\\r\\n <input *ngIf=\\\"!metric.YellowTargetSymbol\\\" class=\\\"target-width\\\" numbersOnly\\r\\n [(ngModel)]=\\\"metric.YellowMaximum\\\" (change)=\\\"setTargets(metric)\\\">\\r\\n </div>\\r\\n <div class=\\\"col p-r-0\\\" style=\\\"display: flex;\\\">\\r\\n <select (change)=\\\"targetChange(metric)\\\"\\r\\n [(ngModel)]=\\\"metric.RedTargetSymbol\\\">\\r\\n <option [value]=\\\"null\\\">Select</option>\\r\\n <option *ngFor=\\\"let symbol of targetSymbolsList;\\\" [value]=\\\"symbol\\\">\\r\\n {{symbol == '==' ? '=' : symbol}}\\r\\n </option>\\r\\n </select> \\r\\n <input class=\\\"target-width\\\" numbersOnly\\r\\n [disabled]=\\\"metric.RedTargetSymbol == 'Yes' || metric.RedTargetSymbol == 'No' ? true : false\\\"\\r\\n [(ngModel)]=\\\"metric.RedMinimum\\\" (change)=\\\"setTargets(metric)\\\">\\r\\n <span *ngIf=\\\"!metric.RedTargetSymbol\\\" class=\\\"f-b\\\"> - </span>\\r\\n <input *ngIf=\\\"!metric.RedTargetSymbol\\\" class=\\\"target-width\\\" numbersOnly\\r\\n [(ngModel)]=\\\"metric.RedMaximum\\\" (change)=\\\"setTargets(metric)\\\">\\r\\n </div>\\r\\n </div>\\r\\n </td>\\r\\n <td>\\r\\n <select [(ngModel)]=\\\"metric.Frequency\\\">\\r\\n <option [value]=\\\"null\\\">Select Frequency</option>\\r\\n <option *ngFor=\\\"let frequency of frequencies;\\\" [value]=\\\"frequency\\\">\\r\\n {{frequency}}\\r\\n </option>\\r\\n </select>\\r\\n </td>\\r\\n <td><input [(ngModel)]=\\\"metric.UOM\\\" /></td>\\r\\n </tr>\\r\\n </tbody>\\r\\n </table>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <mat-action-row>\\r\\n <button mat-button color=\\\"warn\\\" (click)=\\\"goToMetricList()\\\">Previous</button>\\r\\n <button mat-button color=\\\"primary\\\" (click)=\\\"generateWeeks()\\\">Next</button>\\r\\n </mat-action-row>\\r\\n </mat-expansion-panel>\\r\\n <mat-expansion-panel [expanded]=\\\"step === 3\\\" (opened)=\\\"setStep(3)\\\" hideToggle>\\r\\n <mat-expansion-panel-header>\\r\\n <mat-panel-title>\\r\\n Generated Weeks\\r\\n </mat-panel-title>\\r\\n </mat-expansion-panel-header>\\r\\n <div class=\\\"p-t-20\\\">\\r\\n <div class=\\\"table-responsive\\\" style=\\\"font-size: small;\\\">\\r\\n <table class=\\\"table table-bordered\\\" id=\\\"table1\\\" *ngIf=\\\"WeekDateList.length > 0\\\">\\r\\n <thead>\\r\\n <tr>\\r\\n <th rowspan=\\\"2\\\" class=\\\"min-width headcol text-center\\\">Goal</th>\\r\\n <th rowspan=\\\"2\\\" class=\\\"min-width headcol1 text-center\\\">Metric</th>\\r\\n <th style=\\\"padding: 0px;border: 0px;\\\">\\r\\n <div class=\\\"\\\" style=\\\"text-align: center;\\\">\\r\\n Target\\r\\n </div>\\r\\n <hr style=\\\"margin: 0;background-color: white;\\\">\\r\\n <div class=\\\"row text-center m-0\\\">\\r\\n <div class=\\\"col\\\">\\r\\n Green\\r\\n </div>\\r\\n <div class=\\\"col\\\">\\r\\n Yellow\\r\\n </div>\\r\\n <div class=\\\"col\\\">\\r\\n Red\\r\\n </div>\\r\\n </div>\\r\\n </th>\\r\\n <th>Frequency</th>\\r\\n <th>UOM</th>\\r\\n <th class=\\\"w-50\\\">\\r\\n <div>Wk 1</div>\\r\\n <div>({{WeekDateList[0].label}})</div>\\r\\n </th>\\r\\n <th class=\\\"w-50\\\">\\r\\n <div>Wk 2</div>\\r\\n <div>({{WeekDateList[1].label}})</div>\\r\\n </th>\\r\\n <th class=\\\"w-50\\\">\\r\\n <div>Wk 3</div>\\r\\n <div>({{WeekDateList[2].label}})</div>\\r\\n </th>\\r\\n <th class=\\\"w-50\\\">\\r\\n <div>Wk 4 </div>\\r\\n <div>({{WeekDateList[3].label}})</div>\\r\\n </th>\\r\\n <th class=\\\"w-50\\\">\\r\\n <div>Wk 5</div>\\r\\n <div>({{WeekDateList[4].label}})</div>\\r\\n </th>\\r\\n <th class=\\\"w-50\\\">\\r\\n <div>Wk 6</div>\\r\\n <div>({{WeekDateList[5].label}})</div>\\r\\n </th>\\r\\n <th class=\\\"w-50\\\">\\r\\n <div>Wk 7</div>\\r\\n <div> ({{WeekDateList[6].label}})</div>\\r\\n </th>\\r\\n <th class=\\\"w-50\\\">\\r\\n <div>Wk 8</div>\\r\\n <div> ({{WeekDateList[7].label}})</div>\\r\\n </th>\\r\\n <th class=\\\"w-50\\\">\\r\\n <div>Wk 9</div>\\r\\n <div> ({{WeekDateList[8].label}})</div>\\r\\n </th>\\r\\n <th class=\\\"w-50\\\">\\r\\n <div>Wk 10</div>\\r\\n <div> ({{WeekDateList[9].label}})</div>\\r\\n </th>\\r\\n <th class=\\\"w-50\\\">\\r\\n <div>Wk 11</div>\\r\\n <div> ({{WeekDateList[10].label}})</div>\\r\\n </th>\\r\\n <th class=\\\"w-50\\\">\\r\\n <div>Wk 12</div>\\r\\n <div>({{WeekDateList[11].label}})</div>\\r\\n </th>\\r\\n <th class=\\\"w-50\\\" *ngIf=\\\"WeekDateList[12]\\\">\\r\\n <div>Wk 13</div>\\r\\n <div>({{WeekDateList[12].label}})</div>\\r\\n </th>\\r\\n <th class=\\\"w-50\\\" *ngIf=\\\"WeekDateList[13]\\\">\\r\\n <div>Wk 14</div>\\r\\n <div>({{WeekDateList[13].label}})</div>\\r\\n </th>\\r\\n </tr>\\r\\n </thead>\\r\\n <tbody id=\\\"databody\\\">\\r\\n <tr *ngFor=\\\"let metric of selectedMetrics\\\">\\r\\n <td class=\\\"min-width bodycol\\\" [attr.rowspan]=\\\"metric.goalSpan\\\" *ngIf=\\\"metric.goalSpan\\\">\\r\\n {{metric.GoalName}}</td>\\r\\n <td class=\\\"min-width bodycol1\\\">{{metric.Description}}</td>\\r\\n <td class=\\\"min-width-300\\\">\\r\\n <div class=\\\"row text-center\\\">\\r\\n <div class=\\\"col\\\" style=\\\"width:100px;flex-wrap: inherit;\\\">\\r\\n <span\\r\\n *ngIf=\\\"(metric.GreenTargetSymbol) && (metric.GreenTargetSymbol != '==')\\\">{{metric.GreenTargetSymbol}}</span> \\r\\n <span\\r\\n *ngIf=\\\"(metric.GreenTargetSymbol) && (metric.GreenTargetSymbol == '==')\\\">=</span> \\r\\n <span\\r\\n *ngIf=\\\"metric.GreenTargetSymbol != 'Yes' && metric.GreenTargetSymbol != 'No'\\\">{{metric.GreenMinimum}}</span>\\r\\n <span *ngIf=\\\"!metric.GreenTargetSymbol\\\" class=\\\"f-b\\\"> - </span>\\r\\n <span *ngIf=\\\"!metric.GreenTargetSymbol\\\">{{metric.GreenMaximum}}</span>\\r\\n </div>\\r\\n <div class=\\\"col\\\" style=\\\"width:100px;flex-wrap: inherit;\\\">\\r\\n <span\\r\\n *ngIf=\\\"metric.YellowTargetSymbol && metric.YellowTargetSymbol != '=='\\\">{{metric.YellowTargetSymbol}}</span> \\r\\n <span\\r\\n *ngIf=\\\"metric.YellowTargetSymbol && metric.YellowTargetSymbol == '=='\\\">=</span> \\r\\n <span\\r\\n *ngIf=\\\"metric.YellowTargetSymbol != 'Yes' && metric.YellowTargetSymbol != 'No'\\\">{{metric.YellowMinimum}}</span>\\r\\n <span *ngIf=\\\"!metric.YellowTargetSymbol\\\" class=\\\"f-b\\\"> - </span>\\r\\n <span *ngIf=\\\"!metric.YellowTargetSymbol\\\">{{metric.YellowMaximum}}</span>\\r\\n </div>\\r\\n <div class=\\\"col\\\" style=\\\"width:100px;flex-wrap: inherit;\\\">\\r\\n <span\\r\\n *ngIf=\\\"metric.RedTargetSymbol && metric.RedTargetSymbol != '=='\\\">{{metric.RedTargetSymbol}}</span> \\r\\n <span\\r\\n *ngIf=\\\"metric.RedTargetSymbol && metric.RedTargetSymbol == '=='\\\">=</span> \\r\\n <span\\r\\n *ngIf=\\\"metric.RedTargetSymbol != 'Yes' && metric.RedTargetSymbol != 'No'\\\">{{metric.RedMinimum}}</span>\\r\\n <span *ngIf=\\\"!metric.RedTargetSymbol\\\" class=\\\"f-b\\\"> - </span>\\r\\n <span *ngIf=\\\"!metric.RedTargetSymbol\\\">{{metric.RedMaximum}}</span>\\r\\n </div>\\r\\n </div>\\r\\n </td>\\r\\n <td><span>{{metric.Frequency}}</span></td>\\r\\n <td><span>{{metric.UOM}}</span></td>\\r\\n <td class=\\\"w-80\\\" [attr.colspan]=\\\"metric.Frequency == 'Weekly' ? '1' : '4'\\\">\\r\\n <!-- <input class=\\\"w-50\\\" *ngIf=\\\"metric.Frequency == 'Weekly'\\\"\\r\\n [(ngModel)]=\\\"metric.Week1\\\" /> -->\\r\\n\\r\\n <select class=\\\"w-100\\\" [(ngModel)]=\\\"metric.Week1\\\" *ngIf=\\\"metric.GreenTargetSymbol == 'Yes' ||\\r\\n metric.YellowTargetSymbol == 'Yes' ||\\r\\n metric.RedTargetSymbol == 'Yes' ||\\r\\n metric.GreenTargetSymbol == 'No' ||\\r\\n metric.YellowTargetSymbol == 'No' ||\\r\\n metric.RedTargetSymbol == 'No'\\\">\\r\\n <option value=\\\"0\\\">Select</option>\\r\\n <option value=\\\"2\\\">Yes</option>\\r\\n <option value=\\\"1\\\">No</option>\\r\\n </select>\\r\\n <input class=\\\"w-100\\\" numbersOnly [(ngModel)]=\\\"metric.Week1\\\" *ngIf=\\\"metric.GreenTargetSymbol != 'Yes' && \\r\\n metric.GreenTargetSymbol != 'No' &&\\r\\n metric.YellowTargetSymbol != 'Yes' &&\\r\\n metric.YellowTargetSymbol != 'No' &&\\r\\n metric.RedTargetSymbol != 'Yes' &&\\r\\n metric.RedTargetSymbol != 'No'\\\" />\\r\\n </td>\\r\\n <td class=\\\"w-80\\\" *ngIf=\\\"metric.Frequency == 'Weekly'\\\">\\r\\n <!-- <input class=\\\"w-50\\\" [(ngModel)]=\\\"metric.Week2\\\" /> -->\\r\\n <select class=\\\"w-100\\\" [(ngModel)]=\\\"metric.Week2\\\" *ngIf=\\\"metric.GreenTargetSymbol == 'Yes' ||\\r\\n metric.YellowTargetSymbol == 'Yes' ||\\r\\n metric.RedTargetSymbol == 'Yes' ||\\r\\n metric.GreenTargetSymbol == 'No' ||\\r\\n metric.YellowTargetSymbol == 'No' ||\\r\\n metric.RedTargetSymbol == 'No'\\\">\\r\\n <option value=\\\"0\\\">Select</option>\\r\\n <option value=\\\"2\\\">Yes</option>\\r\\n <option value=\\\"1\\\">No</option>\\r\\n </select>\\r\\n <input class=\\\"w-100\\\" numbersOnly [(ngModel)]=\\\"metric.Week2\\\" *ngIf=\\\"metric.GreenTargetSymbol != 'Yes' && \\r\\n metric.GreenTargetSymbol != 'No' &&\\r\\n metric.YellowTargetSymbol != 'Yes' &&\\r\\n metric.YellowTargetSymbol != 'No' &&\\r\\n metric.RedTargetSymbol != 'Yes' &&\\r\\n metric.RedTargetSymbol != 'No'\\\" />\\r\\n </td>\\r\\n <td class=\\\"w-80\\\" *ngIf=\\\"metric.Frequency == 'Weekly'\\\">\\r\\n <!-- <input class=\\\"w-50\\\" [(ngModel)]=\\\"metric.Week3\\\" /> -->\\r\\n <select class=\\\"w-100\\\" [(ngModel)]=\\\"metric.Week3\\\" *ngIf=\\\"metric.GreenTargetSymbol == 'Yes' ||\\r\\n metric.YellowTargetSymbol == 'Yes' ||\\r\\n metric.RedTargetSymbol == 'Yes' ||\\r\\n metric.GreenTargetSymbol == 'No' ||\\r\\n metric.YellowTargetSymbol == 'No' ||\\r\\n metric.RedTargetSymbol == 'No'\\\">\\r\\n <option value=\\\"0\\\">Select</option>\\r\\n <option value=\\\"2\\\">Yes</option>\\r\\n <option value=\\\"1\\\">No</option>\\r\\n </select>\\r\\n <input class=\\\"w-100\\\" numbersOnly [(ngModel)]=\\\"metric.Week3\\\" *ngIf=\\\"metric.GreenTargetSymbol != 'Yes' && \\r\\n metric.GreenTargetSymbol != 'No' &&\\r\\n metric.YellowTargetSymbol != 'Yes' &&\\r\\n metric.YellowTargetSymbol != 'No' &&\\r\\n metric.RedTargetSymbol != 'Yes' &&\\r\\n metric.RedTargetSymbol != 'No'\\\" />\\r\\n </td>\\r\\n <td class=\\\"w-80\\\" *ngIf=\\\"metric.Frequency == 'Weekly'\\\">\\r\\n <!-- <input class=\\\"w-50\\\" [(ngModel)]=\\\"metric.Week4\\\" /> -->\\r\\n <select class=\\\"w-100\\\" [(ngModel)]=\\\"metric.Week4\\\" *ngIf=\\\"metric.GreenTargetSymbol == 'Yes' ||\\r\\n metric.YellowTargetSymbol == 'Yes' ||\\r\\n metric.RedTargetSymbol == 'Yes' ||\\r\\n metric.GreenTargetSymbol == 'No' ||\\r\\n metric.YellowTargetSymbol == 'No' ||\\r\\n metric.RedTargetSymbol == 'No'\\\">\\r\\n <option value=\\\"0\\\">Select</option>\\r\\n <option value=\\\"2\\\">Yes</option>\\r\\n <option value=\\\"1\\\">No</option>\\r\\n </select>\\r\\n <input class=\\\"w-100\\\" numbersOnly [(ngModel)]=\\\"metric.Week4\\\" *ngIf=\\\"metric.GreenTargetSymbol != 'Yes' && \\r\\n metric.GreenTargetSymbol != 'No' &&\\r\\n metric.YellowTargetSymbol != 'Yes' &&\\r\\n metric.YellowTargetSymbol != 'No' &&\\r\\n metric.RedTargetSymbol != 'Yes' &&\\r\\n metric.RedTargetSymbol != 'No'\\\" />\\r\\n </td>\\r\\n <td class=\\\"w-80\\\" [attr.colspan]=\\\"metric.Frequency == 'Weekly' ? '1' : '4'\\\">\\r\\n\\r\\n <!-- <input class=\\\"w-100\\\" [(ngModel)]=\\\"metric.Week5\\\" /> -->\\r\\n <select class=\\\"w-100\\\" [(ngModel)]=\\\"metric.Week5\\\" *ngIf=\\\"metric.GreenTargetSymbol == 'Yes' ||\\r\\n metric.YellowTargetSymbol == 'Yes' ||\\r\\n metric.RedTargetSymbol == 'Yes' ||\\r\\n metric.GreenTargetSymbol == 'No' ||\\r\\n metric.YellowTargetSymbol == 'No' ||\\r\\n metric.RedTargetSymbol == 'No'\\\">\\r\\n <option value=\\\"0\\\">Select</option>\\r\\n <option value=\\\"2\\\">Yes</option>\\r\\n <option value=\\\"1\\\">No</option>\\r\\n </select>\\r\\n <input class=\\\"w-100\\\" numbersOnly [(ngModel)]=\\\"metric.Week5\\\" *ngIf=\\\"metric.GreenTargetSymbol != 'Yes' && \\r\\n metric.GreenTargetSymbol != 'No' &&\\r\\n metric.YellowTargetSymbol != 'Yes' &&\\r\\n metric.YellowTargetSymbol != 'No' &&\\r\\n metric.RedTargetSymbol != 'Yes' &&\\r\\n metric.RedTargetSymbol != 'No'\\\" />\\r\\n </td>\\r\\n <td class=\\\"w-80\\\" *ngIf=\\\"metric.Frequency == 'Weekly'\\\">\\r\\n <!-- <input class=\\\"w-50\\\" [(ngModel)]=\\\"metric.Week6\\\" /> -->\\r\\n <select class=\\\"w-100\\\" [(ngModel)]=\\\"metric.Week6\\\" *ngIf=\\\"metric.GreenTargetSymbol == 'Yes' ||\\r\\n metric.YellowTargetSymbol == 'Yes' ||\\r\\n metric.RedTargetSymbol == 'Yes' ||\\r\\n metric.GreenTargetSymbol == 'No' ||\\r\\n metric.YellowTargetSymbol == 'No' ||\\r\\n metric.RedTargetSymbol == 'No'\\\">\\r\\n <option value=\\\"0\\\">Select</option>\\r\\n <option value=\\\"2\\\">Yes</option>\\r\\n <option value=\\\"1\\\">No</option>\\r\\n </select>\\r\\n <input class=\\\"w-100\\\" numbersOnly [(ngModel)]=\\\"metric.Week6\\\" *ngIf=\\\"metric.GreenTargetSymbol != 'Yes' && \\r\\n metric.GreenTargetSymbol != 'No' &&\\r\\n metric.YellowTargetSymbol != 'Yes' &&\\r\\n metric.YellowTargetSymbol != 'No' &&\\r\\n metric.RedTargetSymbol != 'Yes' &&\\r\\n metric.RedTargetSymbol != 'No'\\\" />\\r\\n </td>\\r\\n <td class=\\\"w-80\\\" *ngIf=\\\"metric.Frequency == 'Weekly'\\\">\\r\\n <!-- <input class=\\\"w-50\\\" [(ngModel)]=\\\"metric.Week7\\\" /> -->\\r\\n <select class=\\\"w-100\\\" [(ngModel)]=\\\"metric.Week7\\\" *ngIf=\\\"metric.GreenTargetSymbol == 'Yes' ||\\r\\n metric.YellowTargetSymbol == 'Yes' ||\\r\\n metric.RedTargetSymbol == 'Yes' ||\\r\\n metric.GreenTargetSymbol == 'No' ||\\r\\n metric.YellowTargetSymbol == 'No' ||\\r\\n metric.RedTargetSymbol == 'No'\\\">\\r\\n <option value=\\\"0\\\">Select</option>\\r\\n <option value=\\\"2\\\">Yes</option>\\r\\n <option value=\\\"1\\\">No</option>\\r\\n </select>\\r\\n <input class=\\\"w-100\\\" numbersOnly [(ngModel)]=\\\"metric.Week7\\\" *ngIf=\\\"metric.GreenTargetSymbol != 'Yes' && \\r\\n metric.GreenTargetSymbol != 'No' &&\\r\\n metric.YellowTargetSymbol != 'Yes' &&\\r\\n metric.YellowTargetSymbol != 'No' &&\\r\\n metric.RedTargetSymbol != 'Yes' &&\\r\\n metric.RedTargetSymbol != 'No'\\\" />\\r\\n </td>\\r\\n <td class=\\\"w-80\\\" *ngIf=\\\"metric.Frequency == 'Weekly'\\\">\\r\\n <!-- <input class=\\\"w-50\\\" [(ngModel)]=\\\"metric.Week8\\\" /> -->\\r\\n <select class=\\\"w-100\\\" [(ngModel)]=\\\"metric.Week8\\\" *ngIf=\\\"metric.GreenTargetSymbol == 'Yes' ||\\r\\n metric.YellowTargetSymbol == 'Yes' ||\\r\\n metric.RedTargetSymbol == 'Yes' ||\\r\\n metric.GreenTargetSymbol == 'No' ||\\r\\n metric.YellowTargetSymbol == 'No' ||\\r\\n metric.RedTargetSymbol == 'No'\\\">\\r\\n <option value=\\\"0\\\">Select</option>\\r\\n <option value=\\\"2\\\">Yes</option>\\r\\n <option value=\\\"1\\\">No</option>\\r\\n </select>\\r\\n <input class=\\\"w-100\\\" numbersOnly [(ngModel)]=\\\"metric.Week8\\\" *ngIf=\\\"metric.GreenTargetSymbol != 'Yes' && \\r\\n metric.GreenTargetSymbol != 'No' &&\\r\\n metric.YellowTargetSymbol != 'Yes' &&\\r\\n metric.YellowTargetSymbol != 'No' &&\\r\\n metric.RedTargetSymbol != 'Yes' &&\\r\\n metric.RedTargetSymbol != 'No'\\\" />\\r\\n </td>\\r\\n <td class=\\\"w-80\\\" [attr.colspan]=\\\"metric.Frequency == 'Weekly' ? '1' : '6'\\\">\\r\\n <!-- <input class=\\\"w-50\\\" *ngIf=\\\"metric.Frequency == 'Weekly'\\\"\\r\\n [(ngModel)]=\\\"metric.Week9\\\" />\\r\\n <input class=\\\"w-100\\\" *ngIf=\\\"metric.Frequency == 'Monthly'\\\"\\r\\n [(ngModel)]=\\\"metric.Week9\\\" /> -->\\r\\n <select class=\\\"w-100\\\" [(ngModel)]=\\\"metric.Week9\\\" *ngIf=\\\"metric.GreenTargetSymbol == 'Yes' ||\\r\\n metric.YellowTargetSymbol == 'Yes' ||\\r\\n metric.RedTargetSymbol == 'Yes' ||\\r\\n metric.GreenTargetSymbol == 'No' ||\\r\\n metric.YellowTargetSymbol == 'No' ||\\r\\n metric.RedTargetSymbol == 'No'\\\">\\r\\n <option value=\\\"0\\\">Select</option>\\r\\n <option value=\\\"2\\\">Yes</option>\\r\\n <option value=\\\"1\\\">No</option>\\r\\n </select>\\r\\n <input class=\\\"w-100\\\" numbersOnly [(ngModel)]=\\\"metric.Week9\\\" *ngIf=\\\"metric.GreenTargetSymbol != 'Yes' && \\r\\n metric.GreenTargetSymbol != 'No' &&\\r\\n metric.YellowTargetSymbol != 'Yes' &&\\r\\n metric.YellowTargetSymbol != 'No' &&\\r\\n metric.RedTargetSymbol != 'Yes' &&\\r\\n metric.RedTargetSymbol != 'No'\\\" />\\r\\n </td>\\r\\n <td class=\\\"w-80\\\" *ngIf=\\\"metric.Frequency == 'Weekly'\\\">\\r\\n <!-- <input class=\\\"w-50\\\" [(ngModel)]=\\\"metric.Week10\\\" /> -->\\r\\n <select class=\\\"w-100\\\" [(ngModel)]=\\\"metric.Week10\\\" *ngIf=\\\"metric.GreenTargetSymbol == 'Yes' ||\\r\\n metric.YellowTargetSymbol == 'Yes' ||\\r\\n metric.RedTargetSymbol == 'Yes' ||\\r\\n metric.GreenTargetSymbol == 'No' ||\\r\\n metric.YellowTargetSymbol == 'No' ||\\r\\n metric.RedTargetSymbol == 'No'\\\">\\r\\n <option value=\\\"0\\\">Select</option>\\r\\n <option value=\\\"2\\\">Yes</option>\\r\\n <option value=\\\"1\\\">No</option>\\r\\n </select>\\r\\n <input class=\\\"w-100\\\" numbersOnly [(ngModel)]=\\\"metric.Week10\\\" *ngIf=\\\"metric.GreenTargetSymbol != 'Yes' && \\r\\n metric.GreenTargetSymbol != 'No' &&\\r\\n metric.YellowTargetSymbol != 'Yes' &&\\r\\n metric.YellowTargetSymbol != 'No' &&\\r\\n metric.RedTargetSymbol != 'Yes' &&\\r\\n metric.RedTargetSymbol != 'No'\\\" />\\r\\n </td>\\r\\n <td class=\\\"w-80\\\" *ngIf=\\\"metric.Frequency == 'Weekly'\\\">\\r\\n <!-- <input class=\\\"w-50\\\" [(ngModel)]=\\\"metric.Week11\\\" /> -->\\r\\n <select class=\\\"w-100\\\" [(ngModel)]=\\\"metric.Week11\\\" *ngIf=\\\"metric.GreenTargetSymbol == 'Yes' ||\\r\\n metric.YellowTargetSymbol == 'Yes' ||\\r\\n metric.RedTargetSymbol == 'Yes' ||\\r\\n metric.GreenTargetSymbol == 'No' ||\\r\\n metric.YellowTargetSymbol == 'No' ||\\r\\n metric.RedTargetSymbol == 'No'\\\">\\r\\n <option value=\\\"0\\\">Select</option>\\r\\n <option value=\\\"2\\\">Yes</option>\\r\\n <option value=\\\"1\\\">No</option>\\r\\n </select>\\r\\n <input class=\\\"w-100\\\" numbersOnly [(ngModel)]=\\\"metric.Week11\\\" *ngIf=\\\"metric.GreenTargetSymbol != 'Yes' && \\r\\n metric.GreenTargetSymbol != 'No' &&\\r\\n metric.YellowTargetSymbol != 'Yes' &&\\r\\n metric.YellowTargetSymbol != 'No' &&\\r\\n metric.RedTargetSymbol != 'Yes' &&\\r\\n metric.RedTargetSymbol != 'No'\\\" />\\r\\n </td>\\r\\n <td class=\\\"w-80\\\" *ngIf=\\\"metric.Frequency == 'Weekly'\\\">\\r\\n <!-- <input class=\\\"w-50\\\" [(ngModel)]=\\\"metric.Week12\\\" /> -->\\r\\n <select class=\\\"w-100\\\" [(ngModel)]=\\\"metric.Week12\\\" *ngIf=\\\"metric.GreenTargetSymbol == 'Yes' ||\\r\\n metric.YellowTargetSymbol == 'Yes' ||\\r\\n metric.RedTargetSymbol == 'Yes' ||\\r\\n metric.GreenTargetSymbol == 'No' ||\\r\\n metric.YellowTargetSymbol == 'No' ||\\r\\n metric.RedTargetSymbol == 'No'\\\">\\r\\n <option value=\\\"0\\\">Select</option>\\r\\n <option value=\\\"2\\\">Yes</option>\\r\\n <option value=\\\"1\\\">No</option>\\r\\n </select>\\r\\n <input class=\\\"w-100\\\" numbersOnly [(ngModel)]=\\\"metric.Week12\\\" *ngIf=\\\"metric.GreenTargetSymbol != 'Yes' && \\r\\n metric.GreenTargetSymbol != 'No' &&\\r\\n metric.YellowTargetSymbol != 'Yes' &&\\r\\n metric.YellowTargetSymbol != 'No' &&\\r\\n metric.RedTargetSymbol != 'Yes' &&\\r\\n metric.RedTargetSymbol != 'No'\\\" />\\r\\n </td>\\r\\n <td class=\\\"w-80\\\" *ngIf=\\\"metric.Frequency == 'Weekly' && WeekDateList[12]!=undefined\\\">\\r\\n <!-- <input class=\\\"w-50\\\" [(ngModel)]=\\\"metric.Week13\\\" /> -->\\r\\n <select class=\\\"w-100\\\" [(ngModel)]=\\\"metric.Week13\\\" *ngIf=\\\"metric.GreenTargetSymbol == 'Yes' ||\\r\\n metric.YellowTargetSymbol == 'Yes' ||\\r\\n metric.RedTargetSymbol == 'Yes' ||\\r\\n metric.GreenTargetSymbol == 'No' ||\\r\\n metric.YellowTargetSymbol == 'No' ||\\r\\n metric.RedTargetSymbol == 'No'\\\">\\r\\n <option value=\\\"0\\\">Select</option>\\r\\n <option value=\\\"2\\\">Yes</option>\\r\\n <option value=\\\"1\\\">No</option>\\r\\n </select>\\r\\n <input class=\\\"w-100\\\" numbersOnly [(ngModel)]=\\\"metric.Week13\\\" *ngIf=\\\"metric.GreenTargetSymbol != 'Yes' && \\r\\n metric.GreenTargetSymbol != 'No' &&\\r\\n metric.YellowTargetSymbol != 'Yes' &&\\r\\n metric.YellowTargetSymbol != 'No' &&\\r\\n metric.RedTargetSymbol != 'Yes' &&\\r\\n metric.RedTargetSymbol != 'No'\\\" />\\r\\n </td>\\r\\n\\r\\n <td class=\\\"w-80\\\" *ngIf=\\\"metric.Frequency == 'Weekly' && WeekDateList[13]!=undefined\\\">\\r\\n <!-- <input class=\\\"w-50\\\" [(ngModel)]=\\\"metric.Week14\\\" /> -->\\r\\n <select class=\\\"w-100\\\" [(ngModel)]=\\\"metric.Week14\\\" *ngIf=\\\"metric.GreenTargetSymbol == 'Yes' ||\\r\\n metric.YellowTargetSymbol == 'Yes' ||\\r\\n metric.RedTargetSymbol == 'Yes' ||\\r\\n metric.GreenTargetSymbol == 'No' ||\\r\\n metric.YellowTargetSymbol == 'No' ||\\r\\n metric.RedTargetSymbol == 'No'\\\">\\r\\n <option value=\\\"0\\\">Select</option>\\r\\n <option value=\\\"2\\\">Yes</option>\\r\\n <option value=\\\"1\\\">No</option>\\r\\n </select>\\r\\n <input class=\\\"w-100\\\" numbersOnly [(ngModel)]=\\\"metric.Week14\\\" *ngIf=\\\"metric.GreenTargetSymbol != 'Yes' && \\r\\n metric.GreenTargetSymbol != 'No' &&\\r\\n metric.YellowTargetSymbol != 'Yes' &&\\r\\n metric.YellowTargetSymbol != 'No' &&\\r\\n metric.RedTargetSymbol != 'Yes' &&\\r\\n metric.RedTargetSymbol != 'No'\\\" />\\r\\n </td>\\r\\n </tr>\\r\\n </tbody>\\r\\n </table>\\r\\n </div>\\r\\n </div>\\r\\n <mat-action-row>\\r\\n <button mat-button color=\\\"warn\\\" (click)=\\\"goToGeneratedWeeks()\\\">Previous</button>\\r\\n <button mat-button color=\\\"primary\\\" (click)=\\\"generateScoreCard()\\\">Next</button>\\r\\n </mat-action-row>\\r\\n </mat-expansion-panel>\\r\\n <mat-expansion-panel [expanded]=\\\"step === 4\\\" (opened)=\\\"setStep(4)\\\" hideToggle>\\r\\n <mat-expansion-panel-header>\\r\\n <mat-panel-title>\\r\\n Score Card Preview\\r\\n </mat-panel-title>\\r\\n </mat-expansion-panel-header>\\r\\n <!-- <div class=\\\"p-t-20\\\"> -->\\r\\n <app-view-score-card [selectedMetrics]=\\\"selectedMetrics\\\" [scoreCard]=\\\"scoreCard\\\"\\r\\n [isViewScoreCard]=\\\"isViewScoreCard\\\" [WeekDateList]=\\\"WeekDateList\\\"\\r\\n (goToAddScoreCardChanged)=\\\"goToAddScoreCardChangedHandler($event)\\\"\\r\\n (viewScoreCardChanged)=\\\"viewScoreCardChangedHandler($event.value)\\\"></app-view-score-card>\\r\\n <!-- <div class=\\\"table-responsive\\\" style=\\\"font-size: small;\\\">\\r\\n <table class=\\\"table table-bordered\\\" id=\\\"table1\\\">\\r\\n <thead>\\r\\n <tr>\\r\\n <th class=\\\"min-width headcol text-center\\\" rowspan=\\\"2\\\">Goal</th>\\r\\n <th class=\\\"min-width headcol1\\\" rowspan=\\\"2\\\">Metric</th>\\r\\n <th style=\\\"padding: 0px;border: 0px;\\\">\\r\\n <div class=\\\"\\\" style=\\\"text-align: center;\\\">\\r\\n Target\\r\\n </div>\\r\\n <hr style=\\\"margin: 0;background-color: white;\\\">\\r\\n <div class=\\\"row text-center m-0\\\">\\r\\n <div class=\\\"col\\\">\\r\\n Green\\r\\n </div>\\r\\n <div class=\\\"col\\\">\\r\\n Yellow\\r\\n </div>\\r\\n <div class=\\\"col\\\">\\r\\n Red\\r\\n </div>\\r\\n </div>\\r\\n </th>\\r\\n <th>Frequency</th>\\r\\n <th>UOM</th>\\r\\n <th class=\\\"w-50\\\">\\r\\n <div>Wk 1</div>\\r\\n <div>({{WeekDateList[0]}})</div>\\r\\n </th>\\r\\n <th class=\\\"w-50\\\">\\r\\n <div>Wk 2</div>\\r\\n <div>({{WeekDateList[1]}})</div>\\r\\n </th>\\r\\n <th class=\\\"w-50\\\">\\r\\n <div>Wk 3</div>\\r\\n <div>({{WeekDateList[2]}})</div>\\r\\n </th>\\r\\n <th class=\\\"w-50\\\">\\r\\n <div>Wk 4 </div>\\r\\n <div>({{WeekDateList[3]}})</div>\\r\\n </th>\\r\\n <th class=\\\"w-50\\\">\\r\\n <div>Wk 5</div>\\r\\n <div>({{WeekDateList[4]}})</div>\\r\\n </th>\\r\\n <th class=\\\"w-50\\\">\\r\\n <div>Wk 6</div>\\r\\n <div>({{WeekDateList[5]}})</div>\\r\\n </th>\\r\\n <th class=\\\"w-50\\\">\\r\\n <div>Wk 7</div>\\r\\n <div> ({{WeekDateList[6]}})</div>\\r\\n </th>\\r\\n <th class=\\\"w-50\\\">\\r\\n <div>Wk 8</div>\\r\\n <div> ({{WeekDateList[7]}})</div>\\r\\n </th>\\r\\n <th class=\\\"w-50\\\">\\r\\n <div>Wk 9</div>\\r\\n <div> ({{WeekDateList[8]}})</div>\\r\\n </th>\\r\\n <th class=\\\"w-50\\\">\\r\\n <div>Wk 10</div>\\r\\n <div> ({{WeekDateList[9]}})</div>\\r\\n </th>\\r\\n <th class=\\\"w-50\\\">\\r\\n <div>Wk 11</div>\\r\\n <div> ({{WeekDateList[10]}})</div>\\r\\n </th>\\r\\n <th class=\\\"w-50\\\">\\r\\n <div>Wk 12</div>\\r\\n <div>({{WeekDateList[11]}})</div>\\r\\n </th>\\r\\n <th class=\\\"w-50\\\">\\r\\n <div>Wk 13</div>\\r\\n <div>({{WeekDateList[12]}})</div>\\r\\n </th>\\r\\n </tr>\\r\\n </thead>\\r\\n <tbody id=\\\"databody\\\">\\r\\n <tr *ngFor=\\\"let metric of selectedMetrics\\\">\\r\\n <td class=\\\"min-width bodycol\\\" [attr.rowspan]=\\\"metric.goalSpan\\\" *ngIf=\\\"metric.goalSpan\\\">\\r\\n {{metric.GoalName}}</td>\\r\\n <td class=\\\"min-width bodycol1\\\">{{metric.Description}}</td>\\r\\n <td class=\\\"min-width-300\\\">\\r\\n <div class=\\\"row text-center\\\">\\r\\n <div class=\\\"col\\\" style=\\\"width:100px;flex-wrap: inherit;\\\">\\r\\n <span\\r\\n *ngIf=\\\"(metric.GreenTargetSymbol) && (metric.GreenTargetSymbol != '==') && (metric.GreenTargetSymbol != 'Yes' || metric.GreenTargetSymbol != 'No')\\\">{{metric.GreenTargetSymbol}}</span> \\r\\n <span\\r\\n *ngIf=\\\"(metric.GreenTargetSymbol) && (metric.GreenTargetSymbol == '==')\\\">=</span> \\r\\n <span>{{metric.GreenMinimum}}</span>\\r\\n <span *ngIf=\\\"!metric.GreenTargetSymbol\\\" class=\\\"f-b\\\"> - </span>\\r\\n <span *ngIf=\\\"!metric.GreenTargetSymbol\\\">{{metric.GreenMaximum}}</span>\\r\\n </div>\\r\\n <div class=\\\"col\\\" style=\\\"width:100px;flex-wrap: inherit;\\\">\\r\\n <span\\r\\n *ngIf=\\\"(metric.YellowTargetSymbol) && (metric.YellowTargetSymbol != '==') && (metric.YellowTargetSymbol != 'Yes' || metric.YellowTargetSymbol != 'No')\\\">{{metric.YellowTargetSymbol}}</span> \\r\\n <span\\r\\n *ngIf=\\\"(metric.YellowTargetSymbol) && (metric.YellowTargetSymbol == '==')\\\">=</span> \\r\\n <span>{{metric.YellowMinimum}}</span>\\r\\n <span *ngIf=\\\"!metric.YellowTargetSymbol\\\" class=\\\"f-b\\\"> - </span>\\r\\n <span *ngIf=\\\"!metric.YellowTargetSymbol\\\">{{metric.YellowMaximum}}</span>\\r\\n </div>\\r\\n <div class=\\\"col\\\" style=\\\"width:100px;flex-wrap: inherit;\\\">\\r\\n <span\\r\\n *ngIf=\\\"(metric.RedTargetSymbol) && (metric.RedTargetSymbol != '==') && (metric.RedTargetSymbol != 'Yes' || metric.RedTargetSymbol != 'No')\\\">{{metric.RedTargetSymbol}}</span> \\r\\n <span\\r\\n *ngIf=\\\"(metric.RedTargetSymbol) && (metric.RedTargetSymbol == '==')\\\">=</span> \\r\\n <span>{{metric.RedMinimum}}</span>\\r\\n <span *ngIf=\\\"!metric.RedTargetSymbol\\\" class=\\\"f-b\\\"> - </span>\\r\\n <span *ngIf=\\\"!metric.RedTargetSymbol\\\">{{metric.RedMaximum}}</span>\\r\\n </div>\\r\\n </div>\\r\\n </td>\\r\\n <td><span>{{metric.Frequency}}</span></td>\\r\\n <td><span>{{metric.UOM}}</span></td>\\r\\n <td class=\\\"w-80\\\" [ngStyle]=\\\"myStyleWeek(metric, 1)\\\"\\r\\n [attr.colspan]=\\\"metric.Frequency == 'Weekly' ? '1' : '4'\\\">\\r\\n <span>{{metric.Week1}}</span>\\r\\n </td>\\r\\n <td class=\\\"w-80\\\" *ngIf=\\\"metric.Frequency == 'Weekly'\\\"\\r\\n [ngStyle]=\\\"myStyleWeek(metric, 2)\\\">\\r\\n <span>{{metric.Week2}}</span>\\r\\n </td>\\r\\n <td class=\\\"w-80\\\" *ngIf=\\\"metric.Frequency == 'Weekly'\\\"\\r\\n [ngStyle]=\\\"myStyleWeek(metric, 3)\\\">\\r\\n <span>{{metric.Week3}}</span>\\r\\n </td>\\r\\n <td class=\\\"w-80\\\" *ngIf=\\\"metric.Frequency == 'Weekly'\\\"\\r\\n [ngStyle]=\\\"myStyleWeek(metric, 4)\\\">\\r\\n <span>{{metric.Week4}}</span>\\r\\n </td>\\r\\n <td class=\\\"w-80\\\" [ngStyle]=\\\"myStyleWeek(metric, 5)\\\"\\r\\n [attr.colspan]=\\\"metric.Frequency == 'Weekly' ? '1' : '4'\\\">\\r\\n <span>{{metric.Week5}}</span>\\r\\n </td>\\r\\n <td class=\\\"w-80\\\" *ngIf=\\\"metric.Frequency == 'Weekly'\\\"\\r\\n [ngStyle]=\\\"myStyleWeek(metric, 6)\\\">\\r\\n <span>{{metric.Week6}}</span>\\r\\n </td>\\r\\n <td class=\\\"w-80\\\" *ngIf=\\\"metric.Frequency == 'Weekly'\\\"\\r\\n [ngStyle]=\\\"myStyleWeek(metric, 7)\\\">\\r\\n <span>{{metric.Week7}}</span>\\r\\n </td>\\r\\n <td class=\\\"w-80\\\" *ngIf=\\\"metric.Frequency == 'Weekly'\\\"\\r\\n [ngStyle]=\\\"myStyleWeek(metric, 8)\\\">\\r\\n <span>{{metric.Week8}}</span>\\r\\n </td>\\r\\n <td class=\\\"w-80\\\" [ngStyle]=\\\"myStyleWeek(metric, 9)\\\"\\r\\n [attr.colspan]=\\\"metric.Frequency == 'Weekly' ? '1' : '5'\\\">\\r\\n <span>{{metric.Week9}}</span>\\r\\n </td>\\r\\n <td class=\\\"w-80\\\" *ngIf=\\\"metric.Frequency == 'Weekly'\\\"\\r\\n [ngStyle]=\\\"myStyleWeek(metric, 10)\\\">\\r\\n <span>{{metric.Week10}}</span>\\r\\n </td>\\r\\n <td class=\\\"w-80\\\" *ngIf=\\\"metric.Frequency == 'Weekly'\\\"\\r\\n [ngStyle]=\\\"myStyleWeek(metric, 11)\\\">\\r\\n <span>{{metric.Week11}}</span>\\r\\n </td>\\r\\n <td class=\\\"w-80\\\" *ngIf=\\\"metric.Frequency == 'Weekly'\\\"\\r\\n [ngStyle]=\\\"myStyleWeek(metric, 12)\\\">\\r\\n <span>{{metric.Week12}}</span>\\r\\n </td>\\r\\n <td class=\\\"w-80\\\" *ngIf=\\\"metric.Frequency == 'Weekly'\\\"\\r\\n [ngStyle]=\\\"myStyleWeek(metric, 13)\\\">\\r\\n <span>{{metric.Week13}}</span>\\r\\n </td>\\r\\n </tr>\\r\\n </tbody>\\r\\n </table>\\r\\n </div> -->\\r\\n <div class=\\\"text-center\\\">\\r\\n <button class=\\\"darkbtnbg btn btn-info\\\" style='margin-top: 10px;' (click)='saveScoreCardDetails()'\\r\\n matTooltip=\\\"Save Score Card\\\">Save Score Card\\r\\n </button>\\r\\n </div>\\r\\n <!-- </div> -->\\r\\n <mat-action-row>\\r\\n <button mat-button color=\\\"warn\\\" (click)=\\\"prevStep()\\\">Previous</button>\\r\\n <!-- <button mat-button color=\\\"primary\\\" (click)=\\\"nextStep()\\\">Next</button> -->\\r\\n </mat-action-row>\\r\\n </mat-expansion-panel>\\r\\n </mat-accordion>\\r\\n</div>\"","module.exports = \"<mat-dialog-content>\\r\\n <div>\\r\\n {{message}}\\r\\n </div>\\r\\n <!-- <ul style=\\\"margin-bottom: 15px;\\\">\\r\\n <li *ngFor='let msg of errorMessages'>{{msg}}</li>\\r\\n </ul> -->\\r\\n</mat-dialog-content>\\r\\n<mat-dialog-actions align=\\\"center\\\">\\r\\n <div class=\\\"container\\\" fxLayout fxLayout.xs=\\\"column\\\" fxLayoutAlign=\\\"center\\\" fxLayoutGap=\\\"10px\\\" fxLayoutGap.xs=\\\"0\\\">\\r\\n <div class=\\\"item item-3 \\\">\\r\\n <button mat-button mat-accent mat-dialog-close>Ok</button>\\r\\n </div>\\r\\n </div>\\r\\n</mat-dialog-actions>\"","module.exports = \"<mat-dialog-content>Please review and correct the following\\r\\n <br>\\r\\n <ul style=\\\"margin-bottom: 15px;\\\">\\r\\n <li *ngFor='let msg of errorMessages'>{{msg}}</li>\\r\\n </ul>\\r\\n</mat-dialog-content>\\r\\n<mat-dialog-actions align=\\\"center\\\">\\r\\n <div class=\\\"container\\\" fxLayout fxLayout.xs=\\\"column\\\" fxLayoutAlign=\\\"center\\\" fxLayoutGap=\\\"10px\\\" fxLayoutGap.xs=\\\"0\\\">\\r\\n <div class=\\\"item item-3 \\\">\\r\\n <button mat-button mat-accent mat-dialog-close>Ok</button>\\r\\n </div>\\r\\n </div>\\r\\n</mat-dialog-actions>\"","module.exports = \"<link href=\\\"../../assets/css/dmapp.css\\\" rel=\\\"stylesheet\\\" id=\\\"bootstrap-css\\\">\\n\\n<div class=\\\"row\\\" id=\\\"container\\\">\\n <div class=\\\"\\\" id=\\\"heading\\\">\\n <h4>Alerts</h4>\\n </div>\\n</div>\\n<div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\n <div id=\\\"Rowwrapper\\\">\\n <div id=\\\"RowtableAction\\\">\\n <div id=\\\"field\\\">\\n <mat-slide-toggle [checked]=\\\"pointerTypeStatus\\\" [disabled]=\\\"!MenuPermissions[menuName][menuID]['C']\\\"\\n (change)=\\\"ToggleType($event)\\\">Frustration alert value</mat-slide-toggle>\\n </div>\\n <div id=\\\"search\\\" style=\\\"margin-top: 3px;\\\">\\n <mat-form-field id=\\\"searchField\\\">\\n <mat-placeholder>Alert value <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\n <input type=\\\"text\\\" matInput autocomplete=\\\"off\\\"\\n [disabled]=\\\"saved || !MenuPermissions[menuName][menuID]['C']\\\" (keydown)=\\\"Validate($event)\\\"\\n (keyup)=\\\"val($event)\\\" [min]='1' maxlength=\\\"3\\\" [(ngModel)]=\\\"alertValue\\\" value=\\\"\\\">\\n </mat-form-field>\\n </div>\\n <div id=\\\"printBtn\\\" style=\\\"margin-top: 18px;\\\">\\n <button class=\\\"darkbtnbg btn btn-info\\\" matTooltip=\\\"Submit\\\" style=\\\"cursor: pointer;\\\"\\n [disabled]=\\\"!MenuPermissions[menuName][menuID]['C']\\\" (click)=\\\"saveAlertValue()\\\"> Save </button>\\n\\n </div>\\n <div class=\\\"\\\" style=\\\"margin-top: 2%;\\\">\\n <label style=\\\"color: red;\\\">{{dataSelf}}</label>\\n </div>\\n </div>\\n </div>\\n</div>\\n\\n<div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\n <div id=\\\"Rowwrapper\\\">\\n <div id=\\\"RowtableAction\\\">\\n <div id=\\\"field\\\">\\n <mat-slide-toggle [checked]=\\\"pointerTypeStatusMetric\\\"\\n [disabled]=\\\"!MenuPermissions[menuName][menuID]['C']\\\" (change)=\\\"MetricToggleType($event)\\\">Metric\\n alert value</mat-slide-toggle>\\n </div> \\n <div id=\\\"search\\\" style=\\\" margin-top: 0%;\\\">\\n <mat-form-field id=\\\"searchField\\\">\\n <mat-placeholder>Alert value <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\n <input type=\\\"text\\\" matInput autocomplete=\\\"off\\\" (keydown)=\\\"Validate($event)\\\" (keyup)=\\\"val($event)\\\"\\n [min]='1' [disabled]=\\\"metricSaved || !MenuPermissions[menuName][menuID]['C']\\\" maxlength=\\\"3\\\"\\n [(ngModel)]=\\\"alertMetric\\\" value=\\\"\\\">\\n </mat-form-field>\\n </div>\\n <div id=\\\"printBtn\\\" style=\\\"margin-top:14px\\\">\\n <button class=\\\"darkbtnbg btn btn-info\\\" matTooltip=\\\"Submit\\\"\\n [disabled]=\\\"!MenuPermissions[menuName][menuID]['C']\\\" style=\\\"cursor: pointer;\\\"\\n (click)=\\\"saveMetricAlertValue()\\\"> Save </button>\\n\\n </div>\\n <div class=\\\"\\\" style=\\\"margin-top: 2%;\\\">\\n <label style=\\\"color: red;\\\">{{msg}}</label>\\n </div>\\n </div>\\n </div>\\n</div>\\n\"","module.exports = \"<style>\\r\\n @media print {\\r\\n .donotprintthis {\\r\\n\\r\\n display: none;\\r\\n\\r\\n }\\r\\n }\\r\\n\\r\\n @media print {\\r\\n @page {\\r\\n size: auto;\\r\\n margin: 0mm;\\r\\n }\\r\\n\\r\\n a[href]:after {\\r\\n content: none !important;\\r\\n }\\r\\n }\\r\\n\\r\\n @media print {\\r\\n\\r\\n #Header,\\r\\n #Footer {\\r\\n display: none !important;\\r\\n }\\r\\n }\\r\\n\\r\\n @media screen {\\r\\n .donotprintthis {\\r\\n display: block;\\r\\n }\\r\\n }\\r\\n\\r\\n .active {\\r\\n background-color: lightseagreen;\\r\\n }\\r\\n</style>\\r\\n\\r\\n\\r\\n<div class=\\\"wrapper\\\">\\r\\n <!-- Sidebar -->\\r\\n\\r\\n\\r\\n <nav id=\\\"sidebar\\\" *ngIf=\\\"menuOpenStatus\\\" class=\\\"donotprintthis\\\">\\r\\n <div class=\\\"sidebar-header\\\">\\r\\n <h3>\\r\\n <img src=\\\"./assets/images/DorseyMainLogo.png\\\" width=\\\"100%\\\" alt=\\\"dorsey Logo\\\" />\\r\\n </h3>\\r\\n </div>\\r\\n\\r\\n <ul class=\\\"list-unstyled components\\\">\\r\\n <!-- <p>Dummy Heading</p> -->\\r\\n <li class=\\\"active\\\">\\r\\n <!-- <a href=\\\"#homeSubmenu\\\" data-toggle=\\\"collapse\\\" aria-expanded=\\\"false\\\" class=\\\"dropdown-toggle\\\">Home</a> -->\\r\\n <ul class=\\\"list-unstyled\\\" id=\\\"homeSubmenu\\\">\\r\\n\\r\\n <!--<li>\\r\\n <a routerLinkActive=\\\"active\\\" [routerLink]=\\\"['/dashboard']\\\">Dashboard</a>\\r\\n </li>-->\\r\\n <!-- *ngIf='companyID!==\\\"0\\\"' -->\\r\\n <li *ngIf='companyID == \\\"0\\\"'>\\r\\n <a routerLinkActive=\\\"active\\\" [routerLink]=\\\"['/company']\\\">Company</a>\\r\\n </li>\\r\\n <li>\\r\\n <a routerLinkActive=\\\"active\\\" [routerLink]=\\\"['/employee']\\\">Employee</a>\\r\\n </li>\\r\\n <li>\\r\\n <a routerLinkActive=\\\"active\\\" [routerLink]=\\\"['/process']\\\">Process</a>\\r\\n </li>\\r\\n <li>\\r\\n <a routerLinkActive=\\\"active\\\" [routerLink]=\\\"['/team']\\\">Team</a>\\r\\n </li>\\r\\n\\r\\n <li>\\r\\n <a routerLinkActive=\\\"active\\\" [routerLink]=\\\"['/processMap']\\\">Process Map</a>\\r\\n </li>\\r\\n\\r\\n\\r\\n <li>\\r\\n <a routerLinkActive=\\\"active\\\" [routerLink]=\\\"['/activity']\\\">Activity</a>\\r\\n </li>\\r\\n <li>\\r\\n <a routerLinkActive=\\\"active\\\" [routerLink]=\\\"['/metric']\\\">Metric</a>\\r\\n\\r\\n </li>\\r\\n <li>\\r\\n <a routerLinkActive=\\\"active\\\" [routerLink]=\\\"['/pointer']\\\">Frustration</a>\\r\\n\\r\\n </li>\\r\\n\\r\\n <li>\\r\\n <a routerLinkActive=\\\"active\\\" [routerLink]=\\\"['/project']\\\">Project</a>\\r\\n </li>\\r\\n <li>\\r\\n <a routerLinkActive=\\\"active\\\" [routerLink]=\\\"['/case']\\\">Cases </a>\\r\\n </li>\\r\\n <li>\\r\\n <a routerLinkActive=\\\"active\\\" [routerLink]=\\\"['/reports']\\\">Reports </a>\\r\\n </li>\\r\\n <li>\\r\\n <a routerLinkActive=\\\"active\\\" [routerLink]=\\\"['/roles']\\\">Roles </a>\\r\\n </li>\\r\\n <!-- <li>\\r\\n <a routerLinkActive=\\\"active\\\" [routerLink]=\\\"['/reportProcess']\\\">Report Process </a>\\r\\n </li>\\r\\n <li>\\r\\n <a routerLinkActive=\\\"active\\\" [routerLink]=\\\"['/reportProject']\\\">Report Project </a>\\r\\n </li>\\r\\n <li>\\r\\n <a routerLinkActive=\\\"active\\\" [routerLink]=\\\"['/reportMetric']\\\">Report Metric </a>\\r\\n </li>\\r\\n <li>\\r\\n <a routerLinkActive=\\\"active\\\" [routerLink]=\\\"['/reportFrustration']\\\">Process(No Frustration)</a>\\r\\n </li>\\r\\n <li>\\r\\n <a routerLinkActive=\\\"active\\\" [routerLink]=\\\"['/noactionProject']\\\">NoAction Projects </a>\\r\\n </li>\\r\\n <li>\\r\\n <a routerLinkActive=\\\"active\\\" [routerLink]=\\\"['/otherFrustration']\\\">Frustration(Other) </a>\\r\\n </li>\\r\\n <li>\\r\\n <a routerLinkActive=\\\"active\\\" [routerLink]=\\\"['/frustrationComments']\\\">Frustration Comments </a>\\r\\n </li>\\r\\n <li>\\r\\n <a routerLinkActive=\\\"active\\\" [routerLink]=\\\"['/nometricProcess']\\\">Process(No Metric) </a>\\r\\n </li> -->\\r\\n\\r\\n <!-- <li>\\r\\n <a routerLinkActive=\\\"active\\\" [routerLink]=\\\"['/rolepermissions']\\\">Role Permissions </a>\\r\\n </li>\\r\\n <li>\\r\\n <a routerLinkActive=\\\"active\\\" [routerLink]=\\\"['/userpermisions']\\\">User Permissions </a>\\r\\n </li> -->\\r\\n </ul>\\r\\n </li>\\r\\n\\r\\n </ul>\\r\\n\\r\\n\\r\\n </nav>\\r\\n <!--</div>-->\\r\\n <!-- Page Content -->\\r\\n <div id=\\\"content\\\">\\r\\n\\r\\n <nav class=\\\"navbar navbar-expand-lg navbar-light bg-light donotprintthis\\\">\\r\\n <div class=\\\"container-fluid\\\">\\r\\n\\r\\n <button type=\\\"button\\\" id=\\\"sidebarCollapse\\\" class=\\\"btn btn-info\\\" [class.right]=\\\"menuOpen\\\"\\r\\n [class.indexcity]=\\\"menuOpen\\\" (click)=\\\"onClick($event)\\\">\\r\\n <i class=\\\"fa fa-bars fa-align-left\\\"></i>\\r\\n <span></span>\\r\\n </button>\\r\\n <button class=\\\"btn btn-dark d-inline-block d-lg-none ml-auto\\\" type=\\\"button\\\" data-toggle=\\\"collapse\\\"\\r\\n data-target=\\\"#navbarSupportedContent\\\" aria-controls=\\\"navbarSupportedContent\\\" aria-expanded=\\\"false\\\"\\r\\n aria-label=\\\"Toggle navigation\\\">\\r\\n <i class=\\\"fas fa-align-justify\\\"></i>\\r\\n </button>\\r\\n\\r\\n <a (click)=\\\"LogOut()\\\" style=\\\"cursor:pointer;\\\">Logout</a>\\r\\n </div>\\r\\n </nav>\\r\\n <!-- <router-outlet></router-outlet> -->\\r\\n </div>\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n</div>\\r\\n\\r\\n<!--<ng-template #login>-->\\r\\n\\r\\n<!--</ng-template>-->\\r\\n\\r\\n\\r\\n<!-- <app-login *ngIf=\\\"!authenticated\\\" (authentication)=\\\"childFunction($event)\\\" style=\\\"width:100%\\\"></app-login> -->\"","module.exports = \"<style>\\n @media screen {\\n .donotprintthis1 {\\n display: none;\\n }\\n\\n .donotprintthis {\\n\\n display: block;\\n\\n }\\n }\\n\\n @media print {\\n /* table {\\n width: 100%;\\n font-size: smaller;\\n }\\n\\n th,\\n td {\\n text-align: center;\\n font-size: smaller;\\n }\\n\\n th {\\n color: white;\\n background-color: #474747;\\n height: 35px;\\n font-size: 13px;\\n }\\n\\n td {\\n height: 35px;\\n font-size: 13px;\\n }\\n\\n table {\\n border-collapse: collapse;\\n }\\n\\n table,\\n th,\\n td {\\n border: 1px solid #e1e1e1;\\n overflow: hidden;\\n word-wrap: break-word;\\n }\\n\\n table.fixed {\\n table-layout: fixed;\\n }\\n\\n table.fixed td {\\n overflow: hidden;\\n }\\n\\n .highlight td {\\n background: #C0C0C0;\\n }*/\\n\\n h5 {\\n text-align: center;\\n }\\n\\n .donotprintthis1 {\\n\\n display: block;\\n\\n }\\n\\n .donotprintthis {\\n\\n display: none;\\n\\n }\\n\\n .footer {\\n position: fixed;\\n bottom: 0;\\n font-size: 13px;\\n margin-left: 35%;\\n }\\n }\\n</style>\\n<link href=\\\"../../assets/css/dmapp.css\\\" rel=\\\"stylesheet\\\" id=\\\"bootstrap-css\\\">\\n<div class=\\\"row\\\" id=\\\"container\\\">\\n <div class=\\\"\\\" id=\\\"heading\\\">\\n <h4>Frustrations</h4>\\n\\n </div>\\n\\n\\n <div id=\\\"wrapper\\\">\\n <div id=\\\"tableActions\\\">\\n\\n <div class=\\\"\\\" id=\\\"search\\\" *ngIf=\\\"tableFormat\\\">\\n <span *ngIf=\\\"!disableSearch\\\">\\n <mat-form-field id=\\\"searchField\\\" style=\\\"margin-top: 2px; \\\">\\n <mat-placeholder class=\\\"placeholder\\\">Search here</mat-placeholder>\\n <input matInput id=\\\"newGroup\\\" [disabled]=\\\"disableSearch\\\" (keyup)=\\\"Searchtext()\\\" name=\\\"search\\\"\\n [(ngModel)]=\\\"searchtext\\\" value=\\\"\\\" autocomplete=\\\"off\\\">\\n </mat-form-field>\\n </span>\\n </div>\\n <div *ngIf=\\\"!isDisable && tableFormat\\\" class=\\\"\\\" id=\\\"excelBtn\\\">\\n <button class=\\\"darkbtnbg btn btn-info\\\" style=\\\"margin-top: 17px; cursor: pointer\\\" [disabled]=\\\"isDisable\\\"\\n matTooltip=\\\"Export as excel\\\" (click)=\\\"exportAsXLSX()\\\">\\n\\n Excel\\n </button>\\n\\n </div>\\n\\n\\n <div *ngIf=\\\"!tableFormat\\\" class=\\\"\\\" id=\\\"createBtn\\\">\\n <button matTooltip=\\\"Print status view for frustrations\\\" class=\\\"darkbtnbg btn btn-info\\\"\\n style='float:right;margin-top: 17px;' [disabled]=\\\"!caseData\\\" printSectionId=\\\"print-frustrations\\\"\\n [useExistingCss]=\\\"true\\\" ngxPrint>Print</button>\\n\\n </div>\\n <div class=\\\"\\\" id=\\\"createBtn\\\">\\n <button class=\\\"darkbtnbg btn btn-info\\\" style=\\\"margin-top: 17px; cursor: pointer;white-space: nowrap;\\\"\\n [disabled]=\\\"!caseData || tableFormat\\\" (click)='table()' matTooltip=\\\"Table view\\\">Table View </button>\\n </div>\\n <!-- <i class=\\\"fa fa-trello\\\"></i> -->\\n <div class=\\\"\\\" id=\\\"createBtn\\\">\\n <button class=\\\"darkbtnbg btn btn-info\\\" style=\\\"margin-top: 17px; cursor: pointer;white-space: nowrap;\\\"\\n [disabled]=\\\"!caseData || kenbanFormat\\\" (click)='kenban()' matTooltip=\\\"Status view\\\">Status\\n View</button>\\n </div>\\n </div>\\n </div>\\n</div>\\n\\n<!-- <div class=\\\"item item-5\\\" fxFlexOrder=\\\"3\\\" *ngIf=\\\"!disableKenban\\\" >\\n \\n <button mat-icon-button [matMenuTriggerFor]=\\\"menu\\\" [disabled]=\\\"disableKenban\\\" aria-label=\\\"Example icon-button with a menu\\\" style=\\\"float: right;\\\" matTooltip=\\\"Display As {{displayAs}}\\\" >\\n \\n <mat-icon *ngIf=\\\"tableFormat\\\"><i class=\\\"fa fa-table\\\"></i></mat-icon>\\n <mat-icon *ngIf=\\\"kenbanFormat\\\"><i class=\\\"fa fa-list-alt\\\"></i></mat-icon>\\n </button>\\n <mat-menu #menu=\\\"matMenu\\\">\\n \\n <button mat-menu-item (click)='table()' matTooltip=\\\"Table\\\">\\n \\n <mat-icon ><i class=\\\"fa fa-table\\\"></i></mat-icon>\\n \\n <span>Table</span>\\n </button>\\n <button mat-menu-item (click)='kenban()' matTooltip=\\\"Status view\\\">\\n <mat-icon ><i class=\\\"fa fa-list-alt\\\"></i></mat-icon>\\n <span>Status view</span>\\n \\n </button>\\n </mat-menu>\\n\\n \\n </div> -->\\n<!-- </div> -->\\n\\n\\n<div>\\n <div class=\\\"tableDiv\\\">\\n <table *ngIf=\\\"tableFormat\\\">\\n <thead>\\n <tr>\\n <th class=\\\"checkBoxTD\\\">\\n\\n <mat-checkbox [disabled]='caseData.length==0' class=\\\"chechAll\\\" [(ngModel)]=checkAll\\n (change)=\\\"CheckAll($event)\\\"\\n [style.pointer-events]=\\\"(!MenuPermissions[menuName][menuID]['U'])?'none':'auto'\\\"\\n [ngClass]=\\\"{'removeColor':!(MenuPermissions[menuName][menuID]['U']),'AddColor':(MenuPermissions[menuName][menuID]['U'])}\\\">\\n </mat-checkbox>\\n </th>\\n <!--<th cName class=\\\"pointer\\\"> Process</th>\\n <th cName class=\\\"pointer\\\"> Activity</th>-->\\n <!-- <th class=\\\"pointer\\\" (click)=\\\"sort('CasesID')\\\"> Case ID\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th> -->\\n <!-- <th class=\\\"pointer\\\" (click)=\\\"sort('PointerID')\\\"> Issue ID\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th> -->\\n <th class=\\\"pointer\\\" (click)=\\\"sort('TeamName')\\\"> Team\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n <th class=\\\"pointer\\\" (click)=\\\"sort('ProcessName')\\\"> Process\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n\\n\\n\\n\\n <th class=\\\"pointer\\\" (click)=\\\"sort('SeverityName')\\\"> Severity\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n\\n\\n <th class=\\\"pointer\\\" (click)=\\\"sort('FrustrationsTypeName')\\\"> Type\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n\\n\\n <th class=\\\"pointer\\\" (click)=\\\"sort('Subject')\\\"> Frustration\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n\\n\\n <th class=\\\"pointer\\\" (click)=\\\"sort('StatusName')\\\"> Status\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n <th class=\\\"pointer\\\" (click)=\\\"sort('ProjectName')\\\"> Project\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n <th class=\\\"pointer\\\" (click)=\\\"sort('Description')\\\"> Description\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n <th class=\\\"pointer\\\" (click)=\\\"sort('PointerDate')\\\"> Date Opened\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n\\n <th>Action</th>\\n </tr>\\n </thead>\\n <tbody>\\n <!---->\\n <tr\\n *ngFor=\\\"let element of caseData | paginate: { itemsPerPage: rowsOnPage, currentPage: p } | sort: {property: column, direction: direction}; let i = index\\\">\\n\\n <td class=\\\"checkBoxTD\\\"><span>\\n <mat-checkbox [style.pointer-events]=\\\"(!MenuPermissions[menuName][menuID]['U'])?'none':'auto'\\\"\\n [ngClass]=\\\"{'removeColor':!(MenuPermissions[menuName][menuID]['U']),'AddColor':(MenuPermissions[menuName][menuID]['U'])}\\\"\\n [(ngModel)]=\\\"checklist[i]=element.check\\\" (change)=\\\"change(element,$event,i)\\\"> </mat-checkbox>\\n </span></td>\\n\\n <!-- <td>Case - {{element.CasesID}}</td> -->\\n <!-- <td>Issue- {{element.PointerID}}</td> -->\\n <td> {{element.TeamName}}</td>\\n <td> {{element.ProcessName}}</td>\\n\\n <td> {{element.SeverityName}}</td>\\n\\n <td> {{element.FrustrationsTypeName}}</td>\\n <td> {{element.Subject}} </td>\\n\\n\\n <td>{{element.StatusName}}</td>\\n <td>{{element.ProjectName}}</td>\\n <td>{{element.Description}}</td>\\n <td>{{element.PointerDate | date:'MM/dd/yyyy'}}</td>\\n\\n <td style=\\\"cursor: pointer;\\\">\\n <span> <a matTooltip=\\\"Edit frustration\\\"\\n [style.pointer-events]=\\\"(!MenuPermissions[menuName][menuID]['U'])?'none':'auto'\\\"\\n [ngClass]=\\\"{'removeColor':!(MenuPermissions[menuName][menuID]['U']),'AddColor':(MenuPermissions[menuName][menuID]['U'])}\\\"\\n (click)=\\\"EditCase(element)\\\"><i style=\\\"cursor: pointer;\\\" class=\\\"fa fa-pencil-square-o \\\"\\n aria-hidden=\\\"true\\\"></i></a>\\n <a matTooltip=\\\"Delete frustration\\\"\\n [style.pointer-events]=\\\"(!MenuPermissions[menuName][menuID]['D'])?'none':'auto'\\\"\\n [ngClass]=\\\"{'removeColor':!(MenuPermissions[menuName][menuID]['D']),'AddColor':(MenuPermissions[menuName][menuID]['D'])}\\\"\\n (click)=\\\"DeleteCase(element)\\\"><i style=\\\"cursor: pointer;\\\" class=\\\"fa fa-trash-o \\\"\\n aria-hidden=\\\"true\\\"></i></a>\\n </span>\\n </td>\\n\\n </tr>\\n </tbody>\\n </table>\\n\\n\\n <br>\\n\\n <div class=\\\"warningMsg\\\" *ngIf=\\\"!caseData || caseData.length==0\\\">\\n <span>No data available</span>\\n </div>\\n </div>\\n <div class=\\\"warningMsg\\\" *ngIf=\\\"(projectAvailable===false)\\\">\\n <span>{{errorMsg}}</span>\\n </div>\\n <br>\\n <div class=\\\"pageContainer\\\" *ngIf=\\\"casePaging && tableFormat && caseData.length>0\\\">\\n\\n <div class=\\\"rowsSelection\\\">\\n <mat-form-field style=\\\"width: 50px; margin-top: -15px;\\\">\\n <mat-select [(ngModel)]=\\\"rowsOnPage\\\" (ngModelChange)=\\\"checkAll=false\\\">\\n <mat-option *ngFor=\\\"let row of rowsOnPageSet\\\" [value]=\\\"row\\\">\\n {{row}}\\n </mat-option>\\n </mat-select>\\n </mat-form-field>\\n </div>\\n\\n\\n <div class=\\\"pageSelection\\\">\\n\\n <!-- style=\\\"margin-top: -50px\\\" -->\\n <pagination-controls (pageChange)=\\\"p = $event\\\" (click)=\\\"getPageNum()\\\"></pagination-controls>\\n </div>\\n </div>\\n\\n\\n</div>\\n<div class=\\\"row\\\" *ngIf=\\\"kenbanFormat\\\">\\n <div class=\\\"instruction\\\">\\n <p><strong><span class=\\\"impAsterisk\\\">* </span>Instructions: Double click or long press(for touch screen devices) to\\n activate rearrangement of the selected frustration.</strong></p>\\n </div>\\n <div class=\\\"col-md-2 viewforstatus\\\" *ngFor=\\\"let week of weeks\\\">\\n <div class=\\\"drag-container\\\">\\n <div class=\\\"stageHeader pipelineHeader\\\" matTooltip=\\\"{{week.id}}\\\"> {{week.id}} ({{week.count}})</div>\\n\\n <div (mouseup)=\\\"onMouseUp()\\\" cdkDropList id=\\\"{{week.id}}\\\" [cdkDropListData]=\\\"week.weeklist\\\"\\n [cdkDropListConnectedTo]=\\\"connectedTo\\\" class=\\\"example-list\\\" (cdkDropListDropped)=\\\"drop($event,week.statusID)\\\">\\n <div #button long-press (onLongPressing)=\\\"onLongPressing()\\\" (dblclick)=\\\"onDblClick()\\\" (mouseup)=\\\"onMouseUp()\\\"\\n class=\\\"example-box\\\" style=\\\"word-wrap: break-word;word-break: break-all;white-space: normal;\\\"\\n *ngFor=\\\"let weekItem of week.weeklist\\\"\\n [cdkDragDisabled]=\\\"!MenuPermissions[menuName][menuID]['U'] || ifLongPress\\\" cdkDrag>\\n <!-- Case - {{weekItem.CasesID}}<br> -->\\n\\n <span *ngIf=\\\"weekItem.UpdatedBy === null;else upby\\\">\\n Team: {{weekItem.TeamName}}<br>\\n Frustration: {{weekItem.Subject}}<br>\\n <!-- {{weekItem.CreatedBy}}<br>\\n {{weekItem.PointerDate | date:'MM/dd/yyyy'}}<br> -->\\n </span>\\n <ng-template #upby>\\n Team: {{weekItem.TeamName}}<br>\\n Frustration: {{weekItem.Subject}}<br>\\n <!-- {{weekItem.UpdatedBy}}<br>\\n {{weekItem.PointerDate | date:'MM/dd/yyyy'}}<br> -->\\n </ng-template>\\n <br>\\n <!--{{weekItem.Description}}<br>-->\\n <!-- {{weekItem.ActivityName}}<br> -->\\n <!-- {{weekItem.StatusName}}<br> -->\\n\\n <!--{{weekItem.PointerCreatedBy}}-->\\n </div>\\n </div>\\n </div>\\n </div>\\n</div>\\n\\n<div id=\\\"assignBtn \\\" style=\\\"text-align: center;margin-top: 10px;cursor: default;\\\" *ngIf=\\\"tableFormat\\\">\\n <!-- checkEnable && -->\\n <mat-form-field class=\\\"btn\\\">\\n <mat-label>* Project</mat-label>\\n <mat-select style=\\\"cursor:pointer;\\\" (selectionChange)=\\\"project($event)\\\" [(ngModel)]=\\\"ProjectID\\\"\\n [disabled]=\\\"!projectData|| !enableProject\\\">\\n <mat-option label=\\\"--select Project --\\\" [value]=\\\"0\\\">-- None --</mat-option>\\n <mat-option *ngFor=\\\"let data of projectData;let i=index;\\\" [value]=\\\"projectData[i].ProjectID\\\">\\n {{projectData[i].ProjectName}}\\n </mat-option>\\n </mat-select>\\n </mat-form-field> \\n\\n <button class=\\\"darkbtnbg btn btn-info \\\" style=\\\"text-align: center;cursor:pointer;\\\"\\n [disabled]=\\\"!projectData || !enableProject\\\" (click)=\\\"Addproject('assign')\\\" matTooltip=\\\"Assign to project\\\"\\n *ngIf=\\\"caseData\\\">Assign Project</button>\\n\\n <label style=\\\"color: red;\\\"> {{ErrorMessage}}</label>\\n</div>\\n\\n\\n<!--************************print Kanban****************************-->\\n<div id=\\\"print-frustrations\\\" class=\\\"donotprintthis1\\\">\\n <div style=\\\"text-align: center;\\\">\\n <span>Company - <strong> {{loginCompanyName }} </strong></span> <br>\\n <span>Date: {{Date| date:'MM-dd-yyyy' }}</span><br>\\n <span>Frustrations Status View</span>\\n </div><br>\\n\\n\\n\\n\\n <div class=\\\"row\\\" *ngIf=\\\"kenbanFormat\\\">\\n <div class=\\\" col-md-2\\\" *ngFor=\\\"let week of weeks\\\">\\n <div class=\\\"drag-container\\\">\\n <div class=\\\"stageHeader pipelineHeader\\\" matTooltip=\\\"{{week.id}}\\\"> {{week.id}} ({{week.count}})</div>\\n\\n <div cdkDropList id=\\\"{{week.id}}\\\" [cdkDropListData]=\\\"week.weeklist\\\" [cdkDropListConnectedTo]=\\\"connectedTo\\\"\\n class=\\\"example-list\\\" (cdkDropListDropped)=\\\"drop($event,week.statusID)\\\">\\n <div class=\\\"example-box \\\" style=\\\"word-wrap: break-word;word-break: break-all;white-space: normal;\\\"\\n *ngFor=\\\"let weekItem of week.weeklist\\\" [cdkDragDisabled]=\\\"!MenuPermissions[menuName][menuID]['U']\\\" cdkDrag>\\n <!-- Case - {{weekItem.CasesID}}<br> -->\\n\\n <span *ngIf=\\\"weekItem.UpdatedBy === null;else upby\\\">\\n Team: {{weekItem.TeamName}}<br>\\n Frustration: {{weekItem.Subject}}<br>\\n <!-- {{weekItem.CreatedBy}}<br>\\n {{weekItem.PointerDate | date:'MM/dd/yyyy'}}<br> -->\\n </span>\\n <ng-template #upby>\\n Team: {{weekItem.TeamName}}<br>\\n Frustration: {{weekItem.Subject}}<br>\\n <!-- {{weekItem.UpdatedBy}}<br>\\n {{weekItem.PointerDate | date:'MM/dd/yyyy'}}<br> -->\\n </ng-template>\\n <br>\\n <!--{{weekItem.Description}}<br>-->\\n <!-- {{weekItem.ActivityName}}<br> -->\\n <!-- {{weekItem.StatusName}}<br> -->\\n\\n <!--{{weekItem.PointerCreatedBy}}-->\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n <div class=\\\"footer\\\">\\n <label>{{copyRight}}</label>\\n </div>\\n</div>\\n\\n\\n\\n\\n\\n<style>\\n @media screen and (max-width: 600px) {\\n .darkbtnbg {\\n background-color: #3775b5 !important;\\n font-size: 13px;\\n width: 1;\\n width: 100% !important;\\n }\\n\\n .mb_res {\\n flex: auto !important;\\n max-width: 100% !important;\\n }\\n\\n table.fixed {\\n table-layout: fixed;\\n overflow: auto !important;\\n }\\n\\n .txt_bx {\\n width: 100% !important;\\n }\\n\\n }\\n</style>\\n\"","module.exports = \"<link href=\\\"../../assets/css/dmapp.css\\\" rel=\\\"stylesheet\\\" id=\\\"bootstrap-css\\\">\\r\\n\\r\\n<div *ngIf=\\\"data !== 'new' && data !== 'edit' && data!='log'&& data !== 'progress' && data !== 'status'\\\">\\r\\n <mat-dialog-content>{{data}}</mat-dialog-content>\\r\\n <mat-dialog-actions align=\\\"center\\\">\\r\\n <div *ngIf=\\\"condition\\\">\\r\\n <button mat-raised-button mat-accent mat-dialog-close (click)=\\\"onNoClick()\\\">No</button>\\r\\n <!-- Can optionally provide a result for the closing dialog. -->\\r\\n <button mat-raised-button mat-accent [mat-dialog-close]=\\\"true\\\" (click)=\\\"onYesClick()\\\">Yes</button>\\r\\n </div>\\r\\n <div *ngIf=\\\"!condition && data !== 'progress' && data !== 'status'\\\">\\r\\n <div class=\\\"container\\\" fxLayout fxLayout.xs=\\\"column\\\" fxLayoutAlign=\\\"center\\\" fxLayoutGap=\\\"10px\\\" fxLayoutGap.xs=\\\"0\\\">\\r\\n <div class=\\\"item item-3 \\\">\\r\\n <button mat-button mat-accent mat-dialog-close>Ok</button>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </mat-dialog-actions>\\r\\n</div>\\r\\n\\r\\n\\r\\n<div *ngIf=\\\"data === 'new' || data === 'edit'\\\"><br>\\r\\n <div class=\\\"XBtn\\\">\\r\\n <span (click)=\\\"Clear()\\\" matTooltip=\\\"Close\\\" class=\\\"close\\\">×</span>\\r\\n </div>\\r\\n <mat-slide-toggle [checked]=\\\"subActivityStatus\\\" [disabled]=\\\"conditionActivity!='' || data=='edit'\\\"\\r\\n (change)=\\\"ToggleSubActivity()\\\">Sub Activity</mat-slide-toggle>\\r\\n <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n <div id=\\\"Rowheading\\\">\\r\\n <h4 class=\\\"alignheader\\\"><b> Assign Frustration</b></h4>\\r\\n\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <div class=\\\"inputFields\\\">\\r\\n <div>\\r\\n\\r\\n <mat-form-field>\\r\\n <input matInput [disabled]=\\\"true\\\" autocomplete=\\\"off\\\" maxlength=\\\"100\\\" id=\\\"lblIssueID\\\" [(ngModel)]=\\\"PointerID\\\"\\r\\n (keypress)=\\\"IsAlpha($event)\\\" value=\\\"\\\">\\r\\n <mat-placeholder>Pointer ID <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n </mat-form-field>\\r\\n </div>\\r\\n\\r\\n\\r\\n <div>\\r\\n\\r\\n\\r\\n <mat-form-field>\\r\\n\\r\\n <mat-placeholder>Key Process <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n <mat-select (selectionChange)=\\\"process($event)\\\" [(ngModel)]=\\\"ProcessID\\\">\\r\\n <mat-option *ngFor=\\\"let data of processData;let i=index;\\\" [value]=\\\"processData[i].ProcessID\\\">\\r\\n {{processData[i].ProcessName}}\\r\\n </mat-option>\\r\\n </mat-select>\\r\\n </mat-form-field>\\r\\n </div>\\r\\n <div>\\r\\n\\r\\n <mat-form-field>\\r\\n\\r\\n <mat-placeholder>Activity <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n <mat-select (selectionChange)=\\\"activity($event)\\\" [(ngModel)]=\\\"ActivityID\\\">\\r\\n <mat-option *ngFor=\\\"let data of tempActivity;let i=index;\\\" [value]=\\\"tempActivity[i].ActivityID\\\">\\r\\n {{tempActivity[i].ActivityName}}\\r\\n </mat-option>\\r\\n </mat-select>\\r\\n </mat-form-field>\\r\\n\\r\\n\\r\\n </div>\\r\\n <div>\\r\\n <mat-form-field>\\r\\n\\r\\n <mat-placeholder>Team <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n <mat-select [(ngModel)]=\\\"TeamID\\\" [disabled]=\\\"true\\\">\\r\\n <mat-option *ngFor=\\\"let data of teamData;let i=index;\\\" [value]=\\\"teamData[i].TeamID\\\">\\r\\n {{teamData[i].TeamName}}\\r\\n </mat-option>\\r\\n </mat-select>\\r\\n </mat-form-field>\\r\\n </div>\\r\\n <div>\\r\\n <mat-form-field>\\r\\n <mat-placeholder>Sub Activity <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n\\r\\n <mat-select [disabled]=\\\"conditionActivity!='' || !subActivityStatus || tempSubActivity.length===0\\\"\\r\\n [(ngModel)]=\\\"SubActivityID\\\" (selectionChange)=\\\"subactivity($event)\\\">\\r\\n <mat-option *ngFor=\\\"let data of tempSubActivity;let i=index;\\\" [value]=\\\"tempSubActivity[i].ActivityID\\\">\\r\\n {{tempSubActivity[i].ActivityName}}\\r\\n\\r\\n </mat-option>\\r\\n </mat-select>\\r\\n </mat-form-field>\\r\\n\\r\\n </div>\\r\\n <div>\\r\\n <mat-form-field>\\r\\n <mat-placeholder>Frustrations Type <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n <mat-select (selectionChange)=\\\"frustrationType($event)\\\" [(ngModel)]=\\\"FrustrationTypeID\\\">\\r\\n <mat-option *ngFor=\\\"let data of tempFrustrationType;let i=index;\\\"\\r\\n [value]=\\\"tempFrustrationType[i].FrustrationsTypeID\\\">\\r\\n {{tempFrustrationType[i].FrustrationsTypeName}}\\r\\n </mat-option>\\r\\n </mat-select>\\r\\n </mat-form-field>\\r\\n </div>\\r\\n <div>\\r\\n\\r\\n\\r\\n <mat-form-field>\\r\\n\\r\\n <input matInput autocomplete=\\\"off\\\" maxlength=\\\"55\\\" id=\\\"lblSubject\\\" [(ngModel)]=\\\"Subject\\\" value=\\\"\\\">\\r\\n <mat-placeholder>Frustration <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n\\r\\n </mat-form-field>\\r\\n </div>\\r\\n <div>\\r\\n <mat-form-field>\\r\\n <input matInput placeholder=\\\" Description\\\" autocomplete=\\\"off\\\" maxlength=\\\"500\\\" id=\\\"lblDescription\\\"\\r\\n [(ngModel)]=\\\"Description\\\" value=\\\"\\\">\\r\\n </mat-form-field>\\r\\n </div>\\r\\n\\r\\n <div>\\r\\n <mat-form-field>\\r\\n <mat-label>Status</mat-label>\\r\\n <mat-select (selectionChange)=\\\"statusChange($event)\\\" [(ngModel)]=\\\"StatusID\\\">\\r\\n <mat-option *ngFor=\\\"let data of statusData;let i=index;\\\" [value]=\\\"statusData[i].StatusID\\\">\\r\\n {{statusData[i].StatusName}}\\r\\n </mat-option>\\r\\n </mat-select>\\r\\n </mat-form-field>\\r\\n\\r\\n </div>\\r\\n <div>\\r\\n\\r\\n <mat-form-field>\\r\\n <mat-placeholder>Severity <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n <mat-select (selectionChange)=\\\"severity($event)\\\" [(ngModel)]=\\\"SeverityID\\\">\\r\\n <mat-option *ngFor=\\\"let data of severityData;let i=index;\\\" [value]=\\\"severityData[i].SeverityID\\\">\\r\\n {{severityData[i].SeverityName}}\\r\\n </mat-option>\\r\\n </mat-select>\\r\\n </mat-form-field>\\r\\n </div>\\r\\n\\r\\n\\r\\n <div>\\r\\n <mat-form-field>\\r\\n <textarea matInput placeholder=\\\" Internal Comments\\\" autocomplete=\\\"off\\\" maxlength=\\\"500\\\" id=\\\"lblComments\\\"\\r\\n [(ngModel)]=\\\"Comments\\\" value=\\\"\\\"></textarea>\\r\\n </mat-form-field>\\r\\n </div>\\r\\n\\r\\n <div>\\r\\n <mat-form-field>\\r\\n <input matInput placeholder=\\\" SLA Violation\\\" maxlength=\\\"100\\\" autocomplete=\\\"off\\\" id=\\\"lblSLAViolation\\\"\\r\\n [(ngModel)]=\\\"SLAViolation\\\" value=\\\"\\\">\\r\\n </mat-form-field>\\r\\n </div>\\r\\n\\r\\n </div>\\r\\n\\r\\n <!-- <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n <div id=\\\"Rowwrapper\\\">\\r\\n <div id=\\\"RowtableAction\\\">\\r\\n <div id=\\\"field\\\">\\r\\n \\r\\n <mat-form-field>\\r\\n <input matInput [disabled]=\\\"true\\\" autocomplete=\\\"off\\\" maxlength=\\\"100\\\" id=\\\"lblIssueID\\\" [(ngModel)]=\\\"PointerID\\\" \\r\\n (keypress)=\\\"IsAlpha($event)\\\"\\r\\n value=\\\"\\\">\\r\\n <mat-placeholder>Pointer ID <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n </mat-form-field>\\r\\n </div>\\r\\n \\r\\n \\r\\n <div id=\\\"field\\\">\\r\\n \\r\\n \\r\\n <mat-form-field >\\r\\n \\r\\n <mat-placeholder>Key Process <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n <mat-select (selectionChange)=\\\"process($event)\\\" [(ngModel)]=\\\"ProcessID\\\" >\\r\\n <mat-option *ngFor=\\\"let data of processData;let i=index;\\\" [value]=\\\"processData[i].ProcessID\\\" >\\r\\n {{processData[i].ProcessName}}\\r\\n </mat-option>\\r\\n </mat-select>\\r\\n </mat-form-field> \\r\\n </div>\\r\\n <div id=\\\"field\\\">\\r\\n \\r\\n <mat-form-field>\\r\\n \\r\\n <mat-placeholder>Activity <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n <mat-select (selectionChange)=\\\"activity($event)\\\" [(ngModel)]=\\\"ActivityID\\\" >\\r\\n <mat-option *ngFor=\\\"let data of tempActivity;let i=index;\\\" [value]=\\\"tempActivity[i].ActivityID\\\" >\\r\\n {{tempActivity[i].ActivityName}}\\r\\n </mat-option>\\r\\n </mat-select>\\r\\n </mat-form-field>\\r\\n \\r\\n \\r\\n </div>\\r\\n \\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n \\r\\n <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n <div id=\\\"Rowwrapper\\\">\\r\\n <div id=\\\"RowtableAction\\\">\\r\\n <div id=\\\"field\\\">\\r\\n <mat-form-field>\\r\\n \\r\\n <mat-placeholder>Team <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n <mat-select [(ngModel)]=\\\"TeamID\\\" [disabled]=\\\"true\\\" >\\r\\n <mat-option *ngFor=\\\"let data of teamData;let i=index;\\\" [value]=\\\"teamData[i].TeamID\\\" >\\r\\n {{teamData[i].TeamName}}\\r\\n </mat-option>\\r\\n </mat-select>\\r\\n </mat-form-field>\\r\\n </div>\\r\\n <div id=\\\"field\\\">\\r\\n <mat-form-field >\\r\\n <mat-placeholder>Sub Activity <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n \\r\\n <mat-select [disabled]=\\\"conditionActivity!='' || !subActivityStatus || tempSubActivity.length===0\\\" [(ngModel)]=\\\"SubActivityID\\\" (selectionChange)=\\\"subactivity($event)\\\" >\\r\\n <mat-option *ngFor=\\\"let data of tempSubActivity;let i=index;\\\" [value]=\\\"tempSubActivity[i].ActivityID\\\" >\\r\\n {{tempSubActivity[i].ActivityName}}\\r\\n \\r\\n </mat-option>\\r\\n </mat-select>\\r\\n </mat-form-field>\\r\\n \\r\\n </div>\\r\\n <div id=\\\"field\\\">\\r\\n <mat-form-field>\\r\\n <mat-placeholder>Frustrations Type <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n <mat-select (selectionChange)=\\\"frustrationType($event)\\\" [(ngModel)]=\\\"FrustrationTypeID\\\" >\\r\\n <mat-option *ngFor=\\\"let data of tempFrustrationType;let i=index;\\\" [value]=\\\"tempFrustrationType[i].FrustrationsTypeID\\\" >\\r\\n {{tempFrustrationType[i].FrustrationsTypeName}}\\r\\n </mat-option>\\r\\n </mat-select>\\r\\n </mat-form-field>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n \\r\\n <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n <div id=\\\"Rowwrapper\\\">\\r\\n <div id=\\\"RowtableAction\\\">\\r\\n <div id=\\\"field\\\">\\r\\n \\r\\n\\r\\n <mat-form-field>\\r\\n \\r\\n <input matInput autocomplete=\\\"off\\\" maxlength=\\\"55\\\" id=\\\"lblSubject\\\" [(ngModel)]=\\\"Subject\\\" \\r\\n value=\\\"\\\">\\r\\n<mat-placeholder>Frustration <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n\\r\\n </mat-form-field>\\r\\n </div>\\r\\n <div id=\\\"field\\\">\\r\\n <mat-form-field>\\r\\n <input matInput placeholder=\\\" Description\\\" autocomplete=\\\"off\\\" maxlength=\\\"500\\\" id=\\\"lblDescription\\\" [(ngModel)]=\\\"Description\\\"\\r\\n value=\\\"\\\">\\r\\n </mat-form-field>\\r\\n </div>\\r\\n\\r\\n <div id=\\\"field\\\">\\r\\n <mat-form-field>\\r\\n <mat-label>Status</mat-label>\\r\\n <mat-select (selectionChange)=\\\"statusChange($event)\\\" [(ngModel)]=\\\"StatusID\\\">\\r\\n <mat-option *ngFor=\\\"let data of statusData;let i=index;\\\" [value]=\\\"statusData[i].StatusID\\\" >\\r\\n {{statusData[i].StatusName}}\\r\\n </mat-option>\\r\\n </mat-select>\\r\\n </mat-form-field>\\r\\n\\r\\n </div>\\r\\n\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n <div id=\\\"Rowwrapper\\\">\\r\\n <div id=\\\"RowtableAction\\\">\\r\\n <div id=\\\"field\\\">\\r\\n \\r\\n <mat-form-field>\\r\\n <mat-placeholder>Severity <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n <mat-select (selectionChange)=\\\"severity($event)\\\" [(ngModel)]=\\\"SeverityID\\\">\\r\\n <mat-option *ngFor=\\\"let data of severityData;let i=index;\\\" [value]=\\\"severityData[i].SeverityID\\\" >\\r\\n {{severityData[i].SeverityName}}\\r\\n </mat-option>\\r\\n </mat-select>\\r\\n </mat-form-field>\\r\\n </div>\\r\\n \\r\\n\\r\\n <div id=\\\"field\\\">\\r\\n <mat-form-field>\\r\\n <textarea matInput placeholder=\\\" Internal Comments\\\" autocomplete=\\\"off\\\" maxlength=\\\"500\\\" id=\\\"lblComments\\\" [(ngModel)]=\\\"Comments\\\"\\r\\nvalue=\\\"\\\"></textarea>\\r\\n </mat-form-field>\\r\\n</div> \\r\\n\\r\\n<div id=\\\"field\\\">\\r\\n <mat-form-field>\\r\\n<input matInput placeholder=\\\" SLA Violation\\\" maxlength=\\\"100\\\" autocomplete=\\\"off\\\" id=\\\"lblSLAViolation\\\" [(ngModel)]=\\\"SLAViolation\\\"\\r\\nvalue=\\\"\\\">\\r\\n</mat-form-field>\\r\\n</div>\\r\\n </div>\\r\\n </div>\\r\\n </div> -->\\r\\n <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n <div id=\\\"Rowwrapper\\\">\\r\\n <div id=\\\"RowtableActions\\\">\\r\\n\\r\\n <div id=\\\"buttonview\\\">\\r\\n <button class=\\\"addButtons btn\\\" mat-accent (click)=\\\"AddCase()\\\" [disabled]=\\\"btnDisabled\\\"><span\\r\\n *ngIf=\\\"data === 'new'\\\">Save</span><span *ngIf=\\\"data === 'edit'\\\">Update</span></button>\\r\\n </div>\\r\\n <div id=\\\"buttonview\\\">\\r\\n <button mat-accent class=\\\"addButtons btn\\\" (click)='Clear()'>Cancel</button>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n\\r\\n <div *ngIf=\\\"data === 'edit'\\\">\\r\\n\\r\\n <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n <div id=\\\"Rowwrapper\\\">\\r\\n <div id=\\\"RowtableActions\\\">\\r\\n <div id=\\\"field\\\">\\r\\n <mat-label *ngIf=\\\"updatedBy !== null\\\">Updated By:<b> {{updatedBy}}</b></mat-label>\\r\\n </div>\\r\\n <div id=\\\"field\\\">\\r\\n <mat-label *ngIf=\\\"updatedDate !== null\\\">Updated Date:<b> {{updatedDate | date:'MM/dd/yyyy'}}</b></mat-label>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <br>\\r\\n <mat-dialog-content class=\\\"warningMsg\\\">{{dataSelf}}</mat-dialog-content>\\r\\n <mat-dialog-content class=\\\"successMsg\\\"></mat-dialog-content>\\r\\n\"","module.exports = \"<mat-dialog-content>Saved Successfully</mat-dialog-content>\\r\\n<mat-dialog-actions align=\\\"center\\\">\\r\\n <div class=\\\"container\\\" fxLayout fxLayout.xs=\\\"column\\\" fxLayoutAlign=\\\"center\\\" fxLayoutGap=\\\"10px\\\" fxLayoutGap.xs=\\\"0\\\">\\r\\n <div class=\\\"item item-3 \\\">\\r\\n <button mat-button mat-accent mat-dialog-close>Ok</button>\\r\\n </div>\\r\\n </div>\\r\\n</mat-dialog-actions>\"","module.exports = \"<link href=\\\"../../assets/css/dmapp.css\\\" rel=\\\"stylesheet\\\" id=\\\"bootstrap-css\\\">\\n\\n<div class=\\\"\\\" id=\\\"container\\\">\\n <span class=\\\"btn-margin\\\" *ngIf=\\\"isSuperAdmin\\\">\\n <button class=\\\"btn btn-default\\\" [routerLink]=\\\"['/organization']\\\" matTooltip=\\\"Back to Organization\\\">Back\\n </button>\\n </span>\\n <div class=\\\"row orgDetails\\\" *ngIf=\\\"organizationDetails\\\">\\n <div class=\\\"col-sm-4 p-t-10\\\">\\n <span><b>Organization Name: </b></span> \\n <span> {{organizationDetails.OrganizationName}}</span>\\n </div>\\n <div class=\\\"col-sm-4 p-t-10\\\">\\n <span><b>Total Licences: </b></span> \\n <span> {{organizationDetails.NoOfLicenses}}</span>\\n </div>\\n <div class=\\\"col-sm-4 p-t-10\\\" *ngIf=\\\"licenseDetails\\\">\\n <span><b>Remaining Licenses: </b></span> \\n <span> {{organizationService.totalLicenses$ | async}}</span>\\n </div>\\n </div>\\n <div id=\\\"\\\">\\n <div id=\\\"tableActions\\\">\\n <div class=\\\"\\\" id=\\\"search\\\" *ngIf=\\\"!isSearchDisable\\\">\\n <mat-form-field style=\\\"margin-top: -5px;\\\" id=\\\"searchField\\\">\\n <mat-placeholder class=\\\"placeholder\\\">Search here</mat-placeholder>\\n <input matInput id=\\\"newGroup\\\" (keyup)=\\\"Searchtext()\\\" [disabled]=\\\"isSearchDisable\\\" name=\\\"search\\\"\\n [(ngModel)]=\\\"searchtext\\\" value=\\\"\\\" autocomplete=\\\"off\\\">\\n </mat-form-field>\\n </div>\\n <div class=\\\"\\\" id=\\\"excelBtn\\\" style=\\\"display: none;\\\" *ngIf=\\\"!isSearchDisable\\\">\\n <button class=\\\"darkbtnbg btn btn-info\\\" [disabled]=\\\"isDisable\\\" matTooltip=\\\"Export as excel\\\"\\n style=\\\"margin-top:11px;cursor: pointer;\\\" (click)=\\\"exportAsXLSX()\\\">\\n Excel\\n </button>\\n </div>\\n <div class=\\\"\\\" id=\\\"createBtn\\\" *ngIf=\\\"!isSuperAdmin\\\">\\n <button mat-accent class=\\\"darkbtnbg btn btn-info\\\"\\n [disabled]=\\\"(isCompanyLogin && CompanyID) || isSubCompanyLogin\\\" (click)='OpenCompany()'\\n style=\\\"margin-top: 11px;\\\" matTooltip=\\\"New Entity\\\">New </button>\\n </div>\\n </div>\\n </div>\\n</div>\\n\\n<div class=\\\"tableDiv mt-20\\\">\\n <table>\\n <thead>\\n <tr>\\n <th class=\\\"pointer\\\" (click)=\\\"sort('CompanyName')\\\"> Entity\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n <th class=\\\"pointer\\\" (click)=\\\"sort('Email')\\\"> Email\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n <th class=\\\"pointer\\\" (click)=\\\"sort('Phone1')\\\"> Phone\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n <th class=\\\"pointer\\\" (click)=\\\"sort('NoOfSubCompanies')\\\"> Sub Entities\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n <th>\\n Enable Score Card\\n </th>\\n <th action>Action</th>\\n </tr>\\n </thead>\\n <tbody>\\n <!---->\\n <tr\\n *ngFor=\\\"let element of companyData | paginate: { itemsPerPage: rowsOnPage, currentPage: p } | sort: {property: column, direction: direction}; let i = index\\\"\\n id=\\\"trRow\\\" [ngClass]=\\\"element.CompanyID === currentRow ? 'highlight' : ''\\\">\\n <td> {{element.CompanyName}}</td>\\n <td>{{element.Email}} </td>\\n <td> {{element.Phone1}} </td>\\n <td> {{element.NoOfSubCompanies ? element.NoOfSubCompanies : 0}} </td>\\n <td>\\n <span *ngIf=\\\"isSuperAdmin || !isCompanyLogin\\\">\\n <mat-slide-toggle [color]=\\\"color\\\" [(ngModel)]=\\\"element.EnableScoreCard\\\" [checked]=\\\"element.EnableScoreCard\\\"\\n (change)='enableScoreCardChange($event,element)'></mat-slide-toggle>\\n </span>\\n <span *ngIf=\\\"!isSuperAdmin && isCompanyLogin\\\">\\n {{element.EnableScoreCard ? 'Yes' : 'No'}}\\n </span>\\n </td>\\n <td style=\\\"cursor:pointer;\\\">\\n <span>\\n <a matTooltip=\\\"View Sub Entities\\\"\\n [attr.disabled]=\\\"(element.NoOfSubCompanies || element.NoOfSubCompanies == 0) ? false: true\\\"\\n (click)=\\\"viewSubEntities(element)\\\"\\n [style.pointer-events]=\\\"element.NoOfSubCompanies == 0 ? 'none' : 'auto'\\\"\\n [ngClass]=\\\"{'removeColor':(element.NoOfSubCompanies == 0),'AddColor':(element.NoOfSubCompanies != 0)}\\\">\\n <i style=\\\"cursor: pointer;\\\" class=\\\"fa fa-eye \\\" aria-hidden=\\\"true\\\"></i>\\n </a> \\n <a matTooltip=\\\"Edit Entity\\\"\\n [style.pointer-events]=\\\"(isCompanyLogin && CompanyID) || (isSubCompanyLogin) ? 'none' : 'auto'\\\"\\n [ngClass]=\\\"{'removeColor':((isCompanyLogin && CompanyID) || (isSubCompanyLogin)),'AddColor':(!(isCompanyLogin && CompanyID) || (!isSubCompanyLogin))}\\\"\\n class=\\\"fontLabel\\\" (click)=\\\"EditCompany(element)\\\"><i style=\\\"cursor: pointer;\\\"\\n class=\\\"fa fa-pencil-square-o \\\" aria-hidden=\\\"true\\\"></i></a>\\n <a matTooltip=\\\"Delete Entity\\\" class=\\\"fontLabel\\\"\\n [style.pointer-events]=\\\"(isCompanyLogin && CompanyID) || (isSubCompanyLogin) ? 'none' : 'auto'\\\"\\n [ngClass]=\\\"{'removeColor':((isCompanyLogin && CompanyID) || (isSubCompanyLogin)),'AddColor':(!(isCompanyLogin && CompanyID) || (!isSubCompanyLogin))}\\\"\\n (click)=\\\"DeleteCompany(element)\\\"><i style=\\\"cursor: pointer;\\\" class=\\\"fa fa-trash-o \\\"\\n aria-hidden=\\\"true\\\"></i></a>\\n <a matTooltip=\\\"Add user\\\" style=\\\"display: none;\\\" (click)=\\\"AddUser(element)\\\"><i\\n class=\\\"fa fa-user\\\" aria-hidden=\\\"true\\\"></i></a>\\n\\n <a style=\\\"cursor: pointer; color: #3775b5; width: 20px; size: 2px;\\\" class=\\\"rightArrow\\\"\\n matTooltip=\\\"Login with {{element.CompanyName}} entity\\\" (click)=\\\"Navigate(element)\\\"><i\\n class=\\\"fa fa-arrow-circle-right fa-5x\\\"></i></a>\\n </span>\\n </td>\\n </tr>\\n </tbody>\\n </table>\\n <br>\\n <div class=\\\"warningMsg\\\" *ngIf=\\\"(companyData === null||companyData===undefined || companyData.length === 0)\\\">\\n <span>No data available</span>\\n </div>\\n</div>\\n<div class=\\\"pageContainer\\\" style=\\\"display: none;\\\" *ngIf=\\\"companyPaging && companyData.length>0\\\">\\n <div class=\\\"rowsSelection\\\">\\n <mat-form-field style=\\\"width: 50px; margin-top: -15px;\\\">\\n <mat-select [(ngModel)]=\\\"rowsOnPage\\\">\\n <mat-option *ngFor=\\\"let row of rowsOnPageSet\\\" [value]=\\\"row\\\">\\n {{row}}\\n </mat-option>\\n </mat-select>\\n </mat-form-field>\\n </div>\\n <div class=\\\"pageSelection\\\">\\n <pagination-controls (pageChange)=\\\"p = $event\\\"></pagination-controls>\\n </div>\\n</div>\\n\\n<app-sub-company *ngIf=\\\"showSubEntities\\\" [remainingEntityLicenses]=\\\"remainingEntityLicenses\\\"\\n [entityLicenses]=\\\"entityLicenses\\\" [subCompanyCount]=\\\"subCompanyCount\\\" [entityName]=\\\"entityName\\\"\\n [isSuperAdmin]=\\\"isSuperAdmin\\\" [companyId]=\\\"parentCompanyId\\\" [organizationId]=\\\"organizationId\\\">\\n</app-sub-company>\"","module.exports = \"<link href=\\\"../../assets/css/dmapp.css\\\" rel=\\\"stylesheet\\\" id=\\\"bootstrap-css\\\">\\r\\n\\r\\n<div\\r\\n *ngIf=\\\"data !== 'new' && data !== 'edit' && data!='log'&& data !== 'progress' && data !== 'status' && !userVisible\\\">\\r\\n <mat-dialog-content>{{data}}</mat-dialog-content>\\r\\n <mat-dialog-actions align=\\\"center\\\">\\r\\n <div *ngIf=\\\"condition\\\">\\r\\n <button mat-raised-button mat-accent mat-dialog-close (click)=\\\"onNoClick()\\\">No</button>\\r\\n <!-- Can optionally provide a result for the closing dialog. -->\\r\\n <button mat-raised-button mat-accent [mat-dialog-close]=\\\"true\\\" (click)=\\\"onYesClick()\\\">Yes</button>\\r\\n </div>\\r\\n <div *ngIf=\\\"!condition && data !== 'progress' && data !== 'status' && !userVisible\\\">\\r\\n <div class=\\\"container\\\" fxLayout fxLayout.xs=\\\"column\\\" fxLayoutAlign=\\\"center\\\" fxLayoutGap=\\\"10px\\\" fxLayoutGap.xs=\\\"0\\\">\\r\\n <div class=\\\"item item-3 \\\">\\r\\n <button mat-button mat-accent mat-dialog-close>Ok</button>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </mat-dialog-actions>\\r\\n</div>\\r\\n\\r\\n<div *ngIf=\\\"data === 'new' || data === 'edit' && !userVisible && data!= 'user'\\\">\\r\\n <br>\\r\\n\\r\\n <div class=\\\"XBtn\\\">\\r\\n <span (click)=\\\"clear()\\\" matTooltip=\\\"Close\\\" class=\\\"close\\\">×</span>\\r\\n </div>\\r\\n\\r\\n <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n <div id=\\\"Rowheading\\\">\\r\\n <h4 class=\\\"alignheader\\\"><b><span *ngIf=\\\"data === 'new'\\\">Add </span>{{data | titlecase}} Entity</b></h4>\\r\\n <!-- <span (click)=\\\"Clear()\\\" matTooltip=\\\"Close\\\" class=\\\"close\\\">×</span> -->\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <div class=\\\"inputFields\\\">\\r\\n <div id=\\\"field1\\\">\\r\\n <mat-form-field>\\r\\n <input matInput autocomplete=\\\"off\\\" (keyup)=\\\"validate()\\\" maxlength=\\\"50\\\" id=\\\"lblCompanyName\\\"\\r\\n [(ngModel)]=\\\"companyDetails.CompanyName\\\" value=\\\"\\\">\\r\\n <mat-placeholder>Entity name <span style=\\\"color:red; font-size: 16px;\\\">*</span></mat-placeholder>\\r\\n </mat-form-field>\\r\\n </div>\\r\\n <div id=\\\"field2\\\">\\r\\n <mat-form-field>\\r\\n <input matInput autocomplete=\\\"off\\\" maxlength=\\\"30\\\" id=\\\"lblFirstName\\\" [(ngModel)]=\\\"companyDetails.FirstName\\\"\\r\\n value=\\\"\\\">\\r\\n <mat-placeholder>User First Name <span style=\\\"color:red; font-size: 16px;\\\">*</span></mat-placeholder>\\r\\n </mat-form-field>\\r\\n </div>\\r\\n <div id=\\\"field3\\\">\\r\\n <mat-form-field>\\r\\n <input matInput autocomplete=\\\"off\\\" maxlength=\\\"30\\\" id=\\\"lblLastName\\\" [(ngModel)]=\\\"companyDetails.LastName\\\"\\r\\n value=\\\"\\\">\\r\\n <mat-placeholder>User Last Name <span style=\\\"color:red; font-size: 16px;\\\">*</span></mat-placeholder>\\r\\n </mat-form-field>\\r\\n </div>\\r\\n <div id=\\\"fiel4\\\">\\r\\n <mat-form-field>\\r\\n <textarea matInput autocomplete=\\\"off\\\" maxlength=\\\"200\\\" id=\\\"lblAddress1\\\" [(ngModel)]=\\\"companyDetails.Address1\\\"\\r\\n value=\\\"\\\"></textarea>\\r\\n <mat-placeholder>Address Line 1 <span style=\\\"color:red; font-size: 16px;\\\">*</span></mat-placeholder>\\r\\n </mat-form-field>\\r\\n </div>\\r\\n <div id=\\\"field5\\\">\\r\\n <mat-form-field>\\r\\n <textarea matInput placeholder=\\\"Address Line 2\\\" autocomplete=\\\"off\\\" maxlength=\\\"200\\\" id=\\\"lblAddress2\\\"\\r\\n [(ngModel)]=\\\"companyDetails.Address2\\\" value=\\\"\\\"></textarea>\\r\\n </mat-form-field>\\r\\n </div>\\r\\n <div id=\\\"field6\\\">\\r\\n <mat-form-field>\\r\\n <input matInput autocomplete=\\\"off\\\" maxlength=\\\"50\\\" id=\\\"lblCountry\\\" [(ngModel)]=\\\"companyDetails.Country\\\" value=\\\"\\\"\\r\\n (keypress)=\\\"isAlpha($event)\\\">\\r\\n <mat-placeholder>Country <span style=\\\"color:red; font-size: 16px;\\\">*</span></mat-placeholder>\\r\\n </mat-form-field>\\r\\n </div>\\r\\n <div id=\\\"field7\\\">\\r\\n <mat-form-field>\\r\\n <input matInput maxlength=\\\"50\\\" id=\\\"lblState\\\" [(ngModel)]=\\\"companyDetails.State\\\" value=\\\"\\\"\\r\\n (keypress)=\\\"isAlpha($event)\\\">\\r\\n <mat-placeholder>State <span style=\\\"color:red; font-size: 16px;\\\">*</span></mat-placeholder>\\r\\n </mat-form-field>\\r\\n </div>\\r\\n <div id=\\\"field8\\\">\\r\\n <mat-form-field>\\r\\n <input matInput autocomplete=\\\"off\\\" maxlength=\\\"50\\\" id=\\\"lblCity\\\" [(ngModel)]=\\\"companyDetails.City\\\" value=\\\"\\\"\\r\\n (keypress)=\\\"isAlpha($event)\\\">\\r\\n <mat-placeholder>City <span style=\\\"color:red; font-size: 16px;\\\">*</span></mat-placeholder>\\r\\n </mat-form-field>\\r\\n </div>\\r\\n <div id=\\\"field9\\\">\\r\\n <mat-form-field>\\r\\n <input matInput autocomplete=\\\"off\\\" onpaste=\\\"return false\\\" oncut=\\\"return false\\\"\\r\\n (keypress)=\\\"validatePhone($event)\\\" minlength=\\\"5\\\" maxlength=\\\"5\\\" id=\\\"lblPincode\\\"\\r\\n [(ngModel)]=\\\"companyDetails.Pincode\\\" value=\\\"\\\">\\r\\n <mat-placeholder>Zipcode <span style=\\\"color:red; font-size: 16px;\\\">*</span></mat-placeholder>\\r\\n </mat-form-field>\\r\\n </div>\\r\\n <div id=\\\"field10\\\">\\r\\n <mat-form-field>\\r\\n <input matInput (keypress)=\\\"validatePhone($event)\\\" (blur)=\\\"valZero()\\\" onpaste=\\\"return false\\\"\\r\\n oncut=\\\"return false\\\" autocomplete=\\\"off\\\" maxlength=\\\"16\\\" id=\\\"lblPhone1\\\" [(ngModel)]=\\\"companyDetails.Phone1\\\"\\r\\n value=\\\"\\\">\\r\\n <mat-placeholder>Phone1 <span style=\\\"color:red; font-size: 16px;\\\">*</span></mat-placeholder>\\r\\n </mat-form-field>\\r\\n </div>\\r\\n <div id=\\\"field11\\\">\\r\\n <mat-form-field>\\r\\n <input matInput (keypress)=\\\"validatePhone($event)\\\" (blur)=\\\"valZero()\\\" placeholder=\\\" Phone2\\\"\\r\\n onpaste=\\\"return false\\\" oncut=\\\"return false\\\" autocomplete=\\\"off\\\" maxlength=\\\"16\\\" id=\\\"lblPhone2\\\"\\r\\n [(ngModel)]=\\\"companyDetails.Phone2\\\" value=\\\"\\\">\\r\\n </mat-form-field>\\r\\n </div>\\r\\n <div id=\\\"field12\\\">\\r\\n <mat-form-field>\\r\\n <input matInput (keypress)=\\\"validateEmail($event)\\\" autocomplete=\\\"off\\\" maxlength=\\\"50\\\" id=\\\"lblEmail\\\"\\r\\n [(ngModel)]=\\\"companyDetails.Email\\\" value=\\\"\\\">\\r\\n <mat-placeholder>Email<span style=\\\"color:red; font-size: 16px;\\\">*</span></mat-placeholder>\\r\\n </mat-form-field>\\r\\n </div>\\r\\n <div id=\\\"field14\\\">\\r\\n <br>\\r\\n <mat-slide-toggle [(ngModel)]=\\\"companyDetails.EnableSubCompanies\\\"\\r\\n [disabled]=\\\"subCompanyCount > 0 || (data === 'new' && licenseDetails && licenseDetails.NotUsedLicenses == 0) || (remainingEntityLicenses == 0)\\\"\\r\\n (change)=\\\"enableSubCompanies($event,companyDetails)\\\" [checked]=\\\"companyDetails.EnableSubCompanies\\\">\\r\\n Enable Sub Entities\\r\\n </mat-slide-toggle>\\r\\n\\r\\n </div>\\r\\n <div id=\\\"field15\\\" *ngIf=\\\"companyDetails.EnableSubCompanies\\\">\\r\\n <mat-form-field>\\r\\n <input matInput autocomplete=\\\"off\\\" maxlength=\\\"10\\\" id=\\\"lblNoOfSubCompanies\\\"\\r\\n [(ngModel)]=\\\"companyDetails.NoOfSubCompanies\\\" min=\\\"0\\\"\\r\\n oninput=\\\"this.value = this.value.replace(/[^0-9]/g, '').replace(/(\\\\..*)\\\\./g, '$1');\\\">\\r\\n <mat-placeholder>No Of Sub Entities<span style=\\\"color:red; font-size: 16px;\\\">*</span></mat-placeholder>\\r\\n </mat-form-field>\\r\\n </div>\\r\\n </div>\\r\\n <h4 class=\\\"alignheader\\\" id=\\\"headingAdmin\\\"><b>Admin details</b></h4>\\r\\n <div class=\\\"loginField\\\">\\r\\n <div id=\\\"field13\\\">\\r\\n <mat-form-field>\\r\\n <input matInput autocomplete=\\\"off\\\" maxlength=\\\"50\\\" id=\\\"lblUserName\\\" [(ngModel)]=\\\"companyDetails.UserName\\\"\\r\\n value=\\\"\\\">\\r\\n <mat-placeholder>UserName <span style=\\\"color:red; font-size: 16px;\\\">*</span></mat-placeholder>\\r\\n </mat-form-field>\\r\\n </div>\\r\\n <div id=\\\"field14\\\">\\r\\n <mat-form-field>\\r\\n <input matInput type=\\\"password\\\" autocomplete=\\\"off\\\" autocomplete=\\\"off\\\" maxlength=\\\"100\\\"\\r\\n [(ngModel)]=\\\"companyDetails.Password\\\" value=\\\"\\\">\\r\\n <mat-placeholder>Password <span style=\\\"color:red; font-size: 16px;\\\">*</span></mat-placeholder>\\r\\n </mat-form-field>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n <div id=\\\"Rowwrapper\\\">\\r\\n <div id=\\\"RowtableActions\\\">\\r\\n <div id=\\\"buttonview\\\">\\r\\n <button class=\\\"addButtons btn\\\" mat-accent (click)=\\\"vaidateCompany();\\\" [disabled]=\\\"btnDisabled\\\"><span\\r\\n *ngIf=\\\"data === 'new'\\\">Save</span><span *ngIf=\\\"data === 'edit'\\\">Update</span></button>\\r\\n </div>\\r\\n <div id=\\\"buttonview\\\">\\r\\n <button mat-accent class=\\\"addButtons btn\\\" (click)='clear()'>Cancel</button>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n\\r\\n <div *ngIf=\\\"data === 'user' && userVisible\\\">\\r\\n <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n <div id=\\\"Rowwrapper\\\">\\r\\n <div id=\\\"RowtableAction\\\">\\r\\n <div id=\\\"field\\\">\\r\\n <mat-form-field style=\\\"margin-top: 10px\\\">\\r\\n <input matInput autocomplete=\\\"off\\\" autocomplete=\\\"off\\\" maxlength=\\\"100\\\" [(ngModel)]=\\\"UserName\\\" value=\\\"\\\">\\r\\n <mat-placeholder>Username <span style=\\\"color:red; font-size: 16px;\\\">*</span></mat-placeholder>\\r\\n </mat-form-field>\\r\\n </div>\\r\\n <div id=\\\"field\\\">\\r\\n <mat-form-field style=\\\"margin-top: 10px\\\">\\r\\n <input matInput type=\\\"password\\\" autocomplete=\\\"off\\\" autocomplete=\\\"off\\\" maxlength=\\\"100\\\"\\r\\n [(ngModel)]=\\\"Password\\\" value=\\\"\\\">\\r\\n <mat-placeholder>Password <span style=\\\"color:red; font-size: 16px;\\\">*</span></mat-placeholder>\\r\\n </mat-form-field>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n <div id=\\\"Rowwrapper\\\">\\r\\n <div id=\\\"RowtableActions\\\">\\r\\n <div id=\\\"buttonview\\\">\\r\\n <button class=\\\"addButtons btn\\\" mat-accent (click)=\\\"SaveUser()\\\">Save</button>\\r\\n </div>\\r\\n <div id=\\\"buttonview\\\">\\r\\n <button mat-accent class=\\\"addButtons btn\\\" (click)='clear()'>Cancel</button>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n <mat-dialog-content class=\\\"warningMsg\\\">{{dataSelf}}</mat-dialog-content>\\r\\n <mat-dialog-content class=\\\"successMsg\\\"></mat-dialog-content>\"","module.exports = \"<style>\\n.dots {\\n display: inline-block;\\n width: 80px;\\n white-space: nowrap;\\n overflow: hidden !important;\\n text-overflow: ellipsis;\\n \\n }\\n</style>\\n<div class=\\\"dbHead\\\">\\n <div class=\\\"dbName\\\">\\n <h5>Frustrations Count</h5>\\n </div>\\n <div class=\\\"dbActions\\\">\\n<button class=\\\"darkbtnbg btn btn-info\\\" matTooltip=\\\"Back to process map\\\" [routerLink]=\\\"['/processMap']\\\" >Back To Process Map</button>\\n\\n </div>\\n</div>\\n<div style=\\\"text-align:center;\\\" *ngIf='totalFCount==0'><span style=\\\"color:red;\\\" > No Frustrations found </span></div>\\n<div style=\\\"overflow-y: hidden;overflow-x: scroll;\\\">\\n<div class=\\\"row\\\" style=\\\"flex-wrap: nowrap;max-width: 150px;\\\" > \\n \\n<div class=\\\"squareInActvty\\\" *ngIf='totalFCount!=0' style=\\\"margin-left: 14px; width:100px\\\">\\n <div style=\\\"margin-top:6%; width:100px;\\\" ><span style=\\\"font-size:12px;\\\">Total</span> <br> <span>{{totalFCount}}</span></div>\\n </div> \\n <div *ngFor=\\\"let json of dashBoardJson\\\">\\n <div class=\\\"squareInActvty col-sm\\\" *ngIf=\\\"json.Issues\\\" >\\n <div style=\\\"margin-top:6%;\\\" ><span class=\\\"dots\\\" style=\\\"font-size:12px;\\\" matTooltip={{json.process}} > {{json.process}}</span> <br> <span>{{json.Issues}}</span></div>\\n </div>\\n </div>\\n</div>\\n</div>\\n\\n\\n<div class=\\\"row\\\">\\n <div class=\\\"col-lg-8\\\"></div>\\n <div class=\\\"col-lg-4\\\">\\n \\n </div></div>\\n\\n\\n <div class=\\\"row\\\">\\n\\n <div class=\\\"col-lg-12\\\" style=\\\"padding-top:10px;\\\"> <div class=\\\"card shadow\\\">\\n <div class=\\\"card-body\\\" >\\n <app-report-process [dashboardProcess]='dashboardProcess'[dashboardPr]='dashboardPr' [dashboardTeamPr]='dashboardTeamPr'></app-report-process>\\n </div>\\n </div>\\n </div>\\n </div>\\n\\n<div class=\\\"row\\\">\\n\\n <div class=\\\"col-lg-12\\\" style=\\\"padding-top:10px; \\\">\\n <div class=\\\"card shadow\\\">\\n <div class=\\\"card-body\\\">\\n <app-report-category [dashboard]=\\\"dashboard\\\" [dashboardCat]=\\\"dashboardCat\\\" [dashboardTeamCat]='dashboardTeamCat'></app-report-category>\\n </div>\\n</div>\\n</div>\\n</div>\\n\\n\\n\\n<div class=\\\"row\\\">\\n <div class=\\\"col-lg-12\\\" style=\\\"padding-top:10px;\\\"> <div class=\\\"card shadow\\\">\\n <div class=\\\"card-body\\\" >\\n <app-report-hipriority [dashboardSeverity]='dashboardSeverity' [dashboardSev]='dashboardSev' [dashboardTeamSeverity]='dashboardTeamSeverity' ></app-report-hipriority>\\n </div>\\n </div>\\n \\n </div>\\n </div>\\n <div class=\\\"row\\\">\\n <div class=\\\"col-lg-12\\\" style=\\\"padding-top:10px; \\\">\\n <div class=\\\"card shadow\\\">\\n <div class=\\\"card-body\\\" >\\n <app-report-metric-process [dashboardMetric]='dashboardMetric' [dashboardMe]='dashboardMe' [dashboardTeam]='dashboardTeam'></app-report-metric-process>\\n </div>\\n </div> </div>\\n </div>\\n<div class=\\\"row\\\">\\n <div class=\\\"col-lg-12\\\" style=\\\"padding-top:10px;\\\"> <div class=\\\"card shadow\\\">\\n <div class=\\\"card-body\\\" >\\n <app-report-project [dashboardProject]='dashboardProject' [dashboardPro]='dashboardPro' ></app-report-project>\\n </div>\\n </div>\\n\\n </div>\\n</div>\\n\\n\\n\\n \\n \\n\"","module.exports = \"<link href=\\\"../../assets/css/dmapp.css\\\" rel=\\\"stylesheet\\\" id=\\\"bootstrap-css\\\">\\n<div class=\\\"row\\\" id=\\\"container\\\">\\n <div class=\\\"\\\" id=\\\"heading\\\">\\n <h4 style=\\\"white-space: nowrap;\\\">Departments</h4>\\n </div>\\n <div id=\\\"wrapper\\\">\\n <div id=\\\"tableActions\\\">\\n <div class=\\\"\\\" id=\\\"search\\\" *ngIf=\\\"!disableSearch\\\">\\n <mat-form-field style=\\\"margin-top: -5px;\\\" id=\\\"searchField\\\">\\n <mat-placeholder class=\\\"placeholder\\\">Search here</mat-placeholder>\\n <input matInput id=\\\"newGroup\\\" [disabled]=\\\"disableSearch\\\" (keyup)=\\\"searchText()\\\" name=\\\"search\\\"\\n [(ngModel)]=\\\"searchtext\\\" value=\\\"\\\" autocomplete=\\\"off\\\">\\n </mat-form-field>\\n </div>\\n <div class=\\\"\\\" id=\\\"excelBtn\\\" *ngIf=\\\"!disableSearch\\\">\\n <button class=\\\"darkbtnbg btn btn-info\\\" style=\\\"margin-top:11px;cursor: pointer;\\\" [disabled]=\\\"isDisable\\\"\\n matTooltip=\\\"Export as excel\\\" (click)=\\\"exportAsXLSX()\\\">\\n Excel\\n </button>\\n </div>\\n <div class=\\\"\\\" id=\\\"createBtn\\\">\\n <button mat-accent class=\\\"darkbtnbg btn btn-info\\\" style=\\\"margin-top: 11px;\\\" (click)='newDepartment()'\\n [disabled]=\\\"!MenuPermissions[menuName][menuID]['C'] || (employeeDetails && (employeeDetails.IsEmployeeLoginLevel == 'Department' || employeeDetails.IsEmployeeLoginLevel == 'Team'))\\\"\\n matTooltip=\\\"New Department\\\">New</button>\\n </div>\\n </div>\\n </div>\\n</div>\\n<div class=\\\"tableDiv\\\">\\n <table>\\n <thead>\\n <tr>\\n\\n <th cName class=\\\"pointer\\\" (click)=\\\"sort('DepartmentName')\\\"> Department Name\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n\\n <th cName class=\\\"pointer\\\" (click)=\\\"sort('DepartmentDescription')\\\"> Description\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n\\n <th action>Action</th>\\n </tr>\\n </thead>\\n <tbody>\\n\\n <tr\\n *ngFor=\\\"let dept of DepartmentList | paginate: { itemsPerPage: rowsOnPage, currentPage: p } | sort: {property: column, direction: direction}; let i = index\\\">\\n <td> {{dept.DepartmentName}}</td>\\n <td> {{dept.DepartmentDescription}}</td>\\n <td style=\\\" cursor:pointer;\\\">\\n <span>\\n <a matTooltip=\\\"Edit Department\\\" (click)=\\\"editDepartment(dept)\\\" [style.pointer-events]=\\\"(!MenuPermissions[menuName][menuID]['U'] || \\n (employeeDetails && \\n (employeeDetails.IsEmployeeLoginLevel == 'Department' || employeeDetails.IsEmployeeLoginLevel == 'Team'))\\n )?'none':'auto'\\\"\\n [ngClass]=\\\"{'removeColor':(!MenuPermissions[menuName][menuID]['U'] || \\n (employeeDetails && (employeeDetails.IsEmployeeLoginLevel == 'Team' || employeeDetails.IsEmployeeLoginLevel == 'Department'))\\n ),\\n 'AddColor':(MenuPermissions[menuName][menuID]['U'] || \\n (employeeDetails && (employeeDetails.IsEmployeeLoginLevel == 'Department' || employeeDetails.IsEmployeeLoginLevel == 'Team')))}\\\"><i\\n style=\\\"cursor: pointer;\\\" class=\\\"fa fa-pencil-square-o \\\" aria-hidden=\\\"true\\\"></i></a>\\n <a matTooltip=\\\"Delete Department\\\"\\n (click)=\\\"deleteDepartment(dept)\\\" [style.pointer-events]=\\\"(!MenuPermissions[menuName][menuID]['D'] || \\n (employeeDetails && (employeeDetails.IsEmployeeLoginLevel == 'Department' || employeeDetails.IsEmployeeLoginLevel == 'Team'))\\n ) ? 'none' : 'auto'\\\"\\n [ngClass]=\\\"{'removeColor':(!MenuPermissions[menuName][menuID]['D'] || \\n (employeeDetails && (employeeDetails.IsEmployeeLoginLevel == 'Department' || employeeDetails.IsEmployeeLoginLevel == 'Team'))\\n ),\\n 'AddColor':(MenuPermissions[menuName][menuID]['D'] || \\n (employeeDetails && (employeeDetails.IsEmployeeLoginLevel == 'Department' || employeeDetails.IsEmployeeLoginLevel == 'Team')))}\\\"><i\\n style=\\\"cursor: pointer;\\\" class=\\\"fa fa-trash-o \\\" aria-hidden=\\\"true\\\"></i></a>\\n </span>\\n </td>\\n </tr>\\n </tbody>\\n </table>\\n <br>\\n <div class=\\\"warningMsg\\\"\\n *ngIf=\\\"(DepartmentList === null||DepartmentList===undefined || DepartmentList.length === 0)\\\">\\n <span>No data available</span>\\n </div>\\n</div>\\n<div class=\\\"pageContainer\\\" *ngIf=\\\"departmentPaging && DepartmentList.length>0\\\">\\n <div class=\\\"rowsSelection\\\">\\n <mat-form-field style=\\\"width: 50px; margin-top: -15px;\\\">\\n <mat-select [(ngModel)]=\\\"rowsOnPage\\\">\\n <mat-option *ngFor=\\\"let row of rowsOnPageSet\\\" [value]=\\\"row\\\">\\n {{row}}\\n </mat-option>\\n </mat-select>\\n </mat-form-field>\\n </div>\\n <div class=\\\"pageSelection\\\">\\n <pagination-controls (pageChange)=\\\"p = $event\\\"></pagination-controls>\\n </div>\\n</div>\\n\"","module.exports = \"<link href=\\\"../../assets/css/dmapp.css\\\" rel=\\\"stylesheet\\\" id=\\\"bootstrap-css\\\">\\r\\n\\r\\n<div *ngIf=\\\"data !== 'new' && data !== 'edit' \\\">\\r\\n <mat-dialog-content>{{data}}</mat-dialog-content>\\r\\n <mat-dialog-actions align=\\\"center\\\">\\r\\n <div *ngIf=\\\"condition\\\">\\r\\n <button mat-raised-button mat-accent mat-dialog-close (click)=\\\"onNoClick()\\\">No</button>\\r\\n <!-- Can optionally provide a result for the closing dialog. -->\\r\\n <button mat-raised-button mat-accent [mat-dialog-close]=\\\"true\\\" (click)=\\\"onYesClick()\\\">Yes</button>\\r\\n </div>\\r\\n <div *ngIf=\\\"!condition \\\">\\r\\n <div class=\\\"container\\\" fxLayout fxLayout.xs=\\\"column\\\" fxLayoutAlign=\\\"center\\\" fxLayoutGap=\\\"10px\\\"\\r\\n fxLayoutGap.xs=\\\"0\\\">\\r\\n <div class=\\\"item item-3 \\\">\\r\\n <button mat-button mat-accent mat-dialog-close>Ok</button>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </mat-dialog-actions>\\r\\n</div>\\r\\n\\r\\n\\r\\n<div *ngIf=\\\"data === 'new' || data === 'edit'\\\">\\r\\n <br>\\r\\n <div class=\\\"XBtn\\\">\\r\\n <span (click)=\\\"Clear()\\\" matTooltip=\\\"Close\\\" class=\\\"close\\\">×</span>\\r\\n </div>\\r\\n <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n <div id=\\\"Rowheading\\\">\\r\\n <h4 class=\\\"alignheader\\\" style=\\\"white-space: nowrap;\\\"><b>{{data | titlecase}} Department</b></h4>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n <div id=\\\"Rowwrapper\\\">\\r\\n <div id=\\\"RowtableActions\\\">\\r\\n <div id=\\\"field\\\">\\r\\n <mat-form-field>\\r\\n <input matInput autocomplete=\\\"off\\\" maxlength=\\\"100\\\" [(ngModel)]=\\\"DepartmentName\\\" value=\\\"\\\">\\r\\n <mat-placeholder>Department Name <span style=\\\"color:red; font-size: 15px;;\\\">*</span>\\r\\n </mat-placeholder>\\r\\n </mat-form-field>\\r\\n </div>\\r\\n <div id=\\\"field\\\">\\r\\n <mat-form-field>\\r\\n <input matInput placeholder=\\\"Department Description\\\" autocomplete=\\\"off\\\" maxlength=\\\"500\\\"\\r\\n [(ngModel)]=\\\"DepartmentDescription\\\" value=\\\"\\\">\\r\\n </mat-form-field>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n <div id=\\\"Rowwrapper\\\">\\r\\n <div id=\\\"RowtableActions\\\">\\r\\n <div id=\\\"buttonview\\\">\\r\\n <button class=\\\"addButtons btn\\\" mat-accent (click)=\\\"validateDepartment()\\\"><span\\r\\n *ngIf=\\\"data === 'new'\\\">Save</span><span *ngIf=\\\"data === 'edit'\\\">Update</span></button>\\r\\n </div>\\r\\n <div id=\\\"buttonview\\\">\\r\\n <button mat-accent class=\\\"addButtons btn\\\" (click)='Clear()'>Cancel</button>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n <br>\\r\\n <mat-dialog-content class=\\\"warningMsg\\\">{{dataSelf}}</mat-dialog-content>\\r\\n <mat-dialog-content class=\\\"successMsg\\\"></mat-dialog-content>\\r\\n\"","module.exports = \"<link href=\\\"../../assets/css/dmapp.css\\\" rel=\\\"stylesheet\\\" id=\\\"bootstrap-css\\\">\\r\\n<div\\r\\n *ngIf=\\\"data !== 'new' && data !== 'edit' && data!='log'&& data !== 'progress' && data !== 'status'&& !userVisible\\\">\\r\\n <mat-dialog-content>{{data}}</mat-dialog-content>\\r\\n <mat-dialog-actions align=\\\"center\\\">\\r\\n <div *ngIf=\\\"condition\\\">\\r\\n <button mat-raised-button mat-accent mat-dialog-close (click)=\\\"onNoClick()\\\">No</button>\\r\\n <!-- Can optionally provide a result for the closing dialog. -->\\r\\n <button mat-raised-button mat-accent [mat-dialog-close]=\\\"true\\\" (click)=\\\"onYesClick()\\\">Yes</button>\\r\\n </div>\\r\\n <div *ngIf=\\\"!condition && data !== 'progress' && data !== 'status'&& !userVisible\\\">\\r\\n <div class=\\\"container\\\" fxLayout fxLayout.xs=\\\"column\\\" fxLayoutAlign=\\\"center\\\" fxLayoutGap=\\\"10px\\\" fxLayoutGap.xs=\\\"0\\\">\\r\\n <div class=\\\"item item-3 \\\">\\r\\n <button mat-button mat-accent mat-dialog-close>Ok</button>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </mat-dialog-actions>\\r\\n</div>\\r\\n\\r\\n<div *ngIf=\\\"data === 'new' || data === 'edit' && data!= 'user'\\\">\\r\\n <br>\\r\\n <div class=\\\"XBtn\\\">\\r\\n <span (click)=\\\"Clear()\\\" matTooltip=\\\"Close\\\" class=\\\"close\\\">×</span>\\r\\n </div>\\r\\n <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n <div id=\\\"Rowheading\\\">\\r\\n <h4 class=\\\"alignheader\\\"><b>{{data | titlecase}} Employee</b></h4>\\r\\n\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"inputFields\\\">\\r\\n <div>\\r\\n <mat-form-field>\\r\\n <input matInput autocomplete=\\\"off\\\" maxlength=\\\"50\\\" id=\\\"lblFirstName\\\" [(ngModel)]=\\\"FirstName\\\" value=\\\"\\\">\\r\\n <mat-placeholder>User First Name <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n </mat-form-field>\\r\\n </div>\\r\\n <div>\\r\\n <mat-form-field>\\r\\n <input matInput autocomplete=\\\"off\\\" maxlength=\\\"50\\\" id=\\\"lblLastName\\\" [(ngModel)]=\\\"LastName\\\" value=\\\"\\\">\\r\\n <mat-placeholder>User Last Name <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n </mat-form-field>\\r\\n </div>\\r\\n <div>\\r\\n <mat-form-field>\\r\\n <mat-label> Employee Level<span style=\\\"color:red; font-size: 15px;\\\">*</span></mat-label>\\r\\n <mat-select [disabled]=\\\"EmployeeID > 0 && isTeamAssigned\\\" (selectionChange)=\\\"loginLevelChange()\\\"\\r\\n [(ngModel)]=\\\"selectedLoginLevel\\\">\\r\\n <mat-option [value]=\\\"null\\\">Select</mat-option>\\r\\n <mat-option *ngFor=\\\"let loginLevel of employeeLoginLevelList;\\\" [value]=\\\"loginLevel\\\">\\r\\n {{loginLevel}}\\r\\n </mat-option>\\r\\n </mat-select>\\r\\n </mat-form-field>\\r\\n </div>\\r\\n <div\\r\\n *ngIf=\\\"selectedLoginLevel && (selectedLoginLevel === employeeLoginLevel.Department || selectedLoginLevel === employeeLoginLevel.Team)\\\">\\r\\n <mat-form-field>\\r\\n <mat-label> Department<span style=\\\"color:red; font-size: 15px\\\">*</span></mat-label>\\r\\n <mat-select [disabled]=\\\"EmployeeID > 0 && isTeamAssigned\\\" (selectionChange)=\\\"departmentChange()\\\"\\r\\n [(ngModel)]=\\\"departmentId\\\">\\r\\n <mat-option label=\\\"--select something --\\\" [value]=\\\"\\\">-- None --</mat-option>\\r\\n <mat-option *ngFor=\\\"let dept of departmentList\\\" [value]=\\\"dept.DepartmentID\\\">\\r\\n {{dept.DepartmentName}}\\r\\n </mat-option>\\r\\n </mat-select>\\r\\n </mat-form-field>\\r\\n </div>\\r\\n <div *ngIf=\\\"selectedLoginLevel && departmentId && selectedLoginLevel === employeeLoginLevel.Team\\\">\\r\\n <mat-form-field>\\r\\n <mat-label> Team<span style=\\\"color:red; font-size: 15px\\\">*</span></mat-label>\\r\\n <mat-select [disabled]=\\\"EmployeeID > 0 && isTeamAssigned\\\" (selectionChange)=\\\"team($event)\\\"\\r\\n [(ngModel)]=\\\"TeamID\\\">\\r\\n <mat-option label=\\\"--select something --\\\" [value]=\\\"\\\">-- None --</mat-option>\\r\\n <mat-option *ngFor=\\\"let team of teamList;\\\" [value]=\\\"team.TeamID\\\">\\r\\n {{team.TeamName}}\\r\\n </mat-option>\\r\\n </mat-select>\\r\\n </mat-form-field>\\r\\n </div>\\r\\n <div>\\r\\n <mat-form-field>\\r\\n <mat-placeholder>Role<span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n <mat-select (selectionChange)=\\\"role($event)\\\" [(ngModel)]=\\\"roleID\\\">\\r\\n <mat-option *ngFor=\\\"let data of rolesData;let i=index;\\\" [value]=\\\"rolesData[i].RoleID\\\">\\r\\n {{rolesData[i].RoleName}}\\r\\n </mat-option>\\r\\n </mat-select>\\r\\n </mat-form-field>\\r\\n </div>\\r\\n <div>\\r\\n <mat-form-field>\\r\\n <input matInput placeholder=\\\"Designation\\\" autocomplete=\\\"off\\\" maxlength=\\\"100\\\" autocomplete=\\\"off\\\"\\r\\n id=\\\"lblDesignation\\\" [(ngModel)]=\\\"Designation\\\" value=\\\"\\\">\\r\\n </mat-form-field>\\r\\n </div>\\r\\n <div>\\r\\n <mat-form-field>\\r\\n <input matInput placeholder=\\\" Phone\\\" (keydown)=\\\"ValidatePh($event)\\\" (blur)=\\\"valZero()\\\" maxlength=\\\"16\\\"\\r\\n autocomplete=\\\"off\\\" onpaste=\\\"return false\\\" oncut=\\\"return false\\\" id=\\\"lblPhone\\\" [(ngModel)]=\\\"Phone\\\" value=\\\"\\\">\\r\\n </mat-form-field>\\r\\n </div>\\r\\n <div>\\r\\n <mat-form-field>\\r\\n <input matInput (keydown)=\\\"ValidateEmail($event)\\\" maxlength=\\\"50\\\" autocomplete=\\\"off\\\" id=\\\"lblEmail\\\"\\r\\n [(ngModel)]=\\\"Email\\\" value=\\\"\\\">\\r\\n\\r\\n <mat-placeholder>Email <span style=\\\"color:red; font-size: 15px;;\\\"> *</span></mat-placeholder>\\r\\n </mat-form-field>\\r\\n </div>\\r\\n </div>\\r\\n <h4 class=\\\"alignheader\\\" id=\\\"headingAdmin\\\"><b>Login details</b></h4><br>\\r\\n <div class=\\\"loginField\\\">\\r\\n <div>\\r\\n <mat-form-field>\\r\\n <input matInput maxlength=\\\"50\\\" autocomplete=\\\"off\\\" id=\\\"lblEmail\\\" [(ngModel)]=\\\"UserName\\\" value=\\\"\\\">\\r\\n <mat-placeholder>UserName <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n </mat-form-field>\\r\\n </div>\\r\\n <div>\\r\\n <mat-form-field>\\r\\n <input matInput type=\\\"password\\\" autocomplete=\\\"off\\\" autocomplete=\\\"off\\\" maxlength=\\\"100\\\" [(ngModel)]=\\\"Password\\\"\\r\\n value=\\\"\\\">\\r\\n <mat-placeholder>Password <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n </mat-form-field>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n <div id=\\\"Rowwrapper\\\">\\r\\n <div id=\\\"RowtableActions\\\">\\r\\n <div id=\\\"buttonview\\\">\\r\\n <button class=\\\"addButtons btn\\\" mat-accent (click)=\\\"AddEmployee()\\\" [disabled]=\\\"btnDisabled\\\"><span\\r\\n *ngIf=\\\"data === 'new'\\\">Save</span><span *ngIf=\\\"data === 'edit'\\\">Update</span></button>\\r\\n </div>\\r\\n <div id=\\\"buttonview\\\">\\r\\n <button mat-accent class=\\\"addButtons btn\\\" (click)='Clear()'>Cancel</button>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n <br>\\r\\n <div *ngIf=\\\"data === 'user'\\\">\\r\\n <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n <div id=\\\"Rowwrapper\\\">\\r\\n <div id=\\\"RowtableAction\\\">\\r\\n <div id=\\\"field\\\">\\r\\n <mat-form-field style=\\\"margin-top: 10px\\\">\\r\\n <input matInput autocomplete=\\\"off\\\" autocomplete=\\\"off\\\" maxlength=\\\"100\\\" [(ngModel)]=\\\"UserName\\\" value=\\\"\\\">\\r\\n <mat-placeholder>Username <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n </mat-form-field>\\r\\n </div>\\r\\n <div id=\\\"field\\\">\\r\\n <mat-form-field style=\\\"margin-top: 10px\\\">\\r\\n <input matInput type=\\\"password\\\" autocomplete=\\\"off\\\" autocomplete=\\\"off\\\" maxlength=\\\"100\\\"\\r\\n [(ngModel)]=\\\"Password\\\" value=\\\"\\\">\\r\\n <mat-placeholder>Password <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n </mat-form-field>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n <div id=\\\"Rowwrapper\\\">\\r\\n <div id=\\\"RowtableActions\\\">\\r\\n <div id=\\\"buttonview\\\">\\r\\n <button class=\\\"addButtons btn\\\" mat-accent (click)=\\\"SaveUser()\\\">Save</button>\\r\\n </div>\\r\\n <div id=\\\"buttonview\\\">\\r\\n <button mat-accent class=\\\"addButtons btn\\\" (click)='Clear()'>Cancel</button>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n <mat-dialog-content class=\\\"warningMsg\\\">{{dataSelf}}</mat-dialog-content>\\r\\n <mat-dialog-content class=\\\"successMsg\\\"></mat-dialog-content>\"","module.exports = \"<link href=\\\"../../assets/css/dmapp.css\\\" rel=\\\"stylesheet\\\" id=\\\"bootstrap-css\\\">\\n<div class=\\\"row\\\" id=\\\"container\\\">\\n <div class=\\\"\\\" id=\\\"heading\\\">\\n <h4>Employee</h4>\\n </div>\\n <div id=\\\"wrapper\\\">\\n <div id=\\\"tableActions\\\">\\n <div class=\\\"\\\" id=\\\"search\\\" *ngIf=\\\"!disableSearch\\\">\\n <mat-form-field style=\\\"margin-top: -5px;\\\" id=\\\"searchField\\\">\\n <mat-placeholder class=\\\"placeholder\\\">Search here</mat-placeholder>\\n <input matInput id=\\\"newGroup\\\" [disabled]=\\\"disableSearch\\\" (keyup)=\\\"Searchtext()\\\" name=\\\"search\\\"\\n [(ngModel)]=\\\"searchtext\\\" value=\\\"\\\" autocomplete=\\\"off\\\">\\n </mat-form-field>\\n </div>\\n <div class=\\\"\\\" id=\\\"excelBtn\\\" *ngIf=\\\"!isDisable\\\">\\n <button class=\\\"darkbtnbg btn btn-info\\\" style=\\\"margin-top:11px;cursor: pointer;\\\" [disabled]=\\\"isDisable\\\"\\n matTooltip=\\\"Export as excel\\\" (click)=\\\"exportAsXLSX()\\\">\\n Excel\\n </button>\\n </div>\\n <div class=\\\"\\\" id=\\\"createBtn\\\">\\n <button mat-accent class=\\\"darkbtnbg btn btn-info\\\" style=\\\"margin-top: 11px;\\\" (click)='OpenEmployee()'\\n [disabled]=\\\"!MenuPermissions[menuName][menuID]['C'] || (employeeDetails && employeeDetails.IsEmployeeLoginLevel === 'Team')\\\"\\n matTooltip=\\\"New employee\\\">New </button>\\n </div>\\n </div>\\n </div>\\n</div>\\n<div>\\n <div class=\\\"tableDiv\\\">\\n <table>\\n <thead>\\n <tr>\\n <th cName class=\\\"pointer\\\" (click)=\\\"sort('EmployeeName')\\\"> Employee\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n <th cName class=\\\"pointer\\\" (click)=\\\"sort('IsEmployeeLoginLevel')\\\"> Employee Level\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n <th cName class=\\\"pointer\\\" (click)=\\\"sort('EmailID')\\\"> Email\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n <th cName class=\\\"pointer\\\" (click)=\\\"sort('DepartmentName')\\\"> Department\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n <th cName class=\\\"pointer\\\" (click)=\\\"sort('TeamName')\\\"> Team\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n <th cName class=\\\"pointer\\\" (click)=\\\"sort('RoleName')\\\"> Role\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n <th action>Action</th>\\n </tr>\\n </thead>\\n <tbody>\\n <tr\\n *ngFor=\\\"let element of employeeData | paginate: { itemsPerPage: rowsOnPage, currentPage: p } | sort: {property: column, direction: direction}; let i = index\\\">\\n <td> {{element.EmployeeName}}</td>\\n <td> {{element.IsEmployeeLoginLevel}}</td>\\n <td> {{element.EmailID}}</td>\\n <td> {{element.DepartmentName}}</td>\\n <td> {{element.TeamName}}</td>\\n <td> {{element.RoleName}}</td>\\n <td style=\\\" cursor:pointer;\\\">\\n <span> <a matTooltip=\\\"Edit employee\\\" (click)=\\\"EditEmployee(element)\\\"\\n [style.pointer-events]=\\\"(!MenuPermissions[menuName][menuID]['U']) || \\n element.EmployeeID===loginEmployeeID || \\n (employeeDetails && employeeDetails.IsEmployeeLoginLevel === element.IsEmployeeLoginLevel) ? 'none' : 'auto'\\\"\\n [ngClass]=\\\"{'removeColor':(!(MenuPermissions[menuName][menuID]['U']) || \\n element.EmployeeID===loginEmployeeID || \\n (employeeDetails && employeeDetails.IsEmployeeLoginLevel === element.IsEmployeeLoginLevel)),'AddColor':(MenuPermissions[menuName][menuID]['U'])}\\\"><i\\n class=\\\"fa fa-pencil-square-o \\\" aria-hidden=\\\"true\\\"></i></a>\\n\\n <a matTooltip=\\\"Delete employee\\\" (click)=\\\"DeleteEmployee(element)\\\"\\n [style.pointer-events]=\\\"(!MenuPermissions[menuName][menuID]['D']) || \\n element.EmployeeID===loginEmployeeID || \\n (employeeDetails && employeeDetails.IsEmployeeLoginLevel === element.IsEmployeeLoginLevel) ? 'none' : 'auto'\\\"\\n [ngClass]=\\\"{'removeColor':(!(MenuPermissions[menuName][menuID]['D']) || \\n element.EmployeeID===loginEmployeeID ||\\n (employeeDetails && employeeDetails.IsEmployeeLoginLevel === element.IsEmployeeLoginLevel)),'AddColor':(MenuPermissions[menuName][menuID]['D'])}\\\"><i\\n class=\\\"fa fa-trash-o \\\" aria-hidden=\\\"true\\\"></i></a>\\n\\n <a matTooltip=\\\"Add user\\\" style=\\\"display: none;\\\" (click)=\\\"AddUser(element)\\\"\\n [style.pointer-events]=\\\"(!MenuPermissions[menuName][menuID]['U'])?'none':'auto'\\\"\\n [ngClass]=\\\"{'removeColor':!(MenuPermissions[menuName][menuID]['U']),'AddColor':(MenuPermissions[menuName][menuID]['U'])}\\\"><i\\n class=\\\"fa fa-user\\\" aria-hidden=\\\"true\\\"></i></a>\\n </span>\\n </td>\\n </tr>\\n </tbody>\\n </table>\\n <br>\\n <div class=\\\"warningMsg\\\" *ngIf=\\\"(employeeData === null||employeeData===undefined || employeeData.length === 0)\\\">\\n <span>No data available</span>\\n </div>\\n </div>\\n <div class=\\\"pageContainer\\\" *ngIf=\\\"employeePaging && employeeData.length>0\\\">\\n <div class=\\\"rowsSelection\\\">\\n <mat-form-field style=\\\"width: 50px; margin-top: -15px;\\\">\\n <mat-select [(ngModel)]=\\\"rowsOnPage\\\">\\n <mat-option *ngFor=\\\"let row of rowsOnPageSet\\\" [value]=\\\"row\\\">\\n {{row}}\\n </mat-option>\\n </mat-select>\\n </mat-form-field>\\n </div>\\n <div class=\\\"pageSelection\\\">\\n <pagination-controls (pageChange)=\\\"p = $event\\\"></pagination-controls>\\n </div>\\n </div>\"","module.exports = \"<link href=\\\"../../assets/css/dmapp.css\\\" rel=\\\"stylesheet\\\" id=\\\"bootstrap-css\\\">\\n\\n<style>\\n @media screen {\\n .donotprintthis1 {\\n display: none;\\n }\\n\\n .donotprintthis {\\n\\n display: block;\\n\\n }\\n }\\n\\n @media print {\\n h5 {\\n text-align: center;\\n }\\n\\n .donotprintthis1 {\\n\\n display: block;\\n\\n }\\n\\n .donotprintthis {\\n\\n display: none;\\n\\n }\\n }\\n</style>\\n\\n<div class=\\\"reportHead\\\">\\n <div class=\\\"reportName\\\">\\n <h5>Comments on Frustrations</h5>\\n </div>\\n <div class=\\\"reportActions\\\">\\n <div class=\\\"selectTeam\\\" *ngIf=\\\"teamData && teamData.length > 0\\\">\\n <div class=\\\"item item-1\\\">\\n <mat-form-field>\\n <mat-label>* Select Team</mat-label>\\n <mat-select (selectionChange)=\\\"GetSelectedReport($event)\\\" [(ngModel)]=\\\"TeamID\\\">\\n <mat-option *ngFor=\\\"let team of teamData;let i=index;\\\" [value]=\\\"team.TeamID\\\">\\n <span> {{team.TeamName}} </span>\\n </mat-option>\\n </mat-select>\\n </mat-form-field>\\n </div>\\n </div>\\n <div class=\\\"searchField\\\" *ngIf=\\\"!disableSearch\\\">\\n <div class=\\\"item item-1\\\">\\n\\n <mat-form-field>\\n <mat-placeholder class=\\\"placeholder\\\">Search here</mat-placeholder>\\n <input matInput id=\\\"newGroup\\\" [disabled]=\\\"disableSearch\\\" (keyup)=\\\"Searchtext()\\\" name=\\\"search\\\"\\n [(ngModel)]=\\\"searchtext\\\" value=\\\"\\\" autocomplete=\\\"off\\\">\\n </mat-form-field>\\n </div>\\n </div>\\n <div class=\\\"printBtn\\\" *ngIf=\\\"!isDisable\\\">\\n <!-- <i class='fa fa-print'></i> -->\\n <div class=\\\"item item-5\\\">\\n <button class=\\\"darkbtnbg btn btn-info\\\" printTitle=\\\"{{companyName}}\\\" matTooltip=\\\"Print report\\\"\\n printSectionId=\\\"printFrustComments\\\" [useExistingCss]=\\\"true\\\" ngxPrint>Print</button>\\n <!-- <button mat-raised-button color=\\\"primary\\\" [disabled]=\\\"isDisable\\\" matTooltip=\\\"Export As Excel\\\" style=\\\"margin-top:10px;cursor: pointer;\\\" (click)=\\\"exportAsXLSX()\\\"> -->\\n <!-- <i class='fa fa-file-excel-o'></i> -->\\n <!-- Excel\\n </button> -->\\n\\n </div>\\n </div>\\n <div class=\\\"excelBtn\\\" *ngIf=\\\"!isDisable\\\">\\n <div class=\\\"item item-5\\\">\\n <button class=\\\"darkbtnbg btn btn-info\\\" [disabled]=\\\"isDisable\\\" matTooltip=\\\"Export as excel\\\"\\n (click)=\\\"exportAsXLSX()\\\">\\n\\n Excel\\n </button>\\n </div>\\n\\n\\n </div>\\n </div>\\n</div>\\n\\n\\n\\n<!-- ---------------------------Printing the report------------------------- -->\\n\\n<div id=\\\"printFrustComments\\\">\\n\\n <div class=\\\"donotprintthis1\\\">\\n <div style=\\\"text-align:center;margin-top: 15px;\\\">\\n <h6>\\n <span> Company - </span> {{companyName}} <br>\\n <span>Date: {{headerDate| date:'MM-dd-yyyy' }}</span><br>\\n\\n <span >Team: {{TeamName ? TeamName : 'Aggregate\\n Report'}}</span><br>\\n <span>Report Type : Comments on Frustrations</span>\\n </h6>\\n\\n </div>\\n </div>\\n\\n\\n <div class=\\\"tableDiv\\\">\\n <table id=\\\"dtBasicExample\\\">\\n <thead>\\n <tr>\\n <!--<th class=\\\"pointer\\\"> Company </th>-->\\n <th>No.</th>\\n <th cName class=\\\"pointer\\\" (click)=\\\"sort('TeamName')\\\"> Team\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n <th class=\\\"pointer\\\" (click)=\\\"sort('name')\\\"> Frustration\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n <th cName class=\\\"pointer\\\" (click)=\\\"sort('comment')\\\"> Comment\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n\\n </tr>\\n </thead>\\n <tbody>\\n <!---->\\n <ng-container\\n *ngFor=\\\"let element of mainData | paginate: { itemsPerPage: rowsOnPage, currentPage: p } | sort: {property: column, direction: direction}; let i = index\\\">\\n <tr>\\n <!--<td > {{element.CompanyName}}</td>-->\\n <td>{{i+1}}</td>\\n <td>{{element.TeamName}}</td>\\n <td>{{element.name}}</td>\\n <td>\\n <table>\\n <tr *ngFor=\\\"let data of element.comment\\\">\\n <td>\\n {{data}}\\n </td>\\n </tr>\\n\\n </table>\\n </td>\\n </tr>\\n\\n </ng-container>\\n </tbody>\\n\\n </table><br>\\n <!-- <div class=\\\"warningMsg\\\" *ngIf=\\\"(mainData === null||mainData===undefined ||mainData.length === 0)\\\">\\n <div class=\\\"row\\\">\\n <div class=\\\"col-lg-5\\\"></div>\\n <span class=\\\"col-lg-7\\\" style=\\\"color:red;\\\">{{wrng}}</span>\\n \\n \\n </div> \\n </div> -->\\n\\n <!-- <mat-paginator [pageSizeOptions]=\\\"[5, 10, 20]\\\" showFirstLastButtons></mat-paginator> -->\\n <div class=\\\"warningMsg\\\"\\n *ngIf=\\\"(filterData === null||filterData===undefined || filterData.length === 0 || mainData.length===0)\\\">\\n\\n <span>{{wrng}}</span>\\n\\n\\n </div>\\n </div>\\n <div class=\\\"donotprintthis1\\\" style=\\\" position: fixed; bottom: 0;\\n font-size: 13px;\\n margin-left: 35%;\\\">\\n <label>{{copyRight}}</label>\\n </div>\\n</div>\\n\\n<div class=\\\"pageContainer\\\" *ngIf=\\\"processPaging && mainData.length>0\\\">\\n <div class=\\\"rowsSelection\\\">\\n <mat-form-field style=\\\"width: 50px; margin-top: -15px;\\\">\\n <mat-select [(ngModel)]=\\\"rowsOnPage\\\">\\n <mat-option *ngFor=\\\"let row of rowsOnPageSet\\\" [value]=\\\"row\\\">\\n {{row}}\\n </mat-option>\\n </mat-select>\\n </mat-form-field>\\n </div>\\n <div class=\\\"pageSelection\\\">\\n <pagination-controls (pageChange)=\\\"p = $event\\\"></pagination-controls>\\n </div>\\n</div>\\n\"","module.exports = \"<link href=\\\"../../assets/css/dmapp.css\\\" rel=\\\"stylesheet\\\" id=\\\"bootstrap-css\\\">\\n<style>\\n @media screen {\\n .donotprintthis1 {\\n display: none;\\n }\\n\\n .donotprintthis {\\n\\n display: block;\\n\\n }\\n }\\n\\n\\n\\n @media print {\\n h5 {\\n text-align: center;\\n }\\n\\n .donotprintthis1 {\\n\\n display: block;\\n\\n }\\n\\n .donotprintthis {\\n\\n display: none;\\n\\n }\\n }\\n</style>\\n\\n\\n\\n<div class=\\\"reportHead\\\">\\n\\n <div class=\\\"reportName\\\">\\n <h5>Process with no Frustrations</h5>\\n </div>\\n\\n <div class=\\\"reportActions\\\">\\n <div class=\\\"selectTeam\\\">\\n <div class=\\\"item item-1\\\">\\n <mat-form-field>\\n <mat-label>* Select Team</mat-label>\\n\\n <mat-select (selectionChange)=\\\"GetSelectedReport($event)\\\" [(ngModel)]=\\\"TeamID\\\">\\n <mat-option *ngFor=\\\"let team of teamData;let i=index;\\\" [value]=\\\"team.TeamID\\\">\\n\\n <span> {{team.TeamName}} </span>\\n\\n </mat-option>\\n </mat-select>\\n </mat-form-field>\\n </div>\\n </div>\\n <div class=\\\"searchField\\\" *ngIf=\\\"!disableSearch\\\">\\n <div class=\\\"item item-1\\\">\\n\\n <mat-form-field>\\n <mat-placeholder class=\\\"placeholder\\\">Search here</mat-placeholder>\\n <input matInput id=\\\"newGroup\\\" [disabled]=\\\"disableSearch\\\" (keyup)=\\\"Searchtext()\\\" name=\\\"search\\\"\\n [(ngModel)]=\\\"searchtext\\\" value=\\\"\\\" autocomplete=\\\"off\\\">\\n </mat-form-field>\\n </div>\\n </div>\\n <div class=\\\"printBtn\\\" *ngIf=\\\"!isDisable\\\">\\n <div class=\\\"item item-5\\\">\\n <!-- <i class='fa fa-print'></i> -->\\n <button class=\\\"darkbtnbg btn btn-info\\\" printTitle=\\\"{{companyName}}\\\" matTooltip=\\\"Print report\\\"\\n printSectionId=\\\"printAll_Process\\\" [useExistingCss]=\\\"true\\\" ngxPrint>Print</button>\\n\\n\\n </div>\\n </div>\\n <div class=\\\"excelBtn\\\" *ngIf=\\\"!isDisable\\\">\\n <div class=\\\"item item-5\\\">\\n <button class=\\\"darkbtnbg btn btn-info\\\" [disabled]=\\\"isDisable\\\" matTooltip=\\\"Export as excel\\\"\\n (click)=\\\"exportAsXLSX()\\\">\\n\\n Excel\\n </button>\\n </div>\\n\\n\\n </div>\\n </div>\\n\\n</div>\\n<!-- ---------------------------Printing the report------------------------- -->\\n<div id=\\\"printAll_Process\\\">\\n\\n <div class=\\\"donotprintthis1\\\">\\n <div style=\\\"text-align:center;margin-top: 15px;\\\">\\n <h6>\\n <span> Company - </span> {{companyName}} <br>\\n <span>Date: {{headerDate| date:'MM-dd-yyyy' }}</span><br>\\n <span >Team: {{TeamName ? TeamName : 'Aggregate\\n Report'}}</span><br>\\n <span>Report Type : Process with no Frustrations</span>\\n\\n </h6>\\n\\n </div>\\n </div>\\n\\n <!-- <h5 class=\\\"donotprintthis1\\\" style=\\\"\\n margin-block-end: 20px;\\n \\\">Report Type : Process with no Frustrations</h5> -->\\n\\n <div class=\\\"tableDiv\\\">\\n <table id=\\\"dtBasicExample\\\">\\n <thead>\\n <tr>\\n\\n <!--<th class=\\\"pointer\\\"> Company </th>-->\\n <th>No.</th>\\n <th class=\\\"pointer\\\" (click)=\\\"sort('CompanyName')\\\"> Company\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n <th class=\\\"pointer\\\" (click)=\\\"sort('TeamName')\\\"> Team\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n <th class=\\\"pointer\\\" (click)=\\\"sort('ProcessName')\\\"> Process\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n <th cName class=\\\"pointer\\\" (click)=\\\"sort('ProcessDescription')\\\"> Description\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n\\n </tr>\\n </thead>\\n <tbody>\\n <!---->\\n <tr\\n *ngFor=\\\"let element of filterData | paginate: { itemsPerPage: rowsOnPage, currentPage: p } | sort: {property: column, direction: direction}; let i = index\\\">\\n <!--<td > {{element.CompanyName}}</td>-->\\n <td>{{i+1}}</td>\\n <td> {{element.CompanyName}}</td>\\n <td>{{element.TeamName}}</td>\\n <td> {{element.ProcessName}}</td>\\n <td> {{element.ProcessDescription}}</td>\\n\\n </tr>\\n </tbody>\\n\\n </table><br>\\n\\n <!-- <mat-paginator [pageSizeOptions]=\\\"[5, 10, 20]\\\" showFirstLastButtons></mat-paginator> -->\\n <div class=\\\"warningMsg\\\" *ngIf=\\\"(filterData === null||filterData===undefined || filterData.length === 0)\\\">\\n\\n <span>No data available</span>\\n\\n\\n </div>\\n </div>\\n <div class=\\\"donotprintthis1\\\" style=\\\" position: fixed; bottom: 0;\\n font-size: 13px;\\n margin-left: 35%;\\\">\\n <label>{{copyRight}}</label>\\n </div>\\n</div>\\n<div class=\\\"pageContainer\\\" *ngIf=\\\"processPaging && filterData.length>0\\\">\\n <div class=\\\"rowsSelection\\\">\\n <mat-form-field style=\\\"width: 50px; margin-top: -15px;\\\">\\n <mat-select [(ngModel)]=\\\"rowsOnPage\\\">\\n <mat-option *ngFor=\\\"let row of rowsOnPageSet\\\" [value]=\\\"row\\\">\\n {{row}}\\n </mat-option>\\n </mat-select>\\n </mat-form-field>\\n </div>\\n <div class=\\\"pageSelection\\\">\\n <pagination-controls (pageChange)=\\\"p = $event\\\"></pagination-controls>\\n </div>\\n</div>\\n\"","module.exports = \"<link href=\\\"../../assets/css/dmapp.css\\\" rel=\\\"stylesheet\\\" id=\\\"bootstrap-css\\\">\\r\\n\\r\\n<div *ngIf=\\\"data !== 'new' && data !== 'edit' && data!='log'&& data !== 'progress' && data !== 'status'\\\">\\r\\n <mat-dialog-content>{{data}}</mat-dialog-content>\\r\\n <mat-dialog-actions align=\\\"center\\\">\\r\\n <div *ngIf=\\\"condition\\\">\\r\\n <button mat-raised-button mat-accent mat-dialog-close (click)=\\\"onNoClick()\\\">No</button>\\r\\n <!-- Can optionally provide a result for the closing dialog. -->\\r\\n <button mat-raised-button mat-accent [mat-dialog-close]=\\\"true\\\" (click)=\\\"onYesClick()\\\">Yes</button>\\r\\n </div>\\r\\n <div *ngIf=\\\"!condition && data !== 'progress' && data !== 'status'\\\">\\r\\n <div class=\\\"container\\\" fxLayout fxLayout.xs=\\\"column\\\" fxLayoutAlign=\\\"center\\\" fxLayoutGap=\\\"10px\\\" fxLayoutGap.xs=\\\"0\\\">\\r\\n <div class=\\\"item item-3 \\\">\\r\\n <button mat-button mat-accent mat-dialog-close>Ok</button>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </mat-dialog-actions>\\r\\n</div>\\r\\n\\r\\n\\r\\n<div *ngIf=\\\"data === 'new' || data === 'edit'\\\">\\r\\n <br>\\r\\n <div class=\\\"XBtn\\\">\\r\\n <span (click)=\\\"Clear()\\\" matTooltip=\\\"Close\\\" class=\\\"close\\\">×</span>\\r\\n </div>\\r\\n <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n <div id=\\\"Rowheading\\\">\\r\\n <h4 class=\\\"alignheader\\\" style=\\\"white-space: nowrap;\\\"><b>{{data | titlecase}} Frustration Type</b></h4>\\r\\n\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n <div id=\\\"Rowwrapper\\\">\\r\\n <div id=\\\"RowtableActions\\\">\\r\\n <div id=\\\"field\\\">\\r\\n\\r\\n <mat-form-field>\\r\\n <input matInput autocomplete=\\\"off\\\" maxlength=\\\"100\\\" [(ngModel)]=\\\"FrustrationsTypeName\\\" value=\\\"\\\"\\r\\n [disabled]=\\\"inUse\\\">\\r\\n <mat-placeholder>Frustration Type <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n </mat-form-field>\\r\\n </div>\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n <div id=\\\"field\\\">\\r\\n <mat-form-field>\\r\\n <input matInput placeholder=\\\" Frustration Description\\\" autocomplete=\\\"off\\\" maxlength=\\\"500\\\"\\r\\n [(ngModel)]=\\\"FrustrationsDescription\\\" value=\\\"\\\">\\r\\n </mat-form-field>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n <div id=\\\"Rowwrapper\\\">\\r\\n <div id=\\\"RowtableActions\\\">\\r\\n <div id=\\\"buttonview\\\">\\r\\n <button class=\\\"addButtons btn\\\" mat-accent (click)=\\\"AddFrustType()\\\" [disabled]=\\\"btnDisabled\\\"><span\\r\\n *ngIf=\\\"data === 'new'\\\">Save</span><span *ngIf=\\\"data === 'edit'\\\">Update</span></button>\\r\\n </div>\\r\\n <div id=\\\"buttonview\\\">\\r\\n <button mat-accent class=\\\"addButtons btn\\\" (click)='Clear()'>Cancel</button>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n <br>\\r\\n <mat-dialog-content class=\\\"warningMsg\\\">{{dataSelf}}</mat-dialog-content>\\r\\n <mat-dialog-content class=\\\"successMsg\\\"></mat-dialog-content>\\r\\n\"","module.exports = \"<link href=\\\"../../assets/css/dmapp.css\\\" rel=\\\"stylesheet\\\" id=\\\"bootstrap-css\\\">\\n<div class=\\\"row\\\" id=\\\"container\\\">\\n <div class=\\\"\\\" id=\\\"heading\\\">\\n <h4 style=\\\"white-space: nowrap;\\\">Frustration Types</h4>\\n </div>\\n <div id=\\\"wrapper\\\">\\n <div id=\\\"tableActions\\\">\\n <div class=\\\"\\\" id=\\\"search\\\" *ngIf=\\\"!disableSearch\\\">\\n <mat-form-field style=\\\"margin-top: -5px;\\\" id=\\\"searchField\\\">\\n <mat-placeholder class=\\\"placeholder\\\">Search here</mat-placeholder>\\n <input matInput id=\\\"newGroup\\\" [disabled]=\\\"disableSearch\\\" (keyup)=\\\"Searchtext()\\\" name=\\\"search\\\"\\n [(ngModel)]=\\\"searchtext\\\" value=\\\"\\\" autocomplete=\\\"off\\\">\\n </mat-form-field>\\n </div>\\n <div class=\\\"\\\" id=\\\"excelBtn\\\" *ngIf=\\\"!disableSearch\\\">\\n <button class=\\\"darkbtnbg btn btn-info\\\" style=\\\"margin-top:11px;cursor: pointer;\\\" [disabled]=\\\"isDisable\\\"\\n matTooltip=\\\"Export as excel\\\" (click)=\\\"exportAsXLSX()\\\">\\n\\n Excel\\n </button>\\n </div>\\n <div class=\\\"\\\" id=\\\"createBtn\\\">\\n <button mat-accent class=\\\"darkbtnbg btn btn-info\\\" style=\\\"margin-top: 11px;\\\" (click)='OpenFrustType()'\\n [disabled]=\\\"!MenuPermissions[menuName][menuID]['C']\\\" matTooltip=\\\"New frustration type\\\">New</button>\\n </div>\\n </div>\\n </div>\\n</div>\\n\\n\\n\\n\\n\\n\\n\\n\\n<!-- <div class=\\\"container\\\" style=\\\"margin-top: -10px\\\" fxLayout fxLayout.xs=\\\"column\\\" fxLayoutAlign=\\\"center\\\" fxLayoutGap=\\\"10px\\\" fxLayoutGap.xs=\\\"0\\\">\\n <div class=\\\"col-lg-8\\\">\\n <div class=\\\"item item-5 alignLeft\\\" fxFlex=\\\"45%\\\">\\n <h4>Frustration Types</h4>\\n </div>\\n </div>\\n <div class=\\\"item item-1\\\" fxFlex=\\\"25%\\\" fxFlexOrder=\\\"1\\\">\\n \\n </div>\\n <div class=\\\"item item-1\\\" fxFlex=\\\"30%\\\" fxFlexOrder=\\\"2\\\" *ngIf=\\\"!disableSearch\\\">\\n \\n <mat-form-field style=\\\"width: 180px\\\">\\n <mat-placeholder class=\\\"placeholder\\\">Search here</mat-placeholder>\\n <input matInput id=\\\"newGroup\\\" [disabled]=\\\"disableSearch\\\" (keyup)=\\\"Searchtext()\\\" name=\\\"search\\\" [(ngModel)]=\\\"searchtext\\\" value=\\\"\\\" autocomplete=\\\"off\\\"> \\n </mat-form-field>\\n </div>\\n \\n \\n <div class=\\\"item item-5\\\" fxFlex=\\\"12%\\\" fxFlexOrder=\\\"3\\\" *ngIf=\\\"!isDisable\\\">\\n <button class=\\\"darkbtnbg btn btn-info\\\" [disabled]=\\\"isDisable\\\" matTooltip=\\\"Export As Excel\\\" style=\\\"margin-top:10px;cursor: pointer;\\\" (click)=\\\"exportAsXLSX()\\\">\\n <i class='fa fa-file-excel-o'></i> \\n Excel\\n </button> \\n \\n </div>\\n <div class=\\\"item item-5\\\" fxFlex=\\\"11%\\\" fxFlexOrder=\\\"3\\\">\\n <button mat-raised-button color=\\\"primary\\\" (click)='OpenTeam()' [disabled]=\\\"!MenuPermissions[menuName][menuID]['C']\\\" style=\\\"float: right;margin-top: 10px;margin-bottom: 10px;\\\" class=\\\"addButtons\\\" matTooltip=\\\"New Team\\\">NEW </button>\\n </div> \\n <div class=\\\"item item-5\\\" fxFlex=\\\"11%\\\" fxFlexOrder=\\\"3\\\">\\n <button mat-accent class=\\\"darkbtnbg btn btn-info\\\" style=\\\"margin-top: 11px;\\\"(click)='OpenFrustType()' [disabled]=\\\"!MenuPermissions[menuName][menuID]['C']\\\" matTooltip=\\\"New Frustration Type\\\">New</button>\\n </div>\\n \\n </div> -->\\n\\n<div>\\n <div class=\\\"tableDiv\\\">\\n <table>\\n <thead>\\n <tr>\\n\\n <th cName class=\\\"pointer\\\" (click)=\\\"sort('FrustrationsTypeName')\\\"> Frustration Types\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n\\n <th cName class=\\\"pointer\\\" (click)=\\\"sort('FrustrationsDescription')\\\"> Description\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n\\n <th action>Action</th>\\n </tr>\\n </thead>\\n <tbody>\\n\\n <tr\\n *ngFor=\\\"let element of frustTypeData | paginate: { itemsPerPage: rowsOnPage, currentPage: p } | sort: {property: column, direction: direction}; let i = index\\\">\\n\\n <td> {{element.FrustrationsTypeName}}</td>\\n <td> {{element.FrustrationsDescription}}</td>\\n\\n <td style=\\\" cursor:pointer;\\\">\\n <span>\\n <a matTooltip=\\\"Edit frustrations type\\\" (click)=\\\"EditFrustType(element)\\\"\\n [style.pointer-events]=\\\"(!MenuPermissions[menuName][menuID]['U'])?'none':'auto'\\\"\\n [ngClass]=\\\"{'removeColor':(!(MenuPermissions[menuName][menuID]['U'])),'AddColor':(MenuPermissions[menuName][menuID]['U'])}\\\"><i\\n style=\\\"cursor: pointer;\\\" class=\\\"fa fa-pencil-square-o \\\" aria-hidden=\\\"true\\\"></i></a>\\n <a matTooltip=\\\"Delete frustrations type\\\" (click)=\\\"DeleteFrustType(element)\\\"\\n [style.pointer-events]=\\\"(!MenuPermissions[menuName][menuID]['D'] )?'none':'auto'\\\"\\n [ngClass]=\\\"{'removeColor':(!(MenuPermissions[menuName][menuID]['D']) ),'AddColor':(MenuPermissions[menuName][menuID]['D'])}\\\"><i\\n style=\\\"cursor: pointer;\\\" class=\\\"fa fa-trash-o \\\" aria-hidden=\\\"true\\\"></i></a>\\n </span>\\n </td>\\n </tr>\\n </tbody>\\n\\n </table>\\n <br>\\n\\n <div class=\\\"warningMsg\\\" *ngIf=\\\"(frustTypeData === null||frustTypeData===undefined || frustTypeData.length === 0)\\\">\\n\\n <span>No data available</span>\\n\\n </div>\\n </div>\\n <div class=\\\"pageContainer\\\" *ngIf=\\\"frustPaging && frustTypeData.length>0\\\">\\n\\n <div class=\\\"rowsSelection\\\">\\n <mat-form-field style=\\\"width: 50px; margin-top: -15px;\\\">\\n <mat-select [(ngModel)]=\\\"rowsOnPage\\\">\\n <mat-option *ngFor=\\\"let row of rowsOnPageSet\\\" [value]=\\\"row\\\">\\n {{row}}\\n </mat-option>\\n </mat-select>\\n </mat-form-field>\\n </div>\\n\\n\\n <div class=\\\"pageSelection\\\">\\n <pagination-controls (pageChange)=\\\"p = $event\\\"></pagination-controls>\\n </div>\\n </div>\\n\"","module.exports = \"<link href=\\\"../../assets/css/dmapp.css\\\" rel=\\\"stylesheet\\\" id=\\\"bootstrap-css\\\">\\r\\n\\r\\n<div *ngIf=\\\"data !== 'new' && data !== 'edit'\\\">\\r\\n <mat-dialog-content>{{data}}</mat-dialog-content>\\r\\n <mat-dialog-actions align=\\\"center\\\">\\r\\n <div *ngIf=\\\"condition\\\">\\r\\n <button mat-raised-button mat-accent mat-dialog-close (click)=\\\"onNoClick()\\\">No</button>\\r\\n <!-- Can optionally provide a result for the closing dialog. -->\\r\\n <button mat-raised-button mat-accent [mat-dialog-close]=\\\"true\\\" (click)=\\\"onYesClick()\\\">Yes</button>\\r\\n </div>\\r\\n <div *ngIf=\\\"!condition && data !== 'progress' && data !== 'status'\\\">\\r\\n <div class=\\\"container\\\" fxLayout fxLayout.xs=\\\"column\\\" fxLayoutAlign=\\\"center\\\" fxLayoutGap=\\\"10px\\\" fxLayoutGap.xs=\\\"0\\\">\\r\\n <div class=\\\"item item-3 \\\">\\r\\n <button mat-button mat-accent mat-dialog-close>Ok</button>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </mat-dialog-actions>\\r\\n</div>\\r\\n\\r\\n\\r\\n<div *ngIf=\\\"data === 'new' || data === 'edit'\\\">\\r\\n <br>\\r\\n <div class=\\\"XBtn\\\">\\r\\n <span (click)=\\\"Clear()\\\" matTooltip=\\\"Close\\\" class=\\\"close\\\">×</span>\\r\\n </div>\\r\\n <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n <div id=\\\"Rowheading\\\">\\r\\n <h4 class=\\\"alignheader\\\" style=\\\"white-space: nowrap;\\\"><b>{{data | titlecase}} Goal</b></h4>\\r\\n\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n <div id=\\\"Rowwrapper\\\">\\r\\n <div id=\\\"RowtableActions\\\">\\r\\n <div id=\\\"field\\\">\\r\\n\\r\\n <mat-form-field>\\r\\n <input matInput autocomplete=\\\"off\\\" maxlength=\\\"100\\\" [(ngModel)]=\\\"GoalName\\\" value=\\\"\\\">\\r\\n <mat-placeholder>Goal Name <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n </mat-form-field>\\r\\n </div>\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n <div id=\\\"field\\\">\\r\\n <mat-form-field>\\r\\n <input matInput placeholder=\\\" Goal Description\\\" autocomplete=\\\"off\\\" maxlength=\\\"500\\\"\\r\\n [(ngModel)]=\\\"GoalDescription\\\" value=\\\"\\\">\\r\\n </mat-form-field>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n <div id=\\\"Rowwrapper\\\">\\r\\n <div id=\\\"RowtableActions\\\">\\r\\n <div id=\\\"buttonview\\\">\\r\\n <button class=\\\"addButtons btn\\\" mat-accent (click)=\\\"ValidateGoal()\\\"><span\\r\\n *ngIf=\\\"data === 'new'\\\">Save</span><span *ngIf=\\\"data === 'edit'\\\">Update</span></button>\\r\\n </div>\\r\\n <div id=\\\"buttonview\\\">\\r\\n <button mat-accent class=\\\"addButtons btn\\\" (click)='Clear()'>Cancel</button>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n <br>\\r\\n <mat-dialog-content class=\\\"warningMsg\\\">{{dataSelf}}</mat-dialog-content>\\r\\n <mat-dialog-content class=\\\"successMsg\\\"></mat-dialog-content>\\r\\n\"","module.exports = \"<link href=\\\"../../assets/css/dmapp.css\\\" rel=\\\"stylesheet\\\" id=\\\"bootstrap-css\\\">\\n<div class=\\\"row\\\" id=\\\"container\\\">\\n <div class=\\\"\\\" id=\\\"heading\\\">\\n <h4 style=\\\"white-space: nowrap;\\\">Goals</h4>\\n </div>\\n <div id=\\\"wrapper\\\">\\n <div id=\\\"tableActions\\\">\\n <div class=\\\"\\\" id=\\\"search\\\" *ngIf=\\\"!disableSearch\\\">\\n <mat-form-field style=\\\"margin-top: -5px;\\\" id=\\\"searchField\\\">\\n <mat-placeholder class=\\\"placeholder\\\">Search here</mat-placeholder>\\n <input matInput id=\\\"newGroup\\\" [disabled]=\\\"disableSearch\\\" (keyup)=\\\"searchText()\\\" name=\\\"search\\\"\\n [(ngModel)]=\\\"searchtext\\\" value=\\\"\\\" autocomplete=\\\"off\\\">\\n </mat-form-field>\\n </div>\\n <div class=\\\"\\\" id=\\\"excelBtn\\\" *ngIf=\\\"!disableSearch\\\">\\n <button class=\\\"darkbtnbg btn btn-info\\\" style=\\\"margin-top:11px;cursor: pointer;\\\" [disabled]=\\\"isDisable\\\"\\n matTooltip=\\\"Export as excel\\\" (click)=\\\"exportAsXLSX()\\\">\\n\\n Excel\\n </button>\\n </div>\\n <div class=\\\"\\\" id=\\\"createBtn\\\">\\n <button mat-accent class=\\\"darkbtnbg btn btn-info\\\" style=\\\"margin-top: 11px;\\\" (click)='NewGoal()'\\n [disabled]=\\\"!MenuPermissions[menuName][menuID]['C']\\\" matTooltip=\\\"New Goal\\\">New</button>\\n </div>\\n </div>\\n </div>\\n</div>\\n\\n\\n\\n\\n<div>\\n <div class=\\\"tableDiv\\\">\\n <table>\\n <thead>\\n <tr>\\n\\n <th cName class=\\\"pointer\\\" (click)=\\\"sort('GoalName')\\\"> Goal Name\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n\\n <th cName class=\\\"pointer\\\" (click)=\\\"sort('GoalDescription')\\\"> Description\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n\\n <th action>Action</th>\\n </tr>\\n </thead>\\n <tbody>\\n\\n <tr\\n *ngFor=\\\"let goal of GoalsList | paginate: { itemsPerPage: rowsOnPage, currentPage: p } | sort: {property: column, direction: direction}; let i = index\\\">\\n\\n <td> {{goal.GoalName}}</td>\\n <td> {{goal.GoalDescription}}</td>\\n\\n <td style=\\\" cursor:pointer;\\\">\\n <span>\\n <a matTooltip=\\\"Edit Goal\\\" (click)=\\\"EditGoal(goal)\\\"\\n [style.pointer-events]=\\\"(!MenuPermissions[menuName][menuID]['U'])?'none':'auto'\\\"\\n [ngClass]=\\\"{'removeColor':(!(MenuPermissions[menuName][menuID]['U'])),'AddColor':(MenuPermissions[menuName][menuID]['U'])}\\\"><i\\n style=\\\"cursor: pointer;\\\" class=\\\"fa fa-pencil-square-o \\\" aria-hidden=\\\"true\\\"></i></a>\\n <a matTooltip=\\\"Delete Goal\\\" (click)=\\\"DeleteGoal(goal)\\\"\\n [style.pointer-events]=\\\"(!MenuPermissions[menuName][menuID]['D'] )?'none':'auto'\\\"\\n [ngClass]=\\\"{'removeColor':(!(MenuPermissions[menuName][menuID]['D']) ),'AddColor':(MenuPermissions[menuName][menuID]['D'])}\\\"><i\\n style=\\\"cursor: pointer;\\\" class=\\\"fa fa-trash-o \\\" aria-hidden=\\\"true\\\"></i></a>\\n </span>\\n </td>\\n </tr>\\n </tbody>\\n\\n </table>\\n <br>\\n\\n <div class=\\\"warningMsg\\\" *ngIf=\\\"(GoalsList === null||GoalsList===undefined || GoalsList.length === 0)\\\">\\n\\n <span>No data available</span>\\n\\n </div>\\n </div>\\n <div class=\\\"pageContainer\\\" *ngIf=\\\"GoalPaging && GoalsList.length>0\\\">\\n\\n <div class=\\\"rowsSelection\\\">\\n <mat-form-field style=\\\"width: 50px; margin-top: -15px;\\\">\\n <mat-select [(ngModel)]=\\\"rowsOnPage\\\">\\n <mat-option *ngFor=\\\"let row of rowsOnPageSet\\\" [value]=\\\"row\\\">\\n {{row}}\\n </mat-option>\\n </mat-select>\\n </mat-form-field>\\n </div>\\n\\n\\n <div class=\\\"pageSelection\\\">\\n <pagination-controls (pageChange)=\\\"p = $event\\\"></pagination-controls>\\n </div>\\n </div>\"","module.exports = \"<link href=\\\"../../assets/css/dmapp.css\\\" rel=\\\"stylesheet\\\" id=\\\"bootstrap-css\\\">\\n<style>\\n @media screen {\\n .donotprintthis1 {\\n display: none;\\n }\\n\\n .donotprintthis {\\n\\n display: block;\\n\\n }\\n }\\n\\n @media print {\\n h5 {\\n text-align: center;\\n }\\n\\n .donotprintthis1 {\\n\\n display: block;\\n\\n }\\n\\n .donotprintthis {\\n\\n display: none;\\n\\n }\\n }\\n</style>\\n\\n<div class=\\\"reportHead\\\">\\n <div class=\\\"reportName\\\">\\n <h5>Prioritized Projects</h5>\\n </div>\\n <div class=\\\"reportActions\\\">\\n <div class=\\\"searchField\\\" *ngIf=\\\"!disableSearch\\\">\\n <div class=\\\"item item-1\\\">\\n\\n <mat-form-field>\\n <mat-placeholder class=\\\"placeholder\\\">Search here</mat-placeholder>\\n <input matInput id=\\\"newGroup\\\" [disabled]=\\\"disableSearch\\\" (keyup)=\\\"Searchtext()\\\" name=\\\"search\\\"\\n [(ngModel)]=\\\"searchtext\\\" value=\\\"\\\" autocomplete=\\\"off\\\">\\n </mat-form-field>\\n </div>\\n </div>\\n <div class=\\\"printBtn\\\" *ngIf=\\\"!isDisable\\\">\\n <div class=\\\"item item-5\\\">\\n\\n <button class=\\\"darkbtnbg btn btn-info\\\" matTooltip=\\\"Print report\\\" printTitle=\\\"{{companyName}}\\\"\\n printSectionId=\\\"printHiPriority\\\" [useExistingCss]=\\\"true\\\" ngxPrint>Print</button>\\n\\n\\n </div>\\n </div>\\n <div class=\\\"excelBtn\\\" *ngIf=\\\"!isDisable\\\">\\n <div class=\\\"item item-5\\\">\\n <button class=\\\"darkbtnbg btn btn-info\\\" [disabled]=\\\"isDisable\\\" matTooltip=\\\"Export as excel\\\"\\n (click)=\\\"exportAsXLSX()\\\">\\n\\n Excel\\n </button>\\n </div>\\n\\n\\n </div>\\n </div>\\n</div>\\n\\n\\n\\n\\n\\n<!-- Printing this div-------------------------- -->\\n\\n<div id=\\\"printHiPriority\\\">\\n\\n\\n <div class=\\\"donotprintthis1\\\">\\n <div style=\\\"text-align:center;margin-top: 15px;\\\">\\n <h6>\\n <span> Company - </span> {{companyName}} <br>\\n <span>Date: {{headerDate| date:'MM-dd-yyyy' }}</span><br>\\n <span>Report Type : Prioritized Projects</span>\\n\\n </h6>\\n\\n </div>\\n </div>\\n <!-- <h5 class=\\\"donotprintthis1\\\"style=\\\"\\n margin-block-end: 30px;\\n \\\">Report Type : Prioritized Projects</h5> -->\\n <div class=\\\"tableDiv\\\">\\n <table id=\\\"dtBasicExample\\\">\\n <thead>\\n <tr>\\n <th>No.</th>\\n <th class=\\\"pointer\\\" (click)=\\\"sort('TeamName')\\\"> Team\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n <th class=\\\"pointer\\\" (click)=\\\"sort('ProjectName')\\\"> Project\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n <th class=\\\"pointer\\\" (click)=\\\"sort('ProjectDescription')\\\"> Description\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n <th class=\\\"pointer\\\" (click)=\\\"sort('StatusName')\\\"> Status\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n <th class=\\\"pointer\\\" (click)=\\\"sort('ProjectOwner')\\\"> Project Owner\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n </tr>\\n </thead>\\n <tbody>\\n <!---->\\n <tr\\n *ngFor=\\\"let element of projectData | paginate: { itemsPerPage: rowsOnPage, currentPage: p } | sort: {property: column, direction: direction}; let i = index\\\">\\n <!--<td > {{element.CompanyName}}</td>-->\\n <td>{{i+1}}</td>\\n <td>{{element.TeamName}}</td>\\n <td> {{element.ProjectName}}</td>\\n <td> {{element.ProjectDescription}}</td>\\n <td> {{element.ProjectStatusName}}</td>\\n <td>{{element.ProjectOwner}}</td>\\n </tr>\\n </tbody>\\n\\n </table><br>\\n\\n <!-- <mat-paginator [pageSizeOptions]=\\\"[5, 10, 20]\\\" showFirstLastButtons></mat-paginator> -->\\n <div class=\\\"warningMsg\\\" *ngIf=\\\"(projectData === null||projectData===undefined || projectData.length === 0)\\\">\\n\\n <span>No data available</span>\\n\\n\\n </div>\\n\\n </div>\\n <div class=\\\"donotprintthis1\\\" style=\\\" position: fixed; bottom: 0;\\nfont-size: 13px;\\nmargin-left: 35%;\\\">\\n <label>{{copyRight}}</label>\\n </div>\\n</div>\\n<div class=\\\"pageContainer\\\" *ngIf=\\\"projectPaging &&projectData.length>0\\\">\\n <div class=\\\"rowsSelection\\\">\\n <mat-form-field style=\\\"width: 50px; margin-top: -15px;\\\">\\n <mat-select [(ngModel)]=\\\"rowsOnPage\\\">\\n <mat-option *ngFor=\\\"let row of rowsOnPageSet\\\" [value]=\\\"row\\\">\\n {{row}}\\n </mat-option>\\n </mat-select>\\n </mat-form-field>\\n </div>\\n <div class=\\\"pageSelection\\\">\\n <pagination-controls (pageChange)=\\\"p = $event\\\"></pagination-controls>\\n </div>\\n</div>\\n\"","module.exports = \"<link href=\\\"../../assets/css/dmapp.css\\\" rel=\\\"stylesheet\\\" id=\\\"bootstrap-css\\\">\\r\\n<div *ngIf=\\\"data !== 'ChangePwd'\\\">\\r\\n <mat-dialog-content>{{data}}</mat-dialog-content>\\r\\n <mat-dialog-actions align=\\\"center\\\">\\r\\n <div *ngIf=\\\"condition\\\">\\r\\n <button mat-raised-button mat-accent mat-dialog-close (click)=\\\"onNoClick()\\\">No</button>\\r\\n <!-- Can optionally provide a result for the closing dialog. -->\\r\\n <button mat-raised-button mat-accent [mat-dialog-close]=\\\"true\\\" (click)=\\\"onYesClick()\\\">Yes</button>\\r\\n </div>\\r\\n <div *ngIf=\\\"!condition && data !== 'progress' && data !== 'status'&& !userVisible\\\">\\r\\n <div class=\\\"container\\\" fxLayout fxLayout.xs=\\\"column\\\" fxLayoutAlign=\\\"center\\\" fxLayoutGap=\\\"10px\\\" fxLayoutGap.xs=\\\"0\\\">\\r\\n <div class=\\\"item item-3 \\\">\\r\\n <button mat-button mat-accent mat-dialog-close>Ok</button>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </mat-dialog-actions>\\r\\n</div>\\r\\n<div class=\\\"row\\\" *ngIf=\\\"data === 'ChangePwd'\\\">\\r\\n <div class=\\\"col-11\\\" style=\\\"text-align: center;inline-size: max-content;\\\">\\r\\n <h5 style=\\\"text-align: center;inline-size: max-content;\\\">Change Password</h5>\\r\\n <mat-form-field>\\r\\n <input matInput type=\\\"password\\\" placeholder=\\\"* Current Password\\\" autocomplete=\\\"off\\\" maxlength=\\\"100\\\"\\r\\n [(ngModel)]=\\\"oldPassword\\\">\\r\\n </mat-form-field><br>\\r\\n <mat-form-field>\\r\\n <input matInput type=\\\"password\\\" placeholder=\\\"* New Password\\\" autocomplete=\\\"off\\\" maxlength=\\\"100\\\"\\r\\n [(ngModel)]=\\\"newPassword\\\">\\r\\n </mat-form-field><br>\\r\\n <mat-form-field>\\r\\n <input matInput type=\\\"password\\\" placeholder=\\\"* Confirm Password\\\" autocomplete=\\\"off\\\" maxlength=\\\"100\\\"\\r\\n [(ngModel)]=\\\"confirmPassword\\\">\\r\\n </mat-form-field>\\r\\n <div style=\\\"text-align: center;\\\">\\r\\n <button id=\\\"changepassword\\\" mat-raised-button color=\\\"primary\\\" (click)=\\\"ChangePassword()\\\">Change</button>\\r\\n\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"col-1\\\" style=\\\"padding: 0;\\\">\\r\\n <span style=\\\"float: right;cursor: pointer;\\\" (click)=\\\"Close()\\\" matTooltip=\\\"Close\\\" class=\\\"closechngbtn\\\">×</span>\\r\\n </div>\\r\\n\\r\\n</div>\\r\\n<div class=\\\"ps_error\\\">\\r\\n <span style=\\\"color:red\\\">{{dataSelf}}</span>\\r\\n</div>\\r\\n<style>\\r\\n .ps_error {\\r\\n width: 260px;\\r\\n font-size: 12px;\\r\\n letter-spacing: 0.4px;\\r\\n line-height: 20px;\\r\\n }\\r\\n</style>\\r\\n\"","module.exports = \"<style>\\r\\n\\t.menuStyle {\\r\\n\\t\\tfont-size: 18px !important;\\r\\n\\t\\tpadding-left: 0px !important;\\r\\n\\t\\tfont-weight: 500 !important;\\r\\n\\t}\\r\\n\\r\\n\\t.a {\\r\\n\\t\\tcolor: #dedede;\\r\\n\\t}\\r\\n\\r\\n\\t#sidebar {\\r\\n\\t\\tmargin-left: 0px !important;\\r\\n\\t}\\r\\n\\r\\n\\t.panel-default>.panel-heading {\\r\\n\\t\\tcolor: #dedede;\\r\\n\\t\\tbackground-color: #404040;\\r\\n\\t\\tborder-color: #ddd;\\r\\n\\t}\\r\\n\\r\\n\\t.panel-group .panel+.panel {\\r\\n\\t\\tmargin-top: 0px;\\r\\n\\t}\\r\\n\\r\\n\\t.panel-group {\\r\\n\\t\\tmargin-top: 35px;\\r\\n\\t}\\r\\n\\r\\n\\t.panel-collapse {\\r\\n\\t\\tbackground-color: #2b2b2b;\\r\\n\\t}\\r\\n\\r\\n\\ta {\\r\\n\\t\\tcolor: white;\\r\\n\\t\\ttext-decoration: none\\r\\n\\t}\\r\\n\\r\\n\\ta:hover,\\r\\n\\ta:focus {\\r\\n\\t\\tcolor: #2a6496;\\r\\n\\t\\ttext-decoration: underline\\r\\n\\t}\\r\\n\\r\\n\\ta:focus {\\r\\n\\t\\toutline: thin dotted;\\r\\n\\t\\toutline: 5px auto -webkit-focus-ring-color;\\r\\n\\t\\toutline-offset: -2px\\r\\n\\t}\\r\\n\\r\\n\\r\\n\\r\\n\\timg {\\r\\n\\t\\tvertical-align: middle\\r\\n\\t}\\r\\n\\r\\n\\r\\n\\th1,\\r\\n\\th2,\\r\\n\\th3,\\r\\n\\th4,\\r\\n\\th5,\\r\\n\\th6,\\r\\n\\t.h1,\\r\\n\\t.h2,\\r\\n\\t.h3,\\r\\n\\t.h4,\\r\\n\\t.h5,\\r\\n\\t.h6 {\\r\\n\\t\\tfont-family: inherit;\\r\\n\\t\\tfont-weight: 500;\\r\\n\\t\\tline-height: 1.1;\\r\\n\\t\\tcolor: inherit\\r\\n\\t}\\r\\n\\r\\n\\th1 small,\\r\\n\\th2 small,\\r\\n\\th3 small,\\r\\n\\th4 small,\\r\\n\\th5 small,\\r\\n\\th6 small,\\r\\n\\t.h1 small,\\r\\n\\t.h2 small,\\r\\n\\t.h3 small,\\r\\n\\t.h4 small,\\r\\n\\t.h5 small,\\r\\n\\t.h6 small,\\r\\n\\th1 .small,\\r\\n\\th2 .small,\\r\\n\\th3 .small,\\r\\n\\th4 .small,\\r\\n\\th5 .small,\\r\\n\\th6 .small,\\r\\n\\t.h1 .small,\\r\\n\\t.h2 .small,\\r\\n\\t.h3 .small,\\r\\n\\t.h4 .small,\\r\\n\\t.h5 .small,\\r\\n\\t.h6 .small {\\r\\n\\t\\tfont-weight: 400;\\r\\n\\t\\tline-height: 1;\\r\\n\\t\\tcolor: #777\\r\\n\\t}\\r\\n\\r\\n\\th1,\\r\\n\\t.h1,\\r\\n\\th2,\\r\\n\\t.h2,\\r\\n\\th3,\\r\\n\\t.h3 {\\r\\n\\t\\tmargin-top: 20px;\\r\\n\\t\\tmargin-bottom: 10px\\r\\n\\t}\\r\\n\\r\\n\\th1 small,\\r\\n\\t.h1 small,\\r\\n\\th2 small,\\r\\n\\t.h2 small,\\r\\n\\th3 small,\\r\\n\\t.h3 small,\\r\\n\\th1 .small,\\r\\n\\t.h1 .small,\\r\\n\\th2 .small,\\r\\n\\t.h2 .small,\\r\\n\\th3 .small,\\r\\n\\t.h3 .small {\\r\\n\\t\\tfont-size: 65%\\r\\n\\t}\\r\\n\\r\\n\\th4,\\r\\n\\t.h4,\\r\\n\\th5,\\r\\n\\t.h5,\\r\\n\\th6,\\r\\n\\t.h6 {\\r\\n\\t\\tmargin-top: 10px;\\r\\n\\t\\tmargin-bottom: 10px\\r\\n\\t}\\r\\n\\r\\n\\th4 small,\\r\\n\\t.h4 small,\\r\\n\\th5 small,\\r\\n\\t.h5 small,\\r\\n\\th6 small,\\r\\n\\t.h6 small,\\r\\n\\th4 .small,\\r\\n\\t.h4 .small,\\r\\n\\th5 .small,\\r\\n\\t.h5 .small,\\r\\n\\th6 .small,\\r\\n\\t.h6 .small {\\r\\n\\t\\tfont-size: 75%\\r\\n\\t}\\r\\n\\r\\n\\th1,\\r\\n\\t.h1 {\\r\\n\\t\\tfont-size: 36px\\r\\n\\t}\\r\\n\\r\\n\\th2,\\r\\n\\t.h2 {\\r\\n\\t\\tfont-size: 30px\\r\\n\\t}\\r\\n\\r\\n\\th3,\\r\\n\\t.h3 {\\r\\n\\t\\tfont-size: 24px\\r\\n\\t}\\r\\n\\r\\n\\th4,\\r\\n\\t.h4 {\\r\\n\\t\\tfont-size: 18px\\r\\n\\t}\\r\\n\\r\\n\\th5,\\r\\n\\t.h5 {\\r\\n\\t\\tfont-size: 14px\\r\\n\\t}\\r\\n\\r\\n\\th6,\\r\\n\\t.h6 {\\r\\n\\t\\tfont-size: 12px\\r\\n\\t}\\r\\n\\r\\n\\tp {\\r\\n\\t\\tmargin: 0 0 10px\\r\\n\\t}\\r\\n\\r\\n\\r\\n\\r\\n\\tsmall,\\r\\n\\t.small {\\r\\n\\t\\tfont-size: 85%\\r\\n\\t}\\r\\n\\r\\n\\tmark,\\r\\n\\t.mark {\\r\\n\\t\\tpadding: .2em;\\r\\n\\t\\tbackground-color: #fcf8e3\\r\\n\\t}\\r\\n\\r\\n\\t.text-left {\\r\\n\\t\\ttext-align: left\\r\\n\\t}\\r\\n\\r\\n\\t.text-right {\\r\\n\\t\\ttext-align: right\\r\\n\\t}\\r\\n\\r\\n\\t.text-center {\\r\\n\\t\\ttext-align: center\\r\\n\\t}\\r\\n\\r\\n\\t.text-justify {\\r\\n\\t\\ttext-align: justify\\r\\n\\t}\\r\\n\\r\\n\\t.text-nowrap {\\r\\n\\t\\twhite-space: nowrap\\r\\n\\t}\\r\\n\\r\\n\\t.text-lowercase {\\r\\n\\t\\ttext-transform: lowercase\\r\\n\\t}\\r\\n\\r\\n\\t.text-uppercase {\\r\\n\\t\\ttext-transform: uppercase\\r\\n\\t}\\r\\n\\r\\n\\t.text-capitalize {\\r\\n\\t\\ttext-transform: capitalize\\r\\n\\t}\\r\\n\\r\\n\\t.text-muted {\\r\\n\\t\\tcolor: #777\\r\\n\\t}\\r\\n\\r\\n\\t.text-primary {\\r\\n\\t\\tcolor: #428bca\\r\\n\\t}\\r\\n\\r\\n\\ta.text-primary:hover {\\r\\n\\t\\tcolor: #3071a9\\r\\n\\t}\\r\\n\\r\\n\\t.text-success {\\r\\n\\t\\tcolor: #3c763d\\r\\n\\t}\\r\\n\\r\\n\\ta.text-success:hover {\\r\\n\\t\\tcolor: #2b542c\\r\\n\\t}\\r\\n\\r\\n\\t.text-info {\\r\\n\\t\\tcolor: #31708f\\r\\n\\t}\\r\\n\\r\\n\\ta.text-info:hover {\\r\\n\\t\\tcolor: #245269\\r\\n\\t}\\r\\n\\r\\n\\t.text-warning {\\r\\n\\t\\tcolor: #8a6d3b\\r\\n\\t}\\r\\n\\r\\n\\ta.text-warning:hover {\\r\\n\\t\\tcolor: #66512c\\r\\n\\t}\\r\\n\\r\\n\\t.text-danger {\\r\\n\\t\\tcolor: #a94442\\r\\n\\t}\\r\\n\\r\\n\\ta.text-danger:hover {\\r\\n\\t\\tcolor: #843534\\r\\n\\t}\\r\\n\\r\\n\\t.bg-primary {\\r\\n\\t\\tcolor: #fff;\\r\\n\\t\\tbackground-color: #428bca\\r\\n\\t}\\r\\n\\r\\n\\ta.bg-primary:hover {\\r\\n\\t\\tbackground-color: #3071a9\\r\\n\\t}\\r\\n\\r\\n\\t.bg-success {\\r\\n\\t\\tbackground-color: #dff0d8\\r\\n\\t}\\r\\n\\r\\n\\ta.bg-success:hover {\\r\\n\\t\\tbackground-color: #c1e2b3\\r\\n\\t}\\r\\n\\r\\n\\t.bg-info {\\r\\n\\t\\tbackground-color: #d9edf7\\r\\n\\t}\\r\\n\\r\\n\\ta.bg-info:hover {\\r\\n\\t\\tbackground-color: #afd9ee\\r\\n\\t}\\r\\n\\r\\n\\t.bg-warning {\\r\\n\\t\\tbackground-color: #fcf8e3\\r\\n\\t}\\r\\n\\r\\n\\ta.bg-warning:hover {\\r\\n\\t\\tbackground-color: #f7ecb5\\r\\n\\t}\\r\\n\\r\\n\\t.bg-danger {\\r\\n\\t\\tbackground-color: #f2dede\\r\\n\\t}\\r\\n\\r\\n\\ta.bg-danger:hover {\\r\\n\\t\\tbackground-color: #e4b9b9\\r\\n\\t}\\r\\n\\r\\n\\t.page-header {\\r\\n\\t\\tpadding-bottom: 9px;\\r\\n\\t\\tmargin: 40px 0 20px;\\r\\n\\t\\tborder-bottom: 1px solid #eee\\r\\n\\t}\\r\\n\\r\\n\\tul,\\r\\n\\tol {\\r\\n\\t\\tmargin-top: 0;\\r\\n\\t\\tmargin-bottom: 10px\\r\\n\\t}\\r\\n\\r\\n\\tul ul,\\r\\n\\tol ul,\\r\\n\\tul ol,\\r\\n\\tol ol {\\r\\n\\t\\tmargin-bottom: 0\\r\\n\\t}\\r\\n\\r\\n\\t.list-unstyled {\\r\\n\\t\\tpadding-left: 0;\\r\\n\\t\\tlist-style: none\\r\\n\\t}\\r\\n\\r\\n\\t.list-inline {\\r\\n\\t\\tpadding-left: 0;\\r\\n\\t\\tmargin-left: -5px;\\r\\n\\t\\tlist-style: none\\r\\n\\t}\\r\\n\\r\\n\\t.list-inline>li {\\r\\n\\t\\tdisplay: inline-block;\\r\\n\\t\\tpadding-right: 5px;\\r\\n\\t\\tpadding-left: 5px\\r\\n\\t}\\r\\n\\r\\n\\tdl {\\r\\n\\t\\tmargin-top: 0;\\r\\n\\t\\tmargin-bottom: 20px\\r\\n\\t}\\r\\n\\r\\n\\tdt,\\r\\n\\tdd {\\r\\n\\t\\tline-height: 1.42857143\\r\\n\\t}\\r\\n\\r\\n\\tdt {\\r\\n\\t\\tfont-weight: 700\\r\\n\\t}\\r\\n\\r\\n\\tdd {\\r\\n\\t\\tmargin-left: 0\\r\\n\\t}\\r\\n\\r\\n\\t@media (min-width:768px) {\\r\\n\\t\\t.dl-horizontal dt {\\r\\n\\t\\t\\tfloat: left;\\r\\n\\t\\t\\twidth: 160px;\\r\\n\\t\\t\\toverflow: hidden;\\r\\n\\t\\t\\tclear: left;\\r\\n\\t\\t\\ttext-align: right;\\r\\n\\t\\t\\ttext-overflow: ellipsis;\\r\\n\\t\\t\\twhite-space: nowrap\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\t.dl-horizontal dd {\\r\\n\\t\\t\\tmargin-left: 180px\\r\\n\\t\\t}\\r\\n\\t}\\r\\n\\r\\n\\t.btn-link:hover,\\r\\n\\t.btn-link:focus {\\r\\n\\t\\tcolor: #2a6496;\\r\\n\\t\\ttext-decoration: underline;\\r\\n\\t\\tbackground-color: transparent\\r\\n\\t}\\r\\n\\r\\n\\t.btn-link[disabled]:hover,\\r\\n\\tfieldset[disabled] .btn-link:hover,\\r\\n\\t.btn-link[disabled]:focus,\\r\\n\\tfieldset[disabled] .btn-link:focus {\\r\\n\\t\\tcolor: #777;\\r\\n\\t\\ttext-decoration: none\\r\\n\\t}\\r\\n\\r\\n\\t.btn-lg,\\r\\n\\t.btn-group-lg>.btn {\\r\\n\\t\\tpadding: 10px 16px;\\r\\n\\t\\tfont-size: 18px;\\r\\n\\t\\tline-height: 1.33;\\r\\n\\t\\tborder-radius: 6px\\r\\n\\t}\\r\\n\\r\\n\\t.btn-sm,\\r\\n\\t.btn-group-sm>.btn {\\r\\n\\t\\tpadding: 5px 10px;\\r\\n\\t\\tfont-size: 12px;\\r\\n\\t\\tline-height: 1.5;\\r\\n\\t\\tborder-radius: 3px\\r\\n\\t}\\r\\n\\r\\n\\t.btn-xs,\\r\\n\\t.btn-group-xs>.btn {\\r\\n\\t\\tpadding: 1px 5px;\\r\\n\\t\\tfont-size: 12px;\\r\\n\\t\\tline-height: 1.5;\\r\\n\\t\\tborder-radius: 3px\\r\\n\\t}\\r\\n\\r\\n\\t.btn-block {\\r\\n\\t\\tdisplay: block;\\r\\n\\t\\twidth: 100%\\r\\n\\t}\\r\\n\\r\\n\\t.btn-block+.btn-block {\\r\\n\\t\\tmargin-top: 5px\\r\\n\\t}\\r\\n\\r\\n\\tinput[type=submit].btn-block,\\r\\n\\tinput[type=reset].btn-block,\\r\\n\\tinput[type=button].btn-block {\\r\\n\\t\\twidth: 100%\\r\\n\\t}\\r\\n\\r\\n\\t.fade {\\r\\n\\t\\topacity: 0;\\r\\n\\t\\t-webkit-transition: opacity .15s linear;\\r\\n\\t\\t-o-transition: opacity .15s linear;\\r\\n\\t\\ttransition: opacity .15s linear\\r\\n\\t}\\r\\n\\r\\n\\t.fade.in {\\r\\n\\t\\topacity: 1\\r\\n\\t}\\r\\n\\r\\n\\t.collapse {\\r\\n\\t\\tdisplay: none;\\r\\n\\t\\tvisibility: hidden\\r\\n\\t}\\r\\n\\r\\n\\t.collapse.in {\\r\\n\\t\\tdisplay: block;\\r\\n\\t\\tvisibility: visible\\r\\n\\t}\\r\\n\\r\\n\\ttr.collapse.in {\\r\\n\\t\\tdisplay: table-row\\r\\n\\t}\\r\\n\\r\\n\\ttbody.collapse.in {\\r\\n\\t\\tdisplay: table-row-group\\r\\n\\t}\\r\\n\\r\\n\\t.collapsing {\\r\\n\\t\\tposition: relative;\\r\\n\\t\\theight: 0;\\r\\n\\t\\toverflow: hidden;\\r\\n\\t\\t-webkit-transition-timing-function: ease;\\r\\n\\t\\t-o-transition-timing-function: ease;\\r\\n\\t\\ttransition-timing-function: ease;\\r\\n\\t\\t-webkit-transition-duration: .35s;\\r\\n\\t\\t-o-transition-duration: .35s;\\r\\n\\t\\ttransition-duration: .35s;\\r\\n\\t\\t-webkit-transition-property: height, visibility;\\r\\n\\t\\t-o-transition-property: height, visibility;\\r\\n\\t\\ttransition-property: height, visibility\\r\\n\\t}\\r\\n\\r\\n\\t.caret {\\r\\n\\t\\tmargin-left: 2px;\\r\\n\\t\\tvertical-align: middle;\\r\\n\\t\\tdisplay: inline-block;\\r\\n\\t\\twidth: 0;\\r\\n\\t\\theight: 0;\\r\\n\\t\\tborder-left: 4px solid;\\r\\n\\t\\tborder-bottom: 4px solid transparent;\\r\\n\\t\\tborder-top: 4px solid transparent;\\r\\n\\t}\\r\\n\\r\\n\\t.caret-down {\\r\\n\\t\\tdisplay: inline-block;\\r\\n\\t\\twidth: 0;\\r\\n\\t\\theight: 0;\\r\\n\\t\\tmargin-left: 2px;\\r\\n\\t\\tvertical-align: middle;\\r\\n\\t\\tborder-top: 4px solid;\\r\\n\\t\\tborder-right: 4px solid transparent;\\r\\n\\t\\tborder-left: 4px solid transparent\\r\\n\\t}\\r\\n\\r\\n\\t.active {\\r\\n\\t\\tbackground-color: lightseagreen;\\r\\n\\t\\tcolor: black;\\r\\n\\t}\\r\\n\\r\\n\\tli {\\r\\n\\t\\tlist-style: none;\\r\\n\\t}\\r\\n\\r\\n\\t.panel-default>.panel-heading {\\r\\n\\t\\tcolor: #dedede;\\r\\n\\t\\tbackground-color: #7386D5;\\r\\n\\t\\tborder-color: #ddd;\\r\\n\\t}\\r\\n\\r\\n\\t.panel-group .panel+.panel {\\r\\n\\t\\tmargin-top: 0px;\\r\\n\\t}\\r\\n\\r\\n\\t.panel-group {\\r\\n\\t\\tmargin-top: 35px;\\r\\n\\t}\\r\\n\\r\\n\\t.panel-collapse {\\r\\n\\t\\tbackground-color: #2b2b2b;\\r\\n\\t}\\r\\n\\r\\n\\t.glyphicon {\\r\\n\\t\\tmargin-right: 10px;\\r\\n\\t}\\r\\n\\r\\n\\tul.list-group {\\r\\n\\t\\tmargin: 0px;\\r\\n\\t}\\r\\n\\r\\n\\tul.bulletlist li {\\r\\n\\t\\tlist-style: disc;\\r\\n\\t}\\r\\n\\r\\n\\tul.list-group li a {\\r\\n\\t\\tdisplay: block;\\r\\n\\t\\tpadding: 5px 0px 5px 15px;\\r\\n\\t\\ttext-decoration: none;\\r\\n\\t}\\r\\n\\r\\n\\tul.list-group li a:hover,\\r\\n\\tul li a:focus {\\r\\n\\t\\tcolor: #2b2b2b !important;\\r\\n\\t\\tbackground-color: white;\\r\\n\\t}\\r\\n\\r\\n\\tul.list-group .has-module:hover,\\r\\n\\tul .has-module:focus {\\r\\n\\t\\tbackground-color: #3775b5 !important;\\r\\n\\t\\tcolor: #2b2b2b !important;\\r\\n\\t}\\r\\n\\r\\n\\t.panel-title a:hover,\\r\\n\\t.panel-title a:active,\\r\\n\\t.panel-title a:focus,\\r\\n\\t.panel-title .open a:hover,\\r\\n\\t.panel-title .open a:active,\\r\\n\\t.panel-title .open a:focus {\\r\\n\\t\\ttext-decoration: none;\\r\\n\\t\\tcolor: #dedede;\\r\\n\\t}\\r\\n\\r\\n\\t.panel-title>.small,\\r\\n\\t.panel-title>.small>a,\\r\\n\\t.panel-title>a,\\r\\n\\t.panel-title>small,\\r\\n\\t.panel-title>small>a {\\r\\n\\t\\tdisplay: block;\\r\\n\\t}\\r\\n\\r\\n\\t.card {\\r\\n\\t\\theight: 100%;\\r\\n\\t\\ttext-align: center;\\r\\n\\t\\tvertical-align: middle;\\r\\n\\t}\\r\\n\\r\\n\\t@mixin breakpoint($point) {\\r\\n\\t\\t@media (min-width: $point) {\\r\\n\\t\\t\\t@content ;\\r\\n\\t\\t}\\r\\n\\t}\\r\\n\\r\\n\\t@mixin breakpoint-max($point) {\\r\\n\\t\\t@media (max-width: $point) {\\r\\n\\t\\t\\t@content ;\\r\\n\\t\\t}\\r\\n\\t}\\r\\n\\r\\n\\t@mixin height-breakpoint($point) {\\r\\n\\t\\t@media (min-height: $point) {\\r\\n\\t\\t\\t@content ;\\r\\n\\t\\t}\\r\\n\\t}\\r\\n\\r\\n\\t@mixin height-breakpoint-max($point) {\\r\\n\\t\\t@media (min-height: $point) {\\r\\n\\t\\t\\t@content ;\\r\\n\\t\\t}\\r\\n\\t}\\r\\n\\r\\n\\t.mat-nav-list {\\r\\n\\t\\tpadding-top: 0;\\r\\n\\t}\\r\\n\\r\\n\\t@include breakpoint-max(600px) {\\r\\n\\t\\t.fixed-topnav {\\r\\n\\t\\t\\tposition: fixed;\\r\\n\\t\\t\\ttop: 0;\\r\\n\\t\\t\\tleft: 0;\\r\\n\\t\\t\\tz-index: 2;\\r\\n\\t\\t\\twidth: 100% !important;\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\t.mat-drawer-container,\\r\\n\\t\\t.mat-drawer {\\r\\n\\t\\t\\tpadding-top: 56px;\\r\\n\\t\\t}\\r\\n\\t}\\r\\n\\r\\n\\t.version-info {\\r\\n\\t\\tfont-size: 8pt;\\r\\n\\t\\tpadding: 8px;\\r\\n\\t\\talign-self: flex-end;\\r\\n\\t}\\r\\n\\r\\n\\th1 {\\r\\n\\t\\tcolor: #333;\\r\\n\\t\\tfont-family: arial, sans-serif;\\r\\n\\t\\tmargin: 1em auto;\\r\\n\\t\\twidth: 80%;\\r\\n\\t}\\r\\n\\r\\n\\t.tabordion {\\r\\n\\t\\tcolor: #333;\\r\\n\\t\\tdisplay: block;\\r\\n\\t\\tfont-family: arial, sans-serif;\\r\\n\\t\\tmargin: auto;\\r\\n\\t\\tposition: relative;\\r\\n\\t\\twidth: 80%;\\r\\n\\t}\\r\\n\\r\\n\\t.tabordion input[name=\\\"sections\\\"] {\\r\\n\\t\\tleft: -9999px;\\r\\n\\t\\tposition: absolute;\\r\\n\\t\\ttop: -9999px;\\r\\n\\t}\\r\\n\\r\\n\\t.tabordion section {\\r\\n\\t\\tdisplay: block;\\r\\n\\t}\\r\\n\\r\\n\\t.tabordion section label {\\r\\n\\t\\tbackground: #ccc;\\r\\n\\t\\tborder: 1px solid #fff;\\r\\n\\t\\tcursor: pointer;\\r\\n\\t\\tdisplay: block;\\r\\n\\t\\tfont-size: 1.2em;\\r\\n\\t\\tfont-weight: bold;\\r\\n\\t\\tpadding: 15px 20px;\\r\\n\\t\\tposition: relative;\\r\\n\\t\\twidth: 180px;\\r\\n\\t\\tz-index: 100;\\r\\n\\t}\\r\\n\\r\\n\\t.tabordion section article {\\r\\n\\t\\tdisplay: none;\\r\\n\\t\\tleft: 230px;\\r\\n\\t\\tmin-width: 300px;\\r\\n\\t\\tpadding: 0 0 0 21px;\\r\\n\\t\\tposition: absolute;\\r\\n\\t\\ttop: 0;\\r\\n\\t}\\r\\n\\r\\n\\t.tabordion section article:after {\\r\\n\\t\\tbackground-color: #ccc;\\r\\n\\t\\tbottom: 0;\\r\\n\\t\\tcontent: \\\"\\\";\\r\\n\\t\\tdisplay: block;\\r\\n\\t\\tleft: -229px;\\r\\n\\t\\tposition: absolute;\\r\\n\\t\\ttop: 0;\\r\\n\\t\\twidth: 220px;\\r\\n\\t\\tz-index: 1;\\r\\n\\t}\\r\\n\\r\\n\\t.tabordion input[name=\\\"sections\\\"]:checked+label {\\r\\n\\r\\n\\t\\tfont-size: 16px;\\r\\n\\t}\\r\\n\\r\\n\\t.tabordion input[name=\\\"sections\\\"]:checked~article {\\r\\n\\t\\tdisplay: block;\\r\\n\\t\\tfont-size: 16px;\\r\\n\\t\\tbackground: #eee;\\r\\n\\t\\tcolor: #000;\\r\\n\\t}\\r\\n\\r\\n\\r\\n\\t@media (max-width: 533px) {\\r\\n\\t\\th1 {\\r\\n\\t\\t\\twidth: 100%;\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\t.tabordion {\\r\\n\\t\\t\\twidth: 100%;\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\t.tabordion section label {\\r\\n\\t\\t\\tfont-size: 1em;\\r\\n\\t\\t\\twidth: 160px;\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\t.tabordion section article {\\r\\n\\t\\t\\tleft: 200px;\\r\\n\\t\\t\\tmin-width: 270px;\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\t.tabordion section article:after {\\r\\n\\t\\t\\tbackground-color: #ccc;\\r\\n\\t\\t\\tbottom: 0;\\r\\n\\t\\t\\tcontent: \\\"\\\";\\r\\n\\t\\t\\tdisplay: block;\\r\\n\\t\\t\\tleft: -199px;\\r\\n\\t\\t\\tposition: absolute;\\r\\n\\t\\t\\ttop: 0;\\r\\n\\t\\t\\twidth: 200px;\\r\\n\\t\\t}\\r\\n\\t}\\r\\n\\r\\n\\t@media print {\\r\\n\\t\\t.donotprintthis {\\r\\n\\t\\t\\tdisplay: none;\\r\\n\\t\\t}\\r\\n\\t}\\r\\n\\r\\n\\t@media print {\\r\\n\\t\\t@page {\\r\\n\\t\\t\\tsize: auto;\\r\\n\\t\\t\\tmargin: 0mm;\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\ta[href]:after {\\r\\n\\t\\t\\tcontent: none !important;\\r\\n\\t\\t}\\r\\n\\t}\\r\\n\\r\\n\\t@media print {\\r\\n\\r\\n\\t\\t#Header,\\r\\n\\t\\t#Footer {\\r\\n\\t\\t\\tdisplay: none !important;\\r\\n\\t\\t}\\r\\n\\t}\\r\\n\\r\\n\\t@media screen {\\r\\n\\t\\t.donotprintthis {\\r\\n\\t\\t\\tdisplay: block;\\r\\n\\t\\t}\\r\\n\\t}\\r\\n\\r\\n\\t.active {\\r\\n\\t\\tbackground-color: lightseagreen;\\r\\n\\t}\\r\\n\\r\\n\\tli {\\r\\n\\t\\tlist-style: none;\\r\\n\\t}\\r\\n\\r\\n\\t.panel-default>.panel-heading {\\r\\n\\t\\tcolor: #dedede;\\r\\n\\t\\tbackground-color: #404040;\\r\\n\\t}\\r\\n\\r\\n\\t.panel-group .panel+.panel {\\r\\n\\t\\tmargin-top: 0px;\\r\\n\\t}\\r\\n\\r\\n\\t.panel-group {\\r\\n\\t\\tmargin-top: 35px;\\r\\n\\t}\\r\\n\\r\\n\\t.glyphicon {\\r\\n\\t\\tmargin-right: 10px;\\r\\n\\t}\\r\\n\\r\\n\\r\\n\\tul.list-group {\\r\\n\\t\\tmargin: 0px;\\r\\n\\t}\\r\\n\\r\\n\\tul.bulletlist li {\\r\\n\\t\\tlist-style: disc;\\r\\n\\t}\\r\\n\\r\\n\\r\\n\\tul.list-group li a {\\r\\n\\t\\tdisplay: block;\\r\\n\\t\\tpadding: 5px 0px 5px 15px;\\r\\n\\t\\ttext-decoration: none;\\r\\n\\t}\\r\\n\\r\\n\\t.panel-title a:hover,\\r\\n\\t.panel-title a:active,\\r\\n\\t.panel-title a:focus,\\r\\n\\t.panel-title .open a:hover,\\r\\n\\t.panel-title .open a:active,\\r\\n\\t.panel-title .open a:focus {\\r\\n\\t\\ttext-decoration: none;\\r\\n\\t\\tcolor: #dedede;\\r\\n\\t}\\r\\n\\r\\n\\t.panel-title>.small,\\r\\n\\t.panel-title>.small>a,\\r\\n\\t.panel-title>a,\\r\\n\\t.panel-title>small,\\r\\n\\t.panel-title>small>a {\\r\\n\\t\\tdisplay: block;\\r\\n\\t}\\r\\n\\r\\n\\t@media (min-width: 768px) {\\r\\n\\t\\t.navbar-collapse.collapse {\\r\\n\\t\\t\\tdisplay: block !important;\\r\\n\\t\\t\\theight: auto !important;\\r\\n\\t\\t\\tpadding-bottom: 0;\\r\\n\\t\\t\\toverflow: visible !important;\\r\\n\\t\\t\\tpadding-left: 0px;\\r\\n\\t\\t}\\r\\n\\t}\\r\\n\\r\\n\\t@media (min-width: 992px) {\\r\\n\\t\\t.menu-hide {\\r\\n\\t\\t\\tdisplay: none;\\r\\n\\t\\t}\\r\\n\\r\\n\\t}\\r\\n\\r\\n\\r\\n\\t/********** END SIDEBAR *************/\\r\\n\\r\\n\\t/********** NAVBAR TOGGLE *************/\\r\\n</style>\\r\\n\\r\\n<div class=\\\"row\\\" *ngIf=\\\"!login\\\" style=\\\"min-height:500px;margin-top:5%;margin-left:0px;margin-right:0px\\\">\\r\\n\\t<div class=\\\"col-sm-4\\\"></div>\\r\\n\\t<div class=\\\"col-sm-4\\\">\\r\\n\\t\\t<div class=\\\"card\\\">\\r\\n\\t\\t\\t<div style=\\\"margin-top:20%;\\\">\\r\\n\\t\\t\\t\\t<img src=\\\"./assets/images/DorseyMainLogo.png\\\" width=\\\"50%\\\" alt=\\\"dorsey Logo\\\" />\\r\\n\\t\\t\\t\\t<div class=\\\"row\\\" id=\\\"Rowcontainer\\\" *ngIf=\\\"!showAzureBtn\\\">\\r\\n\\t\\t\\t\\t\\t<div id=\\\"Rowwrapper\\\">\\r\\n\\t\\t\\t\\t\\t\\t<div id=\\\"RowtableActions\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t<div id=\\\"field\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t<mat-form-field style=\\\"width: 180px\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t<mat-placeholder class=\\\"placeholder\\\">Username</mat-placeholder>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t<input matInput id=\\\"username\\\" (keyup.enter)=\\\"CheckEnter($event)\\\"\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t[(ngModel)]=\\\"userName\\\" value=\\\"\\\" autocomplete=\\\"off\\\" autofocus>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t</mat-form-field>\\r\\n\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t<div class=\\\"row\\\" id=\\\"Rowcontainer\\\" *ngIf=\\\"!showAzureBtn\\\">\\r\\n\\t\\t\\t\\t\\t<div id=\\\"Rowwrapper\\\">\\r\\n\\t\\t\\t\\t\\t\\t<div id=\\\"RowtableActions\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t<div id=\\\"field\\\">\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t<mat-form-field style=\\\"width: 180px\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t<mat-placeholder class=\\\"placeholder\\\">Password</mat-placeholder>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t<input matInput id=\\\"passwd\\\" type=\\\"password\\\" (keyup.enter)=\\\"CheckEnter($event)\\\"\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t[(ngModel)]=\\\"password\\\" value=\\\"\\\" autocomplete=\\\"off\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t</mat-form-field>\\r\\n\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t<div class=\\\"row\\\" id=\\\"Rowcontainer\\\" *ngIf=\\\"!showAzureBtn\\\">\\r\\n\\t\\t\\t\\t\\t<div id=\\\"Rowwrapper\\\">\\r\\n\\t\\t\\t\\t\\t\\t<div id=\\\"RowtableActions\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t<div id=\\\"buttonview\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t<button mat-raised-button id=\\\"login\\\" color=\\\"primary\\\" matTooltip=\\\"Click to login\\\"\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\tstyle=\\\"cursor: pointer;width:180px;height: 35px;\\\" (click)=\\\"Login()\\\">Login</button>\\r\\n\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t<span style=\\\"color: red;\\\" *ngIf=\\\"!showAzureBtn\\\"><br>{{warningMsg}}</span>\\r\\n\\t\\t\\t\\t<!-- <hr *ngIf=\\\"showAzureBtn\\\">\\r\\n\\t\\t\\t\\t<div class=\\\"azure-btn m-2\\\" *ngIf=\\\"showAzureBtn\\\">\\r\\n\\t\\t\\t\\t\\t<button type=\\\"button\\\" (click)=\\\"loginWithAzure()\\\" class=\\\"btn btn-info btn-w\\\">Login with Azure</button>\\r\\n\\t\\t\\t\\t</div> -->\\r\\n\\t\\t\\t\\t<hr *ngIf=\\\"showAzureBtn\\\">\\r\\n\\t\\t\\t\\t<div class=\\\"azure-btn m-2\\\" *ngIf=\\\"showAzureBtn\\\" style=\\\"margin-top: 6rem !important;\\\">\\r\\n\\t\\t\\t\\t\\t<button type=\\\"button\\\" mat-raised-button (click)=\\\"loginWithAzure()\\\" matTooltip=\\\"Click to login with Azurer AD\\\" color=\\\"primary\\\" style=\\\"cursor: pointer;width:180px;height: 35px;\\\">Login with Azure</button>\\r\\n\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t<span style=\\\"color: red;\\\" *ngIf=\\\"showAzureBtn\\\"><br>{{warningMsg}}</span>\\r\\n\\t\\t\\t</div>\\r\\n\\t\\t</div>\\r\\n\\r\\n\\t</div>\\r\\n\\t<div class=\\\"col-sm-4\\\"></div>\\r\\n</div>\\r\\n<div class=\\\"copyright\\\" style=\\\"font-size: 13px;text-align:center\\\" *ngIf=\\\"!login\\\">\\r\\n\\t<label> {{copyRight}}</label>\\r\\n</div>\\r\\n<style>\\r\\n\\t@media print {\\r\\n\\t\\t.donotprintthis {\\r\\n\\r\\n\\t\\t\\tdisplay: none;\\r\\n\\r\\n\\t\\t}\\r\\n\\t}\\r\\n\\r\\n\\t@media print {\\r\\n\\t\\t@page {\\r\\n\\t\\t\\tsize: auto;\\r\\n\\t\\t\\tmargin: 0mm;\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\ta[href]:after {\\r\\n\\t\\t\\tcontent: none !important;\\r\\n\\t\\t}\\r\\n\\t}\\r\\n\\r\\n\\t@media print {\\r\\n\\r\\n\\t\\t#Header,\\r\\n\\t\\t#Footer {\\r\\n\\t\\t\\tdisplay: none !important;\\r\\n\\t\\t}\\r\\n\\t}\\r\\n\\r\\n\\t@media screen {\\r\\n\\t\\t.donotprintthis {\\r\\n\\t\\t\\tdisplay: block;\\r\\n\\t\\t}\\r\\n\\t}\\r\\n\\r\\n\\t.active {\\r\\n\\t\\tbackground-color: lightseagreen;\\r\\n\\t}\\r\\n\\r\\n\\t.panel {\\r\\n\\t\\tpadding-bottom: 15px;\\r\\n\\t\\tbox-shadow: 0 1px 1px rgba(0, 0, 0, .05);\\r\\n\\t\\tborder: none;\\r\\n\\t}\\r\\n\\r\\n\\t.panel-heading {\\r\\n\\t\\tborder: none;\\r\\n\\t}\\r\\n</style>\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n<div class=\\\"wrapper\\\" *ngIf=\\\"login\\\">\\r\\n\\t<mat-sidenav-container [hasBackdrop]=\\\"backdrop\\\">\\r\\n\\t\\t<mat-sidenav [(opened)]=\\\"opened\\\" [(mode)]=\\\"sidenavMode\\\" role=\\\"navigation\\\" *ngIf=\\\"menuOpenStatus\\\"\\r\\n\\t\\t\\tclass=\\\"donotprintthis\\\" id=\\\"sidebar\\\" style=\\\"width: 15%;\\\">\\r\\n\\t\\t\\t<div class=\\\"mat-drawer-inner-container\\\">\\r\\n\\r\\n\\t\\t\\t\\t<div class=\\\"sidebar-header\\\">\\r\\n\\t\\t\\t\\t\\t <button type=\\\"button\\\" id=\\\"collapseBtnOnSidenav\\\" class=\\\"btn btn-info btn-md\\\"\\r\\n\\t\\t\\t\\t\\t\\tmatTooltip=\\\"Expand menu\\\" (click)=\\\"opened=!opened\\\">\\r\\n\\t\\t\\t\\t\\t\\t<i class=\\\"fa fa-bars fa-align-left\\\"></i>\\r\\n\\t\\t\\t\\t\\t</button>\\r\\n\\t\\t\\t\\t\\t<h3>\\r\\n\\t\\t\\t\\t\\t\\t<img src=\\\"./assets/images/DorseyMainLogo_1.png\\\" width=\\\"100%\\\" alt=\\\"dorsey Logo\\\" />\\r\\n\\t\\t\\t\\t\\t</h3>\\r\\n\\t\\t\\t\\t</div>\\r\\n\\r\\n\\r\\n\\r\\n\\t\\t\\t\\t<div class=\\\"menuPane\\\">\\r\\n\\r\\n\\t\\t\\t\\t\\t<!-- ********************* Menu Items*************************** -->\\r\\n\\t\\t\\t\\t\\t<!-- Organization -->\\r\\n\\t\\t\\t\\t\\t<mat-list *ngIf=\\\"(companyID == 0 || companyID == '0') && organizationID == 0\\\">\\r\\n\\t\\t\\t\\t\\t\\t<mat-nav-list class=\\\"mainMenu\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t<div>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t<div>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t<div class=\\\"liactive1 menuStyle\\\"\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t(click)=\\\"menuClick('/organization', $event.target)\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t <span class=\\\"fa fa-folder-open\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</span>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t Organization\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t</mat-nav-list>\\r\\n\\t\\t\\t\\t\\t</mat-list>\\r\\n\\r\\n\\t\\t\\t\\t\\t<!-- Company -->\\r\\n\\t\\t\\t\\t\\t<mat-list *ngIf=\\\"organizationID != 0 && !companyNavigate\\\">\\r\\n\\t\\t\\t\\t\\t\\t<mat-nav-list class=\\\"mainMenu\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t<div>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t<div>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t<div class=\\\"liactive1 menuStyle\\\" (click)=\\\"menuClick('/entity', $event.target)\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t <span class=\\\"fa fa-folder-open\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</span>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t Entity\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t</mat-nav-list>\\r\\n\\t\\t\\t\\t\\t</mat-list>\\r\\n\\r\\n\\t\\t\\t\\t\\t<!-- Set Up -->\\r\\n\\r\\n\\t\\t\\t\\t\\t<mat-list id=\\\"matSetup\\\" *ngIf=\\\"!menuVisible && companyNavigate\\\">\\r\\n\\t\\t\\t\\t\\t\\t<ng-container>\\r\\n\\t\\t\\t\\t\\t\\t\\t<mat-nav-list class=\\\"setUpMenu\\\" style=\\\"cursor: pointer;\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t<h4 class=\\\"panel-title\\\" *ngIf=\\\"\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t(MenuPermissions['Roles']['102']['R'] !== false) || \\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t(MenuPermissions['Employee']['103']['R'] !== false) ||\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t(MenuPermissions['Team']['105']['R'] !== false) || \\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t(MenuPermissions['FrustrationsType']['113']['R'] !== false) ||\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t(MenuPermissions['Alerts']['114']['R'] !== false) || \\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t(MenuPermissions['Metric Table']['115']['R'] !== false) || \\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t(MenuPermissions['Departments']['117']['R'] !== false) || \\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t(MenuPermissions['Goals']['118']['R'] !== false) || \\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t(MenuPermissions['Quarter']['120']['R'] !== false)\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t<a data-toggle=\\\"collapse\\\" (click)=\\\"setupList=!setupList\\\" *ngIf=\\\"!setupList\\\"\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tstyle=\\\"color: #dedede;\\\" data-parent=\\\"#accordion\\\">\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<span *ngIf=\\\"!setupList\\\" class=\\\"caret\\\"></span><span *ngIf=\\\"setupList\\\"\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tclass=\\\"caret caret-down\\\"></span> <img src=\\\"\\\"><span\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tclass=\\\"fa fa-folder-open\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</span> Set Up</a>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t<a data-toggle=\\\"collapse\\\" (click)=\\\"setupList=!setupList\\\" *ngIf=\\\"setupList\\\"\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tstyle=\\\"color: #ffffff;\\\" data-parent=\\\"#accordion\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<span *ngIf=\\\"!setupList\\\" class=\\\"caret\\\"></span><span *ngIf=\\\"setupList\\\"\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tclass=\\\"caret caret-down\\\"></span> <img src=\\\"\\\"><span\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tclass=\\\"fa fa-folder-open\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</span> Set Up</a>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t</h4>\\r\\n\\t\\t\\t\\t\\t\\t\\t</mat-nav-list>\\r\\n\\t\\t\\t\\t\\t\\t\\t<mat-list *ngIf=\\\"setupList\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t<ng-container *ngFor=\\\"let list of menuData;let i = index\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t<mat-nav-list class=\\\"subMenu\\\"\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t*ngIf=\\\"list.MenuOrderID==3 || list.MenuOrderID==4 ||list.MenuOrderID==5 ||list.MenuOrderID==6 ||\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tlist.MenuOrderID==7|| list.MenuOrderID==8||list.MenuOrderID==9 ||list.MenuOrderID==10 ||list.MenuOrderID==11\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<div\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t*ngIf=\\\"MenuPermissions[list.MenuName]!==undefined && MenuPermissions[list.MenuName][list.MenuID]!=undefined\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<div *ngIf=\\\"list.MenuName!='FrustrationsType'\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<div class=\\\"liactive1 childMenu\\\"\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t(click)=\\\"menuClick(list.MenuUrl, $event.target)\\\"\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t*ngIf=\\\"MenuPermissions[list.MenuName][list.MenuID]['R'] || MenuPermissions[list.MenuName][list.MenuID]['C'] || MenuPermissions[list.MenuName][list.MenuID]['U'] || MenuPermissions[list.MenuName][list.MenuID]['D']\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t {{list.MenuName}}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<div *ngIf=\\\"list.MenuName=='FrustrationsType'\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<div class=\\\"liactive1 childMenu\\\"\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t(click)=\\\"menuClick(list.MenuUrl, $event.target)\\\"\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t*ngIf=\\\"MenuPermissions[list.MenuName][list.MenuID]['R'] || MenuPermissions[list.MenuName][list.MenuID]['C'] || MenuPermissions[list.MenuName][list.MenuID]['U'] || MenuPermissions[list.MenuName][list.MenuID]['D']\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t Frustration\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tTypes</div>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t</mat-nav-list>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t</ng-container>\\r\\n\\t\\t\\t\\t\\t\\t\\t</mat-list>\\r\\n\\t\\t\\t\\t\\t\\t</ng-container>\\r\\n\\t\\t\\t\\t\\t</mat-list>\\r\\n\\t\\t\\t\\t\\t<!-- Process Map -->\\r\\n\\t\\t\\t\\t\\t<mat-list id=\\\"matPM\\\" *ngIf=\\\"!menuVisible && companyNavigate\\\">\\r\\n\\t\\t\\t\\t\\t\\t<ng-container>\\r\\n\\t\\t\\t\\t\\t\\t\\t<mat-nav-list class=\\\"mainMenu\\\" style=\\\"cursor: pointer;\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t<h4 class=\\\"panel-title\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t<a data-toggle=\\\"collapse\\\" (click)=\\\"processList=!processList\\\" *ngIf=\\\"!processList\\\"\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tstyle=\\\"color:#dedede\\\" data-parent=\\\"#accordion\\\"><span *ngIf=\\\"!processList\\\"\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tclass=\\\"caret\\\"></span><span *ngIf=\\\"processList\\\"\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tclass=\\\"caret caret-down\\\"></span> <span class=\\\"fa fa-folder-open\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</span> Process Map</a>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t<a data-toggle=\\\"collapse\\\" (click)=\\\"processList=!processList\\\" style=\\\"color: #ffffff;\\\"\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t*ngIf=\\\"processList\\\" data-parent=\\\"#accordion\\\"><span *ngIf=\\\"!processList\\\"\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tclass=\\\"caret\\\"></span><span *ngIf=\\\"processList\\\"\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tclass=\\\"caret caret-down\\\"></span> <span class=\\\"fa fa-folder-open\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</span> Process Map</a>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t</h4>\\r\\n\\t\\t\\t\\t\\t\\t\\t</mat-nav-list>\\r\\n\\t\\t\\t\\t\\t\\t\\t<mat-list *ngIf=\\\"processList\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t<ng-container *ngFor=\\\"let list of menuData;let i = index\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t<mat-nav-list class=\\\"subMenu\\\" *ngIf=\\\"list.MenuOrderID==12\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<div>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<div\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t*ngIf=\\\"MenuPermissions[list.MenuName]!==undefined && MenuPermissions[list.MenuName][list.MenuID]!=undefined\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<div *ngIf=\\\"MenuPermissions[list.MenuName][list.MenuID]['R'] || MenuPermissions[list.MenuName][list.MenuID]['C'] || MenuPermissions[list.MenuName][list.MenuID]['U'] || MenuPermissions[list.MenuName][list.MenuID]['D']\\\"\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t(click)=\\\"menuClick(list.MenuUrl, $event.target)\\\"\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tclass=\\\"liactive1 childMenu\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t Process Map</div>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t</mat-nav-list>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t</ng-container>\\r\\n\\t\\t\\t\\t\\t\\t\\t</mat-list>\\r\\n\\t\\t\\t\\t\\t\\t\\t<mat-list *ngIf=\\\"processList\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t<ng-container *ngFor=\\\"let list of menuData;let i = index\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t<mat-nav-list class=\\\"subMenu\\\"\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t*ngIf=\\\" list.MenuOrderID==13 || list.MenuOrderID==14 || list.MenuOrderID==15 || list.MenuOrderID==16\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<div>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<div\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t*ngIf=\\\"MenuPermissions[list.MenuName]!==undefined && MenuPermissions[list.MenuName][list.MenuID]!=undefined\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<div class=\\\"liactive1 childMenu\\\"\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t*ngIf=\\\"MenuPermissions[list.MenuName][list.MenuID]['R'] || MenuPermissions[list.MenuName][list.MenuID]['C'] || MenuPermissions[list.MenuName][list.MenuID]['U'] || MenuPermissions[list.MenuName][list.MenuID]['D']\\\"\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t(click)=\\\"menuClick(list.MenuUrl, $event.target)\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t {{list.MenuName}}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t</mat-nav-list>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t</ng-container>\\r\\n\\t\\t\\t\\t\\t\\t\\t</mat-list>\\r\\n\\t\\t\\t\\t\\t\\t</ng-container>\\r\\n\\t\\t\\t\\t\\t</mat-list>\\r\\n\\t\\t\\t\\t\\t<!-- Projects -->\\r\\n\\t\\t\\t\\t\\t<mat-list *ngIf=\\\"!menuVisible && companyNavigate\\\">\\r\\n\\t\\t\\t\\t\\t\\t<ng-container *ngFor=\\\"let list of menuData;let i = index\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t<mat-nav-list class=\\\"mainMenu\\\" *ngIf=\\\"list.MenuOrderID==17\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t<div>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t<div\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t*ngIf=\\\"MenuPermissions[list.MenuName]!==undefined && MenuPermissions[list.MenuName][list.MenuID]!=undefined\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<div class=\\\"liactive1 menuStyle\\\"\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t*ngIf=\\\"MenuPermissions[list.MenuName][list.MenuID]['R'] || MenuPermissions[list.MenuName][list.MenuID]['C'] || MenuPermissions[list.MenuName][list.MenuID]['U'] || MenuPermissions[list.MenuName][list.MenuID]['D']\\\"\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t(click)=\\\"menuClick(list.MenuUrl, $event.target)\\\">\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t <span class=\\\"fa fa-folder-open\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</span>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t {{list.MenuName}}</div>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t\\t</mat-nav-list>\\r\\n\\t\\t\\t\\t\\t\\t</ng-container>\\r\\n\\t\\t\\t\\t\\t</mat-list>\\r\\n\\t\\t\\t\\t\\t<mat-list *ngIf=\\\"!menuVisible && companyNavigate && isScoreCardEnable\\\">\\r\\n\\t\\t\\t\\t\\t\\t<ng-container *ngFor=\\\"let list of menuData;let i = index\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t<mat-nav-list class=\\\"mainMenu\\\" *ngIf=\\\"list.MenuOrderID==18\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t<div>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t<div>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<div class=\\\"liactive1 menuStyle\\\"\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t(click)=\\\"menuClick(list.MenuUrl, $event.target)\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t <span class=\\\"fa fa-folder-open\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</span>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t {{list.MenuName}}</div>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t\\t</mat-nav-list>\\r\\n\\t\\t\\t\\t\\t\\t</ng-container>\\r\\n\\t\\t\\t\\t\\t</mat-list>\\r\\n\\t\\t\\t\\t\\t<!-- Reports -->\\r\\n\\t\\t\\t\\t\\t<mat-list *ngIf=\\\"!menuVisible && companyNavigate\\\">\\r\\n\\t\\t\\t\\t\\t\\t<ng-container *ngFor=\\\"let list of menuData;let i = index\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t<mat-nav-list class=\\\"mainMenu\\\" *ngIf=\\\"list.MenuOrderID==19\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t<div>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t<div\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t*ngIf=\\\"MenuPermissions[list.MenuName]!==undefined && MenuPermissions[list.MenuName][list.MenuID]!=undefined\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<div class=\\\"liactive1 menuStyle\\\"\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t(click)=\\\"menuClick(list.MenuUrl, $event.target)\\\"\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t*ngIf=\\\"MenuPermissions[list.MenuName][list.MenuID]['R'] || MenuPermissions[list.MenuName][list.MenuID]['C'] || MenuPermissions[list.MenuName][list.MenuID]['U'] || MenuPermissions[list.MenuName][list.MenuID]['D']\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t <span class=\\\"fa fa-folder-open\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</span>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t {{list.MenuName}}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t\\t</mat-nav-list>\\r\\n\\t\\t\\t\\t\\t\\t</ng-container>\\r\\n\\t\\t\\t\\t\\t</mat-list>\\r\\n\\t\\t\\t\\t\\t<mat-list>\\r\\n\\t\\t\\t\\t\\t\\t<ng-container *ngFor=\\\"let list of menuData;let i = index\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t<mat-nav-list class=\\\"mainMenu\\\" *ngIf=\\\"list.MenuOrderID==20\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t<div>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t<div>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<div class=\\\"liactive1 menuStyle\\\"\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t(click)=\\\"menuClick(list.MenuUrl, $event.target)\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t <span class=\\\"fa fa-folder-open\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</span>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t User Manual\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t\\t</mat-nav-list>\\r\\n\\t\\t\\t\\t\\t\\t</ng-container>\\r\\n\\t\\t\\t\\t\\t</mat-list>\\r\\n\\r\\n\\t\\t\\t\\t\\t<!-- *********************END Menu Items*************************** -->\\r\\n\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t</div>\\r\\n\\t\\t</mat-sidenav>\\r\\n\\t\\t<mat-sidenav-content role=\\\"main\\\">\\r\\n\\t\\t\\t<div id=\\\"mainContent\\\">\\r\\n\\t\\t\\t\\t<div id=\\\"content\\\">\\r\\n\\t\\t\\t\\t\\t<div class=\\\"navbar navbar-expand-lg navbar-light bg-light donotprintthis\\\">\\r\\n\\t\\t\\t\\t\\t\\t<div class=\\\"flexContainer\\\" style=\\\" cursor:pointer;\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t<div id=\\\"wrapper\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t<div id=\\\"flexWrapper1\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t<div id=\\\"btnGroup1\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t <button type=\\\"button\\\" id=\\\"sidebarCollapse\\\" class=\\\"btn btn-info btn-md\\\"\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tmatTooltip=\\\"Expand menu\\\" (click)=\\\"opened=!opened\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<i class=\\\"fa fa-bars fa-align-left\\\"></i>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</button> \\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<!-- <button *ngIf=\\\"GlobalAdminLogin && companyID!=0\\\" (click)=\\\"BackToAdmin()\\\"\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tstyle=\\\"cursor:pointer;\\\" matTooltip='Back to admin'\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tclass=\\\"btn btn-primary btn-circle btn-outline add-btn darkbtnbg\\\"\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\ttype=\\\"button\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<i class=\\\"fa fa-arrow-left fa-1x\\\"></i>mmm\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</button> -->\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<button *ngIf=\\\"GlobalAdminLogin\\\" (click)=\\\"BackToAdmin()\\\" style=\\\"cursor:pointer;\\\"\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tmatTooltip='Back to organization'\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tclass=\\\"btn btn-primary btn-circle btn-outline add-btn darkbtnbg\\\"\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\ttype=\\\"button\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<i class=\\\"fa fa-arrow-left fa-1x\\\"></i>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</button>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t<div id=\\\"dmapp_Logo\\\">\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<img id=\\\"logo_img\\\" src=\\\"./assets/images/dmapp_Logo.png\\\" alt=\\\"dorsey Logo\\\" />\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t\\t<div id=\\\"companyName\\\" *ngIf=\\\"CompanyName && companyNavigate\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t<b>{{CompanyName}}</b>\\r\\n\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t\\t<div id=\\\"btnGroup2\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t<button *ngIf=\\\"!GlobalAdminLogin\\\" class=\\\"darkbtnbg btn\\\" [disabled]=\\\"GlobalAdminLogin\\\"\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t(click)=\\\"changePassword()\\\" style=\\\"color: white; cursor: pointer;\\\"\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\tmatTooltip=\\\"Change password\\\">Change\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\tPassword</button>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t<button *ngIf=\\\"GlobalAdminLogin\\\" class=\\\"darkbtnbg btn\\\" [disabled]=\\\"GlobalAdminLogin\\\"\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t(click)=\\\"changePassword()\\\" matTooltip=\\\"Change password\\\"\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\tstyle=\\\"color: white; cursor: pointer;\\\">Change\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\tPassword</button>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t <button class=\\\"btn\\\"\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\tstyle=\\\"cursor:pointer;background-color: #3775b5;color: white;font-size: 13px;\\\"\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t(click)=\\\"LogOut()\\\" matTooltip=\\\"Logout\\\">Logout</button>\\r\\n\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t<div (click)=\\\"collapseSidenav()\\\">\\r\\n\\t\\t\\t\\t\\t\\t<router-outlet></router-outlet>\\r\\n\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t<br>\\r\\n\\t\\t\\t\\t<div class=\\\"copyright\\\" style=\\\"font-size: 13px;text-align:center\\\">\\r\\n\\t\\t\\t\\t\\t<label>{{copyRight}}</label>\\r\\n\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t</div>\\r\\n\\t\\t</mat-sidenav-content>\\r\\n\\t</mat-sidenav-container>\\r\\n</div>\\r\\n\"","module.exports = \"<link href=\\\"../../assets/css/dmapp.css\\\" rel=\\\"stylesheet\\\" id=\\\"bootstrap-css\\\">\\r\\n<div *ngIf=\\\"data !== 'new' && data !== 'edit' && data!='log'&& data !== 'progress' && data !== 'status'\\\">\\r\\n <mat-dialog-content>{{data}}</mat-dialog-content>\\r\\n <mat-dialog-actions align=\\\"center\\\">\\r\\n <div *ngIf=\\\"condition\\\">\\r\\n <button mat-raised-button mat-accent mat-dialog-close (click)=\\\"onNoClick()\\\">No</button>\\r\\n <button mat-raised-button mat-accent [mat-dialog-close]=\\\"true\\\" (click)=\\\"onYesClick()\\\">Yes</button>\\r\\n </div>\\r\\n <div *ngIf=\\\"!condition && data !== 'progress' && data !== 'status'\\\">\\r\\n <div class=\\\"container\\\" fxLayout fxLayout.xs=\\\"column\\\" fxLayoutAlign=\\\"center\\\" fxLayoutGap=\\\"10px\\\" fxLayoutGap.xs=\\\"0\\\">\\r\\n <div class=\\\"item item-3 \\\">\\r\\n <button mat-button mat-accent mat-dialog-close>Ok</button>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </mat-dialog-actions>\\r\\n</div>\\r\\n\\r\\n<div *ngIf=\\\"data === 'new' || data === 'edit'\\\">\\r\\n <br>\\r\\n <div class=\\\"XBtn\\\">\\r\\n <span (click)=\\\"Clear()\\\" matTooltip=\\\"Close\\\" class=\\\"close\\\">×</span>\\r\\n </div>\\r\\n <mat-slide-toggle [checked]=\\\"subActivityStatus\\\" [disabled]=\\\"conditionActivity!='' || data=='edit'\\\"\\r\\n (change)=\\\"ToggleSubActivity()\\\">Sub Activity</mat-slide-toggle>\\r\\n\\r\\n\\r\\n <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n <div id=\\\"Rowheading\\\">\\r\\n <h4 class=\\\"alignheader\\\"><b>{{data | titlecase}} Metric</b></h4>\\r\\n\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <div class=\\\"inputFields\\\">\\r\\n <div>\\r\\n\\r\\n\\r\\n <mat-form-field>\\r\\n <mat-label *ngIf=\\\"processData.length === 0;else template\\\" style=\\\"color: red;\\\"> Key Process<span\\r\\n style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-label>\\r\\n <ng-template #template>\\r\\n <mat-label>Key Process<span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-label>\\r\\n </ng-template>\\r\\n <!-- <mat-placeholder>Key Process <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder> -->\\r\\n <mat-select [disabled]=\\\"conditionActivity!=''\\\" (selectionChange)=\\\"process($event)\\\" [(ngModel)]=\\\"ProcessID\\\">\\r\\n <mat-option *ngFor=\\\"let data of processData;let i=index;\\\" [value]=\\\"processData[i].ProcessID\\\">\\r\\n {{processData[i].ProcessName}}\\r\\n </mat-option>\\r\\n </mat-select>\\r\\n </mat-form-field>\\r\\n </div>\\r\\n <div>\\r\\n <mat-form-field>\\r\\n\\r\\n <mat-placeholder>Activity <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n <mat-select [disabled]=\\\"conditionActivity!='' || tempActivity.length===0\\\" (selectionChange)=\\\"activity($event)\\\"\\r\\n [(ngModel)]=\\\"ActivityID\\\">\\r\\n <mat-option *ngFor=\\\"let data of tempActivity;let i=index;\\\" [value]=\\\"tempActivity[i].ActivityID\\\">\\r\\n {{tempActivity[i].ActivityName}}\\r\\n </mat-option>\\r\\n </mat-select>\\r\\n </mat-form-field>\\r\\n\\r\\n\\r\\n </div>\\r\\n <div>\\r\\n <mat-form-field>\\r\\n\\r\\n <mat-placeholder>Team <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n <mat-select [disabled]=true (selectionChange)=\\\"team($event)\\\" [(ngModel)]=\\\"TeamID\\\">\\r\\n <mat-option *ngFor=\\\"let data of teamData;let i=index;\\\" [value]=\\\"teamData[i].TeamID\\\">\\r\\n {{teamData[i].TeamName}}\\r\\n </mat-option>\\r\\n </mat-select>\\r\\n </mat-form-field>\\r\\n\\r\\n </div>\\r\\n <div>\\r\\n <mat-form-field>\\r\\n\\r\\n <mat-placeholder>Sub Activity <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n <mat-select [disabled]=\\\"conditionActivity!='' || !subActivityStatus || tempSubActivity.length===0\\\"\\r\\n [(ngModel)]=\\\"SubActivityID\\\" (selectionChange)=\\\"subactivity($event)\\\">\\r\\n <mat-option *ngFor=\\\"let data of tempSubActivity;let i=index;\\\" [value]=\\\"tempSubActivity[i].ActivityID\\\">\\r\\n {{tempSubActivity[i].ActivityName}}\\r\\n\\r\\n </mat-option>\\r\\n </mat-select>\\r\\n </mat-form-field>\\r\\n\\r\\n </div>\\r\\n <div>\\r\\n <mat-form-field>\\r\\n <mat-label> Goal Name<span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-label>\\r\\n\\r\\n <mat-select (selectionChange)=\\\"GoalChange($event)\\\" [(ngModel)]=\\\"GoalID\\\">\\r\\n <mat-option *ngFor=\\\"let goal of GoalsList;let i=index;\\\" [value]=\\\"goal.GoalID\\\">\\r\\n {{goal.GoalName}}\\r\\n </mat-option>\\r\\n </mat-select>\\r\\n </mat-form-field>\\r\\n </div>\\r\\n\\r\\n <div>\\r\\n <mat-form-field>\\r\\n <input matInput autocomplete=\\\"off\\\" maxlength=\\\"100\\\" id=\\\"lblDescription\\\" [(ngModel)]=\\\"Description\\\" value=\\\"\\\">\\r\\n <mat-placeholder>Metric <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n </mat-form-field>\\r\\n\\r\\n\\r\\n </div>\\r\\n\\r\\n\\r\\n <div style=\\\"display:none;\\\">\\r\\n <mat-form-field>\\r\\n <input matInput placeholder=\\\" Unit of measurement\\\" autocomplete=\\\"off\\\" maxlength=\\\"100\\\" id=\\\"lblUOM\\\"\\r\\n [(ngModel)]=\\\"UOM\\\" value=\\\"\\\">\\r\\n </mat-form-field>\\r\\n\\r\\n </div>\\r\\n <div>\\r\\n <mat-form-field>\\r\\n <input matInput placeholder=\\\" Source\\\" autocomplete=\\\"off\\\" maxlength=\\\"100\\\" id=\\\"lblSource\\\" [(ngModel)]=\\\"Source\\\"\\r\\n value=\\\"\\\">\\r\\n </mat-form-field>\\r\\n\\r\\n </div>\\r\\n\\r\\n </div>\\r\\n\\r\\n <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n <div id=\\\"Rowwrapper\\\">\\r\\n <div id=\\\"RowtableActions\\\">\\r\\n <div id=\\\"buttonview\\\">\\r\\n <button class=\\\"addButtons btn\\\" mat-accent (click)=\\\"AddPointer()\\\" [disabled]=\\\"btnDisabled\\\">\\r\\n <span *ngIf=\\\"data === 'new'\\\">Save</span><span *ngIf=\\\"data === 'edit'\\\">Update</span></button>\\r\\n\\r\\n </div>\\r\\n <div id=\\\"buttonview\\\">\\r\\n <button mat-accent class=\\\"addButtons btn\\\" (click)='Clear()'>Cancel</button>\\r\\n </div>\\r\\n\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n\\r\\n </div>\\r\\n <br>\\r\\n <mat-dialog-content class=\\\"warningMsg\\\">{{dataSelf}}</mat-dialog-content>\\r\\n <mat-dialog-content class=\\\"successMsg\\\"></mat-dialog-content>\\r\\n\"","module.exports = \"<p></p>\\n<link href=\\\"../../assets/css/dmapp.css\\\" rel=\\\"stylesheet\\\" id=\\\"bootstrap-css\\\">\\n<div class=\\\"row\\\" id=\\\"container\\\">\\n\\n <div class=\\\" \\\" id=\\\"heading\\\">\\n <h4>Metric</h4>\\n </div>\\n <div id=\\\"wrapper\\\">\\n <div id=\\\"tableActions\\\">\\n <div class=\\\"\\\" id=\\\"search\\\" *ngIf=\\\"!disableSearch\\\">\\n <mat-form-field style=\\\"margin: -5px;\\\" id=\\\"searchField\\\">\\n <mat-placeholder class=\\\"placeholder\\\">Search here</mat-placeholder>\\n <input matInput id=\\\"newGroup\\\" [disabled]=\\\"disableSearch\\\" (keyup)=\\\"Searchtext()\\\" name=\\\"search\\\"\\n [(ngModel)]=\\\"searchtext\\\" value=\\\"\\\" autocomplete=\\\"off\\\">\\n </mat-form-field>\\n </div>\\n <div class=\\\"\\\" id=\\\"excelBtn\\\" *ngIf=\\\"!isDisable\\\">\\n <button class=\\\"darkbtnbg btn btn-info\\\" style=\\\"margin-top:11px;cursor: pointer;\\\" [disabled]=\\\"isDisable\\\"\\n matTooltip=\\\"Export as excel\\\" (click)=\\\"exportAsXLSX()\\\">\\n\\n Excel\\n </button>\\n </div>\\n <div class=\\\"\\\" id=\\\"createBtn\\\">\\n <button mat-accent class=\\\"darkbtnbg btn btn-info \\\" style=\\\"margin-top: 11px\\\" (click)='OpenPointer()'\\n [disabled]=\\\"!MenuPermissions[menuName][menuID]['C']\\\" matTooltip=\\\"New metric\\\">New</button>\\n </div>\\n </div>\\n\\n </div>\\n</div>\\n\\n\\n<div>\\n <div class=\\\"tableDiv\\\">\\n <table>\\n <thead>\\n <tr>\\n\\n <th cName class=\\\"pointer\\\" (click)=\\\"sort('TeamName')\\\"> Team\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n <th cName class=\\\"pointer\\\" (click)=\\\"sort('ProcessName')\\\"> Process\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n\\n <th cName class=\\\"pointer\\\" (click)=\\\"sort('ActivityName')\\\"> Activity\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n\\n <th cName class=\\\"pointer\\\" (click)=\\\"sort('GoalName')\\\"> Goal\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n <th cName class=\\\"pointer\\\" (click)=\\\"sort('Description')\\\"> Metric\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n <!-- <th cName class=\\\"pointer\\\" (click)=\\\"sort('UOM')\\\"> UOM \\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n -->\\n\\n <th class=\\\"pointer\\\" (click)=\\\"sort('Source')\\\"> Source\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n\\n <th action>Action</th>\\n </tr>\\n\\n </thead>\\n <tbody>\\n\\n <tr\\n *ngFor=\\\"let element of metricData | paginate: { itemsPerPage: rowsOnPage, currentPage: p } | sort: {property: column, direction: direction}; let i = index\\\">\\n\\n <td>{{element.TeamName}}</td>\\n <td> {{element.ProcessName}}</td>\\n <td> {{element.ActivityName}}</td>\\n <td> {{element.GoalName}}</td>\\n\\n\\n\\n <td> {{element.Description}}</td>\\n <!-- <td> {{element.UOM}}</td> -->\\n\\n\\n\\n\\n <td> {{element.Source}}</td>\\n\\n <td style=\\\" cursor:pointer;\\\">\\n <span> <a matTooltip=\\\"Edit metric\\\" (click)=\\\"EditPointer(element)\\\"\\n [style.pointer-events]=\\\"(!MenuPermissions[menuName][menuID]['U'])?'none':'auto'\\\"\\n [ngClass]=\\\"{'removeColor':!(MenuPermissions[menuName][menuID]['U']),'AddColor':(MenuPermissions[menuName][menuID]['U'])}\\\"><i\\n style=\\\"cursor: pointer;\\\" class=\\\"fa fa-pencil-square-o \\\" aria-hidden=\\\"true\\\"></i></a>\\n \\n <a matTooltip=\\\"Delete metric\\\" (click)=\\\"DeletePointer(element)\\\"\\n [style.pointer-events]=\\\"(!MenuPermissions[menuName][menuID]['D'])?'none':'auto'\\\"\\n [ngClass]=\\\"{'removeColor':!(MenuPermissions[menuName][menuID]['D']),'AddColor':(MenuPermissions[menuName][menuID]['D'])}\\\"><i\\n style=\\\"cursor: pointer;\\\" class=\\\"fa fa-trash-o \\\" aria-hidden=\\\"true\\\"></i></a> </span>\\n </td>\\n\\n </tr>\\n </tbody>\\n\\n </table>\\n\\n\\n <br>\\n\\n\\n <div class=\\\"warningMsg\\\" *ngIf=\\\"(metricData === null||metricData===undefined || metricData.length === 0)\\\">\\n\\n <span>No data avilable</span>\\n\\n\\n </div>\\n </div>\\n <div class=\\\"pageContainer\\\" *ngIf=\\\"metricPaging && metricData.length>0\\\">\\n <div class=\\\"\\\">\\n <mat-form-field style=\\\"width: 50px; margin-top: -15px;\\\">\\n <mat-select [(ngModel)]=\\\"rowsOnPage\\\">\\n <mat-option *ngFor=\\\"let row of rowsOnPageSet\\\" [value]=\\\"row\\\">\\n {{row}}\\n </mat-option>\\n </mat-select>\\n </mat-form-field>\\n </div>\\n\\n\\n <div class=\\\"\\\">\\n\\n <!-- style=\\\"margin-top: -50px\\\" -->\\n <pagination-controls (pageChange)=\\\"p = $event\\\"></pagination-controls>\\n </div>\\n </div>\\n\"","module.exports = \"<link href=\\\"../../assets/css/dmapp.css\\\" rel=\\\"stylesheet\\\" id=\\\"bootstrap-css\\\">\\r\\n\\r\\n<div *ngIf=\\\"data !== 'new' && data !== 'edit' && data!='log'&& data !== 'progress' && data !== 'status'\\\">\\r\\n <mat-dialog-content>{{data}}</mat-dialog-content>\\r\\n <mat-dialog-actions align=\\\"center\\\">\\r\\n <div *ngIf=\\\"condition\\\">\\r\\n <button mat-raised-button mat-accent mat-dialog-close (click)=\\\"onNoClick()\\\">No</button>\\r\\n <!-- Can optionally provide a result for the closing dialog. -->\\r\\n <button mat-raised-button mat-accent [mat-dialog-close]=\\\"true\\\" (click)=\\\"onYesClick()\\\">Yes</button>\\r\\n </div>\\r\\n <div *ngIf=\\\"!condition && data !== 'progress' && data !== 'status'\\\">\\r\\n <div class=\\\"container\\\" fxLayout fxLayout.xs=\\\"column\\\" fxLayoutAlign=\\\"center\\\" fxLayoutGap=\\\"10px\\\" fxLayoutGap.xs=\\\"0\\\">\\r\\n <div class=\\\"item item-3 \\\">\\r\\n <button mat-button mat-accent mat-dialog-close>Ok</button>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </mat-dialog-actions>\\r\\n</div>\\r\\n\\r\\n\\r\\n<div *ngIf=\\\"data === 'new' || data === 'edit'\\\">\\r\\n <br>\\r\\n <div class=\\\"XBtn\\\">\\r\\n <span (click)=\\\"Clear()\\\" matTooltip=\\\"Close\\\" class=\\\"close\\\">×</span>\\r\\n </div>\\r\\n <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n <div id=\\\"Rowheading\\\">\\r\\n <h4 class=\\\"alignheader\\\"><b>{{data | titlecase}} Category</b></h4>\\r\\n\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n <div id=\\\"Rowwrapper\\\">\\r\\n <div id=\\\"RowtableActions\\\">\\r\\n <div id=\\\"field\\\">\\r\\n\\r\\n <mat-form-field>\\r\\n\\r\\n\\r\\n <mat-placeholder>Main Category <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n <mat-select [(ngModel)]=\\\"MainCategory\\\" (selectionChange)=\\\"mainChange($event)\\\">\\r\\n <mat-option *ngFor=\\\"let data of mainCategoryData;let i=index;\\\" [value]=\\\"data.MainCategoryID\\\">\\r\\n {{data.MainCategory}}\\r\\n\\r\\n </mat-option>\\r\\n </mat-select>\\r\\n </mat-form-field>\\r\\n\\r\\n <!-- <input matInput autocomplete=\\\"off\\\" maxlength=\\\"100\\\" [(ngModel)]=\\\"MainCategory\\\"\\r\\n value=\\\"\\\">\\r\\n <mat-placeholder>Main Category <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder> -->\\r\\n\\r\\n </div>\\r\\n <div id=\\\"field\\\">\\r\\n\\r\\n <mat-form-field>\\r\\n <input matInput autocomplete=\\\"off\\\" maxlength=\\\"100\\\" [(ngModel)]=\\\"SubCategory\\\" value=\\\"\\\">\\r\\n <mat-placeholder>Sub Category <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n </mat-form-field>\\r\\n </div>\\r\\n\\r\\n\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n\\r\\n\\r\\n <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n <div id=\\\"Rowwrapper\\\">\\r\\n <div id=\\\"RowtableActions\\\">\\r\\n <div id=\\\"buttonview\\\">\\r\\n <button class=\\\"addButtons btn\\\" mat-accent (click)=\\\"AddMetCategory()\\\" [disabled]=\\\"btnDisabled\\\"><span\\r\\n *ngIf=\\\"data === 'new'\\\">Save</span><span *ngIf=\\\"data === 'edit'\\\">Update</span></button>\\r\\n </div>\\r\\n <div id=\\\"buttonview\\\">\\r\\n <button mat-accent class=\\\"addButtons btn\\\" (click)='Clear()'>Cancel</button>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n <br>\\r\\n <mat-dialog-content class=\\\"warningMsg\\\">{{dataSelf}}</mat-dialog-content>\\r\\n <mat-dialog-content class=\\\"successMsg\\\"></mat-dialog-content>\\r\\n\"","module.exports = \"<link href=\\\"../../assets/css/dmapp.css\\\" rel=\\\"stylesheet\\\" id=\\\"bootstrap-css\\\">\\n<div class=\\\"row\\\" id=\\\"container\\\">\\n <div class=\\\"\\\" id=\\\"heading\\\">\\n <h4 style=\\\"white-space: nowrap;\\\">Metric Table</h4>\\n </div>\\n <div id=\\\"wrapper\\\">\\n <div id=\\\"tableActions\\\">\\n <div class=\\\"\\\" id=\\\"search\\\" *ngIf=\\\"!disableSearch\\\">\\n <mat-form-field style=\\\"margin-top: -5px;\\\" id=\\\"searchField\\\">\\n <mat-placeholder class=\\\"placeholder\\\">Search here</mat-placeholder>\\n <input matInput id=\\\"newGroup\\\" [disabled]=\\\"disableSearch\\\" (keyup)=\\\"Searchtext()\\\" name=\\\"search\\\"\\n [(ngModel)]=\\\"searchtext\\\" value=\\\"\\\" autocomplete=\\\"off\\\">\\n </mat-form-field>\\n </div>\\n <div class=\\\"\\\" id=\\\"excelBtn\\\" *ngIf=\\\"!disableSearch\\\">\\n <button class=\\\"darkbtnbg btn btn-info\\\" style=\\\"margin-top:11px;cursor: pointer;\\\" [disabled]=\\\"isDisable\\\"\\n matTooltip=\\\"Export as excel\\\" (click)=\\\"exportAsXLSX()\\\">\\n\\n Excel\\n </button>\\n </div>\\n <div class=\\\"\\\" id=\\\"createBtn\\\">\\n <button class=\\\"darkbtnbg btn btn-info\\\" (click)='addData()' [disabled]=\\\"!MenuPermissions[menuName][menuID]['C']\\\"\\n style=\\\"float: right;margin-top: 11px;margin-bottom: 10px;\\\" matTooltip=\\\"New category\\\">New </button>\\n </div>\\n </div>\\n </div>\\n</div>\\n\\n<!-- \\n<div class=\\\"container\\\" style=\\\"margin-top: -10px\\\" fxLayout fxLayout.xs=\\\"column\\\" fxLayoutAlign=\\\"center\\\" fxLayoutGap=\\\"10px\\\" fxLayoutGap.xs=\\\"0\\\">\\n <div class=\\\"col-lg-8\\\">\\n <div class=\\\"item item-5 alignLeft\\\" fxFlex=\\\"45%\\\">\\n <h4>Metric Table</h4>\\n </div>\\n </div>\\n <div class=\\\"item item-1\\\" fxFlex=\\\"25%\\\" fxFlexOrder=\\\"1\\\">\\n \\n </div>\\n <div class=\\\"item item-1\\\" fxFlex=\\\"30%\\\" fxFlexOrder=\\\"2\\\" *ngIf=\\\"!disableSearch\\\">\\n \\n <mat-form-field style=\\\"width: 180px\\\">\\n <mat-placeholder class=\\\"placeholder\\\">Search here</mat-placeholder>\\n <input matInput id=\\\"newGroup\\\" [disabled]=\\\"disableSearch\\\" (keyup)=\\\"Searchtext()\\\" name=\\\"search\\\" [(ngModel)]=\\\"searchtext\\\" value=\\\"\\\" autocomplete=\\\"off\\\"> \\n </mat-form-field>\\n </div>\\n \\n \\n <div class=\\\"item item-5\\\" fxFlex=\\\"12%\\\" fxFlexOrder=\\\"3\\\" *ngIf=\\\"!isDisable\\\">\\n <button class=\\\"darkbtnbg btn btn-info\\\" [disabled]=\\\"isDisable\\\" matTooltip=\\\"Export As Excel\\\" style=\\\"cursor: pointer;margin-top: 10px;\\\" (click)=\\\"exportAsXLSX()\\\">\\n \\n Excel\\n </button> \\n \\n </div>\\n <div class=\\\"item item-5\\\" fxFlex=\\\"11%\\\" fxFlexOrder=\\\"3\\\">\\n <button mat-raised-button color=\\\"primary\\\" (click)='OpenTeam()' [disabled]=\\\"!MenuPermissions[menuName][menuID]['C']\\\" style=\\\"float: right;margin-top: 10px;margin-bottom: 10px;\\\" class=\\\"addButtons\\\" matTooltip=\\\"New Team\\\">NEW </button>\\n </div>\\n <div class=\\\"item item-5\\\" fxFlex=\\\"11%\\\" fxFlexOrder=\\\"3\\\">\\n <button class=\\\"darkbtnbg btn btn-info\\\" (click)='addData()' [disabled]=\\\"!MenuPermissions[menuName][menuID]['C']\\\" style=\\\"float: right;margin-top: 10px;margin-bottom: 10px;\\\" matTooltip=\\\"New Category\\\">New </button>\\n \\n </div>\\n <div class=\\\"item item-5\\\" fxFlex=\\\"21%\\\" fxFlexOrder=\\\"3\\\">\\n \\n <button mat-raised-button color=\\\"primary\\\" (click)='AddSubCategory()' style=\\\"float: right;margin-top: 10px;margin-bottom: 10px;\\\" class=\\\"addButtons\\\" matTooltip=\\\"New Sub Category\\\">New Sub Category </button>\\n </div>\\n \\n \\n </div> -->\\n\\n<div>\\n <div class=\\\"tableDiv\\\">\\n <table>\\n <thead>\\n <tr>\\n\\n <th cName class=\\\"pointer\\\" (click)=\\\"sort('MainCategory')\\\"> Main Category\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n\\n <th cName class=\\\"pointer\\\" (click)=\\\"sort('SubCategory')\\\"> Sub Category\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n\\n <th action>Action</th>\\n </tr>\\n </thead>\\n <tbody\\n *ngFor=\\\"let element of mainData | paginate: { itemsPerPage: rowsOnPage, currentPage: p } | sort: {property: column, direction: direction}; let i = index\\\">\\n\\n <tr *ngIf=\\\"element.SubCategory.length>0\\\">\\n\\n <td> {{element.MainCategory}}</td>\\n <!-- <td>{{element.SubCategory}}</td> -->\\n <td>\\n <table>\\n <tr *ngFor=\\\"let data of element.SubCategory\\\">\\n <td>{{data}}</td>\\n </tr>\\n </table>\\n </td>\\n <td>\\n <table>\\n <tr *ngFor=\\\"let data of element.SubCategory;let i=index;\\\">\\n <td style=\\\" cursor:pointer;\\\">\\n <span>\\n <a matTooltip=\\\"Edit metric data\\\" (click)=\\\"EditMetricData(element,data,element.RowID[i])\\\"\\n [style.pointer-events]=\\\"(!MenuPermissions[menuName][menuID]['U'])?'none':'auto'\\\"\\n [ngClass]=\\\"{'removeColor':(!(MenuPermissions[menuName][menuID]['U'])),'AddColor':(MenuPermissions[menuName][menuID]['U'])}\\\"><i\\n style=\\\"cursor: pointer;\\\" class=\\\"fa fa-pencil-square-o \\\" aria-hidden=\\\"true\\\"></i></a>\\n <a matTooltip=\\\"Delete sub category\\\"\\n (click)=\\\"DeleteMetricData(element,data,element.RowID[i])\\\"\\n [style.pointer-events]=\\\"(!MenuPermissions[menuName][menuID]['D'] )?'none':'auto'\\\"\\n [ngClass]=\\\"{'removeColor':(!(MenuPermissions[menuName][menuID]['D']) ),'AddColor':(MenuPermissions[menuName][menuID]['D'])}\\\"><i\\n style=\\\"cursor: pointer;\\\" class=\\\"fa fa-trash-o \\\" aria-hidden=\\\"true\\\"></i></a>\\n </span>\\n </td>\\n </tr>\\n </table>\\n\\n </td>\\n <!-- <td>\\n <a matTooltip=\\\"Add sub category\\\" (click)=\\\"AddSubCategory(element,data,element.RowID[i])\\\" ><i style=\\\"cursor: pointer;\\\" class=\\\"fa fa-plus \\\" aria-hidden=\\\"true\\\"></i></a> \\n <a matTooltip=\\\"Delete Main Category\\\" (click)=\\\"DeleteMainCategoryData(element,data,element.RowID[i])\\\" ><i style=\\\"cursor: pointer;\\\"class=\\\"fa fa-trash-o \\\" aria-hidden=\\\"true\\\"></i></a>\\n </td> -->\\n </tr>\\n </tbody>\\n\\n </table>\\n <br>\\n\\n <div class=\\\"warningMsg\\\" *ngIf=\\\"(mainData === null||mainData===undefined || mainData.length === 0)\\\">\\n\\n <span>No data available</span>\\n\\n </div>\\n </div>\\n <div class=\\\"pageContainer\\\" *ngIf=\\\"kpiPaging && mainData.length>0\\\">\\n\\n <div class=\\\"rowsSelection\\\">\\n <mat-form-field style=\\\"width: 50px; margin-top: -15px;\\\">\\n <mat-select [(ngModel)]=\\\"rowsOnPage\\\">\\n <mat-option *ngFor=\\\"let row of rowsOnPageSet\\\" [value]=\\\"row\\\">\\n {{row}}\\n </mat-option>\\n </mat-select>\\n </mat-form-field>\\n </div>\\n\\n\\n <div class=\\\"pageSelection\\\">\\n\\n <!-- style=\\\"margin-top: -50px\\\" -->\\n <pagination-controls (pageChange)=\\\"p = $event\\\"></pagination-controls>\\n </div>\\n </div>\\n\"","module.exports = \"<link href=\\\"../../assets/css/dmapp.css\\\" rel=\\\"stylesheet\\\" id=\\\"bootstrap-css\\\">\\n\\n<style>\\n @media screen {\\n .donotprintthis1 {\\n display: none;\\n }\\n\\n .donotprintthis {\\n display: block;\\n }\\n }\\n\\n @media print {\\n h5 {\\n text-align: center;\\n }\\n\\n .donotprintthis1 {\\n display: block;\\n }\\n\\n .donotprintthis {\\n display: none;\\n }\\n }\\n</style>\\n<div class=\\\"reportHead\\\">\\n <div class=\\\"reportName\\\">\\n <h5>Processes with no Metrics</h5>\\n </div>\\n <div class=\\\"reportActions\\\">\\n <div class=\\\"selectTeam\\\" *ngIf=\\\" (EmployeeID=='0' || employeeDetails.IsEmployeeLoginLevel=='Company') \\\">\\n <mat-form-field>\\n <mat-label> Select Type <span style=\\\"color:red; font-size: 15px;\\\">*</span></mat-label>\\n <mat-select (selectionChange)=\\\"reportTypeChange($event.value)\\\" [(ngModel)]=\\\"selectedReportType\\\">\\n <mat-option *ngFor=\\\"let scoreCardType of scoreCardTypes;\\\" [value]=\\\"scoreCardType\\\">\\n {{scoreCardType}}\\n </mat-option>\\n </mat-select>\\n </mat-form-field>\\n </div>\\n <div class=\\\"selectTeam\\\" *ngIf=\\\" !toggleTeam &&(EmployeeID=='0' || employeeDetails.IsEmployeeLoginLevel=='Company')\\\">\\n <mat-form-field>\\n <mat-label> Select Department <span style=\\\"color:red; font-size: 15px;\\\">*</span></mat-label>\\n <mat-select (selectionChange)=\\\"departmentChange($event.value)\\\" [(ngModel)]=\\\"selectedDepartmentId\\\">\\n <mat-option *ngFor=\\\"let dept of departmentList;\\\" [value]=\\\"dept.DepartmentID\\\">\\n {{dept.DepartmentName}}\\n </mat-option>\\n </mat-select>\\n </mat-form-field>\\n </div>\\n <div class=\\\"selectTeam\\\" *ngIf=\\\"toggleTeam && teamData && teamData.length > 0\\\">\\n <mat-form-field>\\n <mat-label> Select Team <span style=\\\"color:red; font-size: 15px;\\\">*</span></mat-label>\\n <mat-select (selectionChange)=\\\"teamChange($event)\\\" [(ngModel)]=\\\"TeamID\\\">\\n <mat-option *ngFor=\\\"let team of teamData;\\\" [value]=\\\"team.TeamID\\\">\\n {{team.TeamName}}\\n </mat-option>\\n </mat-select>\\n </mat-form-field>\\n </div>\\n <div class=\\\"searchField\\\" *ngIf=\\\"!disableSearch\\\">\\n <div class=\\\"item item-1\\\">\\n <mat-form-field>\\n <mat-placeholder class=\\\"placeholder\\\">Search here</mat-placeholder>\\n <input matInput id=\\\"newGroup\\\" [disabled]=\\\"disableSearch\\\" (keyup)=\\\"Searchtext()\\\" name=\\\"search\\\"\\n [(ngModel)]=\\\"searchtext\\\" value=\\\"\\\" autocomplete=\\\"off\\\">\\n </mat-form-field>\\n </div>\\n </div>\\n <div class=\\\"printBtn\\\" *ngIf=\\\"!isDisable\\\">\\n <div class=\\\"item item-5\\\">\\n <button class=\\\"darkbtnbg btn btn-info\\\" matTooltip=\\\"Print report\\\" printSectionId=\\\"printNoMetric\\\"\\n printTitle=\\\"{{companyName}}\\\" [useExistingCss]=\\\"true\\\" ngxPrint>Print</button>\\n </div>\\n </div>\\n <div class=\\\"excelBtn\\\" *ngIf=\\\"!isDisable\\\">\\n <div class=\\\"item item-5\\\">\\n <button class=\\\"darkbtnbg btn btn-info\\\" [disabled]=\\\"isDisable\\\" matTooltip=\\\"Export as excel\\\"\\n (click)=\\\"exportAsXLSX()\\\">\\n Excel\\n </button>\\n </div>\\n </div>\\n </div>\\n</div>\\n<!-- ---------------------------Printing the report------------------------- -->\\n<div id=\\\"printNoMetric\\\">\\n <div class=\\\"donotprintthis1\\\">\\n <div style=\\\"text-align:center;margin-top: 15px;\\\">\\n <h6>\\n <span> Company - </span> {{companyName}} <br>\\n <span>Date: {{headerDate| date:'MM-dd-yyyy' }}</span><br>\\n <span *ngIf=\\\"!selectedReportType || selectedReportType == 'Team'\\\">Team: {{TeamName ? TeamName : 'Aggregate\\n Report'}}</span>\\n <span *ngIf=\\\"selectedReportType == 'Department'\\\">Department: {{departmentName ? departmentName : 'Aggregate\\n Report'}}</span><br>\\n <span>Report Type : Processes with no Metrics</span>\\n </h6>\\n </div>\\n </div>\\n <div class=\\\"tableDiv\\\">\\n <table id=\\\"dtBasicExample\\\">\\n <thead>\\n <tr>\\n <th>No.</th>\\n <th class=\\\"pointer\\\" (click)=\\\"sort('CompanyName')\\\"> Company\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n <th class=\\\"pointer\\\" *ngIf=\\\"selectedReportType === 'Department'\\\" (click)=\\\"sort('DepartmentName')\\\">\\n Department\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n <th class=\\\"pointer\\\" (click)=\\\"sort('TeamName')\\\"> Team\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n <th class=\\\"pointer\\\" (click)=\\\"sort('ProcessName')\\\"> Process\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n <th cName class=\\\"pointer\\\" (click)=\\\"sort('ProcessDescription')\\\"> Description\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n </tr>\\n </thead>\\n <tbody>\\n <tr\\n *ngFor=\\\"let element of filterData | paginate: { itemsPerPage: rowsOnPage, currentPage: p } | sort: {property: column, direction: direction}; let i = index\\\">\\n <td>{{i+1}}</td>\\n <td> {{element.CompanyName}}</td>\\n <td *ngIf=\\\"selectedReportType === 'Department'\\\">{{element.DepartmentName}}</td>\\n <td>{{element.TeamName}}</td>\\n <td> {{element.ProcessName}}</td>\\n <td> {{element.ProcessDescription}}</td>\\n </tr>\\n </tbody>\\n </table><br>\\n <div class=\\\"warningMsg\\\" *ngIf=\\\"(filterData === null||filterData===undefined || filterData.length === 0)\\\">\\n <span>No data available</span>\\n </div>\\n </div>\\n <div class=\\\"donotprintthis1\\\" style=\\\" position: fixed; bottom: 0;\\n font-size: 13px;\\n margin-left: 35%;\\\">\\n <label>{{copyRight}}</label>\\n </div>\\n</div>\\n<div class=\\\"pageContainer\\\" *ngIf=\\\"processPaging &&filterData.length>0\\\">\\n <div class=\\\"rowsSelection\\\">\\n <mat-form-field style=\\\"width: 50px; margin-top: -15px;\\\">\\n <mat-select [(ngModel)]=\\\"rowsOnPage\\\">\\n <mat-option *ngFor=\\\"let row of rowsOnPageSet\\\" [value]=\\\"row\\\">\\n {{row}}\\n </mat-option>\\n </mat-select>\\n </mat-form-field>\\n </div>\\n <div class=\\\"pageSelection\\\">\\n <pagination-controls (pageChange)=\\\"p = $event\\\"></pagination-controls>\\n </div>\\n</div>\\n\"","module.exports = \"<link href=\\\"./assets/css/dmapp.css\\\" rel=\\\"stylesheet\\\" id=\\\"bootstrap-css\\\">\\r\\n\\r\\n\\r\\n<div\\r\\n *ngIf=\\\"data !== 'new' && data !== 'edit' && data!='log'&& data !== 'progress' && data !== 'status' && !userVisible\\\">\\r\\n <mat-dialog-content>{{data}}</mat-dialog-content>\\r\\n <mat-dialog-actions align=\\\"center\\\">\\r\\n <div *ngIf=\\\"condition\\\">\\r\\n <button mat-raised-button mat-accent mat-dialog-close (click)=\\\"onNoClick()\\\">No</button>\\r\\n <!-- Can optionally provide a result for the closing dialog. -->\\r\\n <button mat-raised-button mat-accent [mat-dialog-close]=\\\"true\\\" (click)=\\\"onYesClick()\\\">Yes</button>\\r\\n </div>\\r\\n <div *ngIf=\\\"!condition && data !== 'progress' && data !== 'status' && !userVisible\\\">\\r\\n <div class=\\\"container\\\" fxLayout fxLayout.xs=\\\"column\\\" fxLayoutAlign=\\\"center\\\" fxLayoutGap=\\\"10px\\\" fxLayoutGap.xs=\\\"0\\\">\\r\\n <div class=\\\"item item-3 \\\">\\r\\n <button mat-button mat-accent mat-dialog-close>Ok</button>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </mat-dialog-actions>\\r\\n</div>\\r\\n\\r\\n<div *ngIf=\\\"data === 'new' || data === 'edit' && !userVisible && data!= 'user'\\\">\\r\\n <br>\\r\\n\\r\\n <div class=\\\"XBtn\\\">\\r\\n <span (click)=\\\"clear()\\\" matTooltip=\\\"Close\\\" class=\\\"close\\\">×</span>\\r\\n </div>\\r\\n\\r\\n <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n <div id=\\\"Rowheading\\\">\\r\\n <h4 class=\\\"alignheader\\\"><b><span *ngIf=\\\"data === 'new'\\\">Add </span>{{data | titlecase}} Organization</b></h4>\\r\\n <!-- <span (click)=\\\"Clear()\\\" matTooltip=\\\"Close\\\" class=\\\"close\\\">×</span> -->\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <div class=\\\"inputFields\\\">\\r\\n <div id=\\\"field1\\\">\\r\\n <mat-form-field>\\r\\n <input matInput autocomplete=\\\"off\\\" (keyup)=\\\"validate()\\\" maxlength=\\\"50\\\" id=\\\"lblCompanyName\\\"\\r\\n [(ngModel)]=\\\"organizationDetails.OrganizationName\\\" value=\\\"\\\">\\r\\n <mat-placeholder>Organization Name <span style=\\\"color:red; font-size: 16px;\\\">*</span></mat-placeholder>\\r\\n </mat-form-field>\\r\\n </div>\\r\\n <div id=\\\"field2\\\">\\r\\n <mat-form-field>\\r\\n <input matInput autocomplete=\\\"off\\\" maxlength=\\\"30\\\" id=\\\"lblFirstName\\\" [(ngModel)]=\\\"organizationDetails.FirstName\\\"\\r\\n value=\\\"\\\">\\r\\n <mat-placeholder>User First Name <span style=\\\"color:red; font-size: 16px;\\\">*</span></mat-placeholder>\\r\\n </mat-form-field>\\r\\n </div>\\r\\n <div id=\\\"field3\\\">\\r\\n <mat-form-field>\\r\\n <input matInput autocomplete=\\\"off\\\" maxlength=\\\"30\\\" id=\\\"lblLastName\\\" [(ngModel)]=\\\"organizationDetails.LastName\\\"\\r\\n value=\\\"\\\">\\r\\n <mat-placeholder>User Last Name <span style=\\\"color:red; font-size: 16px;\\\">*</span></mat-placeholder>\\r\\n </mat-form-field>\\r\\n </div>\\r\\n <div id=\\\"fiel4\\\">\\r\\n <mat-form-field>\\r\\n <textarea matInput autocomplete=\\\"off\\\" maxlength=\\\"200\\\" id=\\\"lblAddress1\\\"\\r\\n [(ngModel)]=\\\"organizationDetails.Address1\\\" value=\\\"\\\"></textarea>\\r\\n <mat-placeholder>Address Line 1 <span style=\\\"color:red; font-size: 16px;\\\">*</span></mat-placeholder>\\r\\n </mat-form-field>\\r\\n </div>\\r\\n <div id=\\\"field5\\\">\\r\\n <mat-form-field>\\r\\n <textarea matInput placeholder=\\\"Address Line 2\\\" autocomplete=\\\"off\\\" maxlength=\\\"200\\\" id=\\\"lblAddress2\\\"\\r\\n [(ngModel)]=\\\"organizationDetails.Address2\\\" value=\\\"\\\"></textarea>\\r\\n </mat-form-field>\\r\\n </div>\\r\\n <div id=\\\"field6\\\">\\r\\n <mat-form-field>\\r\\n <input matInput autocomplete=\\\"off\\\" maxlength=\\\"50\\\" id=\\\"lblCountry\\\" [(ngModel)]=\\\"organizationDetails.Country\\\"\\r\\n value=\\\"\\\" (keypress)=\\\"isAlpha($event)\\\">\\r\\n <mat-placeholder>Country <span style=\\\"color:red; font-size: 16px;\\\">*</span></mat-placeholder>\\r\\n </mat-form-field>\\r\\n </div>\\r\\n <div id=\\\"field7\\\">\\r\\n <mat-form-field>\\r\\n <input matInput maxlength=\\\"50\\\" id=\\\"lblState\\\" [(ngModel)]=\\\"organizationDetails.State\\\" value=\\\"\\\"\\r\\n (keypress)=\\\"isAlpha($event)\\\">\\r\\n <mat-placeholder>State <span style=\\\"color:red; font-size: 16px;\\\">*</span></mat-placeholder>\\r\\n </mat-form-field>\\r\\n </div>\\r\\n <div id=\\\"field8\\\">\\r\\n <mat-form-field>\\r\\n <input matInput autocomplete=\\\"off\\\" maxlength=\\\"50\\\" id=\\\"lblCity\\\" [(ngModel)]=\\\"organizationDetails.City\\\" value=\\\"\\\"\\r\\n (keypress)=\\\"isAlpha($event)\\\">\\r\\n <mat-placeholder>City <span style=\\\"color:red; font-size: 16px;\\\">*</span></mat-placeholder>\\r\\n </mat-form-field>\\r\\n </div>\\r\\n <div id=\\\"field9\\\">\\r\\n <mat-form-field>\\r\\n <input matInput autocomplete=\\\"off\\\" onpaste=\\\"return false\\\" oncut=\\\"return false\\\"\\r\\n (keypress)=\\\"validatePhone($event)\\\" minlength=\\\"5\\\" maxlength=\\\"5\\\" id=\\\"lblPincode\\\"\\r\\n [(ngModel)]=\\\"organizationDetails.Pincode\\\" value=\\\"\\\">\\r\\n <mat-placeholder>Zipcode <span style=\\\"color:red; font-size: 16px;\\\">*</span></mat-placeholder>\\r\\n </mat-form-field>\\r\\n </div>\\r\\n <div id=\\\"field10\\\">\\r\\n <mat-form-field>\\r\\n <input matInput (keypress)=\\\"validatePhone($event)\\\" (blur)=\\\"valZero()\\\" onpaste=\\\"return false\\\"\\r\\n oncut=\\\"return false\\\" autocomplete=\\\"off\\\" maxlength=\\\"16\\\" id=\\\"lblPhone\\\" [(ngModel)]=\\\"organizationDetails.Phone\\\"\\r\\n value=\\\"\\\">\\r\\n <mat-placeholder>Phone <span style=\\\"color:red; font-size: 16px;\\\">*</span></mat-placeholder>\\r\\n </mat-form-field>\\r\\n </div>\\r\\n\\r\\n <div id=\\\"field11\\\">\\r\\n <mat-form-field>\\r\\n <input matInput (keypress)=\\\"validateEmail($event)\\\" autocomplete=\\\"off\\\" maxlength=\\\"50\\\" id=\\\"lblEmail\\\"\\r\\n [(ngModel)]=\\\"organizationDetails.Email\\\" value=\\\"\\\">\\r\\n <mat-placeholder>Email<span style=\\\"color:red; font-size: 16px;\\\">*</span></mat-placeholder>\\r\\n </mat-form-field>\\r\\n </div>\\r\\n\\r\\n <div id=\\\"field12\\\">\\r\\n <mat-form-field>\\r\\n <input matInput autocomplete=\\\"off\\\" maxlength=\\\"500\\\" id=\\\"lblDescription\\\"\\r\\n [(ngModel)]=\\\"organizationDetails.OrganizationDescription\\\" value=\\\"\\\">\\r\\n <mat-placeholder>Description<span style=\\\"color:red; font-size: 16px;\\\"></span></mat-placeholder>\\r\\n </mat-form-field>\\r\\n </div>\\r\\n <div id=\\\"field13\\\">\\r\\n <mat-form-field>\\r\\n <input matInput autocomplete=\\\"off\\\" numbersOnly id=\\\"lblNoOfLicenses\\\"\\r\\n [(ngModel)]=\\\"organizationDetails.NoOfLicenses\\\" min=\\\"0\\\" maxlength=\\\"10\\\"\\r\\n oninput=\\\"this.value = this.value.replace(/[^0-9]/g, '').replace(/(\\\\..*)\\\\./g, '$1');\\\">\\r\\n <mat-placeholder>No. Of Licenses<span style=\\\"color:red; font-size: 16px;\\\">*</span></mat-placeholder>\\r\\n </mat-form-field>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <h4 class=\\\"alignheader\\\" id=\\\"headingAdmin\\\"><b>Admin details</b></h4>\\r\\n\\r\\n <div class=\\\"loginField\\\">\\r\\n <div id=\\\"field14\\\">\\r\\n <mat-form-field>\\r\\n <input matInput autocomplete=\\\"off\\\" maxlength=\\\"50\\\" id=\\\"lblUserName\\\" [(ngModel)]=\\\"organizationDetails.UserName\\\"\\r\\n value=\\\"\\\">\\r\\n <mat-placeholder>UserName <span style=\\\"color:red; font-size: 16px;\\\">*</span></mat-placeholder>\\r\\n </mat-form-field>\\r\\n </div>\\r\\n <div id=\\\"field15\\\">\\r\\n <mat-form-field>\\r\\n <input matInput type=\\\"password\\\" autocomplete=\\\"off\\\" maxlength=\\\"100\\\" [(ngModel)]=\\\"organizationDetails.Password\\\"\\r\\n value=\\\"\\\">\\r\\n <mat-placeholder>Password <span style=\\\"color:red; font-size: 16px;\\\">*</span></mat-placeholder>\\r\\n </mat-form-field>\\r\\n </div>\\r\\n </div>\\r\\n <!-- <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n <div id=\\\"Rowwrapper\\\">\\r\\n <div id=\\\"RowtableAction\\\">\\r\\n <div id=\\\"field\\\">\\r\\n <mat-form-field>\\r\\n <input matInput autocomplete=\\\"off\\\" maxlength=\\\"50\\\" id=\\\"lblEmail\\\" [(ngModel)]=\\\"UserName\\\" value=\\\"\\\">\\r\\n <mat-placeholder>UserName <span style=\\\"color:red; font-size: 16px;\\\">*</span></mat-placeholder>\\r\\n </mat-form-field>\\r\\n </div>\\r\\n <div id=\\\"field\\\">\\r\\n <mat-form-field >\\r\\n <input matInput type=\\\"password\\\" autocomplete=\\\"off\\\" autocomplete=\\\"off\\\" maxlength=\\\"100\\\" [(ngModel)]=\\\"Password\\\" value=\\\"\\\">\\r\\n <mat-placeholder>Password <span style=\\\"color:red; font-size: 16px;\\\">*</span></mat-placeholder>\\r\\n </mat-form-field>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div> -->\\r\\n <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n <div id=\\\"Rowwrapper\\\">\\r\\n <div id=\\\"RowtableActions\\\">\\r\\n <div id=\\\"buttonview\\\">\\r\\n <button class=\\\"addButtons btn\\\" mat-accent (click)=\\\"validateOrganization();\\\" [disabled]=\\\"btnDisabled\\\"><span\\r\\n *ngIf=\\\"data === 'new'\\\">Save</span><span *ngIf=\\\"data === 'edit'\\\">Update</span></button>\\r\\n </div>\\r\\n <div id=\\\"buttonview\\\">\\r\\n <button mat-accent class=\\\"addButtons btn\\\" (click)='clear()'>Cancel</button>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n\\r\\n <div *ngIf=\\\"data === 'user' && userVisible\\\">\\r\\n <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n <div id=\\\"Rowwrapper\\\">\\r\\n <div id=\\\"RowtableAction\\\">\\r\\n <div id=\\\"field\\\">\\r\\n <mat-form-field style=\\\"margin-top: 10px\\\">\\r\\n <input matInput autocomplete=\\\"off\\\" autocomplete=\\\"off\\\" maxlength=\\\"100\\\" [(ngModel)]=\\\"UserName\\\" value=\\\"\\\">\\r\\n <mat-placeholder>Username <span style=\\\"color:red; font-size: 16px;\\\">*</span></mat-placeholder>\\r\\n </mat-form-field>\\r\\n </div>\\r\\n <div id=\\\"field\\\">\\r\\n <mat-form-field style=\\\"margin-top: 10px\\\">\\r\\n <input matInput type=\\\"password\\\" autocomplete=\\\"off\\\" autocomplete=\\\"off\\\" maxlength=\\\"100\\\"\\r\\n [(ngModel)]=\\\"Password\\\" value=\\\"\\\">\\r\\n <mat-placeholder>Password <span style=\\\"color:red; font-size: 16px;\\\">*</span></mat-placeholder>\\r\\n </mat-form-field>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n <div id=\\\"Rowwrapper\\\">\\r\\n <div id=\\\"RowtableActions\\\">\\r\\n <div id=\\\"buttonview\\\">\\r\\n <button class=\\\"addButtons btn\\\" mat-accent (click)=\\\"SaveUser()\\\">Save</button>\\r\\n </div>\\r\\n <div id=\\\"buttonview\\\">\\r\\n <button mat-accent class=\\\"addButtons btn\\\" (click)='clear()'>Cancel</button>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n <mat-dialog-content class=\\\"warningMsg\\\">{{dataSelf}}</mat-dialog-content>\\r\\n <mat-dialog-content class=\\\"successMsg\\\"></mat-dialog-content>\"","module.exports = \"<link href=\\\"./assets/css/dmapp.css\\\" rel=\\\"stylesheet\\\" id=\\\"bootstrap-css\\\">\\n<div class=\\\"row\\\" id=\\\"container\\\">\\n <div class=\\\"\\\" id=\\\"heading\\\">\\n <h4>Organization</h4>\\n </div>\\n <div id=\\\"wrapper\\\">\\n <div id=\\\"tableActions\\\">\\n <div class=\\\"\\\" id=\\\"search\\\">\\n <mat-form-field style=\\\"margin-top: -5px;\\\" id=\\\"searchField\\\">\\n <mat-placeholder class=\\\"placeholder\\\">Search here</mat-placeholder>\\n <input matInput id=\\\"newGroup\\\" name=\\\"search\\\" (keyup)=\\\"searchText()\\\" [disabled]=\\\"isSearchDisable\\\"\\n [(ngModel)]=\\\"searchtext\\\" value=\\\"\\\" autocomplete=\\\"off\\\">\\n </mat-form-field>\\n </div>\\n <div class=\\\"\\\" id=\\\"excelBtn\\\" *ngIf=\\\"!disableSearch\\\">\\n <button class=\\\"darkbtnbg btn btn-info\\\" [disabled]=\\\"isDisable\\\" matTooltip=\\\"Export as excel\\\"\\n style=\\\"margin-top:11px;cursor: pointer;\\\" (click)=\\\"exportAsXLSX()\\\">\\n <!-- <i class='fa fa-file-excel-o'></i> -->\\n Excel\\n </button>\\n </div>\\n <div class=\\\"\\\" id=\\\"createBtn\\\">\\n <button mat-accent class=\\\"darkbtnbg btn btn-info\\\" (click)='newOrganiation()' style=\\\"margin-top: 11px;\\\"\\n matTooltip=\\\"New Organization\\\">New </button>\\n </div>\\n </div>\\n </div>\\n</div>\\n<div>\\n <div class=\\\"tableDiv\\\">\\n <table>\\n <thead>\\n <tr>\\n <th class=\\\"pointer\\\" (click)=\\\"sort('OrganizationName')\\\"> Organization\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n <th class=\\\"pointer\\\" (click)=\\\"sort('Email')\\\"> Email\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n <th class=\\\"pointer\\\" (click)=\\\"sort('Phone')\\\"> Phone\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n\\n <th class=\\\"pointer\\\" (click)=\\\"sort('NoOfLicenses')\\\"> No Of Licences\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n <th action>Action</th>\\n </tr>\\n </thead>\\n <tbody>\\n <!---->\\n <tr\\n *ngFor=\\\"let org of organization | paginate: { itemsPerPage: rowsOnPage, currentPage: p } | sort: {property: column, direction: direction}; let i = index\\\"\\n id=\\\"trRow\\\">\\n <td> {{org.OrganizationName}}</td>\\n <td>{{org.Email}} </td>\\n <td> {{org.Phone}} </td>\\n <td>{{org.NoOfLicenses}}</td>\\n <td style=\\\"cursor:pointer;\\\">\\n <!-- $event.stopPropagation(); -->\\n <span>\\n <a matTooltip=\\\"View Entities\\\" (click)=\\\"viewCompanies(org)\\\">\\n <i style=\\\"cursor: pointer;\\\" class=\\\"fa fa-eye \\\" aria-hidden=\\\"true\\\"></i>\\n </a> \\n <a matTooltip=\\\"Edit Organization\\\" class=\\\"fontLabel\\\" (click)=\\\"editOrganization(org)\\\"><i\\n style=\\\"cursor: pointer;\\\" class=\\\"fa fa-pencil-square-o \\\" aria-hidden=\\\"true\\\"></i></a>\\n\\n\\n <a matTooltip=\\\"Delete Organization\\\" class=\\\"fontLabel\\\"\\n (click)=\\\"deleteOrganization(org)\\\">\\n <i style=\\\"cursor: pointer;\\\" class=\\\"fa fa-trash-o \\\" aria-hidden=\\\"true\\\"></i></a>\\n\\n <a matTooltip=\\\"Add user\\\" style=\\\"display: none;\\\" (click)=\\\"AddUser(element)\\\"><i\\n class=\\\" fa fa-user\\\" aria-hidden=\\\"true\\\"></i></a>\\n <!-- -->\\n\\n </span>\\n </td>\\n\\n </tr>\\n </tbody>\\n\\n </table>\\n <br>\\n <div class=\\\"warningMsg\\\" *ngIf=\\\"(organization === null||organization===undefined || organization.length === 0)\\\">\\n <span>No data available</span>\\n </div>\\n </div>\\n <div class=\\\"pageContainer\\\" *ngIf=\\\"companyPaging && organization.length>0\\\">\\n\\n <div class=\\\"rowsSelection\\\">\\n <mat-form-field style=\\\"width: 50px; margin-top: -15px;\\\">\\n <mat-select [(ngModel)]=\\\"rowsOnPage\\\">\\n <mat-option *ngFor=\\\"let row of rowsOnPageSet\\\" [value]=\\\"row\\\">\\n {{row}}\\n </mat-option>\\n </mat-select>\\n </mat-form-field>\\n </div>\\n\\n\\n <div class=\\\"pageSelection\\\">\\n\\n <!-- style=\\\"margin-top: -50px\\\" -->\\n <pagination-controls (pageChange)=\\\"p = $event\\\"></pagination-controls>\\n </div>\\n </div>\"","module.exports = \"<link href=\\\"../../assets/css/dmapp.css\\\" rel=\\\"stylesheet\\\" id=\\\"bootstrap-css\\\">\\n\\n<style>\\n @media screen {\\n .donotprintthis1 {\\n display: none;\\n }\\n\\n .donotprintthis {\\n\\n display: block;\\n\\n }\\n }\\n\\n @media print {\\n h5 {\\n text-align: center;\\n }\\n\\n .donotprintthis1 {\\n\\n display: block;\\n\\n }\\n\\n .donotprintthis {\\n\\n display: none;\\n\\n }\\n }\\n</style>\\n<div class=\\\"reportHead\\\">\\n <div class=\\\"reportName\\\">\\n <h5> Other Category Frustrations</h5>\\n </div>\\n <div class=\\\"reportActions\\\">\\n\\n <div class=\\\"selectTeam\\\" *ngIf=\\\"(EmployeeID=='0' || employeeDetails.IsEmployeeLoginLevel=='Company')\\\">\\n <mat-form-field>\\n <mat-label> Select Type <span style=\\\"color:red; font-size: 15px;\\\">*</span></mat-label>\\n <mat-select (selectionChange)=\\\"reportTypeChange($event.value)\\\" [(ngModel)]=\\\"selectedReportType\\\">\\n <mat-option *ngFor=\\\"let scoreCardType of scoreCardTypes;\\\" [value]=\\\"scoreCardType\\\">\\n {{scoreCardType}}\\n </mat-option>\\n </mat-select>\\n </mat-form-field>\\n </div>\\n\\n <div class=\\\"selectTeam\\\" *ngIf=\\\" !toggleTeam &&(EmployeeID=='0' || employeeDetails.IsEmployeeLoginLevel=='Company')\\\">\\n <mat-form-field>\\n <mat-label> Select Department <span style=\\\"color:red; font-size: 15px;\\\">*</span></mat-label>\\n <mat-select (selectionChange)=\\\"departmentChange($event.value)\\\" [(ngModel)]=\\\"selectedDepartmentId\\\">\\n <mat-option *ngFor=\\\"let dept of departmentList;\\\" [value]=\\\"dept.DepartmentID\\\">\\n {{dept.DepartmentName}}\\n </mat-option>\\n </mat-select>\\n </mat-form-field>\\n </div>\\n <div class=\\\"selectTeam\\\" *ngIf=\\\"toggleTeam && teamData && teamData.length>0\\\">\\n <mat-form-field>\\n <mat-label> Select Team <span style=\\\"color:red; font-size: 15px;\\\">*</span></mat-label>\\n <mat-select (selectionChange)=\\\"teamChange($event)\\\" [(ngModel)]=\\\"TeamID\\\">\\n <mat-option *ngFor=\\\"let team of teamData;\\\" [value]=\\\"team.TeamID\\\">\\n {{team.TeamName}}\\n </mat-option>\\n </mat-select>\\n </mat-form-field>\\n </div>\\n <div class=\\\"searchField\\\" *ngIf=\\\"!disableSearch\\\">\\n <div class=\\\"item item-1\\\">\\n\\n <mat-form-field>\\n <mat-placeholder class=\\\"placeholder\\\">Search here</mat-placeholder>\\n <input matInput id=\\\"newGroup\\\" [disabled]=\\\"disableSearch\\\" (keyup)=\\\"Searchtext()\\\" name=\\\"search\\\"\\n [(ngModel)]=\\\"searchtext\\\" value=\\\"\\\" autocomplete=\\\"off\\\">\\n </mat-form-field>\\n </div>\\n </div>\\n <div class=\\\"printBtn\\\" *ngIf=\\\"!isDisable\\\">\\n <!-- <i class='fa fa-print'></i> -->\\n <div class=\\\"item item-5\\\">\\n <button class=\\\"darkbtnbg btn btn-info\\\" printTitle=\\\"{{companyName}}\\\" matTooltip=\\\"Print report\\\"\\n printSectionId=\\\"printOtherFrust\\\" [useExistingCss]=\\\"true\\\" ngxPrint>Print</button>\\n <!-- <button mat-raised-button color=\\\"primary\\\" [disabled]=\\\"isDisable\\\" matTooltip=\\\"Export As Excel\\\" style=\\\"margin-top:10px;cursor: pointer;\\\" (click)=\\\"exportAsXLSX()\\\"> -->\\n <!-- <i class='fa fa-file-excel-o'></i> -->\\n <!-- Excel\\n </button> -->\\n\\n </div>\\n </div>\\n <div class=\\\"excelBtn\\\" *ngIf=\\\"!isDisable\\\">\\n <div class=\\\"item item-5\\\">\\n <button class=\\\"darkbtnbg btn btn-info\\\" matTooltip=\\\"Export as excel\\\" (click)=\\\"exportAsXLSX()\\\">\\n\\n Excel\\n </button>\\n\\n\\n </div>\\n </div>\\n </div>\\n</div>\\n\\n\\n\\n<!-- ---------------------------Printing the report------------------------- -->\\n<div id=\\\"printOtherFrust\\\">\\n\\n <div class=\\\"donotprintthis1\\\">\\n <div style=\\\"text-align:center;margin-top: 15px;\\\">\\n <h6>\\n <span> Company - </span> {{companyName}} <br>\\n <span>Date: {{headerDate| date:'MM-dd-yyyy' }}</span><br>\\n <span *ngIf=\\\"!selectedReportType || selectedReportType == 'Team'\\\">Team: {{TeamName ? TeamName : 'Aggregate\\n Report'}}</span>\\n <span *ngIf=\\\"selectedReportType == 'Department'\\\">Department: {{departmentName ? departmentName : 'Aggregate\\n Report'}}</span><br>\\n <span>Report Type : Other Category Frustrations</span>\\n\\n </h6>\\n\\n </div>\\n </div>\\n <div class=\\\"tableDiv\\\">\\n <table id=\\\"dtBasicExample\\\">\\n <thead>\\n <tr>\\n <!--<th class=\\\"pointer\\\"> Company </th>-->\\n <th> No.</th>\\n <th class=\\\"pointer\\\" *ngIf=\\\"selectedReportType === 'Department'\\\" (click)=\\\"sort('DepartmentName')\\\">\\n Department\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n <th cName class=\\\"pointer\\\" (click)=\\\"sort('TeamName')\\\"> Team\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n <th class=\\\"pointer\\\" (click)=\\\"sort('ProcessName')\\\"> Process\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n <th cName class=\\\"pointer\\\" (click)=\\\"sort('ActivityName')\\\"> Activity\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n\\n <!-- <th class=\\\"pointer\\\" (click)=\\\"sort('PointerID')\\\"> Issue Id\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th> -->\\n <th class=\\\"pointer\\\" (click)=\\\"sort('FrustrationsTypeName')\\\"> Type\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n <th class=\\\"pointer\\\" (click)=\\\"sort('Subject')\\\"> Frustration\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n <th class=\\\"pointer\\\" (click)=\\\"sort('Description')\\\"> Description\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n <th class=\\\"pointer\\\" (click)=\\\"sort('ProjectName')\\\"> Project Name\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n <th class=\\\"pointer\\\" (click)=\\\"sort('StatusName')\\\"> Status\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n <th class=\\\"pointer\\\" (click)=\\\"sort('SeverityName')\\\"> Severity\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n </tr>\\n </thead>\\n <tbody>\\n <!---->\\n <tr\\n *ngFor=\\\"let element of filterData | paginate: { itemsPerPage: rowsOnPage, currentPage: p } | sort: {property: column, direction: direction}; let i = index\\\">\\n <!--<td > {{element.CompanyName}}</td>-->\\n <td>{{i+1}}</td>\\n <td *ngIf=\\\"selectedReportType === 'Department'\\\">\\n {{element.DepartmentName}}\\n </td>\\n <td>{{element.TeamName}}</td>\\n <td> {{element.ProcessName}}</td>\\n <td> {{element.ActivityName}}</td>\\n\\n <!-- \\n <td> Issue-{{element.PointerID}}</td> -->\\n <td>{{element.FrustrationsTypeName}}</td>\\n <td> {{element.Subject}}</td>\\n <td> {{element.Description}}</td>\\n <td>{{element.ProjectName}}</td>\\n <td>{{element.StatusName}}</td>\\n <td>{{element.SeverityName}}</td>\\n </tr>\\n </tbody>\\n\\n </table><br>\\n\\n <!-- <mat-paginator [pageSizeOptions]=\\\"[5, 10, 20]\\\" showFirstLastButtons></mat-paginator> -->\\n <div class=\\\"warningMsg\\\" *ngIf=\\\"(filterData === null||filterData===undefined || filterData.length === 0)\\\">\\n\\n <span>No data available</span>\\n\\n\\n </div>\\n </div>\\n <div class=\\\"donotprintthis1\\\" style=\\\" position: fixed; bottom: 0;\\n font-size: 13px;\\n margin-left: 35%;\\\">\\n <label>{{copyRight}}</label>\\n </div>\\n</div>\\n\\n\\n\\n<div class=\\\"pageContainer\\\" *ngIf=\\\"processPaging &&filterData.length>0\\\">\\n <div class=\\\"rowsSelection\\\">\\n <mat-form-field style=\\\"width: 50px; margin-top: -15px;\\\">\\n <mat-select [(ngModel)]=\\\"rowsOnPage\\\">\\n <mat-option *ngFor=\\\"let row of rowsOnPageSet\\\" [value]=\\\"row\\\">\\n {{row}}\\n </mat-option>\\n </mat-select>\\n </mat-form-field>\\n </div>\\n <div class=\\\"pageSelection\\\">\\n <pagination-controls (pageChange)=\\\"p = $event\\\"></pagination-controls>\\n </div>\\n</div>\\n\"","module.exports = \"<link href=\\\"../../assets/css/dmapp.css\\\" rel=\\\"stylesheet\\\" id=\\\"bootstrap-css\\\">\\r\\n\\r\\n<div>\\r\\n <mat-dialog-content>{{data}}</mat-dialog-content>\\r\\n <mat-dialog-actions align=\\\"center\\\">\\r\\n <div *ngIf=\\\"condition\\\">\\r\\n <button mat-raised-button mat-accent mat-dialog-close (click)=\\\"onNoClick()\\\">No</button>\\r\\n <!-- Can optionally provide a result for the closing dialog. -->\\r\\n <button mat-raised-button mat-accent [mat-dialog-close]=\\\"true\\\" (click)=\\\"onYesClick()\\\">Yes</button>\\r\\n </div>\\r\\n <!-- <div *ngIf=\\\"!condition && data !== 'progress' && data !== 'status'\\\">\\r\\n <div class=\\\"container\\\" fxLayout fxLayout.xs=\\\"column\\\" fxLayoutAlign=\\\"center\\\" fxLayoutGap=\\\"10px\\\"\\r\\n fxLayoutGap.xs=\\\"0\\\">\\r\\n <div class=\\\"item item-3 \\\">\\r\\n <button mat-button mat-accent mat-dialog-close>Ok</button>\\r\\n </div>\\r\\n </div>\\r\\n </div> -->\\r\\n </mat-dialog-actions>\\r\\n</div>\\r\\n\"","module.exports = \"<link href=\\\"../../assets/css/dmapp.css\\\" rel=\\\"stylesheet\\\" id=\\\"bootstrap-css\\\">\\r\\n<div class=\\\"text-center\\\">\\r\\n <h5 class=\\\"text-underline\\\">Performance Score Card</h5>\\r\\n</div>\\r\\n<div *ngIf=\\\"!isViewScoreCard\\\">\\r\\n <div id=\\\"wrapper\\\">\\r\\n <div id=\\\"tableActions\\\">\\r\\n <div class=\\\"field\\\">\\r\\n <mat-form-field>\\r\\n <mat-label> Select Type <span style=\\\"color:red; font-size: 15px;\\\">*</span></mat-label>\\r\\n <mat-select (selectionChange)=\\\"scoreCardTypeChange($event.value)\\\"\\r\\n [(ngModel)]=\\\"selectedScoreCardType\\\"\\r\\n [disabled]=\\\"employeeDetails && employeeDetails.IsEmployeeLoginLevel=='Team'\\\">\\r\\n <mat-option *ngFor=\\\"let scoreCardType of scoreCardTypes;\\\" [value]=\\\"scoreCardType\\\">\\r\\n {{scoreCardType}}\\r\\n </mat-option>\\r\\n </mat-select>\\r\\n </mat-form-field>\\r\\n </div>\\r\\n <div class=\\\"field\\\">\\r\\n <mat-form-field>\\r\\n <mat-label> Select Department <span style=\\\"color:red; font-size: 15px;\\\">*</span></mat-label>\\r\\n <mat-select (selectionChange)=\\\"departmentChange($event.value)\\\" [(ngModel)]=\\\"selectedDepartmentId\\\">\\r\\n <mat-option *ngFor=\\\"let dept of departmentList;\\\" [value]=\\\"dept.DepartmentID\\\">\\r\\n {{dept.DepartmentName}}\\r\\n </mat-option>\\r\\n </mat-select>\\r\\n </mat-form-field>\\r\\n </div>\\r\\n <div class=\\\"field\\\" *ngIf=\\\"toggleTeam\\\">\\r\\n <mat-form-field>\\r\\n <mat-label> Select Team <span style=\\\"color:red; font-size: 15px;\\\">*</span></mat-label>\\r\\n <mat-select (selectionChange)=\\\"teamChange($event)\\\" [(ngModel)]=\\\"selectedTeamId\\\">\\r\\n <mat-option *ngFor=\\\"let team of teamList;\\\" [value]=\\\"team.TeamID\\\">\\r\\n {{team.TeamName}}\\r\\n </mat-option>\\r\\n </mat-select>\\r\\n </mat-form-field>\\r\\n </div>\\r\\n <div class=\\\"field\\\">\\r\\n <button class=\\\"darkbtnbg btn btn-info\\\" style='margin-top: 10px;' (click)='showMasterScoreCards()'\\r\\n matTooltip=\\\"Show Score Cards\\\">Show Score Cards\\r\\n </button>\\r\\n </div>\\r\\n <div class=\\\"field\\\">\\r\\n\\r\\n <button class=\\\"darkbtnbg btn btn-info\\\" style='margin-top: 10px;' (click)='openScoreCard()'\\r\\n matTooltip=\\\"New Score Card\\\"\\r\\n [disabled]=\\\"!MenuPermissions[menuName][menuID]['C'] || (employeeDetails && employeeDetails.IsEmployeeLoginLevel=='Team')\\\">New\\r\\n </button>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <div class=\\\"tableDiv\\\">\\r\\n <table>\\r\\n <thead>\\r\\n <tr>\\r\\n <th class=\\\"pointer\\\" (click)=\\\"sort('ScoreCardName')\\\"> Score Card Name\\r\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\r\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\r\\n </th>\\r\\n <th class=\\\"pointer\\\" (click)=\\\"sort('Year')\\\"> Year\\r\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\r\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\r\\n </th>\\r\\n <th class=\\\"pointer\\\" (click)=\\\"sort('QuarterName')\\\"> Quarter\\r\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\r\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\r\\n </th>\\r\\n\\r\\n <th>Action</th>\\r\\n </tr>\\r\\n </thead>\\r\\n <tbody *ngIf=!IsViewScoreCard>\\r\\n <ng-container\\r\\n *ngFor=\\\"let scoreCard of masterScoreCards | paginate: { itemsPerPage: rowsOnPage, currentPage: p } | sort: {property: column, direction: direction}; let i = index\\\">\\r\\n <tr (click)=\\\"$event.stopPropagation();\\\" style=\\\"cursor: pointer;\\\"\\r\\n [ngClass]=\\\"latestScoreCardId == scoreCard.Id && masterScoreCards.length > 0 ? 'current-quarter' : ''\\\">\\r\\n <td>{{scoreCard.ScoreCardName}}</td>\\r\\n <td> {{scoreCard.Year}}</td>\\r\\n <td>{{scoreCard.QuarterName}}</td>\\r\\n <td style=\\\"cursor:pointer;\\\">\\r\\n <span>\\r\\n <a matTooltip=\\\"View Score Card\\\" (click)=\\\"viewScoreCard(scoreCard)\\\">\\r\\n <i style=\\\"cursor: pointer;\\\" class=\\\"fa fa-eye \\\" aria-hidden=\\\"true\\\"></i>\\r\\n </a> \\r\\n\\r\\n <a matTooltip=\\\"Edit Score Card\\\"\\r\\n (click)=\\\"$event.stopPropagation();editScoreCard(scoreCard)\\\"\\r\\n [style.pointer-events]=\\\"(!MenuPermissions[menuName][menuID]['U'] || (employeeDetails && employeeDetails.IsEmployeeLoginLevel=='Team'))?'none':'auto'\\\"\\r\\n [ngClass]=\\\"{'removeColor':!(MenuPermissions[menuName][menuID]['U'] || (employeeDetails && employeeDetails.IsEmployeeLoginLevel=='Team')),'AddColor':(MenuPermissions[menuName][menuID]['U'] || (employeeDetails && employeeDetails.IsEmployeeLoginLevel=='Team'))}\\\"><i\\r\\n style=\\\"cursor: pointer;\\\" class=\\\"fa fa-pencil-square-o \\\"\\r\\n aria-hidden=\\\"true\\\"></i></a>\\r\\n <a matTooltip=\\\"Delete Score Card\\\"\\r\\n (click)=\\\"$event.stopPropagation();deleteScoreCard(scoreCard)\\\"\\r\\n [style.pointer-events]=\\\"(!MenuPermissions[menuName][menuID]['D'] || (employeeDetails && employeeDetails.IsEmployeeLoginLevel=='Team'))?'none':'auto'\\\"\\r\\n [ngClass]=\\\"{'removeColor':!(MenuPermissions[menuName][menuID]['D'] || (employeeDetails && employeeDetails.IsEmployeeLoginLevel=='Team')),'AddColor':(MenuPermissions[menuName][menuID]['D'] || (employeeDetails && employeeDetails.IsEmployeeLoginLevel=='Team'))}\\\"><i\\r\\n style=\\\"cursor: pointer;\\\" class=\\\"fa fa-trash-o \\\" aria-hidden=\\\"true\\\"></i></a>\\r\\n </span>\\r\\n <!-- <a matTooltip=\\\"Project on-hold\\\"\\r\\n (click)=\\\"$event.stopPropagation();ForceClose(element)\\\"\\r\\n [style.pointer-events]=\\\"(!MenuPermissions[menuName][menuID]['U'])?'none':'auto'\\\"\\r\\n [ngClass]=\\\"{'removeColor':!(MenuPermissions[menuName][menuID]['U']),'AddColor':(MenuPermissions[menuName][menuID]['U'])}\\\"><i\\r\\n style=\\\"cursor: pointer;\\\" class=\\\"fa fa-window-close\\\" aria-hidden=\\\"true\\\"></i></a> -->\\r\\n </td>\\r\\n </tr>\\r\\n </ng-container>\\r\\n </tbody>\\r\\n </table>\\r\\n <br>\\r\\n <div class=\\\"warningMsg\\\" *ngIf=\\\"masterScoreCards.length === 0\\\">\\r\\n <span>No data available</span>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"pageContainer\\\" *ngIf=\\\"masterScoreCards.length > 0\\\">\\r\\n <div class=\\\"rowsSelection\\\">\\r\\n <mat-form-field style=\\\"width: 50px; margin-top: -15px;\\\">\\r\\n <mat-select [(ngModel)]=\\\"rowsOnPage\\\">\\r\\n <mat-option *ngFor=\\\"let row of rowsOnPageSet\\\" [value]=\\\"row\\\">\\r\\n {{row}}\\r\\n </mat-option>\\r\\n </mat-select>\\r\\n </mat-form-field>\\r\\n </div>\\r\\n <div class=\\\"pageSelection\\\">\\r\\n <pagination-controls (pageChange)=\\\"p = $event\\\"></pagination-controls>\\r\\n </div>\\r\\n </div>\\r\\n</div>\\r\\n\\r\\n<div *ngIf=\\\"isViewScoreCard\\\">\\r\\n <app-view-score-card [showDetails]=\\\"true\\\" [selectedMetrics]=\\\"selectedMetrics\\\"\\r\\n [isScoreCardEnable]=\\\"isScoreCardEnable\\\" [scoreCard]=\\\"scoreCard\\\" [isViewScoreCard]=\\\"isViewScoreCard\\\"\\r\\n [WeekDateList]=\\\"WeekDateList\\\" (goToAddScoreCardChanged)=\\\"goToAddScoreCardChangedHandler($event)\\\"\\r\\n (viewScoreCardChanged)=\\\"viewScoreCardChangedHandler($event.value)\\\"></app-view-score-card>\\r\\n</div>\\r\\n\"","module.exports = \"<link href=\\\"../../assets/css/dmapp.css\\\" rel=\\\"stylesheet\\\" id=\\\"bootstrap-css\\\">\\r\\n<div *ngIf=\\\"data !== 'new' && data !== 'edit' && data!='log'&& data !== 'progress' && data !== 'status'\\\">\\r\\n <mat-dialog-content>{{data}}</mat-dialog-content>\\r\\n <mat-dialog-actions align=\\\"center\\\">\\r\\n <div *ngIf=\\\"condition\\\">\\r\\n <button mat-raised-button mat-accent mat-dialog-close (click)=\\\"onNoClick()\\\">No</button>\\r\\n <!-- Can optionally provide a result for the closing dialog. -->\\r\\n <button mat-raised-button mat-accent [mat-dialog-close]=\\\"true\\\" (click)=\\\"onYesClick()\\\">Yes</button>\\r\\n </div>\\r\\n <div *ngIf=\\\"!condition && data !== 'progress' && data !== 'status' && data!='assign' && !newPointer\\\">\\r\\n <div class=\\\"container\\\" fxLayout fxLayout.xs=\\\"column\\\" fxLayoutAlign=\\\"center\\\" fxLayoutGap=\\\"10px\\\" fxLayoutGap.xs=\\\"0\\\">\\r\\n <div class=\\\"item item-3 \\\">\\r\\n <button mat-button mat-accent mat-dialog-close>Ok</button>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </mat-dialog-actions>\\r\\n</div>\\r\\n\\r\\n<div *ngIf=\\\"data === 'new' || data === 'edit' \\\">\\r\\n <br>\\r\\n <div class=\\\"XBtn\\\">\\r\\n <span (click)=\\\"Clear()\\\" matTooltip=\\\"Close\\\" class=\\\"close\\\">×</span>\\r\\n </div>\\r\\n <mat-slide-toggle [checked]=\\\"subActivityStatus\\\" [disabled]=\\\"conditionActivity!=''\\\" (change)=\\\"ToggleSubActivity()\\\">Sub\\r\\n Activity</mat-slide-toggle>\\r\\n <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n <div id=\\\"Rowheading\\\">\\r\\n <h4 class=\\\"alignheader\\\"><b style=\\\"margin-bottom: 20px;\\\">{{data | titlecase}} Frustration</b></h4>\\r\\n\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <div class=\\\"inputFields\\\">\\r\\n <div>\\r\\n <mat-form-field>\\r\\n\\r\\n <mat-placeholder>Key Process <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n <mat-select [disabled]=\\\"conditionActivity!=''\\\" (selectionChange)=\\\"process($event)\\\" [(ngModel)]=\\\"ProcessID\\\">\\r\\n <mat-option *ngFor=\\\"let data of processData;let i=index;\\\" [value]=\\\"processData[i].ProcessID\\\">\\r\\n {{processData[i].ProcessName}}\\r\\n </mat-option>\\r\\n </mat-select>\\r\\n </mat-form-field>\\r\\n </div>\\r\\n\\r\\n\\r\\n <div>\\r\\n <mat-form-field>\\r\\n\\r\\n <mat-placeholder>Activity <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n <mat-select [disabled]=\\\"conditionActivity!=''\\\" (selectionChange)=\\\"activity($event)\\\" [(ngModel)]=\\\"ActivityID\\\">\\r\\n <mat-option *ngFor=\\\"let data of tempActivity;let i=index;\\\" [value]=\\\"tempActivity[i].ActivityID\\\">\\r\\n {{tempActivity[i].ActivityName}}\\r\\n </mat-option>\\r\\n </mat-select>\\r\\n </mat-form-field>\\r\\n\\r\\n </div>\\r\\n <div>\\r\\n\\r\\n <mat-form-field>\\r\\n\\r\\n <mat-placeholder>Team <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n\\r\\n <mat-select [disabled]=\\\"true\\\" (selectionChange)=\\\"team($event)\\\" [(ngModel)]=\\\"TeamID\\\">\\r\\n <mat-option *ngFor=\\\"let data of teamData;let i=index;\\\" [value]=\\\"teamData[i].TeamID\\\">\\r\\n {{teamData[i].TeamName}}\\r\\n </mat-option>\\r\\n </mat-select>\\r\\n </mat-form-field>\\r\\n\\r\\n </div>\\r\\n <div>\\r\\n <mat-form-field>\\r\\n <mat-label> Sub Activity</mat-label>\\r\\n <mat-select [disabled]=\\\"conditionActivity!='' || !subActivityStatus \\\" [(ngModel)]=\\\"SubActivityID\\\">\\r\\n <mat-option *ngFor=\\\"let data of tempSubActivity;let i=index;\\\" [value]=\\\"tempSubActivity[i].ActivityID\\\">\\r\\n {{tempSubActivity[i].ActivityName}}\\r\\n </mat-option>\\r\\n </mat-select>\\r\\n\\r\\n\\r\\n </mat-form-field>\\r\\n </div>\\r\\n\\r\\n\\r\\n <div>\\r\\n <mat-form-field>\\r\\n\\r\\n <mat-placeholder>Frustration Type <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n\\r\\n <mat-select (selectionChange)=\\\"frustrationTypesDa($event)\\\" [(ngModel)]=\\\"FrustrationTypeID\\\">\\r\\n <mat-option *ngFor=\\\"let data of frustrationtypeData;let i=index;\\\"\\r\\n [value]=\\\"frustrationtypeData[i].FrustrationsTypeID\\\">\\r\\n {{frustrationtypeData[i].FrustrationsTypeName}}\\r\\n\\r\\n </mat-option>\\r\\n </mat-select>\\r\\n\\r\\n\\r\\n </mat-form-field>\\r\\n\\r\\n </div>\\r\\n <div>\\r\\n <mat-form-field>\\r\\n <input matInput maxlength=\\\"55\\\" autocomplete=\\\"off\\\" id=\\\"lblSubject\\\" [(ngModel)]=\\\"Subject\\\" value=\\\"\\\">\\r\\n <mat-placeholder>Frustration <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n </mat-form-field>\\r\\n\\r\\n </div>\\r\\n <div>\\r\\n <mat-form-field>\\r\\n <input matInput placeholder=\\\" Description\\\" maxlength=\\\"200\\\" autocomplete=\\\"off\\\" id=\\\"lblDescription\\\"\\r\\n [(ngModel)]=\\\"Description\\\" value=\\\"\\\">\\r\\n </mat-form-field>\\r\\n </div>\\r\\n\\r\\n\\r\\n <div>\\r\\n <mat-form-field>\\r\\n\\r\\n <mat-placeholder>Severity <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n <mat-select (selectionChange)=\\\"severity($event)\\\" [(ngModel)]=\\\"SeverityID\\\">\\r\\n <mat-option *ngFor=\\\"let data of severityData;let i=index;\\\" [value]=\\\"severityData[i].SeverityID\\\">\\r\\n {{severityData[i].SeverityName}}\\r\\n </mat-option>\\r\\n </mat-select>\\r\\n </mat-form-field>\\r\\n\\r\\n </div>\\r\\n <div>\\r\\n\\r\\n <mat-form-field>\\r\\n\\r\\n <mat-placeholder>Status <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n <mat-select (selectionChange)=\\\"statusChange($event)\\\" [(ngModel)]=\\\"StatusID\\\">\\r\\n <mat-option *ngFor=\\\"let data of statusData;let i=index;\\\" [value]=\\\"statusData[i].StatusID\\\">\\r\\n {{data.StatusName}}\\r\\n </mat-option>\\r\\n </mat-select>\\r\\n </mat-form-field>\\r\\n\\r\\n </div>\\r\\n\\r\\n </div>\\r\\n\\r\\n <!-- <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n <div id=\\\"Rowwrapper\\\">\\r\\n <div id=\\\"RowtableAction\\\">\\r\\n <div id=\\\"field\\\">\\r\\n <mat-form-field>\\r\\n \\r\\n <mat-placeholder>Key Process <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n <mat-select [disabled]=\\\"conditionActivity!=''\\\" (selectionChange)=\\\"process($event)\\\" [(ngModel)]=\\\"ProcessID\\\">\\r\\n <mat-option *ngFor=\\\"let data of processData;let i=index;\\\" [value]=\\\"processData[i].ProcessID\\\" >\\r\\n {{processData[i].ProcessName}}\\r\\n </mat-option>\\r\\n </mat-select>\\r\\n </mat-form-field> \\r\\n</div>\\r\\n \\r\\n \\r\\n <div id=\\\"field\\\">\\r\\n <mat-form-field>\\r\\n \\r\\n <mat-placeholder>Activity <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n <mat-select [disabled]=\\\"conditionActivity!=''\\\" (selectionChange)=\\\"activity($event)\\\" [(ngModel)]=\\\"ActivityID\\\">\\r\\n <mat-option *ngFor=\\\"let data of tempActivity;let i=index;\\\" [value]=\\\"tempActivity[i].ActivityID\\\" >\\r\\n {{tempActivity[i].ActivityName}}\\r\\n </mat-option>\\r\\n </mat-select>\\r\\n </mat-form-field>\\r\\n \\r\\n </div>\\r\\n <div id=\\\"field\\\">\\r\\n \\r\\n <mat-form-field>\\r\\n \\r\\n <mat-placeholder>Team <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n \\r\\n <mat-select [disabled]=\\\"true\\\" (selectionChange)=\\\"team($event)\\\" [(ngModel)]=\\\"TeamID\\\">\\r\\n <mat-option *ngFor=\\\"let data of teamData;let i=index;\\\" [value]=\\\"teamData[i].TeamID\\\" >\\r\\n {{teamData[i].TeamName}}\\r\\n </mat-option>\\r\\n </mat-select>\\r\\n </mat-form-field> \\r\\n \\r\\n </div>\\r\\n \\r\\n</div>\\r\\n</div>\\r\\n</div>\\r\\n<div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n <div id=\\\"Rowwrapper\\\">\\r\\n <div id=\\\"RowtableAction\\\">\\r\\n <div id=\\\"field\\\">\\r\\n <mat-form-field >\\r\\n <mat-label> Sub Activity</mat-label>\\r\\n <mat-select [disabled]=\\\"conditionActivity!='' || !subActivityStatus \\\" [(ngModel)]=\\\"SubActivityID\\\">\\r\\n <mat-option *ngFor=\\\"let data of tempSubActivity;let i=index;\\\" [value]=\\\"tempSubActivity[i].ActivityID\\\" >\\r\\n {{tempSubActivity[i].ActivityName}}\\r\\n </mat-option>\\r\\n </mat-select>\\r\\n\\r\\n \\r\\n </mat-form-field>\\r\\n</div>\\r\\n \\r\\n \\r\\n <div id=\\\"field\\\">\\r\\n <mat-form-field>\\r\\n \\r\\n <mat-placeholder>Frustration Type <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n \\r\\n <mat-select (selectionChange)=\\\"frustrationTypesDa($event)\\\" [(ngModel)]=\\\"FrustrationTypeID\\\" >\\r\\n <mat-option *ngFor=\\\"let data of frustrationtypeData;let i=index;\\\" [value]=\\\"frustrationtypeData[i].FrustrationsTypeID\\\" >\\r\\n {{frustrationtypeData[i].FrustrationsTypeName}}\\r\\n \\r\\n </mat-option>\\r\\n </mat-select>\\r\\n\\r\\n \\r\\n </mat-form-field>\\r\\n \\r\\n </div>\\r\\n <div id=\\\"field\\\">\\r\\n <mat-form-field>\\r\\n <input matInput maxlength=\\\"55\\\" autocomplete=\\\"off\\\" id=\\\"lblSubject\\\" [(ngModel)]=\\\"Subject\\\"\\r\\n value=\\\"\\\">\\r\\n <mat-placeholder>Frustration <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n </mat-form-field>\\r\\n \\r\\n </div>\\r\\n \\r\\n</div>\\r\\n</div>\\r\\n</div>\\r\\n<div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n <div id=\\\"Rowwrapper\\\">\\r\\n <div id=\\\"RowtableAction\\\">\\r\\n <div id=\\\"field\\\">\\r\\n <mat-form-field>\\r\\n <input matInput placeholder=\\\" Description\\\" maxlength=\\\"200\\\" autocomplete=\\\"off\\\" id=\\\"lblDescription\\\" [(ngModel)]=\\\"Description\\\"\\r\\n value=\\\"\\\">\\r\\n </mat-form-field>\\r\\n</div>\\r\\n \\r\\n \\r\\n <div id=\\\"field\\\">\\r\\n <mat-form-field>\\r\\n \\r\\n <mat-placeholder>Severity <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n <mat-select (selectionChange)=\\\"severity($event)\\\" [(ngModel)]=\\\"SeverityID\\\">\\r\\n <mat-option *ngFor=\\\"let data of severityData;let i=index;\\\" [value]=\\\"severityData[i].SeverityID\\\" >\\r\\n {{severityData[i].SeverityName}}\\r\\n </mat-option>\\r\\n </mat-select>\\r\\n </mat-form-field>\\r\\n \\r\\n </div>\\r\\n <div id=\\\"field\\\">\\r\\n \\r\\n <mat-form-field>\\r\\n \\r\\n <mat-placeholder>Status <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n <mat-select (selectionChange)=\\\"statusChange($event)\\\" [(ngModel)]=\\\"StatusID\\\">\\r\\n <mat-option *ngFor=\\\"let data of statusData;let i=index;\\\" [value]=\\\"statusData[i].StatusID\\\" >\\r\\n {{data.StatusName}}\\r\\n </mat-option>\\r\\n </mat-select>\\r\\n </mat-form-field>\\r\\n \\r\\n </div>\\r\\n \\r\\n</div>\\r\\n</div>\\r\\n</div> -->\\r\\n <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n <div id=\\\"Rowwrapper\\\">\\r\\n <div id=\\\"RowtableActions\\\">\\r\\n <div id=\\\"buttonview\\\">\\r\\n <button class=\\\"addButtons btn\\\" mat-accent (click)=\\\"AddPointer()\\\"><span *ngIf=\\\"data === 'new'\\\">Save</span><span\\r\\n *ngIf=\\\"data === 'edit'\\\">Update</span></button>\\r\\n\\r\\n </div>\\r\\n <div id=\\\"buttonview\\\">\\r\\n <button mat-accent class=\\\"addButtons btn\\\" (click)='Clear()'>Cancel</button>\\r\\n </div>\\r\\n\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n\\r\\n </div>\\r\\n <div *ngIf=\\\"data === 'edit'\\\">\\r\\n <div class=\\\"updateInfo\\\">\\r\\n\\r\\n\\r\\n <div class=\\\"updatedBy\\\">\\r\\n <mat-label *ngIf=\\\"updatedBy !== null\\\">Updated By:<b> {{updatedBy}}</b></mat-label>\\r\\n </div>\\r\\n <div class=\\\"updatedOn\\\">\\r\\n <mat-label *ngIf=\\\"updatedBy !== null\\\">Updated Date:<b> {{updatedDate | date:'MM/dd/yyyy'}}</b></mat-label>\\r\\n </div>\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n <!-- <div>\\r\\n <div class=\\\"item item-1\\\" >\\r\\n <mat-label *ngIf=\\\"updatedBy !== null\\\" >Updated Date:<b> {{updatedDate | date:'MM/dd/yyyy'}}</b></mat-label>\\r\\n </div>\\r\\n </div> -->\\r\\n\\r\\n </div>\\r\\n </div>\\r\\n</div>\\r\\n\\r\\n<div *ngIf=\\\"data==='assign' && !newPointer\\\" class=\\\"mappings1\\\">\\r\\n <br>\\r\\n <span (click)=\\\"Clear()\\\" matTooltip=\\\"Close\\\" class=\\\"close\\\">×</span>\\r\\n <h4 class=\\\"alignheader\\\"><b style=\\\"margin-bottom: 20px;\\\">{{data | titlecase}} Project</b></h4>\\r\\n\\r\\n <div class=\\\"container\\\" fxLayout fxLayout.xs=\\\"column\\\" fxLayoutAlign=\\\"center\\\" fxLayoutGap=\\\"10px\\\" fxLayoutGap.xs=\\\"0\\\">\\r\\n\\r\\n <div class=\\\"item item-1\\\" fxFlex=\\\"25%\\\">\\r\\n <mat-form-field>\\r\\n\\r\\n <mat-placeholder>Project <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n <mat-select (selectionChange)=\\\"project($event)\\\" [(ngModel)]=\\\"ProjectID\\\">\\r\\n <mat-option *ngFor=\\\"let data of projectData;let i=index;\\\" [value]=\\\"projectData[i].ProjectID\\\">\\r\\n {{projectData[i].ProjectName}}\\r\\n </mat-option>\\r\\n </mat-select>\\r\\n </mat-form-field>\\r\\n </div>\\r\\n\\r\\n <div class=\\\"item item-1\\\" fxFlex=\\\"3%\\\">\\r\\n </div>\\r\\n\\r\\n <div class=\\\"item item-1\\\" fxFlex=\\\"25%\\\">\\r\\n\\r\\n <mat-form-field>\\r\\n\\r\\n <mat-placeholder>Department <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n <mat-select (selectionChange)=\\\"department($event)\\\" [disabled]=\\\"true\\\" [(ngModel)]=\\\"DepartmentID\\\">\\r\\n <mat-option *ngFor=\\\"let data of departmentData;let i=index;\\\" [value]=\\\"departmentData[i].DepartmentID\\\">\\r\\n {{departmentData[i].DepartmentName}}\\r\\n </mat-option>\\r\\n </mat-select>\\r\\n </mat-form-field>\\r\\n\\r\\n </div>\\r\\n\\r\\n <br>\\r\\n <div class=\\\"item item-1\\\" fxFlex=\\\"3%\\\"></div>\\r\\n </div>\\r\\n\\r\\n <br>\\r\\n\\r\\n\\r\\n <div class=\\\"container\\\" fxLayout fxLayout.xs=\\\"column\\\" fxLayoutAlign=\\\"center\\\" fxLayoutGap=\\\"10px\\\" fxLayoutGap.xs=\\\"0\\\">\\r\\n <div class=\\\"item item-1\\\" fxFlexOrder=\\\"1\\\"><button class=\\\"addButtons\\\" mat-raised-button mat-accent\\r\\n (click)=\\\"Addproject()\\\">Save</button>\\r\\n\\r\\n </div>\\r\\n\\r\\n <div class=\\\"item item-1\\\" fxFlexOrder=\\\"3\\\"><button mat-raised-button mat-accent class=\\\"addButtons\\\"\\r\\n (click)='Clear()'>Cancel</button></div>\\r\\n\\r\\n </div>\\r\\n\\r\\n</div>\\r\\n\\r\\n\\r\\n\\r\\n<br>\\r\\n<mat-dialog-content class=\\\"warningMsg\\\">{{dataSelf}}</mat-dialog-content>\\r\\n<mat-dialog-content class=\\\"successMsg\\\">{{successMsg}}</mat-dialog-content>\\r\\n\"","module.exports = \"<p></p>\\n\\n<div class=\\\"container\\\" style=\\\"margin-top: -10px\\\" fxLayout fxLayout.xs=\\\"column\\\" fxLayoutAlign=\\\"center\\\" fxLayoutGap=\\\"10px\\\" fxLayoutGap.xs=\\\"0\\\">\\n <div class=\\\"col-lg-8\\\">\\n <div class=\\\"item item-5 alignLeft\\\" fxFlex=\\\"12%\\\">\\n <h4>Frustration</h4>\\n </div>\\n </div>\\n <div class=\\\"item item-1\\\" fxFlex=\\\"51%\\\" fxFlexOrder=\\\"1\\\">\\n \\n </div>\\n <div class=\\\"item item-1\\\" fxFlex=\\\"25%\\\" fxFlexOrder=\\\"1\\\" *ngIf=\\\"!disableSearch\\\">\\n <mat-form-field style=\\\"width: 180px\\\">\\n <mat-placeholder class=\\\"placeholder\\\">Search here</mat-placeholder>\\n <input matInput id=\\\"newGroup\\\" [disabled]=\\\"disableSearch\\\" (keyup)=\\\"Searchtext()\\\" name=\\\"search\\\" [(ngModel)]=\\\"searchtext\\\" value=\\\"\\\" autocomplete=\\\"off\\\">\\n </mat-form-field>\\n \\n </div>\\n \\n <div class=\\\"item item-5\\\" fxFlex=\\\"10%\\\" fxFlexOrder=\\\"3\\\" *ngIf=\\\"!isDisable\\\"> \\n <button mat-raised-button color=\\\"primary\\\" [disabled]=\\\"isDisable\\\" matTooltip=\\\"Export as excel\\\" style=\\\"cursor: pointer;margin-top: 10px;\\\" (click)=\\\"exportAsXLSX()\\\">\\n <!-- <i class='fa fa-file-excel-o'></i> -->\\n Excel\\n </button> \\n \\n </div>\\n \\n <div class=\\\"item item-5\\\" fxFlex=\\\"11%\\\" fxFlexOrder=\\\"3\\\">\\n <button mat-raised-button color=\\\"primary\\\" (click)='OpenPointer()' [disabled]=\\\"!MenuPermissions[menuName][menuID]['C']\\\" style=\\\"float: right;margin-top: 10px;\\\" class=\\\"addButtons\\\" matTooltip=\\\"New frustration\\\">NEW</button>\\n \\n </div>\\n \\n </div>\\n \\n <div>\\n \\n <table class=\\\"table table-responsive\\\" class=\\\"fixed\\\">\\n <thead>\\n <tr>\\n \\n <!--<th cName class=\\\"pointer\\\"> Process</th>\\n <th cName class=\\\"pointer\\\"> Activity</th>-->\\n \\n <th class=\\\"pointer\\\" (click)=\\\"sort('ProcessName')\\\"> Process\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n \\n <th class=\\\"pointer\\\" (click)=\\\"sort('ActivityName')\\\"> Activity\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n <th class=\\\"pointer\\\" (click)=\\\"sort('TeamName')\\\"> Team\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n <th class=\\\"pointer\\\" (click)=\\\"sort('PointerID')\\\"> Issue ID\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n <th class=\\\"pointer\\\" (click)=\\\"sort('FrustrationsTypeName')\\\">Type\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n <th class=\\\"pointer\\\" (click)=\\\"sort('Subject')\\\"> Subject\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n <th class=\\\"pointer\\\" (click)=\\\"sort('Description')\\\"> Description\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n <th class=\\\"pointer\\\" (click)=\\\"sort('ProjectName')\\\"> Project Name\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n <th class=\\\"pointer\\\" (click)=\\\"sort('StatusName')\\\"> Status\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n\\n </th>\\n <th class=\\\"pointer\\\" (click)=\\\"sort('SeverityName')\\\"> Severity\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n\\n </th>\\n \\n\\n <th action>Action</th>\\n </tr>\\n </thead>\\n <tbody>\\n <!---->\\n <!-- -->\\n <!-- (click)=\\\"EditPointer(element,'Update Record')\\\" -->\\n <tr *ngFor=\\\"let element of pointerFrustration | paginate: { itemsPerPage: rowsOnPage, currentPage: p } | sort: {property: column, direction: direction}; let i = index\\\">\\n <!--<td> {{element.ProcessName}}</td>\\n <td> {{element.ActivityName}}</td>-->\\n \\n <!-- -->\\n <td> {{element.ProcessName}}</td>\\n <td> {{element.ActivityName}}</td>\\n <td>{{element.TeamName}}</td>\\n <td> Issue-{{element.PointerID}}</td>\\n <td>{{element.FrustrationsTypeName}}</td>\\n <td> {{element.Subject}}</td>\\n <td> {{element.Description}}</td>\\n <td >{{element.ProjectName}}</td>\\n <td >{{element.StatusName}}</td>\\n <td >{{element.SeverityName}}</td>\\n \\n <td style=\\\" cursor:pointer;\\\">\\n <span> <a matTooltip=\\\"Edit frustration\\\" [style.pointer-events]=\\\"(!MenuPermissions[menuName][menuID]['U'])?'none':'auto'\\\" [ngClass]=\\\"{'removeColor':!(MenuPermissions[menuName][menuID]['U']),'AddColor':(MenuPermissions[menuName][menuID]['U'])}\\\" (click)=\\\"EditPointer(element)\\\"><i class=\\\"fa fa-pencil-square-o \\\" aria-hidden=\\\"true\\\"></i></a> \\n <a matTooltip=\\\"Delete frustration\\\" (click)=\\\"DeletePointer(element)\\\" [style.pointer-events]=\\\"(!MenuPermissions[menuName][menuID]['D'])?'none':'auto'\\\" [ngClass]=\\\"{'removeColor':!(MenuPermissions[menuName][menuID]['D']),'AddColor':(MenuPermissions[menuName][menuID]['D'])}\\\" ><i class=\\\"fa fa-trash-o \\\" aria-hidden=\\\"true\\\"></i></a> </span>\\n </td>\\n\\n </tr>\\n </tbody>\\n\\n </table>\\n \\n<br>\\n <div class=\\\"warningMsg\\\" *ngIf=\\\"(pointerFrustration=== null||pointerFrustration===undefined || pointerFrustration.length === 0)\\\">\\n \\n <span >No data available</span>\\n \\n \\n </div>\\n\\n\\n <div class=\\\"container row\\\" style=\\\"float:right\\\" *ngIf=\\\"frustPaging\\\">\\n <div class=\\\"col-lg-6\\\"></div>\\n <div class=\\\"col-lg-1\\\">\\n <mat-form-field style=\\\"width: 50px; margin-top: -15px;\\\">\\n <mat-select [(ngModel)]=\\\"rowsOnPage\\\">\\n <mat-option *ngFor=\\\"let row of rowsOnPageSet\\\" [value]=\\\"row\\\">\\n {{row}}\\n </mat-option>\\n </mat-select>\\n </mat-form-field>\\n </div>\\n \\n \\n <div class=\\\"col-lg-5\\\" style=\\\"float:right\\\">\\n <pagination-controls (pageChange)=\\\"p = $event\\\"></pagination-controls>\\n </div>\\n </div>\\n\\n \\n <!-- <button mat-raised-button color=\\\"primary\\\" (click)='AddToProject()' *ngIf=\\\"checkEnable\\\" class=\\\"addButtons\\\" matTooltip=\\\"Add to Project\\\">Add To Project</button>\\n -->\\n <br>\\n <br>\\n \\n\\n </div> \\n\"","module.exports = \"<style>\\r\\n @media (max-width: 768px) {\\r\\n .mb_close {\\r\\n position: absolute !important;\\r\\n\\r\\n }\\r\\n\\r\\n .btnbg1 {\\r\\n margin-bottom: 6% !important;\\r\\n }\\r\\n\\r\\n .mb_clsbtn {\\r\\n margin-left: 90% !important;\\r\\n font-size: 20px !important;\\r\\n color: #000;\\r\\n }\\r\\n }\\r\\n\\r\\n @page {\\r\\n size: auto;\\r\\n margin-bottom: 5mm;\\r\\n }\\r\\n\\r\\n .btnbg1 {\\r\\n background-color: #e2e3e4;\\r\\n font-weight: 200 !important;\\r\\n font-size: 14px;\\r\\n min-width: 10%\\r\\n }\\r\\n\\r\\n @media print {\\r\\n\\r\\n #Header,\\r\\n #Footer {\\r\\n display: none !important;\\r\\n }\\r\\n }\\r\\n\\r\\n @media print {\\r\\n .donotprintthis {\\r\\n\\r\\n display: none;\\r\\n\\r\\n }\\r\\n }\\r\\n\\r\\n @media print {\\r\\n @page {\\r\\n margin: 0;\\r\\n }\\r\\n\\r\\n body {\\r\\n margin: 1.6cm;\\r\\n }\\r\\n }\\r\\n\\r\\n @media print {\\r\\n a[href]:after {\\r\\n content: none !important;\\r\\n }\\r\\n\\r\\n img[src]:after {\\r\\n content: none !important;\\r\\n }\\r\\n }\\r\\n\\r\\n @media print {\\r\\n @page :footer {\\r\\n color: #fff\\r\\n }\\r\\n\\r\\n @page :header {\\r\\n color: #fff\\r\\n }\\r\\n }\\r\\n\\r\\n @media print {\\r\\n @page {\\r\\n size: auto;\\r\\n margin: 0mm !important;\\r\\n }\\r\\n\\r\\n a[href]:after {\\r\\n content: none !important;\\r\\n }\\r\\n }\\r\\n\\r\\n @media print {\\r\\n\\r\\n #Header,\\r\\n #Footer {\\r\\n display: none;\\r\\n margin: 0mm !important;\\r\\n }\\r\\n }\\r\\n\\r\\n @media screen {\\r\\n .donotprintthis {\\r\\n display: block;\\r\\n\\r\\n }\\r\\n }\\r\\n\\r\\n @media print {\\r\\n\\r\\n header,\\r\\n footer,\\r\\n aside,\\r\\n nav,\\r\\n form,\\r\\n iframe,\\r\\n .menu,\\r\\n .hero,\\r\\n .adslot {\\r\\n display: none;\\r\\n }\\r\\n }\\r\\n\\r\\n /* .square {\\r\\n padding: 0px;\\r\\n background-color: #FFFF99;\\r\\n color: black;\\r\\n text-align: center;\\r\\n cursor: pointer;\\r\\n border-radius: 5px;\\r\\n border: 2px solid #C9C927;\\r\\n font-size: 13px;\\r\\n font-weight: bold;\\r\\n box-shadow: 3px 3px 3px #C9C927;\\r\\n font-family: unset;\\r\\n } */\\r\\n\\r\\n .square {\\r\\n padding: 0px;\\r\\n background-color: #3775b5;\\r\\n color: white;\\r\\n text-align: center;\\r\\n cursor: pointer;\\r\\n border-radius: 5px;\\r\\n border: 2px solid #3775b5;\\r\\n font-size: 13px;\\r\\n font-weight: bold;\\r\\n box-shadow: 0px 8px 3px 0px #265382;\\r\\n /* box-shadow: 3px 3px 3px #C9C927; */\\r\\n font-family: unset;\\r\\n }\\r\\n\\r\\n .ppp {\\r\\n position: running(footer);\\r\\n }\\r\\n\\r\\n .actAlign {\\r\\n /* margin-top: 20px; */\\r\\n font-size: 10px;\\r\\n font-family: sans-serif;\\r\\n }\\r\\n\\r\\n .footer {\\r\\n position: fixed;\\r\\n bottom: 0;\\r\\n font-size: 13px;\\r\\n margin-left: 35%;\\r\\n }\\r\\n\\r\\n @media (max-width: 768px) {\\r\\n .mb_popup {\\r\\n height: 360px !important;\\r\\n width: 415px !important;\\r\\n overflow-x: scroll !important;\\r\\n margin-left: 35% !important;\\r\\n }\\r\\n\\r\\n .close_mb {\\r\\n margin-top: -55% !important;\\r\\n }\\r\\n\\r\\n .mb_scroll {\\r\\n overflow-x: hidden;\\r\\n }\\r\\n\\r\\n .closebtn {\\r\\n margin-top: -93px;\\r\\n margin-right: -30px;\\r\\n }\\r\\n\\r\\n .closebtnexpand {\\r\\n margin-top: -32px;\\r\\n margin-right: -30px;\\r\\n }\\r\\n }\\r\\n</style>\\r\\n\\r\\n<div\\r\\n *ngIf=\\\"data !== 'choose' && data !=='chooseChild' && data!='new' && data!='subMap' && data!='subAct' && data!= 'new1' \\\">\\r\\n <mat-dialog-content>{{data}}</mat-dialog-content>\\r\\n <mat-dialog-actions align=\\\"center\\\">\\r\\n <div *ngIf=\\\"condition\\\">\\r\\n <button mat-raised-button mat-accent mat-dialog-close (click)=\\\"onNoClick()\\\">No</button>\\r\\n <!-- Can optionally provide a result for the closing dialog. -->\\r\\n <button mat-raised-button mat-accent [mat-dialog-close]=\\\"true\\\" (click)=\\\"onYesClick()\\\">Yes</button>\\r\\n </div>\\r\\n <div *ngIf=\\\"!condition && data !== 'progress' && data !== 'status'\\\">\\r\\n <div class=\\\"container\\\" fxLayout fxLayout.xs=\\\"column\\\" fxLayoutAlign=\\\"center\\\" fxLayoutGap=\\\"10px\\\" fxLayoutGap.xs=\\\"0\\\">\\r\\n <div class=\\\"item item-3 \\\">\\r\\n <button mat-button mat-accent mat-dialog-close>Ok</button>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </mat-dialog-actions>\\r\\n</div>\\r\\n\\r\\n\\r\\n<div *ngIf=\\\"data=='choose' || data === 'chooseChild'\\\">\\r\\n <span (click)=\\\"Clear()\\\" matTooltip=\\\"Close\\\" style=\\\"cursor:pointer;\\\" class=\\\"close\\\">×</span>\\r\\n <mat-dialog-content>\\r\\n <h5>Select Type</h5>\\r\\n\\r\\n </mat-dialog-content>\\r\\n <mat-radio-group aria-label=\\\"* Type\\\" [(ngModel)]=\\\"PointerType\\\">\\r\\n <label><b>Add</b></label><br>\\r\\n\\r\\n <mat-radio-button *ngIf=\\\"isSub===0 && isProcess!==0\\\" [disabled]='IsVersion || readOnly || !menuCreateCheck'\\r\\n value=\\\"Activity\\\">Activity</mat-radio-button>\\r\\n <!-- <mat-radio-button *ngIf=\\\"isSub!==0 && data !=='chooseChild'\\\" [disabled]='IsVersion || readOnly' value=\\\"SubActivity\\\">Sub Activity</mat-radio-button> -->\\r\\n <mat-radio-button *ngIf=\\\"isSub==0 && data ==='chooseChild'\\\" [disabled]='IsVersion || readOnly || !menuCreateCheck'\\r\\n value=\\\"SubActivity\\\">Sub Activity</mat-radio-button>\\r\\n <!-- *ngIf=\\\"isSub!==0 && isActivity!=0 && isProcess!==0\\\" -->\\r\\n <mat-radio-button value=\\\"Metric\\\" [disabled]='IsVersion || readOnly || !menuCreateCheck'>Metric</mat-radio-button>\\r\\n <mat-radio-button value=\\\"Issue\\\" [disabled]='IsVersion || readOnly || !menuCreateCheck'>Frustation/Issue\\r\\n </mat-radio-button>\\r\\n <br>\\r\\n\\r\\n <label><b>Edit</b></label><br>\\r\\n <mat-radio-button value=\\\"edit\\\" [disabled]='IsVersion || readOnly || !menuUpdateCheck'>Edit </mat-radio-button>\\r\\n\\r\\n <mat-radio-button value=\\\"delete\\\" [disabled]='IsVersion || readOnly || !menuDeleteCheck'>Delete </mat-radio-button>\\r\\n <mat-radio-button value=\\\"changSquence\\\" [disabled]='IsVersion || readOnly || !menuUpdateCheck'>Re-arrange\\r\\n </mat-radio-button>\\r\\n\\r\\n <!-- <mat-radio-button *ngIf=\\\"!show\\\" value=\\\"processView\\\">Sub Map</mat-radio-button> -->\\r\\n\\r\\n <mat-radio-button *ngIf=\\\"!show && isSub==0 \\\" [disabled]=\\\"activityTemp.length===0\\\" value=\\\"subAct\\\">Sub Map\\r\\n </mat-radio-button>\\r\\n </mat-radio-group>\\r\\n <mat-dialog-actions align=\\\"center\\\">\\r\\n <button mat-raised-button mat-accent [disabled]=\\\"!PointerType\\\" [mat-dialog-close]=\\\"true\\\"\\r\\n (click)=\\\"closeChoose()\\\">Ok</button>\\r\\n </mat-dialog-actions>\\r\\n</div>\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n<div *ngIf=\\\"data=='new' \\\">\\r\\n\\r\\n <div class=\\\"XBtn\\\">\\r\\n <span (click)=\\\"Clear()\\\" matTooltip=\\\"Close\\\" class=\\\"close\\\">×</span>\\r\\n </div>\\r\\n <div style=\\\"text-align:center\\\">\\r\\n <span *ngIf=\\\"toggle=='1'\\\"><b>Frustration List</b></span>\\r\\n <span *ngIf=\\\"toggle=='2'\\\"><b>Metric List</b></span><br>\\r\\n <span><b>Process</b> {{Process}}</span> <br>\\r\\n <span *ngIf=\\\"Activity!=''\\\"> <b>Activity</b> {{Activity}} </span>\\r\\n\\r\\n </div>\\r\\n <!-- <span (click)=\\\"Clear()\\\" matTooltip=\\\"Close\\\" style=\\\"cursor: pointer\\\" class=\\\"close\\\">×</span> -->\\r\\n <div tble>\\r\\n <div class=\\\"tableDiv\\\">\\r\\n <table>\\r\\n <thead>\\r\\n <tr>\\r\\n <!-- <th *ngIf=\\\"toggle=='1'\\\"> Issue ID </th>\\r\\n <th *ngIf=\\\"toggle=='2'\\\"> Metric ID </th> -->\\r\\n <th *ngIf=\\\"toggle=='1'\\\"> Frustration </th>\\r\\n <th *ngIf=\\\"toggle=='2'\\\"> Goal </th>\\r\\n <th *ngIf=\\\"toggle=='2'\\\"> Metric </th>\\r\\n <th *ngIf=\\\"toggle=='1'\\\"> Type of Frustration </th>\\r\\n <!-- <th *ngIf=\\\"toggle=='2'\\\"> UOM </th> -->\\r\\n <th *ngIf=\\\"toggle=='2'\\\">Source</th>\\r\\n\\r\\n <th *ngIf=\\\"toggle=='1'\\\"> Status </th>\\r\\n <th *ngIf=\\\"toggle=='1'\\\"> Severity </th>\\r\\n <th *ngIf=\\\"toggle=='1'\\\">Description</th>\\r\\n <th> Date Opened </th>\\r\\n <th> Action </th>\\r\\n </tr>\\r\\n </thead>\\r\\n <tbody>\\r\\n <tr *ngFor=\\\"let case of CaseData\\\">\\r\\n <!-- <td> Issue-{{case.PointerID}} </td> -->\\r\\n <td *ngIf=\\\"toggle=='1'\\\"> {{case.Subject}} </td>\\r\\n\\r\\n <td *ngIf=\\\"toggle=='2'\\\">{{case.GoalName}}</td>\\r\\n <td *ngIf=\\\"toggle=='2'\\\">{{case.Description}}</td>\\r\\n <td *ngIf=\\\"toggle=='1'\\\"> {{case.FrustrationsTypeName}} </td>\\r\\n <!-- <td *ngIf=\\\"toggle=='2'\\\"> {{case.UOM}} </td> -->\\r\\n <td *ngIf=\\\"toggle=='2'\\\"> {{case.Source}} </td>\\r\\n\\r\\n <td *ngIf=\\\"toggle=='1'\\\"> {{case.StatusName}} </td>\\r\\n <td *ngIf=\\\"toggle=='1'\\\"> {{case.SeverityName}} </td>\\r\\n <td *ngIf=\\\"toggle=='1'\\\">{{case.Description}}</td>\\r\\n <td> {{case.CreatedDate| date: 'MM/dd/yyyy'}} </td>\\r\\n <td style=\\\" cursor:pointer;\\\" *ngIf=\\\"toggle=='1'\\\">\\r\\n\\r\\n <span> <a matTooltip=\\\"Edit frustration\\\" (click)=\\\"EditPointer(case)\\\"\\r\\n [style.pointer-events]=\\\"(IsVersion|| readOnly || !menuUpdateCheck)?'none':'auto'\\\"\\r\\n [ngClass]=\\\"{'removeColor':(IsVersion|| readOnly || !menuUpdateCheck ),'AddColor':(!IsVersion|| !readOnly || menuUpdateCheck)}\\\"><i\\r\\n style=\\\"cursor: pointer;\\\" class=\\\"fa fa-pencil-square-o \\\" aria-hidden=\\\"true\\\"></i></a>\\r\\n <a matTooltip=\\\"Delete frustration\\\" (click)=\\\"DeletePointer(case)\\\"\\r\\n [style.pointer-events]=\\\"(IsVersion|| readOnly || !menuDeleteCheck )?'none':'auto'\\\"\\r\\n [ngClass]=\\\"{'removeColor':(IsVersion||readOnly || !menuDeleteCheck),'AddColor':(! IsVersion||! readOnly || !menuDeleteCheck )}\\\"><i\\r\\n style=\\\"cursor: pointer;\\\" class=\\\"fa fa-trash-o \\\" aria-hidden=\\\"true\\\"></i></a> </span>\\r\\n </td>\\r\\n <td style=\\\" cursor:pointer;\\\" *ngIf=\\\"toggle=='2'\\\">\\r\\n\\r\\n <span> <a matTooltip=\\\"Edit metric\\\" (click)=\\\"EditPointer(case)\\\"\\r\\n [style.pointer-events]=\\\"(IsVersion|| readOnly || !menuUpdateCheck)?'none':'auto'\\\"\\r\\n [ngClass]=\\\"{'removeColor':(IsVersion|| readOnly || !menuUpdateCheck ),'AddColor':(!IsVersion|| !readOnly || menuUpdateCheck)}\\\"><i\\r\\n style=\\\"cursor: pointer;\\\" class=\\\"fa fa-pencil-square-o \\\" aria-hidden=\\\"true\\\"></i></a>\\r\\n <a matTooltip=\\\"Delete metric\\\" (click)=\\\"DeletePointer(case)\\\"\\r\\n [style.pointer-events]=\\\"(IsVersion|| readOnly || !menuDeleteCheck )?'none':'auto'\\\"\\r\\n [ngClass]=\\\"{'removeColor':(IsVersion||readOnly || !menuDeleteCheck),'AddColor':(! IsVersion||! readOnly || !menuDeleteCheck )}\\\"><i\\r\\n style=\\\"cursor: pointer;\\\" class=\\\"fa fa-trash-o \\\" aria-hidden=\\\"true\\\"></i></a> </span>\\r\\n </td>\\r\\n\\r\\n </tr>\\r\\n </tbody>\\r\\n </table>\\r\\n <div class=\\\"warningMsg\\\" *ngIf=\\\"(CaseData === null||CaseData===undefined || CaseData.length === 0)\\\">\\r\\n\\r\\n <span>No data available</span>\\r\\n\\r\\n\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n <mat-dialog-content *ngIf=\\\"!CaseData\\\" class=\\\"warningMsg\\\">No Issues Found</mat-dialog-content>\\r\\n\\r\\n</div>\\r\\n<!--|||||||||||||||||||||||For DialogComponent2||||||||||||||||||||||||-->\\r\\n<div *ngIf=\\\"data=='new1' \\\">\\r\\n <div class=\\\"XBtn\\\">\\r\\n <span (click)=\\\"Clear()\\\" matTooltip=\\\"Close\\\" class=\\\"close\\\">×</span>\\r\\n </div>\\r\\n\\r\\n <div style=\\\"text-align:center\\\">\\r\\n <span *ngIf=\\\"toggle=='1'\\\"><b>Frustration List</b></span>\\r\\n <span *ngIf=\\\"toggle=='2'\\\"><b>Metric List</b></span><br>\\r\\n <!-- <span><b>Process</b> {{Process}}</span> <br> -->\\r\\n <span *ngIf=\\\"Activity!=''\\\"> <b>Activity</b> {{Activity}} </span>\\r\\n\\r\\n </div>\\r\\n\\r\\n <div tble1>\\r\\n <div class=\\\"tableDiv\\\">\\r\\n <table>\\r\\n <thead>\\r\\n <tr>\\r\\n <!-- <th *ngIf=\\\"toggle=='1'\\\"> Issue ID </th>\\r\\n <th *ngIf=\\\"toggle=='2'\\\"> Metric ID </th> -->\\r\\n <th *ngIf=\\\"toggle=='1'\\\"> Frustration </th>\\r\\n <th *ngIf=\\\"toggle=='2'\\\"> Goal </th>\\r\\n <th *ngIf=\\\"toggle=='2'\\\"> Metric </th>\\r\\n <th *ngIf=\\\"toggle=='1'\\\"> Type of Frustration </th>\\r\\n <!-- <th *ngIf=\\\"toggle=='2'\\\"> UOM </th> -->\\r\\n <th *ngIf=\\\"toggle=='2'\\\">Source</th>\\r\\n\\r\\n <th *ngIf=\\\"toggle=='1'\\\"> Status </th>\\r\\n <th *ngIf=\\\"toggle=='1'\\\"> Severity </th>\\r\\n <th *ngIf=\\\"toggle=='1'\\\">Description</th>\\r\\n <th> Date Opened </th>\\r\\n <th>Action</th>\\r\\n </tr>\\r\\n </thead>\\r\\n <tbody>\\r\\n <tr *ngFor=\\\"let case of CaseData\\\">\\r\\n <!-- <td> Issue-{{case.PointerID}} </td> -->\\r\\n <td *ngIf=\\\"toggle=='1'\\\"> {{case.Subject}} </td>\\r\\n <td *ngIf=\\\"toggle=='2'\\\"> {{case.GoalName}} </td>\\r\\n <td *ngIf=\\\"toggle=='2'\\\">{{case.Description}}</td>\\r\\n <td *ngIf=\\\"toggle=='1'\\\"> {{case.FrustrationsTypeName}} </td>\\r\\n <!-- <td *ngIf=\\\"toggle=='2'\\\"> {{case.UOM}} </td> -->\\r\\n <td *ngIf=\\\"toggle=='2'\\\"> {{case.Source}} </td>\\r\\n\\r\\n <td *ngIf=\\\"toggle=='1'\\\"> {{case.StatusName}} </td>\\r\\n <td *ngIf=\\\"toggle=='1'\\\"> {{case.SeverityName}} </td>\\r\\n <td *ngIf=\\\"toggle=='1'\\\">{{case.Description}}</td>\\r\\n <td> {{case.CreatedDate| date: 'MM/dd/yyyy'}} </td>\\r\\n <td style=\\\" cursor:pointer;\\\" *ngIf=\\\"toggle=='2'\\\">\\r\\n\\r\\n\\r\\n <span> <a matTooltip=\\\"Edit metric\\\" (click)=\\\"EditPointer(case)\\\"\\r\\n [style.pointer-events]=\\\"(IsVersion|| readOnly || !menuUpdateCheck)?'none':'auto'\\\"\\r\\n [ngClass]=\\\"{'removeColor':(IsVersion|| readOnly || !menuUpdateCheck ),'AddColor':(!IsVersion|| !readOnly || menuUpdateCheck)}\\\"><i\\r\\n style=\\\"cursor: pointer;\\\" class=\\\"fa fa-pencil-square-o \\\" aria-hidden=\\\"true\\\"></i></a>\\r\\n <a matTooltip=\\\"Delete metric\\\" (click)=\\\"DeletePointer(case)\\\"\\r\\n [style.pointer-events]=\\\"(IsVersion|| readOnly || !menuDeleteCheck )?'none':'auto'\\\"\\r\\n [ngClass]=\\\"{'removeColor':(IsVersion||readOnly || !menuDeleteCheck),'AddColor':(! IsVersion||! readOnly || !menuDeleteCheck )}\\\"><i\\r\\n style=\\\"cursor: pointer;\\\" class=\\\"fa fa-trash-o \\\" aria-hidden=\\\"true\\\"></i></a> </span>\\r\\n </td>\\r\\n <td style=\\\" cursor:pointer;\\\" *ngIf=\\\"toggle=='1'\\\">\\r\\n\\r\\n\\r\\n <span> <a matTooltip=\\\"Edit frustration\\\" (click)=\\\"EditPointer(case)\\\"\\r\\n [style.pointer-events]=\\\"(IsVersion|| readOnly || !menuUpdateCheck)?'none':'auto'\\\"\\r\\n [ngClass]=\\\"{'removeColor':(IsVersion|| readOnly || !menuUpdateCheck ),'AddColor':(!IsVersion|| !readOnly || menuUpdateCheck)}\\\"><i\\r\\n style=\\\"cursor: pointer;\\\" class=\\\"fa fa-pencil-square-o \\\" aria-hidden=\\\"true\\\"></i></a>\\r\\n <a matTooltip=\\\"Delete frustration\\\" (click)=\\\"DeletePointer(case)\\\"\\r\\n [style.pointer-events]=\\\"(IsVersion|| readOnly || !menuDeleteCheck )?'none':'auto'\\\"\\r\\n [ngClass]=\\\"{'removeColor':(IsVersion||readOnly || !menuDeleteCheck),'AddColor':(! IsVersion||! readOnly || !menuDeleteCheck )}\\\"><i\\r\\n style=\\\"cursor: pointer;\\\" class=\\\"fa fa-trash-o \\\" aria-hidden=\\\"true\\\"></i></a> </span>\\r\\n </td>\\r\\n\\r\\n </tr>\\r\\n </tbody>\\r\\n </table>\\r\\n\\r\\n <div class=\\\"warningMsg\\\" *ngIf=\\\"(CaseData === null||CaseData===undefined || CaseData.length === 0)\\\">\\r\\n\\r\\n <span>No data available</span>\\r\\n\\r\\n\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n <mat-dialog-content *ngIf=\\\"!CaseData\\\" class=\\\"warningMsg\\\">No issues found</mat-dialog-content>\\r\\n\\r\\n</div>\\r\\n<div *ngIf=\\\"data=='subMap'\\\">\\r\\n\\r\\n\\r\\n <div id=\\\"Map\\\">\\r\\n <div class=\\\"XBtn\\\">\\r\\n <span (click)=\\\"Clear()\\\" matTooltip=\\\"Close\\\" class=\\\"close\\\">×</span>\\r\\n </div>\\r\\n\\r\\n\\r\\n <div class=\\\"dialogHead\\\">\\r\\n <div class=\\\"infoHead\\\">\\r\\n <div class=\\\"companyInfo\\\">\\r\\n <strong> {{CompanyName }} - </strong> {{ProcessName}} Process Map <br>\\r\\n <span>Date: {{headerDate| date:'MM-dd-yyyy' }}</span>\\r\\n </div>\\r\\n <div class=\\\"teamInfo\\\">\\r\\n <span>Team: {{TeamName}}</span><br>\\r\\n <span>Version: {{currentVersion[\\\"VersionName\\\"]}}</span>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <div class=\\\"ActionButton\\\">\\r\\n <div>\\r\\n <button class=\\\"btn btnbg1\\\" style=\\\"margin-right: 20px;\\\" matTooltip=\\\"Print {{ProcessName}} process\\\"\\r\\n printSectionId=\\\"print-sectionExpand\\\" printTitle=\\\"{{CompanyName}}\\\" [useExistingCss]=\\\"true\\\" ngxPrint>\\r\\n Print</button>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n </div>\\r\\n <div class=\\\"row\\\" id=\\\"Rowcontainer\\\" style=\\\"overflow-x: auto; height:450px;\\\">\\r\\n <div id=\\\"Rowwrapper\\\">\\r\\n <!-- <div class=\\\"row\\\" style=\\\"display: flex;\\r\\nflex-wrap: nowrap;\\r\\noverflow-x: auto; height:450px;width:610px;margin-left: 32px;\\\"> -->\\r\\n <div style=\\\"bottom:100;width: 50%;margin-left: 25%;margin-top: 3%;\\\">\\r\\n <table style=\\\" margin-left: -48px;\\\">\\r\\n <tr>\\r\\n <td>\\r\\n <div *ngIf=\\\"!IssuesLists[subKey]['MetricProcess'][subKey] && (MapType==='1' ||MapType==='3')\\\"\\r\\n style=\\\"margin-left:140px;\\\"></div>\\r\\n <div *ngIf=\\\"MapType==='0' ||MapType==='2'\\\"></div>\\r\\n <!-- <div *ngIf=\\\"!IssuesLists[subKey]['MetricProcess'][subKey] \\\" style=\\\"margin-left:100px;\\\"></div> -->\\r\\n <div *ngIf=\\\"IssuesLists[subKey]['MetricProcess'][subKey] && (MapType==='1' ||MapType==='3')\\\" style=\\\"width: 140px;\\r\\n min-height: 40px;\\r\\n margin-left: 2px;\\\" class=\\\"squareM\\\">\\r\\n <table>\\r\\n <tr>\\r\\n\\r\\n <td style=\\\"word-break: normal;\\\"><strong>No.</strong></td>\\r\\n <td style=\\\"float: left;\\\">\\r\\n <strong>Metrics</strong>\\r\\n </td>\\r\\n </tr>\\r\\n <tr *ngFor=\\\"let data of IssuesLists[subKey]['MetricProcess'][subKey];let i=index;\\\">\\r\\n <td style=\\\"padding-left: 2px;word-break: normal;vertical-align: top;\\\">\\r\\n {{i+1}}\\r\\n </td>\\r\\n <td style=\\\"padding-left: 2px;float: left;\\\">\\r\\n {{data.Description}}\\r\\n </td>\\r\\n </tr>\\r\\n </table>\\r\\n </div>\\r\\n </td>\\r\\n <td>\\r\\n <div class=\\\"square\\\" style=\\\"padding:18px 1px 18px 1px; width:200px;height: 100px;\\\">\\r\\n <span style=\\\"float: left; color:#4aabe7;\\\" title=\\\"No metric associated with this process\\\"\\r\\n *ngIf=\\\"!IssuesLists[subKey].MetricCount && !IssuesLists[subKey].pMetricCount && !IssuesLists[subKey].SubMetricCount && (MapType==='1' ||MapType==='3')\\\">\\r\\n <img src=\\\"./assets/images/triangle-blue.png\\\" alt=\\\"bluetriangle\\\"\\r\\n style=\\\"width: 13px;margin-top: -32px;\\\" /></span>\\r\\n <span title=\\\"No frustrations assosiated with this process\\\" style=\\\"float: left; color: #d55632;\\\"\\r\\n *ngIf=\\\"!IssuesLists[subKey].IssueCount && !IssuesLists[subKey].pIssueCount && !IssuesLists[subKey].SubIssueCount && (MapType==='0' ||MapType==='3')\\\">\\r\\n <img src=\\\"./assets/images/triangle-red.png\\\" alt=\\\"redtriangle\\\"\\r\\n style=\\\"width: 13px;margin-top: -32px;\\\" /> </span>\\r\\n <span style=\\\"float: left;margin-left:3px;margin-top: -11px;\\\" class=\\\"circleS\\\"\\r\\n title=\\\"Sub activity exits\\\" *ngIf=\\\"IssuesLists[subKey].SubActivity\\\"> </span>\\r\\n <hr style=\\\"background-color: #265382;margin-top: 8px;\\\">\\r\\n <span style=\\\"word-wrap: break-word;word-break: break-all;white-space: normal;\\\"\\r\\n title=\\\"{{ProcessName}}\\\"> {{ProcessName}} </span>\\r\\n\\r\\n </div>\\r\\n </td>\\r\\n <td>\\r\\n <div *ngIf=\\\"!IssuesLists[subKey]['IssueProcess'][subKey] && (MapType==='0' ||MapType==='3')\\\"></div>\\r\\n <div *ngIf=\\\"MapType==='1' ||MapType==='2'\\\"></div>\\r\\n <div *ngIf=\\\"IssuesLists[subKey]['IssueProcess'][subKey] && (MapType==='0' ||MapType==='3')\\\"\\r\\n style=\\\" width: 140px; min-height: 40px; margin-left: 2px;\\\" class=\\\"squareIssues\\\">\\r\\n <table>\\r\\n <tr>\\r\\n <td style=\\\"word-break:normal;\\\"><strong>No.</strong></td>\\r\\n <td style=\\\"float: left;\\\">\\r\\n <strong>Frustrations</strong>\\r\\n </td>\\r\\n </tr>\\r\\n <tr *ngFor=\\\"let data of IssuesLists[subKey]['IssueProcess'][subKey];let i=index;\\\">\\r\\n\\r\\n <td style=\\\"padding-left: 2px;word-break: normal;vertical-align: top;\\\">\\r\\n {{i+1}}\\r\\n </td>\\r\\n <td style=\\\"padding-left: 2px;float: left;\\\">\\r\\n {{data.Subject}}\\r\\n </td>\\r\\n <td style=\\\"height:20px;width:20px;\\\">\\r\\n <span *ngIf=\\\"data.StatusID===1\\\"></span>\\r\\n <span *ngIf=\\\"data.StatusID===2 \\\" class=\\\"circleM\\\" style=\\\"background-color: red;\\\"></span>\\r\\n <span *ngIf=\\\"data.StatusID===3 \\\" class=\\\"circleM\\\" style=\\\"background-color: yellow;\\\"></span>\\r\\n <span *ngIf=\\\"data.StatusID===4 \\\" class=\\\"circleM\\\" style=\\\"background-color: green;\\\"></span>\\r\\n <span *ngIf=\\\"data.StatusID===5\\\" class=\\\"circleM\\\" style=\\\"background-color: black;\\\"></span>\\r\\n </td>\\r\\n </tr>\\r\\n </table>\\r\\n </div>\\r\\n </td>\\r\\n </tr>\\r\\n </table>\\r\\n <div class=\\\"row\\\" *ngFor=\\\"let Activity of IssuesLists[subKey]['Activity']\\\"\\r\\n style=\\\" margin-left: 1px; padding:8px 0px 8px 1px\\\">\\r\\n <table style=\\\"margin-left: -52px; \\\">\\r\\n <tr>\\r\\n <td>\\r\\n <div *ngIf=\\\"subKey\\\" squareBox>\\r\\n <div\\r\\n *ngIf=\\\"!IssuesLists[subKey]['MetricList'][Activity.ActivityID] && (MapType==='1' ||MapType==='3')\\\"\\r\\n style=\\\"width: 140px; min-height: 40px;margin-left: 2px;\\\"></div>\\r\\n <div *ngIf=\\\"MapType==='0' ||MapType==='2'\\\"></div>\\r\\n <div class=\\\"squareM\\\"\\r\\n *ngIf=\\\"IssuesLists[subKey]['MetricList'][Activity.ActivityID] && (MapType==='1' ||MapType==='3')\\\"\\r\\n style=\\\"width: 140px; min-height: 40px;margin-left: 2px;\\\">\\r\\n <div *ngIf=\\\"IssuesLists[subKey]['Metric']\\\">\\r\\n <table>\\r\\n <tr>\\r\\n <td style=\\\"word-break:normal;\\\"><strong>No.</strong> </td>\\r\\n <td style=\\\"float: left;\\\">\\r\\n <strong>Metrics</strong>\\r\\n </td>\\r\\n </tr>\\r\\n <tr *ngFor=\\\"let data of IssuesLists[subKey]['MetricList'][Activity.ActivityID];let i=index;\\\">\\r\\n <td style=\\\"padding-left: 2px;word-break: normal;vertical-align: top;\\\">\\r\\n {{i+1}}\\r\\n </td>\\r\\n <td style=\\\"padding-left: 2px;float: left;\\\">\\r\\n {{data.Description}}\\r\\n </td>\\r\\n </tr>\\r\\n </table>\\r\\n </div>\\r\\n\\r\\n\\r\\n </div>\\r\\n\\r\\n </div>\\r\\n </td>\\r\\n <td>\\r\\n <div class=\\\"col-sm squareInActvty\\\" id=\\\"activity\\\" *ngIf=\\\"Activity.ActivityTypeID==1\\\"\\r\\n style=\\\"width:200px; padding:18px 0px 18px 1px;height: 70px;\\\">\\r\\n <div class=\\\"actAlign\\\">\\r\\n <!-- <div class=\\\"col-sm-12\\\" > -->\\r\\n <!-- <div style=\\\"height: 35px; display: inline-block;\\\"> -->\\r\\n <span class=\\\"dots\\\" style=\\\"word-wrap: break-word;word-break: break-all;white-space: normal;\\\"\\r\\n title=\\\"{{Activity.ActivityName}}\\\"><b>{{Activity.ActivityName}} </b></span>\\r\\n <!-- </div> -->\\r\\n\\r\\n <div ([ngModel])=\\\"showMetricAlert[Activity.ActivityID]\\\"\\r\\n title=\\\"In {{alertMetricValue}} activities no metric exists\\\"\\r\\n *ngIf=\\\"showMetricAlert[Activity.ActivityID] && (MapType==='1' || MapType==='3')\\\"\\r\\n style=\\\"color: #4aabe7; display:inline-block; float: right;\\\">\\r\\n <img src=\\\"./assets/images/star-blue.png\\\" alt=\\\"bluestar\\\" width=\\\"20px;\\\" />\\r\\n\\r\\n </div>\\r\\n\\r\\n <div style=\\\"color:#d55632; display: inline-block;float: right;\\\"\\r\\n title=\\\"More than or equal to {{alertValue}} frustrations exists\\\"\\r\\n *ngIf=\\\"alertPTypeID===1 && IssuesLists[subKey]['Issue'][Activity.ActivityID] >=alertValue && (MapType==='0' || MapType==='3')\\\">\\r\\n <img src=\\\"./assets/images/star-red.png\\\" alt=\\\"bluestar\\\" width=\\\"20px;\\\" />\\r\\n </div>\\r\\n\\r\\n <!-- </div> -->\\r\\n\\r\\n\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"col-sm squareExActvty\\\" id=\\\"activity\\\" *ngIf=\\\"Activity.ActivityTypeID!=1\\\"\\r\\n style=\\\"width:200px; padding:18px 0px 18px 1px;height: 70px;\\\">\\r\\n <div class=\\\"actAlign\\\">\\r\\n <!-- <div class=\\\"col-sm-12\\\" > -->\\r\\n <!-- <div style=\\\"height: 35px; display: inline-block;\\\"> -->\\r\\n <span class=\\\"dots\\\" style=\\\"word-wrap: break-word;word-break: break-all;white-space: normal;\\\"\\r\\n title=\\\"{{Activity.ActivityName}}\\\"><b>{{Activity.ActivityName}} </b></span>\\r\\n <!-- </div> -->\\r\\n\\r\\n <div ([ngModel])=\\\"showMetricAlert[Activity.ActivityID]\\\"\\r\\n title=\\\"In {{alertMetricValue}} activities no metric exists\\\"\\r\\n *ngIf=\\\"showMetricAlert[Activity.ActivityID] && (MapType==='1' || MapType==='3')\\\"\\r\\n style=\\\"color: #4aabe7; display:inline-block;float: right;\\\">\\r\\n <img src=\\\"./assets/images/star-blue.png\\\" alt=\\\"bluestar\\\" width=\\\"20px;\\\" />\\r\\n\\r\\n </div>\\r\\n\\r\\n <div style=\\\"color:#d55632; display: inline-block;float: right;\\\"\\r\\n title=\\\"More than or equal to {{alertValue}} frustrations exists\\\"\\r\\n *ngIf=\\\"alertPTypeID===1 && IssuesLists[subKey]['Issue'][Activity.ActivityID] >=alertValue && (MapType==='0' || MapType==='3')\\\">\\r\\n <img src=\\\"./assets/images/star-red.png\\\" alt=\\\"redstar\\\" width=\\\"20px;\\\" />\\r\\n </div>\\r\\n\\r\\n <!-- </div> -->\\r\\n\\r\\n\\r\\n </div>\\r\\n </div>\\r\\n </td>\\r\\n <td>\\r\\n <span *ngIf=\\\"subKey\\\" style=\\\"margin-left:3px;margin-top: 5px;\\\" squareBox>\\r\\n <div\\r\\n *ngIf=\\\"IssuesLists[subKey]['IssueList'][Activity.ActivityID] && (MapType==='0' ||MapType==='3')\\\"\\r\\n style=\\\"min-width: 82px;min-height: 40px;margin-left: 1px;\\\">\\r\\n <div *ngIf=\\\"MapType==='1' ||MapType==='2'\\\"></div>\\r\\n <div *ngIf=\\\"IssuesLists[subKey]['Issue']\\\"\\r\\n style=\\\" width: 140px; min-height: 40px; margin-left: 2px;\\\" class=\\\"squareIssues\\\">\\r\\n <table>\\r\\n <tr>\\r\\n <td style=\\\"word-break:normal;\\\"><strong>No.</strong></td>\\r\\n <td style=\\\"float: left;\\\">\\r\\n <strong>Frustrations</strong>\\r\\n </td>\\r\\n </tr>\\r\\n <tr *ngFor=\\\"let data of IssuesLists[subKey]['IssueList'][Activity.ActivityID];let i=index;\\\">\\r\\n\\r\\n <td style=\\\"padding-left: 2px;word-break: normal;vertical-align: top;\\\">\\r\\n {{i+1}}\\r\\n </td>\\r\\n <td style=\\\"padding-left: 2px;float: left;\\\">\\r\\n {{data.Subject}}\\r\\n </td>\\r\\n <td style=\\\"height:20px;width:20px;\\\">\\r\\n <span *ngIf=\\\"data.StatusID===1\\\"></span>\\r\\n <span *ngIf=\\\"data.StatusID===2 \\\" class=\\\"circleM\\\" style=\\\"background-color: red;\\\"></span>\\r\\n <span *ngIf=\\\"data.StatusID===3 \\\" class=\\\"circleM\\\" style=\\\"background-color: yellow;\\\"></span>\\r\\n <span *ngIf=\\\"data.StatusID===4 \\\" class=\\\"circleM\\\" style=\\\"background-color: green;\\\"></span>\\r\\n <span *ngIf=\\\"data.StatusID===5\\\" class=\\\"circleM\\\" style=\\\"background-color: black;\\\"></span>\\r\\n </td>\\r\\n </tr>\\r\\n </table>\\r\\n </div>\\r\\n </div>\\r\\n </span>\\r\\n </td>\\r\\n </tr>\\r\\n </table>\\r\\n\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n <!-- </div> -->\\r\\n <div class=\\\"row\\\" id=\\\"print-sectionExpand\\\" style=\\\"display: none;zoom: 90%;\\\">\\r\\n <div class=\\\"row\\\" style=\\\"text-align: center; word-break: break-word;\\\">\\r\\n <div class=\\\"col-sm-6\\\">\\r\\n <strong> {{CompanyName }} - </strong> {{ProcessName}} Process Map <br>\\r\\n <span>Date: {{headerDate| date:'MM-dd-yyyy' }}</span><br>\\r\\n </div>\\r\\n <div class=\\\"col-sm-6\\\">\\r\\n <span>Team: {{TeamName}}</span><br>\\r\\n <span>Version: {{currentVersion[\\\"VersionName\\\"]}}</span>\\r\\n </div>\\r\\n </div><br>\\r\\n <div style=\\\"bottom:100;width: 50%;margin-left: 25%;\\\">\\r\\n <table style=\\\" margin-left: -48px;\\\">\\r\\n <tr>\\r\\n <td>\\r\\n <div *ngIf=\\\"!IssuesLists[subKey]['MetricProcess'][subKey] && (MapType==='1' ||MapType==='3')\\\"\\r\\n style=\\\"margin-left:140px;\\\"></div>\\r\\n <div *ngIf=\\\"MapType==='0' ||MapType==='2'\\\"></div>\\r\\n <!-- <div *ngIf=\\\"!IssuesLists[subKey]['MetricProcess'][subKey] \\\" style=\\\"margin-left:100px;\\\"></div> -->\\r\\n <div *ngIf=\\\"IssuesLists[subKey]['MetricProcess'][subKey] && (MapType==='1' ||MapType==='3')\\\" style=\\\"width: 140px;\\r\\n min-height: 40px;\\r\\n margin-left: 2px;\\\" class=\\\"squareM\\\">\\r\\n <table>\\r\\n <tr>\\r\\n <td style=\\\"word-break:normal;\\\"><strong>No.</strong></td>\\r\\n <td style=\\\"float: left;\\\">\\r\\n <strong>Metrics</strong>\\r\\n </td>\\r\\n </tr>\\r\\n <tr *ngFor=\\\"let data of IssuesLists[subKey]['MetricProcess'][subKey];let i=index;\\\">\\r\\n <td style=\\\"padding-left: 2px;word-break: normal;vertical-align: top;\\\">\\r\\n {{i+1}}\\r\\n </td>\\r\\n <td style=\\\"padding-left: 2px;float: left;\\\">\\r\\n {{data.Description}}\\r\\n </td>\\r\\n </tr>\\r\\n </table>\\r\\n </div>\\r\\n </td>\\r\\n <td>\\r\\n <div class=\\\"square\\\" style=\\\"padding:18px 1px 18px 1px; width:200px;height: 100px;\\\">\\r\\n <span style=\\\"float: left; color:#4aabe7;\\\" title=\\\"No metric associated with this process\\\"\\r\\n *ngIf=\\\"!IssuesLists[subKey].MetricCount && !IssuesLists[subKey].pMetricCount && !IssuesLists[subKey].SubMetricCount && (MapType==='1' ||MapType==='3')\\\">\\r\\n <img src=\\\"./assets/images/triangle-blue.png\\\" alt=\\\"bluetriangle\\\"\\r\\n style=\\\"width: 13px;margin-top: -32px;\\\" /></span>\\r\\n <span title=\\\"No frustrations assosiated with this process\\\" style=\\\"float: left; color: #d55632;\\\"\\r\\n *ngIf=\\\"!IssuesLists[subKey].IssueCount && !IssuesLists[subKey].pIssueCount && !IssuesLists[subKey].SubIssueCount && (MapType==='0' ||MapType==='3')\\\">\\r\\n <img src=\\\"./assets/images/triangle-red.png\\\" alt=\\\"redtriangle\\\"\\r\\n style=\\\"width: 13px;margin-top: -32px;\\\" /> </span>\\r\\n <span style=\\\"float: left;margin-left:3px;margin-top: -11px;\\\" class=\\\"circleS\\\" title=\\\"Sub activity exits\\\"\\r\\n *ngIf=\\\"IssuesLists[subKey].SubActivity\\\"> </span>\\r\\n <hr style=\\\"background-color: #265382;margin-top: 8px;\\\">\\r\\n <span style=\\\"word-wrap: break-word;word-break: break-all;white-space: normal;\\\"\\r\\n title=\\\"{{ProcessName}}\\\"> {{ProcessName}} </span>\\r\\n\\r\\n </div>\\r\\n </td>\\r\\n <td>\\r\\n <div *ngIf=\\\"!IssuesLists[subKey]['IssueProcess'][subKey] && (MapType==='0' ||MapType==='3')\\\"></div>\\r\\n <div *ngIf=\\\"MapType==='1' ||MapType==='2'\\\"></div>\\r\\n <div *ngIf=\\\"IssuesLists[subKey]['IssueProcess'][subKey] && (MapType==='0' ||MapType==='3')\\\"\\r\\n style=\\\" width: 140px; min-height: 40px; margin-left: 2px;\\\" class=\\\"squareIssues\\\">\\r\\n <table>\\r\\n <tr>\\r\\n <td style=\\\"word-break:normal;\\\"><strong>No.</strong></td>\\r\\n <td style=\\\"float: left;\\\">\\r\\n <strong>Frustrations</strong>\\r\\n </td>\\r\\n </tr>\\r\\n <tr *ngFor=\\\"let data of IssuesLists[subKey]['IssueProcess'][subKey];let i=index;\\\">\\r\\n\\r\\n <td style=\\\"padding-left: 2px;word-break: normal;vertical-align: top;\\\">\\r\\n {{i+1}}\\r\\n </td>\\r\\n <td style=\\\"padding-left: 2px;float: left;\\\">\\r\\n {{data.Subject}}\\r\\n </td>\\r\\n <td style=\\\"height:20px;width:20px;\\\">\\r\\n <span *ngIf=\\\"data.StatusID===1\\\"></span>\\r\\n <span *ngIf=\\\"data.StatusID===2 \\\" class=\\\"circleM\\\" style=\\\"background-color: red;\\\"></span>\\r\\n <span *ngIf=\\\"data.StatusID===3 \\\" class=\\\"circleM\\\" style=\\\"background-color: yellow;\\\"></span>\\r\\n <span *ngIf=\\\"data.StatusID===4 \\\" class=\\\"circleM\\\" style=\\\"background-color: green;\\\"></span>\\r\\n <span *ngIf=\\\"data.StatusID===5\\\" class=\\\"circleM\\\" style=\\\"background-color: black;\\\"></span>\\r\\n </td>\\r\\n </tr>\\r\\n </table>\\r\\n </div>\\r\\n </td>\\r\\n </tr>\\r\\n </table>\\r\\n <div class=\\\"row\\\" *ngFor=\\\"let Activity of IssuesLists[subKey]['Activity']\\\"\\r\\n style=\\\" margin-left: 1px; padding:8px 0px 8px 1px\\\">\\r\\n <table style=\\\"margin-left: -52px; \\\">\\r\\n <tr>\\r\\n <td>\\r\\n <div *ngIf=\\\"subKey\\\" squareBox>\\r\\n <div\\r\\n *ngIf=\\\"!IssuesLists[subKey]['MetricList'][Activity.ActivityID] && (MapType==='1' ||MapType==='3')\\\"\\r\\n style=\\\"width: 140px; min-height: 40px;margin-left: 2px;\\\"></div>\\r\\n <div *ngIf=\\\"MapType==='0' ||MapType==='2'\\\"></div>\\r\\n <div class=\\\"squareM\\\"\\r\\n *ngIf=\\\"IssuesLists[subKey]['MetricList'][Activity.ActivityID] && (MapType==='1' ||MapType==='3')\\\"\\r\\n style=\\\"width: 140px; min-height: 40px;margin-left: 2px;\\\">\\r\\n <div *ngIf=\\\"IssuesLists[subKey]['Metric']\\\">\\r\\n <table>\\r\\n <tr>\\r\\n <td style=\\\"word-break:normal;\\\"><strong>No.</strong></td>\\r\\n <td style=\\\"float: left;\\\">\\r\\n <strong>Metrics</strong>\\r\\n </td>\\r\\n </tr>\\r\\n <tr *ngFor=\\\"let data of IssuesLists[subKey]['MetricList'][Activity.ActivityID];let i=index;\\\">\\r\\n <td style=\\\"padding-left: 2px;word-break: normal;vertical-align: top;\\\">\\r\\n {{i+1}}\\r\\n </td>\\r\\n <td style=\\\"padding-left: 2px;float: left;\\\">\\r\\n {{data.Description}}\\r\\n </td>\\r\\n </tr>\\r\\n </table>\\r\\n </div>\\r\\n\\r\\n\\r\\n </div>\\r\\n\\r\\n </div>\\r\\n </td>\\r\\n <td>\\r\\n <div class=\\\"col-sm squareInActvty\\\" id=\\\"activity\\\" *ngIf=\\\"Activity.ActivityTypeID==1\\\"\\r\\n style=\\\"width:200px; padding:18px 0px 18px 1px;height: 70px;\\\">\\r\\n <div class=\\\"actAlign\\\">\\r\\n <!-- <div class=\\\"col-sm-12\\\" > -->\\r\\n <!-- <div style=\\\"height: 35px; display: inline-block;\\\"> -->\\r\\n <span class=\\\"dots\\\" style=\\\"word-wrap: break-word;word-break: break-all;white-space: normal;\\\"\\r\\n title=\\\"{{Activity.ActivityName}}\\\"><b>{{Activity.ActivityName}} </b></span>\\r\\n <!-- </div> -->\\r\\n\\r\\n <span ([ngModel])=\\\"showMetricAlert[Activity.ActivityID]\\\"\\r\\n title=\\\"In {{alertMetricValue}} activities no metric exists\\\"\\r\\n *ngIf=\\\"showMetricAlert[Activity.ActivityID] && (MapType==='1' || MapType==='3')\\\"\\r\\n style=\\\"color: #4aabe7; display:inline-block;float: right;\\\">\\r\\n <img src=\\\"./assets/images/star-blue.png\\\" alt=\\\"bluestar\\\" width=\\\"20px;\\\" />\\r\\n\\r\\n </span>\\r\\n\\r\\n <span style=\\\"color:#d55632; display: inline-block;float: right;\\\"\\r\\n title=\\\"More than or equal to {{alertValue}} frustrations exists\\\"\\r\\n *ngIf=\\\"alertPTypeID===1 && IssuesLists[subKey]['Issue'][Activity.ActivityID] >=alertValue && (MapType==='0' || MapType==='3')\\\">\\r\\n <img src=\\\"./assets/images/star-red.png\\\" alt=\\\"bluestar\\\" width=\\\"20px;\\\" />\\r\\n </span>\\r\\n\\r\\n <!-- </div> -->\\r\\n\\r\\n\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"col-sm squareExActvty\\\" id=\\\"activity\\\" *ngIf=\\\"Activity.ActivityTypeID!=1\\\"\\r\\n style=\\\"width:200px; padding:18px 0px 18px 1px;height: 70px;\\\">\\r\\n <div class=\\\"actAlign\\\">\\r\\n <!-- <div class=\\\"col-sm-12\\\" > -->\\r\\n <!-- <div style=\\\"height: 35px; display: inline-block;\\\"> -->\\r\\n <span class=\\\"dots\\\" style=\\\"word-wrap: break-word;word-break: break-all;white-space: normal;\\\"\\r\\n title=\\\"{{Activity.ActivityName}}\\\"><b>{{Activity.ActivityName}} </b></span>\\r\\n <!-- </div> -->\\r\\n\\r\\n <span ([ngModel])=\\\"showMetricAlert[Activity.ActivityID]\\\"\\r\\n title=\\\"In {{alertMetricValue}} activities no metric exists\\\"\\r\\n *ngIf=\\\"showMetricAlert[Activity.ActivityID] && (MapType==='1' || MapType==='3')\\\"\\r\\n style=\\\"color: #4aabe7; display:inline-block;float: right;\\\">\\r\\n <img src=\\\"./assets/images/star-blue.png\\\" alt=\\\"bluestar\\\" width=\\\"20px;\\\" />\\r\\n\\r\\n </span>\\r\\n\\r\\n <span style=\\\"color:#d55632; display: inline-block;float: right;\\\"\\r\\n title=\\\"More than or equal to {{alertValue}} frustrations exists\\\"\\r\\n *ngIf=\\\"alertPTypeID===1 && IssuesLists[subKey]['Issue'][Activity.ActivityID] >=alertValue && (MapType==='0' || MapType==='3')\\\">\\r\\n <img src=\\\"./assets/images/star-red.png\\\" alt=\\\"redstar\\\" width=\\\"20px;\\\" />\\r\\n </span>\\r\\n\\r\\n <!-- </div> -->\\r\\n\\r\\n\\r\\n </div>\\r\\n </div>\\r\\n </td>\\r\\n <td>\\r\\n <span *ngIf=\\\"subKey\\\" style=\\\"margin-left:3px;margin-top: 5px;\\\" squareBox>\\r\\n <div *ngIf=\\\"IssuesLists[subKey]['IssueList'][Activity.ActivityID] && (MapType==='0' ||MapType==='3')\\\"\\r\\n style=\\\"min-width: 82px;min-height: 40px;margin-left: 1px;\\\">\\r\\n <div *ngIf=\\\"MapType==='1' ||MapType==='2'\\\"></div>\\r\\n <div *ngIf=\\\"IssuesLists[subKey]['Issue']\\\" style=\\\" width: 140px; min-height: 40px; margin-left: 2px;\\\"\\r\\n class=\\\"squareIssues\\\">\\r\\n <table>\\r\\n <tr>\\r\\n <td style=\\\"word-break:normal;\\\"><strong>No.</strong></td>\\r\\n <td style=\\\"float: left;\\\">\\r\\n <strong>Frustrations</strong>\\r\\n </td>\\r\\n </tr>\\r\\n <tr *ngFor=\\\"let data of IssuesLists[subKey]['IssueList'][Activity.ActivityID];let i=index;\\\">\\r\\n\\r\\n <td style=\\\"padding-left: 2px;word-break: normal;vertical-align: top;\\\">\\r\\n {{i+1}}\\r\\n </td>\\r\\n <td style=\\\"padding-left: 2px;float: left;\\\">\\r\\n {{data.Subject}}\\r\\n </td>\\r\\n <td style=\\\"height:20px;width:20px;\\\">\\r\\n <span *ngIf=\\\"data.StatusID===1\\\"></span>\\r\\n <span *ngIf=\\\"data.StatusID===2 \\\" class=\\\"circleM\\\" style=\\\"background-color: red;\\\"></span>\\r\\n <span *ngIf=\\\"data.StatusID===3 \\\" class=\\\"circleM\\\" style=\\\"background-color: yellow;\\\"></span>\\r\\n <span *ngIf=\\\"data.StatusID===4 \\\" class=\\\"circleM\\\" style=\\\"background-color: green;\\\"></span>\\r\\n <span *ngIf=\\\"data.StatusID===5\\\" class=\\\"circleM\\\" style=\\\"background-color: black;\\\"></span>\\r\\n </td>\\r\\n </tr>\\r\\n </table>\\r\\n </div>\\r\\n </div>\\r\\n </span>\\r\\n </td>\\r\\n </tr>\\r\\n </table>\\r\\n\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"footer\\\">\\r\\n <label>© 2022 The Dorsey Group, All rights reserved.</label>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n</div>\\r\\n\\r\\n<div *ngIf=\\\"data==='subAct'\\\">\\r\\n\\r\\n <div class=\\\"XBtn\\\">\\r\\n <span (click)=\\\"Clear()\\\" matTooltip=\\\"Close\\\" class=\\\"close\\\">×</span>\\r\\n </div>\\r\\n\\r\\n\\r\\n <div class=\\\"dialogHead\\\">\\r\\n <div class=\\\"infoHead\\\">\\r\\n <div class=\\\"companyInfo\\\">\\r\\n <strong> {{CompanyName }} - </strong> SubProcessMap of Process <b>{{ProcessName}} </b> <br>\\r\\n <span>Date: {{headerDate| date:'MM-dd-yyyy' }}</span>\\r\\n </div>\\r\\n <div class=\\\"teamInfo\\\">\\r\\n <span>Team: {{TeamName}}</span><br>\\r\\n <span>Version: {{currentVersion[\\\"VersionName\\\"]}}</span>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <div class=\\\"ActionButton\\\">\\r\\n <div>\\r\\n <button class=\\\"btn btnbg1\\\" matTooltip=\\\"Expand sub process map\\\" style=\\\"font-size: 12px;\\\" (click)=\\\"ExpandMap()\\\"\\r\\n *ngIf=\\\"!expandMap\\\">Expand ProcessMap</button>\\r\\n <button class=\\\"btn btnbg1\\\" matTooltip=\\\"Hide sub process map\\\" style=\\\"font-size: 12px;\\\" (click)=\\\"HideMap()\\\"\\r\\n *ngIf=\\\"expandMap\\\">Hide ProcessMap</button>\\r\\n\\r\\n </div>\\r\\n\\r\\n <div>\\r\\n <button class=\\\"btn btnbg1\\\" matTooltip=\\\"Print sub process map\\\" printTitle=\\\"{{CompanyName}}\\\"\\r\\n style=\\\"font-size: 12px;\\\" printSectionId=\\\"print-sectionSub\\\" [useExistingCss]=\\\"true\\\"\\r\\n ngxPrint>Print</button> \\r\\n\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n </div>\\r\\n\\r\\n\\r\\n <br>\\r\\n\\r\\n\\r\\n <div class=\\\"row\\\">\\r\\n <div class=\\\"col-sm-12 \\\" style=\\\"display: flex;\\r\\n flex-wrap: nowrap;\\r\\n overflow-x: auto;height: 600px;\\\">\\r\\n <div class=\\\"col-lg form-group\\\" *ngFor=\\\"let Activity of IssuesLists[subKey]['Activity']\\\"\\r\\n style=\\\"margin-top: 10px;margin-left: 1px;width: 300px;\\\">\\r\\n <div class=\\\"col-sm square form-group\\\" style=\\\"padding:2px 3px 31px 1px;height: 100px;width: 270px;\\\" id=\\\"activity\\\"\\r\\n *ngIf=\\\"Activity.ActivityTypeID==1\\\">\\r\\n <span style=\\\"cursor:pointer;float:right;\\\" (click)=\\\"AddMetricOrIssue(Activity.ActivityID,Activity.ParentID)\\\"\\r\\n class=\\\"donotprintthis\\\">\\r\\n <span class=\\\"fa-stack\\\">\\r\\n <i class=\\\"fa fa-square-o fa-stack-1x\\\"></i>\\r\\n <i class=\\\"fa fa-plus fa-stack-1x\\\"></i>\\r\\n </span>\\r\\n </span>\\r\\n\\r\\n <hr style=\\\"background-color: #265382;margin-top: 27px;\\\">\\r\\n\\r\\n <div class=\\\"row\\\">\\r\\n <div class=\\\"col-sm-12\\\">\\r\\n <div class=\\\"col-sm-10 offset-1\\\" style=\\\"height: 18px;font-size: 11px;\\\">\\r\\n <span class=\\\"dots\\\" style=\\\"word-wrap: break-word;word-break: break-all;white-space: normal;\\\"\\r\\n title=\\\"{{Activity.ActivityName}}\\\">{{Activity.ActivityName}}\\r\\n </span>\\r\\n </div>\\r\\n\\r\\n </div>\\r\\n </div>\\r\\n <span *ngIf=\\\"IssuesLists[subKey]['Metric'][Activity.ActivityID] && (MapType==='1' ||MapType==='3')\\\"\\r\\n style=\\\"float: right; margin-top: 3px;margin-left: 5px; margin-top:3px;\\\" class=\\\"circlelg metricsbg\\\"\\r\\n (click)=\\\"getCase(Activity,2);$event.stopPropagation()\\\">\\r\\n <span> {{IssuesLists[subKey]['Metric'][Activity.ActivityID]}}</span>\\r\\n </span>\\r\\n <span *ngIf=\\\"IssuesLists[subKey]['Issue'][Activity.ActivityID] && (MapType==='0' ||MapType==='3')\\\"\\r\\n style=\\\"float:right; margin-top: 3px;\\\" class=\\\"circlelg frustrationbg\\\"\\r\\n (click)=\\\"getCase(Activity,1);$event.stopPropagation()\\\">\\r\\n <span>{{IssuesLists[subKey]['Issue'][Activity.ActivityID]}}</span>\\r\\n </span>\\r\\n <span ([ngModel])=\\\"showMetricAlert[Activity.ActivityID]\\\" *ngIf=\\\"showMetricAlert[Activity.ActivityID]\\\">\\r\\n <span style=\\\"color: #4aabe7;float: right;\\\" title=\\\"In {{alertMetricValue}} activities no metric exists\\\"\\r\\n *ngIf=\\\"(MapType==='1' || MapType==='3')\\\">\\r\\n <img src=\\\"./assets/images/star-blue.png\\\" alt=\\\"bluestar\\\" style=\\\"margin-right: 6px; width:17px;\\\" />\\r\\n </span>\\r\\n </span>\\r\\n <span style=\\\"color:#d55632;float: right;margin-right: 6px;\\\"\\r\\n title=\\\"More than or equal to {{alertValue}} frustrations exists\\\"\\r\\n *ngIf=\\\"alertPTypeID===1 && IssuesLists[subKey]['Issue'][Activity.ActivityID] >=alertValue && (MapType==='0' || MapType==='3')\\\">\\r\\n <img src=\\\"./assets/images/star-red.png\\\" alt=\\\"redstar\\\" style=\\\"width:17px;\\\" />\\r\\n </span>\\r\\n\\r\\n\\r\\n </div>\\r\\n <div class=\\\"col-sm square form-group\\\" style=\\\"padding:2px 3px 31px 1px;height: 100px;width: 270px;\\\"\\r\\n *ngIf=\\\"Activity.ActivityTypeID!=1\\\">\\r\\n <span style=\\\"cursor:pointer;float:right;\\\" (click)=\\\"AddMetricOrIssue(Activity.ActivityID,Activity.ParentID)\\\"\\r\\n class=\\\"donotprintthis\\\">\\r\\n <span class=\\\"fa-stack\\\">\\r\\n <i class=\\\"fa fa-square-o fa-stack-1x\\\"></i>\\r\\n <i class=\\\"fa fa-plus fa-stack-1x\\\"></i>\\r\\n </span>\\r\\n </span>\\r\\n\\r\\n <hr style=\\\"background-color: #265382;margin-top: 27px;\\\">\\r\\n <div class=\\\"row\\\">\\r\\n <div class=\\\"col-sm-12\\\">\\r\\n <div class=\\\"col-sm-10 offset-1\\\" style=\\\"height: 18px; font-size: 11px;\\\">\\r\\n <span class=\\\"dots\\\" title=\\\"{{Activity.ActivityName}}\\\"\\r\\n style=\\\"word-wrap: break-word;word-break: break-all;white-space: normal;\\\">{{Activity.ActivityName}}\\r\\n </span>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <span *ngIf=\\\"IssuesLists[subKey]['Metric'][Activity.ActivityID] && (MapType==='1' ||MapType==='3')\\\"\\r\\n style=\\\"float: right;margin-left: 5px; margin-top:3px;\\\" class=\\\"circlelg metricsbg\\\"\\r\\n (click)=\\\"getCase(Activity,2);$event.stopPropagation()\\\">\\r\\n {{IssuesLists[subKey]['Metric'][Activity.ActivityID]}}\\r\\n </span>\\r\\n <span *ngIf=\\\"IssuesLists[subKey]['Issue'][Activity.ActivityID] && (MapType==='0' ||MapType==='3')\\\"\\r\\n style=\\\"float:right; margin-top: 3px;\\\" class=\\\"circlelg frustrationbg\\\"\\r\\n (click)=\\\"getCase(Activity,1);$event.stopPropagation()\\\">\\r\\n {{IssuesLists[subKey]['Issue'][Activity.ActivityID]}}\\r\\n </span>\\r\\n <span ([ngModel])=\\\"showMetricAlert[Activity.ActivityID]\\\" *ngIf=\\\"showMetricAlert[Activity.ActivityID]\\\">\\r\\n <span style=\\\"color: #4aabe7;float: right;\\\" title=\\\"In {{alertMetricValue}} activities no metric exists\\\"\\r\\n *ngIf=\\\"(MapType==='1' || MapType==='3')\\\">\\r\\n <img src=\\\"./assets/images/star-blue.png\\\" alt=\\\"bluestar\\\" style=\\\"margin-right: 6px; width:17px;\\\" />\\r\\n </span>\\r\\n </span>\\r\\n <span style=\\\"color:#d55632;float: right;margin-right: 6px;\\\"\\r\\n title=\\\"More than or equal to {{alertValue}} frustrations exists\\\"\\r\\n *ngIf=\\\"alertPTypeID===1 && IssuesLists[subKey]['Issue'][Activity.ActivityID] >=alertValue && (MapType==='0' || MapType==='3')\\\">\\r\\n <img src=\\\"./assets/images/star-red.png\\\" alt=\\\"redstar\\\" style=\\\"width:17px;\\\" />\\r\\n </span>\\r\\n </div>\\r\\n <div>\\r\\n <span *ngIf=\\\"subKey && expandMap\\\" squareBox>\\r\\n <div *ngIf=\\\"!IssuesLists[subKey]['MetricList'][Activity.ActivityID] \\\" style=\\\"margin-left:102px;\\\"></div>\\r\\n <div style=\\\"margin-top:5px;\\\"\\r\\n *ngIf=\\\"IssuesLists[subKey]['MetricList'][Activity.ActivityID] && (MapType==='1' ||MapType==='3')\\\">\\r\\n <div *ngIf=\\\"IssuesLists[subKey]['Metric']\\\" class=\\\"squareM\\\">\\r\\n <table>\\r\\n <tr>\\r\\n <td style=\\\"word-break:normal;\\\"><strong>No.</strong></td>\\r\\n <td style=\\\"float: left;\\\">\\r\\n <strong>Metrics</strong>\\r\\n </td>\\r\\n </tr>\\r\\n <tr *ngFor=\\\"let data of IssuesLists[subKey]['MetricList'][Activity.ActivityID];let i=index;\\\">\\r\\n <td style=\\\"padding-left: 2px;word-break: normal;vertical-align: top;\\\">\\r\\n {{i+1}}\\r\\n </td>\\r\\n <td style=\\\"padding-left: 2px;float: left;\\\">\\r\\n {{data.Description}}\\r\\n </td>\\r\\n </tr>\\r\\n </table>\\r\\n </div>\\r\\n </div>\\r\\n </span>\\r\\n </div>\\r\\n <div>\\r\\n <span *ngIf=\\\"subKey && expandMap\\\" style=\\\"margin-left:4px;margin-top: 5px;\\\" squareBox>\\r\\n <div *ngIf=\\\"IssuesLists[subKey]['IssueList'][Activity.ActivityID] && (MapType==='0' ||MapType==='3')\\\"\\r\\n style=\\\"margin-top: -40px;\\\" class=\\\"squareIssues\\\">\\r\\n <div *ngIf=\\\"IssuesLists[subKey]['Issue']\\\">\\r\\n <table>\\r\\n <tr>\\r\\n <td style=\\\"word-break:normal;\\\"><strong>No.</strong></td>\\r\\n <td style=\\\"float: left;\\\">\\r\\n <strong>Frustrations</strong>\\r\\n </td>\\r\\n </tr>\\r\\n <tr *ngFor=\\\"let data of IssuesLists[subKey]['IssueList'][Activity.ActivityID];let i=index;\\\">\\r\\n <td style=\\\"padding-left: 2px;word-break: normal;vertical-align: top;\\\">\\r\\n {{i+1}}\\r\\n </td>\\r\\n <td style=\\\"padding-left: 2px;float: left;\\\">\\r\\n {{data.Subject}}\\r\\n\\r\\n </td>\\r\\n <td style=\\\"height:20px;width:20px;\\\">\\r\\n <span *ngIf=\\\"data.StatusID===1\\\"></span>\\r\\n <span *ngIf=\\\"data.StatusID===2 \\\" class=\\\"circleM\\\" style=\\\"background-color: red;\\\"></span>\\r\\n <span *ngIf=\\\"data.StatusID===3 \\\" class=\\\"circleM\\\" style=\\\"background-color: yellow;\\\"></span>\\r\\n <span *ngIf=\\\"data.StatusID===4 \\\" class=\\\"circleM\\\" style=\\\"background-color: green;\\\"></span>\\r\\n <span *ngIf=\\\"data.StatusID===5\\\" class=\\\"circleM\\\" style=\\\"background-color: black;\\\"></span>\\r\\n </td>\\r\\n </tr>\\r\\n </table>\\r\\n </div>\\r\\n </div>\\r\\n </span>\\r\\n </div>\\r\\n <div class=\\\"row\\\">\\r\\n <div class=\\\"col-lg-12 form-group\\\"\\r\\n *ngFor=\\\"let SubActivity of IssuesLists[subKey]['SubActivity'][Activity.ActivityID]\\\">\\r\\n <div class=\\\"col-sm squareInActvty\\\" style=\\\" padding:2px 3px 31px 1px;\\r\\n width: 270px\\\" (click)=\\\"AddMetricOrIssue(SubActivity.ActivityID,SubActivity.ParentID)\\\" id=\\\"activity\\\"\\r\\n *ngIf=\\\"SubActivity.ActivityTypeID==1\\\">\\r\\n <div class=\\\"actAlign\\\">\\r\\n <span class=\\\"dots\\\" style=\\\"word-wrap: break-word;word-break: break-all;white-space: normal;\\\"\\r\\n title=\\\"{{SubActivity.ActivityName}}\\\">\\r\\n <b>{{SubActivity.squence}}</b> {{SubActivity.ActivityName}} </span>\\r\\n <span style=\\\" float:right; font-size: 11px;\\\"\\r\\n *ngIf=\\\"IssuesLists[subKey]['SubMCount'][SubActivity.ActivityID]['SubMetric'] &&(MapType==='1' ||MapType==='3')\\\"\\r\\n (click)=\\\"getCase(SubActivity,2);$event.stopPropagation()\\\">\\r\\n <span class=\\\"squareKPI2\\\"\\r\\n *ngIf=\\\"IssuesLists[subKey]['SubMCount'][SubActivity.ActivityID]['SubMetric'] [SubActivity.ActivityID] &&(MapType==='1' ||MapType==='3')\\\">\\r\\n {{IssuesLists[subKey]['SubMCount'][SubActivity.ActivityID]['SubMetric'][SubActivity.ActivityID]}}\\r\\n </span>\\r\\n\\r\\n </span>\\r\\n <span style=\\\"float:right;\\\"\\r\\n *ngIf=\\\"IssuesLists[subKey]['SubMCount'][SubActivity.ActivityID]['SubIssue'] && (MapType==='0' ||MapType==='3')\\\"\\r\\n (click)=\\\"getCase(SubActivity,1);$event.stopPropagation()\\\">\\r\\n <span class=\\\"squareIssue1\\\"\\r\\n *ngIf=\\\"IssuesLists[subKey]['SubMCount'][SubActivity.ActivityID]['SubIssue'] [SubActivity.ActivityID] && (MapType==='0' ||MapType==='3')\\\">{{IssuesLists[subKey]['SubMCount'][SubActivity.ActivityID]['SubIssue'][SubActivity.ActivityID]}}</span>\\r\\n </span>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"col-sm squareExActvty\\\" style=\\\" padding:2px 3px 31px 1px;\\r\\n width: 270px\\\" (click)=\\\"AddMetricOrIssue(SubActivity.ActivityID,SubActivity.ParentID)\\\"\\r\\n *ngIf=\\\"SubActivity.ActivityTypeID!=1\\\">\\r\\n <div class=\\\"actAlign\\\">\\r\\n <span class=\\\"dots\\\" style=\\\"word-wrap: break-word;word-break: break-all;white-space: normal;\\\"\\r\\n title=\\\"{{SubActivity.ActivityName}}\\\"><b>{{SubActivity.squence}}</b>\\r\\n {{SubActivity.ActivityName}} </span>\\r\\n <span style=\\\" float:right; font-size: 11px;\\\"\\r\\n *ngIf=\\\"IssuesLists[subKey]['SubMCount'][SubActivity.ActivityID]['SubMetric'] && (MapType==='1' ||MapType==='3')\\\"\\r\\n (click)=\\\"getCase(SubActivity,2);$event.stopPropagation()\\\">\\r\\n <span class=\\\"squareKPI2\\\"\\r\\n *ngIf=\\\"IssuesLists[subKey]['SubMCount'][SubActivity.ActivityID]['SubMetric'] [SubActivity.ActivityID] &&(MapType==='1' ||MapType==='3')\\\">\\r\\n {{IssuesLists[subKey]['SubMCount'][SubActivity.ActivityID]['SubMetric'][SubActivity.ActivityID]}}</span>\\r\\n </span>\\r\\n <span style=\\\"float:right;font-size: 11px;\\\"\\r\\n *ngIf=\\\"IssuesLists[subKey]['SubMCount'][SubActivity.ActivityID]['SubIssue'] && (MapType==='0' ||MapType==='3')\\\"\\r\\n (click)=\\\"getCase(SubActivity,1);$event.stopPropagation()\\\">\\r\\n <span class=\\\"squareIssue1\\\"\\r\\n *ngIf=\\\"IssuesLists[subKey]['SubMCount'][SubActivity.ActivityID]['SubIssue'] [SubActivity.ActivityID] && (MapType==='0' ||MapType==='3')\\\">\\r\\n {{IssuesLists[subKey]['SubMCount'][SubActivity.ActivityID]['SubIssue'][SubActivity.ActivityID]}}</span>\\r\\n\\r\\n </span>\\r\\n </div>\\r\\n </div>\\r\\n <div>\\r\\n <span *ngIf=\\\"subKey && expandMap\\\" squareBox>\\r\\n <div *ngIf=\\\"!IssuesLists[subKey]['SubActivityMetric'][SubActivity.ActivityID] \\\"\\r\\n style=\\\"margin-left:102px;\\\">\\r\\n </div>\\r\\n <div style=\\\"margin-top:5px;\\\"\\r\\n *ngIf=\\\"IssuesLists[subKey]['SubActivityMetric'][SubActivity.ActivityID] && (MapType==='1' ||MapType==='3')\\\">\\r\\n <div *ngIf=\\\"IssuesLists[subKey]['Metric']\\\" class=\\\"squareM\\\">\\r\\n <table>\\r\\n <tr>\\r\\n <td style=\\\"word-break:normal;\\\"><strong>No.</strong></td>\\r\\n <td style=\\\"float: left;\\\">\\r\\n <strong>Metrics</strong>\\r\\n </td>\\r\\n </tr>\\r\\n <tr\\r\\n *ngFor=\\\"let data of IssuesLists[subKey]['SubActivityMetric'][SubActivity.ActivityID];let i=index;\\\">\\r\\n <td style=\\\"padding-left: 2px;word-break: normal;vertical-align: top;\\\">\\r\\n {{i+1}}\\r\\n </td>\\r\\n <td style=\\\"padding-left: 2px;float: left;\\\">\\r\\n {{data.Description}}\\r\\n </td>\\r\\n </tr>\\r\\n </table>\\r\\n </div>\\r\\n </div>\\r\\n </span>\\r\\n </div>\\r\\n <div>\\r\\n <span *ngIf=\\\"subKey && expandMap\\\" style=\\\"margin-left:4px;margin-top: 5px;\\\" squareBox>\\r\\n <div\\r\\n *ngIf=\\\"IssuesLists[subKey]['SubActivityIssues'][SubActivity.ActivityID] && (MapType==='0' ||MapType==='3')\\\"\\r\\n style=\\\"margin-top: -40px;\\\" class=\\\"squareIssues\\\">\\r\\n <div *ngIf=\\\"IssuesLists[subKey]['Issue']\\\">\\r\\n <table>\\r\\n <tr>\\r\\n <td style=\\\"word-break:normal;\\\"><strong>No.</strong></td>\\r\\n <td style=\\\"float: left;\\\">\\r\\n <strong>Frustrations</strong>\\r\\n </td>\\r\\n </tr>\\r\\n <tr\\r\\n *ngFor=\\\"let data of IssuesLists[subKey]['SubActivityIssues'][SubActivity.ActivityID];let i=index;\\\">\\r\\n\\r\\n <td style=\\\"padding-left: 2px;word-break: normal;vertical-align: top;\\\">\\r\\n {{i+1}}\\r\\n </td>\\r\\n <td style=\\\"padding-left: 2px;float: left;\\\">\\r\\n {{data.Subject}}\\r\\n\\r\\n </td>\\r\\n <td style=\\\"height:20px;width:20px;\\\">\\r\\n <span *ngIf=\\\"data.StatusID===1\\\"></span>\\r\\n <span *ngIf=\\\"data.StatusID===2 \\\" class=\\\"circleM\\\" style=\\\"background-color: red;\\\"></span>\\r\\n <span *ngIf=\\\"data.StatusID===3 \\\" class=\\\"circleM\\\" style=\\\"background-color: yellow;\\\"></span>\\r\\n <span *ngIf=\\\"data.StatusID===4 \\\" class=\\\"circleM\\\" style=\\\"background-color: green;\\\"></span>\\r\\n <span *ngIf=\\\"data.StatusID===5\\\" class=\\\"circleM\\\" style=\\\"background-color: black;\\\"></span>\\r\\n </td>\\r\\n </tr>\\r\\n </table>\\r\\n </div>\\r\\n </div>\\r\\n </span>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n\\r\\n <!-- <div class=\\\"row\\\" mat-dialog-title>\\r\\n\\r\\n <div class=\\\"col-lg-6\\\">\\r\\n <strong> {{CompanyName }} - </strong> SubProcessMap of Process <b>{{ProcessName}} </b> <br>\\r\\n <span>Date: {{headerDate| date:'MM-dd-yyyy' }}</span>\\r\\n </div>\\r\\n <div class=\\\"col-lg-6\\\">\\r\\n <span>Team: {{TeamName}}</span><br>\\r\\n <span>Version: {{currentVersion[\\\"VersionName\\\"]}}</span>\\r\\n </div>\\r\\n\\r\\n\\r\\n\\r\\n </div> -->\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n <div class=\\\"row\\\" id=\\\"print-sectionSub\\\" style=\\\"display: none;zoom: 90%;\\\">\\r\\n <div class=\\\"row\\\" style=\\\"text-align: center;word-break: break-word;\\\">\\r\\n <div class=\\\"col-sm-6\\\">\\r\\n <strong> {{CompanyName }} - </strong> Sub Map of <b>{{ProcessName}} </b> <br>\\r\\n <span>Date: {{headerDate| date:'MM-dd-yyyy' }}</span><br>\\r\\n </div>\\r\\n <div class=\\\"col-sm-6\\\">\\r\\n <span>Team: {{TeamName}}</span><br>\\r\\n <span>Version: {{currentVersion[\\\"VersionName\\\"]}}</span>\\r\\n </div>\\r\\n\\r\\n </div>\\r\\n\\r\\n <style>\\r\\n @media print {\\r\\n .testq {\\r\\n page-break-inside: avoid !important;\\r\\n }\\r\\n\\r\\n .multidata {\\r\\n display: block !important;\\r\\n page-break-inside: avoid !important;\\r\\n }\\r\\n\\r\\n .testq {\\r\\n page-break-after: always !important;\\r\\n }\\r\\n\\r\\n .testq:last-child {\\r\\n page-break-after: avoid !important;\\r\\n }\\r\\n\\r\\n }\\r\\n </style>\\r\\n\\r\\n <div>\\r\\n <div class=\\\"row\\\">\\r\\n <!--<div class=\\\"col-sm-12\\\" style=\\\"display: flex;\\r\\n flex-wrap: nowrap;\\r\\n overflow-x: auto;height: 400px;\\\"> -->\\r\\n <div class=\\\"multidata\\\" style=\\\"margin-bottom:2%;padding-right: 0%;margin-left:2%;\\\"\\r\\n *ngFor=\\\"let Activity of IssuesLists[subKey]['Activity']\\\">\\r\\n <div class=\\\"testq multidata\\\" style=\\\"margin:5% 0% !important;\\\">\\r\\n <div class=\\\"col-sm-12\\\" style=\\\"margin-top: 10px;margin-left: 1px;width: 300px;\\\">\\r\\n <div class=\\\"col-sm square form-group\\\" style=\\\"padding:2px 3px 31px 1px;height: 100px;\\\" id=\\\"activity\\\"\\r\\n *ngIf=\\\"Activity.ActivityTypeID==1\\\">\\r\\n <span style=\\\"cursor:pointer;float:right;\\\"\\r\\n (click)=\\\"AddMetricOrIssue(Activity.ActivityID,Activity.ParentID)\\\" class=\\\"donotprintthis\\\">\\r\\n <span class=\\\"fa-stack\\\">\\r\\n <i class=\\\"fa fa-square-o fa-stack-1x\\\"></i>\\r\\n <i class=\\\"fa fa-plus fa-stack-1x\\\"></i>\\r\\n </span>\\r\\n </span>\\r\\n\\r\\n <hr style=\\\"background-color: #265382;margin-top: 27px;\\\">\\r\\n\\r\\n <div class=\\\"row\\\">\\r\\n <div class=\\\"col-sm-12\\\">\\r\\n <div class=\\\"col-sm-10 offset-1\\\" style=\\\"height: 18px;font-size: 11px;\\\">\\r\\n <span class=\\\"dots\\\" style=\\\"word-wrap: break-word;word-break: break-all;white-space: normal;\\\"\\r\\n title=\\\"{{Activity.ActivityName}}\\\">{{Activity.ActivityName}}\\r\\n </span>\\r\\n </div>\\r\\n\\r\\n </div>\\r\\n </div>\\r\\n <span *ngIf=\\\"IssuesLists[subKey]['Metric'][Activity.ActivityID] && (MapType==='1' ||MapType==='3')\\\"\\r\\n style=\\\"float: right;margin-left: 5px;\\\" class=\\\"circlelg metricsbg\\\"\\r\\n (click)=\\\"getCase(Activity,2);$event.stopPropagation()\\\">\\r\\n <span> {{IssuesLists[subKey]['Metric'][Activity.ActivityID]}}</span>\\r\\n </span>\\r\\n <span *ngIf=\\\"IssuesLists[subKey]['Issue'][Activity.ActivityID] && (MapType==='0' ||MapType==='3')\\\"\\r\\n style=\\\"float:right;\\\" class=\\\"circlelg frustrationbg\\\"\\r\\n (click)=\\\"getCase(Activity,1);$event.stopPropagation()\\\">\\r\\n <span>{{IssuesLists[subKey]['Issue'][Activity.ActivityID]}}</span>\\r\\n </span>\\r\\n <span ([ngModel])=\\\"showMetricAlert[Activity.ActivityID]\\\" *ngIf=\\\"showMetricAlert[Activity.ActivityID]\\\">\\r\\n <span style=\\\"color: #4aabe7;float: right;\\\" title=\\\"In {{alertMetricValue}} activities no metric exists\\\"\\r\\n *ngIf=\\\"(MapType==='1' || MapType==='3')\\\">\\r\\n <img src=\\\"./assets/images/star-blue.png\\\" alt=\\\"bluestar\\\" style=\\\"margin-right: 6px; width:17px;\\\" />\\r\\n </span>\\r\\n </span>\\r\\n <span style=\\\"color:#d55632;float: right;margin-right: 6px;\\\"\\r\\n title=\\\"More than or equal to {{alertValue}} frustrations exists\\\"\\r\\n *ngIf=\\\"alertPTypeID===1 && IssuesLists[subKey]['Issue'][Activity.ActivityID] >=alertValue && (MapType==='0' || MapType==='3')\\\">\\r\\n <img src=\\\"./assets/images/star-red.png\\\" alt=\\\"redstar\\\" style=\\\"width:17px;\\\" />\\r\\n </span>\\r\\n\\r\\n\\r\\n </div>\\r\\n <div class=\\\"col-sm square form-group\\\" style=\\\"padding:2px 3px 31px 1px;height: 100px;width: 270px;\\\"\\r\\n *ngIf=\\\"Activity.ActivityTypeID!=1\\\">\\r\\n <span style=\\\"cursor:pointer;float:right;\\\"\\r\\n (click)=\\\"AddMetricOrIssue(Activity.ActivityID,Activity.ParentID)\\\" class=\\\"donotprintthis\\\">\\r\\n <span class=\\\"fa-stack\\\">\\r\\n <i class=\\\"fa fa-square-o fa-stack-1x\\\"></i>\\r\\n <i class=\\\"fa fa-plus fa-stack-1x\\\"></i>\\r\\n </span>\\r\\n </span>\\r\\n\\r\\n <hr style=\\\"background-color: #265382;margin-top: 27px;\\\">\\r\\n <div class=\\\"row\\\">\\r\\n <div class=\\\"col-sm-12\\\">\\r\\n <div class=\\\"col-sm-10 offset-1\\\" style=\\\"height: 18px; font-size: 11px;\\\">\\r\\n <span class=\\\"dots\\\" title=\\\"{{Activity.ActivityName}}\\\"\\r\\n style=\\\"word-wrap: break-word;word-break: break-all;white-space: normal;\\\">{{Activity.ActivityName}}\\r\\n </span>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <span *ngIf=\\\"IssuesLists[subKey]['Metric'][Activity.ActivityID] && (MapType==='1' ||MapType==='3')\\\"\\r\\n style=\\\"float: right;margin-left: 5px;\\\" class=\\\"circlelg metricsbg\\\"\\r\\n (click)=\\\"getCase(Activity,2);$event.stopPropagation()\\\">\\r\\n {{IssuesLists[subKey]['Metric'][Activity.ActivityID]}}\\r\\n </span>\\r\\n <span *ngIf=\\\"IssuesLists[subKey]['Issue'][Activity.ActivityID] && (MapType==='0' ||MapType==='3')\\\"\\r\\n style=\\\"float:right; \\\" class=\\\"circlelg frustrationbg\\\"\\r\\n (click)=\\\"getCase(Activity,1);$event.stopPropagation()\\\">\\r\\n {{IssuesLists[subKey]['Issue'][Activity.ActivityID]}}\\r\\n </span>\\r\\n <span ([ngModel])=\\\"showMetricAlert[Activity.ActivityID]\\\" *ngIf=\\\"showMetricAlert[Activity.ActivityID]\\\">\\r\\n <span style=\\\"color: #4aabe7;float: right;\\\" title=\\\"In {{alertMetricValue}} activities no metric exists\\\"\\r\\n *ngIf=\\\"(MapType==='1' || MapType==='3')\\\">\\r\\n <img src=\\\"./assets/images/star-blue.png\\\" alt=\\\"bluestar\\\" style=\\\"margin-right: 6px;width:17px;\\\" />\\r\\n </span>\\r\\n </span>\\r\\n <span style=\\\"color:#d55632;float: right;margin-right: 6px;\\\"\\r\\n title=\\\"More than or equal to {{alertValue}} frustrations exists\\\"\\r\\n *ngIf=\\\"alertPTypeID===1 && IssuesLists[subKey]['Issue'][Activity.ActivityID] >=alertValue && (MapType==='0' || MapType==='3')\\\">\\r\\n <img src=\\\"./assets/images/star-red.png\\\" alt=\\\"redstar\\\" style=\\\"width:17px;\\\" />\\r\\n </span>\\r\\n </div>\\r\\n <div style=\\\"margin-bottom: 15px;margin-top: 15px;\\\">\\r\\n <span *ngIf=\\\"subKey && expandMap\\\">\\r\\n <div *ngIf=\\\"!IssuesLists[subKey]['MetricList'][Activity.ActivityID] \\\" style=\\\"margin-left:102px;\\\">\\r\\n </div>\\r\\n <div\\r\\n *ngIf=\\\"IssuesLists[subKey]['MetricList'][Activity.ActivityID] && (MapType==='1' ||MapType==='3')\\\">\\r\\n <div *ngIf=\\\"IssuesLists[subKey]['Metric']\\\" class=\\\"squareM\\\">\\r\\n <table>\\r\\n <tr>\\r\\n <td style=\\\"word-break:normal;\\\"><strong>No.</strong></td>\\r\\n <td style=\\\"float: left;\\\">\\r\\n <strong>Metrics</strong>\\r\\n </td>\\r\\n </tr>\\r\\n <tr *ngFor=\\\"let data of IssuesLists[subKey]['MetricList'][Activity.ActivityID];let i=index;\\\">\\r\\n <td style=\\\"padding-left: 2px;word-break: normal;vertical-align: top;\\\">\\r\\n {{i+1}}\\r\\n </td>\\r\\n <td style=\\\"padding-left: 2px;float: left;\\\">\\r\\n {{data.Description}}\\r\\n </td>\\r\\n </tr>\\r\\n </table>\\r\\n </div>\\r\\n </div>\\r\\n </span>\\r\\n </div>\\r\\n <div style=\\\"margin-bottom: 15px;margin-top: 15px;\\\">\\r\\n <span *ngIf=\\\"subKey && expandMap\\\">\\r\\n <div *ngIf=\\\"IssuesLists[subKey]['IssueList'][Activity.ActivityID] && (MapType==='0' ||MapType==='3')\\\"\\r\\n class=\\\"squareIssues\\\">\\r\\n <div *ngIf=\\\"IssuesLists[subKey]['Issue']\\\">\\r\\n <table>\\r\\n <tr>\\r\\n <td style=\\\"word-break:normal;\\\"><strong>No.</strong></td>\\r\\n <td style=\\\"float: left;\\\">\\r\\n <strong>Frustrations</strong>\\r\\n </td>\\r\\n </tr>\\r\\n <tr *ngFor=\\\"let data of IssuesLists[subKey]['IssueList'][Activity.ActivityID];let i=index;\\\">\\r\\n <td style=\\\"padding-left: 2px;word-break: normal;vertical-align: top;\\\">\\r\\n {{i+1}}\\r\\n </td>\\r\\n <td style=\\\"padding-left: 2px;float: left;\\\">\\r\\n {{data.Subject}}\\r\\n\\r\\n </td>\\r\\n <td style=\\\"height:20px;width:20px;\\\">\\r\\n <span *ngIf=\\\"data.StatusID===1\\\"></span>\\r\\n <span *ngIf=\\\"data.StatusID===2 \\\" class=\\\"circleM\\\" style=\\\"background-color: red;\\\"></span>\\r\\n <span *ngIf=\\\"data.StatusID===3 \\\" class=\\\"circleM\\\" style=\\\"background-color: yellow;\\\"></span>\\r\\n <span *ngIf=\\\"data.StatusID===4 \\\" class=\\\"circleM\\\" style=\\\"background-color: green;\\\"></span>\\r\\n <span *ngIf=\\\"data.StatusID===5\\\" class=\\\"circleM\\\" style=\\\"background-color: black;\\\"></span>\\r\\n </td>\\r\\n </tr>\\r\\n </table>\\r\\n </div>\\r\\n </div>\\r\\n </span>\\r\\n </div>\\r\\n <div class=\\\"row\\\">\\r\\n <div class=\\\"col-lg-12 form-group\\\"\\r\\n *ngFor=\\\"let SubActivity of IssuesLists[subKey]['SubActivity'][Activity.ActivityID]\\\">\\r\\n <div class=\\\"col-sm squareInActvty\\\" style=\\\"padding:2px 3px 31px 1px;width: 270px;\\\"\\r\\n (click)=\\\"AddMetricOrIssue(SubActivity.ActivityID,SubActivity.ParentID)\\\" id=\\\"activity\\\"\\r\\n *ngIf=\\\"SubActivity.ActivityTypeID==1\\\">\\r\\n\\r\\n <span class=\\\"dots\\\"\\r\\n style=\\\"word-wrap: break-word;word-break: break-all;white-space: normal;font-size: 11px;\\\"\\r\\n title=\\\"{{SubActivity.ActivityName}}\\\">\\r\\n <b>{{SubActivity.squence}}</b> {{SubActivity.ActivityName}} </span>\\r\\n <span style=\\\" float:right; font-size: 11px;\\\"\\r\\n *ngIf=\\\"IssuesLists[subKey]['SubMCount'][SubActivity.ActivityID]['SubMetric'] &&(MapType==='1' ||MapType==='3')\\\"\\r\\n (click)=\\\"getCase(SubActivity,2);$event.stopPropagation()\\\">\\r\\n <span class=\\\"squareKPI2\\\"\\r\\n *ngIf=\\\"IssuesLists[subKey]['SubMCount'][SubActivity.ActivityID]['SubMetric'] [SubActivity.ActivityID] &&(MapType==='1' ||MapType==='3')\\\">\\r\\n {{IssuesLists[subKey]['SubMCount'][SubActivity.ActivityID]['SubMetric'][SubActivity.ActivityID]}}\\r\\n </span>\\r\\n\\r\\n </span>\\r\\n <span style=\\\"float:right; font-size: 11px;\\\"\\r\\n *ngIf=\\\"IssuesLists[subKey]['SubMCount'][SubActivity.ActivityID]['SubIssue'] && (MapType==='0' ||MapType==='3')\\\"\\r\\n (click)=\\\"getCase(SubActivity,1);$event.stopPropagation()\\\">\\r\\n <span class=\\\"squareIssue1\\\"\\r\\n *ngIf=\\\"IssuesLists[subKey]['SubMCount'][SubActivity.ActivityID]['SubIssue'] [SubActivity.ActivityID] && (MapType==='0' ||MapType==='3')\\\">{{IssuesLists[subKey]['SubMCount'][SubActivity.ActivityID]['SubIssue'][SubActivity.ActivityID]}}</span>\\r\\n </span>\\r\\n </div>\\r\\n <div class=\\\"col-sm squareExActvty\\\" style=\\\"padding:2px 3px 31px 1px;width: 270px;\\\"\\r\\n (click)=\\\"AddMetricOrIssue(SubActivity.ActivityID,SubActivity.ParentID)\\\"\\r\\n *ngIf=\\\"SubActivity.ActivityTypeID!=1\\\">\\r\\n <span class=\\\"dots\\\" style=\\\"word-wrap: break-word;word-break: break-all;white-space: normal;\\\"\\r\\n title=\\\"{{SubActivity.ActivityName}}\\\"><b>{{SubActivity.squence}}</b>\\r\\n {{SubActivity.ActivityName}} </span>\\r\\n <span style=\\\" float:right; font-size: 11px;\\\"\\r\\n *ngIf=\\\"IssuesLists[subKey]['SubMCount'][SubActivity.ActivityID]['SubMetric'] && (MapType==='1' ||MapType==='3')\\\"\\r\\n (click)=\\\"getCase(SubActivity,2);$event.stopPropagation()\\\">\\r\\n <span class=\\\"squareKPI2\\\"\\r\\n *ngIf=\\\"IssuesLists[subKey]['SubMCount'][SubActivity.ActivityID]['SubMetric'] [SubActivity.ActivityID] &&(MapType==='1' ||MapType==='3')\\\">\\r\\n {{IssuesLists[subKey]['SubMCount'][SubActivity.ActivityID]['SubMetric'][SubActivity.ActivityID]}}</span>\\r\\n </span>\\r\\n <span style=\\\"float:right;font-size: 11px;\\\"\\r\\n *ngIf=\\\"IssuesLists[subKey]['SubMCount'][SubActivity.ActivityID]['SubIssue'] && (MapType==='0' ||MapType==='3')\\\"\\r\\n (click)=\\\"getCase(SubActivity,1);$event.stopPropagation()\\\">\\r\\n <span class=\\\"squareIssue1\\\"\\r\\n *ngIf=\\\"IssuesLists[subKey]['SubMCount'][SubActivity.ActivityID]['SubIssue'] [SubActivity.ActivityID] && (MapType==='0' ||MapType==='3')\\\">\\r\\n {{IssuesLists[subKey]['SubMCount'][SubActivity.ActivityID]['SubIssue'][SubActivity.ActivityID]}}</span>\\r\\n\\r\\n </span>\\r\\n </div>\\r\\n <div style=\\\"margin-bottom: 15px;margin-top: 15px;\\\">\\r\\n <span *ngIf=\\\"subKey && expandMap\\\">\\r\\n <div *ngIf=\\\"!IssuesLists[subKey]['SubActivityMetric'][SubActivity.ActivityID] \\\"\\r\\n style=\\\"margin-left:102px;\\\">\\r\\n </div>\\r\\n <div\\r\\n *ngIf=\\\"IssuesLists[subKey]['SubActivityMetric'][SubActivity.ActivityID] && (MapType==='1' ||MapType==='3')\\\">\\r\\n <div *ngIf=\\\"IssuesLists[subKey]['Metric']\\\" class=\\\"squareM\\\">\\r\\n <table>\\r\\n <tr>\\r\\n <td style=\\\"word-break:normal;\\\"><strong>No.</strong></td>\\r\\n <td style=\\\"float: left;\\\">\\r\\n <strong>Metrics</strong>\\r\\n </td>\\r\\n </tr>\\r\\n <tr\\r\\n *ngFor=\\\"let data of IssuesLists[subKey]['SubActivityMetric'][SubActivity.ActivityID];let i=index;\\\">\\r\\n <td style=\\\"padding-left: 2px;word-break: normal;vertical-align: top;\\\">\\r\\n {{i+1}}\\r\\n </td>\\r\\n <td style=\\\"padding-left: 2px;float: left;\\\">\\r\\n {{data.Description}}\\r\\n </td>\\r\\n </tr>\\r\\n </table>\\r\\n </div>\\r\\n </div>\\r\\n </span>\\r\\n </div>\\r\\n <div style=\\\"margin-bottom: 15px;margin-top: 15px;\\\">\\r\\n <span *ngIf=\\\"subKey && expandMap\\\">\\r\\n <div\\r\\n *ngIf=\\\"IssuesLists[subKey]['SubActivityIssues'][SubActivity.ActivityID] && (MapType==='0' ||MapType==='3')\\\"\\r\\n class=\\\"squareIssues\\\">\\r\\n <div *ngIf=\\\"IssuesLists[subKey]['Issue']\\\">\\r\\n <table>\\r\\n <tr>\\r\\n <td style=\\\"word-break:normal;\\\"><strong>No.</strong></td>\\r\\n <td style=\\\"float: left;\\\">\\r\\n <strong>Frustrations</strong>\\r\\n </td>\\r\\n </tr>\\r\\n <tr\\r\\n *ngFor=\\\"let data of IssuesLists[subKey]['SubActivityIssues'][SubActivity.ActivityID];let i=index;\\\">\\r\\n\\r\\n <td style=\\\"padding-left: 2px;word-break: normal;vertical-align: top;\\\">\\r\\n {{i+1}}\\r\\n </td>\\r\\n <td style=\\\"padding-left: 2px;float: left;\\\">\\r\\n {{data.Subject}}\\r\\n\\r\\n </td>\\r\\n <td style=\\\"height:20px;width:20px;\\\">\\r\\n <span *ngIf=\\\"data.StatusID===1\\\"></span>\\r\\n <span *ngIf=\\\"data.StatusID===2 \\\" class=\\\"circleM\\\" style=\\\"background-color: red;\\\"></span>\\r\\n <span *ngIf=\\\"data.StatusID===3 \\\" class=\\\"circleM\\\"\\r\\n style=\\\"background-color: yellow;\\\"></span>\\r\\n <span *ngIf=\\\"data.StatusID===4 \\\" class=\\\"circleM\\\"\\r\\n style=\\\"background-color: green;\\\"></span>\\r\\n <span *ngIf=\\\"data.StatusID===5\\\" class=\\\"circleM\\\" style=\\\"background-color: black;\\\"></span>\\r\\n </td>\\r\\n </tr>\\r\\n </table>\\r\\n </div>\\r\\n </div>\\r\\n </span>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n <div></div>\\r\\n </div>\\r\\n\\r\\n\\r\\n </div>\\r\\n\\r\\n </div>\\r\\n\\r\\n <br>\\r\\n <div class=\\\"footer\\\">\\r\\n <label>{{copyRight}}</label>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n\\r\\n</div>\"","module.exports = \"<!--<link rel=\\\"stylesheet\\\" href=\\\"https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css\\\">-->\\n<script src=\\\"https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js\\\"></script>\\n<script src=\\\"https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js\\\"></script>\\n<script src=\\\"https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js\\\"></script>\\n\\n<style>\\n .example-handle {\\n /* position: absolute; */\\n float: right;\\n top: 10px;\\n right: 10px;\\n color: #978181;\\n cursor: move;\\n width: 24px;\\n height: 24px;\\n }\\n\\n .disableProcess {\\n pointer-events: none;\\n }\\n\\n .cdk-drag-preview {\\n box-sizing: border-box;\\n border-radius: 4px;\\n box-shadow: 0 5px 5px -3px rgba(0, 0, 0, 0.2),\\n 0 8px 10px 1px rgba(0, 0, 0, 0.14),\\n 0 3px 14px 2px rgba(0, 0, 0, 0.12);\\n }\\n\\n .cdk-drag-placeholder {\\n opacity: 0;\\n }\\n\\n .cdk-drag-animating {\\n transition: transform 250ms cubic-bezier(0, 0, 0.2, 1);\\n }\\n\\n .example-list.cdk-drop-list-dragging .example-box:not(.cdk-drag-placeholder) {\\n transition: transform 250ms cubic-bezier(0, 0, 0.2, 1);\\n }\\n\\n .example-list {\\n\\n border: solid 1px #ccc;\\n min-height: 60px;\\n background: white;\\n border-radius: 4px;\\n overflow: hidden;\\n display: block;\\n\\n margin-top: 20px;\\n ;\\n }\\n\\n .stageHeader {\\n\\n padding: .5rem .5rem .5rem 1.5rem;\\n background: #3775b5;\\n color: white;\\n font-size: 12px;\\n text-align: center;\\n margin-bottom: 5px;\\n border-radius: 20px 20px 20px 20px;\\n }\\n\\n .btnbg {\\n background-color: #e2e3e4;\\n font-weight: 200 !important;\\n font-size: 14px;\\n /* min-width: 20% */\\n }\\n\\n .circleSch {\\n background-color: #d9c25a;\\n border-radius: 6px;\\n text-align: center;\\n color: white;\\n float: left;\\n margin-left: 5px;\\n width: 9px;\\n height: 9px;\\n border: 1px solid white;\\n margin-top: 2px;\\n }\\n\\n .btnbg1 {\\n background-color: #e2e3e4;\\n font-weight: 200 !important;\\n font-size: 14px;\\n min-width: 10%\\n }\\n\\n .btnWrapper button {\\n margin: 2.5% 1% 0% 0.5% !important;\\n }\\n\\n .labelFont {\\n font-size: 7px;\\n border-radius: 5px;\\n /* width: 120px; */\\n cursor: pointer;\\n }\\n\\n .squareLabel {\\n word-break: break-all;\\n font-size: 14px;\\n font-family: sans-serif;\\n }\\n\\n .cardCustom {\\n flex-direction: inherit;\\n min-width: 0;\\n word-wrap: break-word;\\n background-color: #fff;\\n background-clip: border-box;\\n border: 1px solid rgba(0, 0, 0, .125);\\n border-radius: .25rem;\\n /* box-shadow: 0px 0px 3px 3px lightgrey; */\\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.16), 0 1px 2px rgba(0, 0, 0, 0.23);\\n }\\n\\n .actAlign {\\n margin-top: 20px;\\n font-size: 10px;\\n font-family: sans-serif;\\n }\\n\\n .metricsbg {\\n background-color: #4aabe7;\\n }\\n\\n .keyprocessbg {\\n background-color: #3775b5;\\n }\\n\\n .actExtbg {\\n background-color: #a3cda2;\\n }\\n\\n .actIntbg {\\n background-color: #e2e3e4;\\n }\\n\\n .frustrationbg {\\n background-color: #d55632;\\n }\\n\\n .dots {\\n\\n flex-wrap: wrap;\\n\\n }\\n\\n html,\\n body {\\n\\n overflow-x: hidden;\\n }\\n\\n input {\\n width: 181%;\\n }\\n\\n .square {\\n padding: 0px;\\n background-color: #3775b5;\\n color: white;\\n text-align: center;\\n cursor: pointer;\\n border-radius: 5px;\\n border: 2px solid #3775b5;\\n font-size: 13px;\\n font-weight: bold;\\n box-shadow: 0px 8px 3px 0px #265382;\\n font-family: unset;\\n width: 350px;\\n height: 140px;\\n }\\n\\n .squarech {\\n padding: 0px;\\n background-color: #3775b5;\\n color: white;\\n text-align: center;\\n cursor: pointer;\\n border-radius: 5px;\\n border: 2px solid #3775b5;\\n font-size: 13px;\\n font-weight: bold;\\n box-shadow: 0px 8px 3px 0px #265382;\\n font-family: unset;\\n height: 56px;\\n }\\n\\n .squareActvty {\\n padding: 0px;\\n background-color: #FFFFCC;\\n color: black;\\n text-align: center;\\n cursor: pointer;\\n border: 2px solid #C9C927;\\n border-radius: 5px;\\n word-break: break-word;\\n width: 350px;\\n box-shadow: 3px 3px 3px;\\n }\\n\\n /* [squareBox] {\\n padding-top: 6%;\\n padding-right: 2%;\\n } */\\n\\n .squareInActvty {\\n padding: 3px;\\n background-color: #e2e3e4;\\n color: black;\\n text-align: left;\\n cursor: pointer;\\n border: 2px solid #e2e3e4;\\n border-radius: 5px;\\n font-size: 12px;\\n word-break: break-word;\\n height: 70px;\\n width: 300px;\\n /* box-shadow: 3px 3px 3px #C9C927; */\\n font-family: unset;\\n }\\n\\n .squareInActvtych {\\n padding: 3px;\\n background-color: #e2e3e4;\\n color: black;\\n text-align: left;\\n cursor: pointer;\\n border: 2px solid #e2e3e4;\\n border-radius: 5px;\\n font-size: 12px;\\n word-break: break-word;\\n height: 40px;\\n width: 300px;\\n /* box-shadow: 3px 3px 3px #C9C927; */\\n font-family: unset;\\n }\\n\\n .squareExActvty {\\n padding: 3px;\\n background-color: #a3cda2;\\n color: black;\\n text-align: left;\\n cursor: pointer;\\n border: 2px solid #a3cda2;\\n border-radius: 5px;\\n font-size: 12px;\\n word-break: break-word;\\n height: 70px;\\n width: 300px;\\n /* box-shadow: 3px 3px 3px #73AD21; */\\n }\\n\\n .squareExActvtych {\\n padding: 3px;\\n background-color: #a3cda2;\\n color: black;\\n text-align: left;\\n cursor: pointer;\\n border: 2px solid #a3cda2;\\n border-radius: 5px;\\n font-size: 12px;\\n word-break: break-word;\\n height: 40px;\\n width: 300px;\\n }\\n\\n .squareKPI {\\n /*border: 2px solid #10BCF5;*/\\n padding-left: 9%;\\n padding-right: 7px;\\n background-color: #6ADAFF;\\n color: white;\\n text-align: center;\\n border-radius: 5px;\\n /*border: 1px solid #10BCF5;*/\\n font-size: 17px;\\n /* margin-left:-21px; */\\n width: 25px;\\n /* height: 21px; */\\n cursor: pointer;\\n /* box-shadow: 3px 3px 3px #1EBFF4; */\\n /* padding-left: 7%;\\n padding-right: 6%; */\\n }\\n\\n .squareKPI1 {\\n background-color: #6ADAFF;\\n color: white;\\n text-align: center;\\n border-radius: 5px;\\n font-size: 11px;\\n border-radius: 5px;\\n cursor: pointer;\\n }\\n\\n .circleKP {\\n background-color: #6ADAFF;\\n color: white;\\n text-align: center;\\n font-size: 8px;\\n border-radius: 12px;\\n cursor: pointer;\\n }\\n\\n .circle {\\n width: 12px;\\n height: 12px;\\n border-radius: 50%;\\n }\\n\\n .circlelg {\\n width: 20px;\\n height: 20px;\\n border-radius: 50%;\\n font-size: 11px;\\n font-weight: bold;\\n /* margin-top: 10px; */\\n color: white;\\n border: 2px solid white;\\n text-align: center;\\n margin-left: 1px;\\n }\\n\\n .circlelgch {\\n width: 20px;\\n height: 20px;\\n border-radius: 50%;\\n font-size: 11px;\\n font-weight: bold;\\n /* margin-top: 10px; */\\n color: white;\\n border: 1px solid white;\\n text-align: center;\\n }\\n\\n .circleI .fa-lg {\\n margin-left: -8px;\\n }\\n\\n .squre {\\n width: 12px;\\n height: 12px;\\n }\\n\\n .squareIssue {\\n /*border: 2px solid #FF5DCA;*/\\n background-color: #FFAAE3;\\n color: white;\\n text-align: center;\\n cursor: pointer;\\n width: 25px;\\n /* padding: 14%; */\\n /*height: 21px;*/\\n border-radius: 5px;\\n font-size: 17px;\\n /* box-shadow: 3px 3px 3px #FF5DCA; */\\n /* margin-left:-11px; */\\n }\\n\\n /* .squareIssue1 {\\n\\n background-color: #FFAAE3;\\n color: white;\\n text-align: center;\\n cursor: pointer;\\n width: 25px;\\n\\n border-radius: 5px;\\n font-size: 17px;\\n padding-left: 6px;\\n padding-right: 6px;\\n\\n } */\\n .squareIssue1 {\\n /*border: 2px solid #FF5DCA;*/\\n border: 2px solid white;\\n height: 20px;\\n width: 20px;\\n background-color: #d55632;\\n border-radius: 50%;\\n display: inline-block;\\n font-weight: bold;\\n font-size: 11px;\\n /* box-shadow: 3px 3px 3px #FF5DCA; */\\n /* margin-left:-11px; */\\n }\\n\\n .squareIssuech1 {\\n border: 1px solid white;\\n height: 20px;\\n width: 20px;\\n background-color: #d55632;\\n border-radius: 50%;\\n display: inline-block;\\n font-weight: bold;\\n font-size: 11px;\\n\\n }\\n\\n .circleM {\\n height: 10%;\\n width: 10%;\\n background-color: #6ADAFF;\\n border-radius: 50%;\\n text-align: center;\\n color: white;\\n padding: 0px 5px;\\n }\\n\\n .circleMExpand {\\n height: 10%;\\n width: 10%;\\n background-color: #6ADAFF;\\n border-radius: 50%;\\n text-align: center;\\n color: white;\\n padding: 0px 5px;\\n }\\n\\n .circleI {\\n height: 40%;\\n width: 5%;\\n /* background-color: #EF74FC; */\\n border-radius: 50%;\\n text-align: center;\\n color: white;\\n padding: 0px 0px;\\n font-size: 14px;\\n }\\n\\n table td,\\n th {\\n font-size: 10px;\\n }\\n\\n .squareIssues {\\n background-color: #f7aaa3;\\n border: 2px solid #f7aaa3;\\n color: black;\\n text-align: center;\\n /*cursor: pointer;*/\\n border-radius: 5px;\\n font-size: 11px;\\n word-break: break-word;\\n min-width: 60px;\\n /*height: 65px;*/\\n width: 299px;\\n margin-left: 2px;\\n margin-top: 15px;\\n /* box-shadow: 3px 3px 3px #d66140; */\\n }\\n\\n .squareM {\\n background-color: #4aabe7;\\n border: 2px solid #10BCF5;\\n color: black;\\n text-align: center;\\n /*cursor: pointer;*/\\n border-radius: 5px;\\n font-size: 11px;\\n word-break: break-word;\\n min-width: 60px;\\n /*height: 65px;*/\\n width: 299px;\\n margin-left: 2px;\\n margin-top: 15px;\\n ;\\n /* box-shadow: 3px 3px 3px #10BCF5; */\\n }\\n\\n @media print {\\n .donotprintthis {\\n\\n display: none;\\n\\n }\\n }\\n\\n @media print {\\n @page {\\n size: auto;\\n margin: 0mm;\\n }\\n\\n a[href]:after {\\n content: none !important;\\n }\\n }\\n\\n @media print {\\n\\n #Header,\\n #Footer {\\n display: none !important;\\n }\\n }\\n\\n @media screen {\\n .donotprintthis {\\n display: block;\\n }\\n }\\n\\n .footer {\\n position: fixed;\\n bottom: 0;\\n font-size: 13px;\\n margin-left: 35%;\\n }\\n\\n .squareKPI2 {\\n border: 2px solid white;\\n height: 20px;\\n width: 20px;\\n background-color: #4aabe7;\\n border-radius: 50%;\\n display: inline-block;\\n font-weight: bold;\\n font-size: 11px;\\n\\n }\\n\\n .squareKPI2ch {\\n border: 1px solid white;\\n height: 20px;\\n width: 20px;\\n background-color: #4aabe7;\\n border-radius: 50%;\\n display: inline-block;\\n font-weight: bold;\\n font-size: 11px;\\n\\n }\\n\\n .circleS {\\n background-color: #d9c25a;\\n border-radius: 15px;\\n text-align: center;\\n color: white;\\n padding: 0px 5px;\\n width: 12px;\\n height: 12px;\\n border: 1px solid white;\\n margin-top: 3px;\\n }\\n\\n @media (max-width:600px) {\\n .mb_la {\\n max-width: 100% !important;\\n }\\n\\n .metric {\\n width: 95% !important;\\n }\\n\\n #map {\\n width: 98% !important;\\n }\\n\\n .mb_view1 {\\n margin-bottom: 15px !important;\\n }\\n }\\n\\n ::-webkit-scrollbar {\\n width: 9px;\\n height: 10px !important\\n }\\n\\n ::-webkit-scrollbar-thumb {\\n border-radius: 1px;\\n background: #c1c1c1 !important\\n }\\n\\n ::-webkit-scrollbar-track {\\n background-color: #fff;\\n border-radius: 1px !important\\n }\\n</style>\\n<div>\\n <div *ngIf=\\\"!errorMessage\\\">\\n <div *ngIf=\\\"showDiv\\\" class=\\\"row donotprintthis\\\" id=\\\"topContainer\\\">\\n <div class=\\\"screenActions\\\">\\n <div class=\\\"selectDropDowns\\\">\\n <div class=\\\"selectWrapper\\\">\\n <div class=\\\"mapTypeSelect\\\">\\n <mat-form-field>\\n <mat-label>* Map Type</mat-label>\\n <mat-select [(ngModel)]=\\\"MapType\\\" (selectionChange)=\\\"onChange($event)\\\" [disabled]=\\\"!TeamID\\\">\\n <mat-option [value]=\\\"'0'\\\">\\n <span> Only Frustrations </span>\\n </mat-option>\\n <mat-option [value]=\\\"'1'\\\">\\n <span>Only Metrics </span>\\n </mat-option>\\n <mat-option [value]=\\\"'2'\\\">\\n <span> No Frustrations & Metrics </span>\\n </mat-option>\\n <mat-option [value]=\\\"'3'\\\">\\n <span>Both </span>\\n </mat-option>\\n </mat-select>\\n </mat-form-field>\\n </div>\\n <div class=\\\"teamSelect\\\">\\n <mat-form-field>\\n <mat-label>* Select Team Map</mat-label>\\n <mat-select (selectionChange)=\\\"GetSelectedProcessMap($event)\\\" [(ngModel)]=\\\"TeamID\\\">\\n <mat-option *ngFor=\\\"let team of teamData;let i=index;\\\" [value]=\\\"team.TeamID\\\">\\n <span> {{team.TeamName}} </span>\\n </mat-option>\\n </mat-select>\\n </mat-form-field>\\n </div>\\n <div class=\\\"versionSelect\\\">\\n <mat-form-field>\\n <mat-label>*Select Versions</mat-label>\\n <mat-select [disabled]=\\\"TeamID == 0\\\" (selectionChange)=\\\"GetSelectedVersion($event)\\\"\\n [(ngModel)]=\\\"DepartmentID\\\">\\n <mat-option *ngFor=\\\"let version of versions;let i=index;\\\" [value]=\\\"versions[i].VersionID\\\">\\n <span *ngIf=\\\"versions.length-1!=i\\\"> {{versions[i].VersionName}} </span>\\n <span *ngIf=\\\"versions.length-1==i\\\"> {{versions[i].VersionName}} </span>\\n </mat-option>\\n </mat-select>\\n </mat-form-field>\\n </div>\\n </div>\\n </div>\\n <div class=\\\"actionBtns\\\">\\n <div class=\\\"btnWrapper\\\">\\n <button class=\\\"btn btnbg\\\" id=\\\"expandPM\\\" matTooltip=\\\"Expand process map\\\" [disabled]=\\\"!hideButton || !TeamID\\\"\\n (click)=\\\"ExpandMap()\\\" *ngIf=\\\"!expandMap\\\">Expand ProcessMap</button>\\n <button class=\\\"btn btnbg\\\" id=\\\"hidePM\\\" matTooltip=\\\"Hide process map\\\" [disabled]=\\\"!hideButton\\\"\\n (click)=\\\"HideMap()\\\" *ngIf=\\\"expandMap\\\">Hide ProcessMap</button>\\n <button *ngIf=\\\"!changeSize\\\" class=\\\"btn btnbg\\\" id=\\\"printBtn\\\" matTooltip=\\\"Print processmap\\\"\\n printTitle=\\\"{{CompanyName}}\\\" [disabled]=\\\"processLists.length===0\\\" printSectionId=\\\"print-section\\\"\\n [useExistingCss]=\\\"true\\\" ngxPrint>Print</button>\\n <button *ngIf=\\\"changeSize\\\" class=\\\"btn btnbg\\\" id=\\\"printBtnZoom\\\" matTooltip=\\\"Print processmap\\\"\\n printTitle=\\\"{{CompanyName}}\\\" [disabled]=\\\"processLists.length===0\\\" printSectionId=\\\"print-ZoomSection\\\"\\n [useExistingCss]=\\\"true\\\" ngxPrint>Print</button>\\n <button *ngIf=\\\"!changeSize\\\" class=\\\"btn btnbg\\\" id=\\\"versionBtn\\\"\\n [disabled]=\\\"IsVersion || processLists.length===0\\\" matTooltip=\\\"Versioning\\\"\\n (click)=\\\"Versioning(MenuPermissions[menuName][menuID]['C'])\\\"\\n [style.pointer-events]=\\\"!(MenuPermissions[menuName][menuID]['C'])\\\"\\n [ngClass]=\\\"{'removeColor1':!(MenuPermissions[menuName][menuID]['C']),'AddColor':(MenuPermissions[menuName][menuID]['C'])}\\\">Versioning</button>\\n\\n <button *ngIf=\\\"!changeSize\\\" class=\\\"btn btnbg\\\" id=\\\"dashboardBtn\\\" matTooltip=\\\"View dashboard\\\"\\n [disabled]=\\\"!TeamID\\\"><a routerLinkActive=\\\"active\\\" [routerLink]=\\\"['/dashboard',TeamID]\\\"\\n [style.pointer-events]=\\\"!TeamID?'none':'auto'\\\">\\n Dashboard</a></button>\\n <button *ngIf=\\\" changeSize\\\" class=\\\"btn btnbg\\\" id=\\\"zoomInBtn\\\" matTooltip=\\\"Zoom in map\\\"\\n (click)=\\\"changeState()\\\" [disabled]=\\\"!TeamID\\\">Zoom In</button>\\n <button *ngIf=\\\"!changeSize\\\" class=\\\"btn btnbg\\\" id=\\\"zoomOutBtn\\\" matTooltip=\\\"Zoom out map\\\"\\n (click)=\\\"changeState()\\\" [disabled]=\\\"!TeamID\\\">Zoom Out</button>\\n </div>\\n\\n </div>\\n </div>\\n </div>\\n </div>\\n <br>\\n <!--------------------print------------------>\\n <div id=\\\"Map\\\">\\n <div class=\\\"container-fluid divdata\\\" style=\\\" height:80vh;margin-top: -47px;\\\">\\n <br>\\n <span style=\\\"color: red;text-align: center\\\">\\n <br>\\n {{errorMessage}}\\n </span>\\n <div class=\\\"row donotprintthis\\\">\\n <div class=\\\"col-sm-2\\\" *ngIf=\\\"processLists.length===0 \\\">\\n <div class=\\\"donotprintthis\\\" matTooltip=\\\"Create new process\\\"\\n (click)=\\\"AddProcess(MenuPermissions[menuName][menuID]['C'],IsVersion)\\\"\\n [style.pointer-events]=\\\"!(MenuPermissions[menuName][menuID]['C']) \\\"\\n [ngClass]=\\\"{'removeColor':!(MenuPermissions[menuName][menuID]['C']),'AddColor':(MenuPermissions[menuName][menuID]['C']),'disableProcess':(!TeamID)}\\\"\\n style=\\\"color:#3775b5;cursor: pointer;height: 40px;margin-top: 28px;padding-top: 2px;width: 200px;min-width: 42px;font-size: 25px;\\\">\\n <b class=\\\"button\\\"\\n style=\\\"margin-left: 6px;margin-top: 10px; height: 1px; width: 23px; float: left;border-radius: 2px; color: #3775b5;font-size: 19px; text-align: center; padding-bottom: 25px; \\\">\\n <i class=\\\"fa fa-plus-square\\\"></i></b>\\n <u style=\\\"font-size: 15px;color: #3775b5;\\\">Create new process</u>\\n </div>\\n </div>\\n </div>\\n <div *ngIf=\\\"!changeSize\\\" class=\\\"row\\\">\\n <div class=\\\"col-sm-12\\\" style=\\\"max-width: 100%;\\\">\\n <div class=\\\"metric\\\" id=\\\"printMap1\\\" p style=\\\"display: flex;\\n flex-wrap: nowrap;position: absolute;\\n height: 78vh;width: 98%;overflow-x: auto;\\\" cdkDropList cdkDropListOrientation=\\\"horizontal\\\"\\n [cdkDropListData]=\\\"ProcessFinalList\\\" (cdkDropListDropped)=\\\"dropProcess($event);$event.stopPropagation();\\\">\\n <div class=\\\"\\\" style=\\\"padding-right: 20px;\\\" *ngFor=\\\"let process of ProcessFinalList\\\" cdkDrag\\n [ngClass]=\\\"{'disableProcess':(IsVersion || readOnly)}\\\">\\n <div class=\\\"col-sm square\\\" style=\\\"padding:2px 3px 31px 1px;width: 300px;height: 100px;\\\"\\n (click)=\\\"ChooseMatricOrIssue(process['Process'].ProcessID, 0,MenuPermissions[menuName][menuID]['C'],IsVersion,MenuPermissions[menuName][menuID]['R'],MenuPermissions[menuName][menuID]['U'],MenuPermissions[menuName][menuID]['D'])\\\"\\n [style.pointer-events]=\\\"!(MenuPermissions[menuName][menuID]['C'])\\\"\\n [ngClass]=\\\"{'removeColor':!(MenuPermissions[menuName][menuID]['C']),'AddColor':(MenuPermissions[menuName][menuID]['C'])}\\\">\\n <div class=\\\"example-handle\\\" style=\\\"color: #ccc !important;\\\" cdkDragHandle>\\n <svg width=\\\"24px\\\" fill=\\\"currentColor\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n d=\\\"M10 9h4V6h3l-5-5-5 5h3v3zm-1 1H6V7l-5 5 5 5v-3h3v-4zm14 2l-5-5v3h-3v4h3v3l5-5zm-9 3h-4v3H7l5 5 5-5h-3v-3z\\\">\\n </path>\\n <path d=\\\"M0 0h24v24H0z\\\" fill=\\\"none\\\"></path>\\n </svg>\\n </div>\\n <span *ngIf=\\\"process['Process'].TeamID===0\\\" class=\\\"circle\\\"\\n style=\\\"background-color: #d9c25a;border: 1px solid white;float: left;\\\"\\n title=\\\"No team associated with this process\\\"> </span>\\n <span class=\\\" \\\" style=\\\"float: left; color:#4aabe7;\\\" title=\\\"No metric associated with this process\\\"\\n *ngIf=\\\"!IssuesLists[process['Process'].ProcessID].MetricCount && !IssuesLists[process['Process'].ProcessID].pMetricCount && !IssuesLists[process['Process'].ProcessID].SubMetricCount && (MapType==='1' ||MapType==='3')\\\"> <img\\n src=\\\"./assets/images/triangle-blue.png\\\" alt=\\\"bluetriangle\\\" style=\\\"width: 13px;\\\" /></span>\\n <span class=\\\"alerts\\\" style=\\\"float: left; color: #d55632;\\\"\\n title=\\\"No frustrations assosiated with this process\\\"\\n *ngIf=\\\"!IssuesLists[process['Process'].ProcessID].IssueCount && !IssuesLists[process['Process'].ProcessID].pIssueCount && !IssuesLists[process['Process'].ProcessID].SubIssueCount && (MapType==='0' ||MapType==='3')\\\"> <img\\n src=\\\"./assets/images/triangle-red.png\\\" alt=\\\"redtriangle\\\" style=\\\"width: 13px;\\\" /></span>\\n <span style=\\\"float: left;margin-left:3px;\\\" class=\\\"circleS\\\" title=\\\"Sub activity exits\\\"\\n *ngIf=\\\"IssuesLists[process['Process'].ProcessID] && IssuesLists[process['Process'].ProcessID].SubActivity!=0 &&IssuesLists[process['Process'].ProcessID].SubActivity!=undefined \\\">\\n </span>\\n <span *ngIf=\\\"IssuesLists[process['Process'].ProcessID] \\\" style=\\\"cursor:pointer;float:right;\\\">\\n <span *ngIf=\\\"ActiveActivities[process['Process'].ProcessID]\\\"\\n (click)=\\\"DisplaySubMap(process['Process'].ProcessID);$event.stopPropagation() \\\"\\n class=\\\"donotprintthis\\\"><span matTooltip=\\\"Expand process\\\">\\n <span class=\\\"fa-stack\\\">\\n <i class=\\\"fa fa-square-o fa-stack-2x\\\"></i>\\n <i class=\\\"fa fa-expand fa-stack-1x\\\"></i>\\n </span>\\n </span></span>\\n </span>\\n <hr style=\\\"background-color: #265382;margin-top: 27px;\\\">\\n <div class=\\\"row\\\">\\n <div class=\\\"col-sm-12\\\">\\n <div class=\\\"col-sm-10 offset-1\\\" style=\\\"height: 18px; margin-top: 8px;\\\">\\n <span class=\\\"dots squareLabel\\\"\\n style=\\\"word-wrap: break-word;word-break: break-all;white-space: normal;\\\"\\n title=\\\"{{process['ProcessID']}}\\\"> \\n {{process['ProcessID']}} \\n </span>\\n </div>\\n </div>\\n </div>\\n <div>\\n <span\\n *ngIf=\\\"IssuesLists[process['Process'].ProcessID] && IssuesLists[process['Process'].ProcessID]['pMetricCount'] && (MapType==='1' ||MapType==='3')\\\"\\n class=\\\"squareKPI2\\\" style=\\\" float:right;margin-left:3px;\\\"\\n (click)=\\\"getCase(process['Process'], 0,2,MenuPermissions[menuName][menuID]['U'] ,MenuPermissions[menuName][menuID]['D']);$event.stopPropagation()\\\">\\n {{IssuesLists[process['Process'].ProcessID]['pMetricCount']}}\\n </span>\\n <span\\n *ngIf=\\\"IssuesLists[process['Process'].ProcessID] && IssuesLists[process['Process'].ProcessID]['pIssueCount'] && (MapType==='0' || MapType==='3')\\\"\\n (click)=\\\"getCase(process['Process'], 0, 1,MenuPermissions[menuName][menuID]['U'] ,MenuPermissions[menuName][menuID]['D']);$event.stopPropagation()\\\"\\n class=\\\"squareIssue1\\\" style=\\\"float:right;\\\">\\n {{IssuesLists[process['Process'].ProcessID]['pIssueCount']}}\\n </span>\\n </div>\\n </div>\\n <div *ngIf=\\\"expandMap \\\">\\n <span\\n *ngIf=\\\"IssuesLists[process['Process'].ProcessID]['MetricProcess'] && (MapType==='1' ||MapType==='3')\\\">\\n <div *ngIf=\\\"IssuesLists[process['Process'].ProcessID]['MetricProcess'][process['Process'].ProcessID]\\\"\\n class=\\\"squareM\\\">\\n <div>\\n <table>\\n <tbody>\\n <tr>\\n <td style=\\\"word-break:normal;\\\"><strong>No.</strong></td>\\n <td style=\\\"float: left;\\\">\\n <strong> Metrics </strong>\\n </td>\\n </tr>\\n <tr\\n *ngFor=\\\"let data of IssuesLists[process['Process'].ProcessID]['MetricProcess'][process['Process'].ProcessID];let i=index;\\\">\\n <td style=\\\"padding-left: 2px;word-break: normal;vertical-align: top;\\\">\\n {{i+1}}\\n </td>\\n <td style=\\\"padding-left: 2px;float: left;\\\">\\n {{data.Description}}\\n </td>\\n </tr>\\n </tbody>\\n </table>\\n </div>\\n </div>\\n </span>\\n </div>\\n <div *ngIf=\\\"expandMap \\\">\\n <span *ngIf=\\\"IssuesLists[process['Process'].ProcessID] && (MapType==='0' ||MapType==='3') \\\">\\n <div *ngIf=\\\"IssuesLists[process['Process'].ProcessID]['IssueProcess'][process['Process'].ProcessID]\\\"\\n class=\\\"squareIssues\\\">\\n <div>\\n <table>\\n <tbody>\\n <tr>\\n <td style=\\\"word-break:normal;\\\"><strong>No.</strong></td>\\n <td style=\\\"float: left;\\\">\\n <strong> Frustrations </strong>\\n </td>\\n </tr>\\n <tr\\n *ngFor=\\\"let data of IssuesLists[process['Process'].ProcessID]['IssueProcess'][process['Process'].ProcessID];let i=index;\\\">\\n <td style=\\\"padding-left: 2px;word-break: normal;vertical-align: top;\\\">\\n {{i+1}}\\n </td>\\n <td style=\\\"padding-left: 2px;float: left;\\\">\\n {{data.Subject}}\\n </td>\\n <td style=\\\"height:20px;width:20px;\\\">\\n <span *ngIf=\\\"data.StatusID===1 \\\"></span>\\n <span *ngIf=\\\"data.StatusID===2 \\\" class=\\\"circleM\\\" style=\\\"background-color: red;\\\"></span>\\n <span *ngIf=\\\"data.StatusID===3 \\\" class=\\\"circleM\\\" style=\\\"background-color: yellow;\\\"></span>\\n <span *ngIf=\\\"data.StatusID===4 \\\" class=\\\"circleM\\\" style=\\\"background-color: green;\\\"></span>\\n <span *ngIf=\\\"data.StatusID===5 \\\" class=\\\"circleM\\\" style=\\\"background-color: black;\\\"></span>\\n </td>\\n </tr>\\n </tbody>\\n </table>\\n </div>\\n </div>\\n </span>\\n </div>\\n <div cdkDropList id=\\\"{{process['ProcessID']}}\\\" [cdkDropListData]=\\\"process['ActivityList']\\\"\\n [cdkDropListConnectedTo]=\\\"connectedTo\\\"\\n (cdkDropListDropped)=\\\"dropActivity($event,process['Process']);$event.stopPropagation();\\\">\\n <div *ngFor=\\\"let Activity of process['ActivityList']; let i=index\\\" style=\\\"margin-top: 15px; \\\" cdkDrag\\n [ngClass]=\\\"{'disableProcess':(IsVersion || readOnly)}\\\">\\n <div class=\\\"squareInActvty\\\" id=\\\"activity\\\" *ngIf=\\\"Activity.ActivityTypeID==1\\\"\\n (click)=\\\"ChooseMatricOrIssue(process['Process'].ProcessID, Activity.ActivityID,MenuPermissions[menuName][menuID]['C'],IsVersion,MenuPermissions[menuName][menuID]['R'],MenuPermissions[menuName][menuID]['U'] ,MenuPermissions[menuName][menuID]['D'])\\\"\\n [style.pointer-events]=\\\"!(MenuPermissions[menuName][menuID]['C'])\\\"\\n [ngClass]=\\\"{'removeColor':!(MenuPermissions[menuName][menuID]['C']),'AddColor':(MenuPermissions[menuName][menuID]['C'])}\\\">\\n <div class=\\\"actAlign\\\">\\n <span class=\\\"dots\\\" style=\\\"word-wrap: break-word;word-break: break-all;white-space: normal;\\\"\\n title=\\\"{{Activity.ActivityName}}\\\">\\n <b> {{Activity.squence}}. {{Activity.ActivityName}} </b>\\n </span>\\n <span *ngIf=\\\"IssuesLists[process['Process'].ProcessID]\\\">\\n <div class=\\\"example-handle\\\" cdkDragHandle>\\n <svg width=\\\"24px\\\" fill=\\\"currentColor\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n d=\\\"M10 9h4V6h3l-5-5-5 5h3v3zm-1 1H6V7l-5 5 5 5v-3h3v-4zm14 2l-5-5v3h-3v4h3v3l5-5zm-9 3h-4v3H7l5 5 5-5h-3v-3z\\\">\\n </path>\\n <path d=\\\"M0 0h24v24H0z\\\" fill=\\\"none\\\"></path>\\n </svg>\\n </div>\\n <span\\n *ngIf=\\\"IssuesLists[process['Process'].ProcessID]['MetricList'][Activity.ActivityID] &&(MapType==='1' ||MapType==='3')\\\"\\n style=\\\"float: right;\\\" class=\\\"circlelg metricsbg\\\"\\n (click)=\\\"getCase(process['Process'], Activity,2,MenuPermissions[menuName][menuID]['U'] ,MenuPermissions[menuName][menuID]['D']);$event.stopPropagation()\\\">\\n {{IssuesLists[process['Process'].ProcessID]['Metric'][Activity.ActivityID]}}\\n </span>\\n </span>\\n <span *ngIf=\\\"IssuesLists[process['Process'].ProcessID]\\\">\\n <span\\n *ngIf=\\\"IssuesLists[process['Process'].ProcessID]['Issue'][Activity.ActivityID] && (MapType==='0' || MapType==='3')\\\"\\n style=\\\"float: right;\\\" class=\\\"circlelg frustrationbg\\\"\\n (click)=\\\"getCase(process['Process'], Activity, 1,MenuPermissions[menuName][menuID]['U'] ,MenuPermissions[menuName][menuID]['D']);$event.stopPropagation()\\\">\\n {{IssuesLists[process['Process'].ProcessID]['Issue'][Activity.ActivityID]}}\\n </span>\\n </span>\\n <span ([ngModel])=\\\"showMetricAlert[Activity.ActivityID]\\\"\\n *ngIf=\\\"showMetricAlert[Activity.ActivityID]\\\">\\n <span class=\\\"circleI\\\" style=\\\"color: #4aabe7; float: right;\\\"\\n title=\\\"In {{alertMetricValue}} activities no metric exists\\\"\\n *ngIf=\\\"(MapType==='1' || MapType==='3')\\\">\\n <img src=\\\"./assets/images/star-blue.png\\\" alt=\\\"bluestar\\\" width=\\\"20px;\\\"\\n style=\\\"margin-left:-4px;margin-top: -6px;\\\" />\\n </span>\\n </span>\\n <span class=\\\"circleI\\\" style=\\\"color:#d55632;float: right; \\\"\\n title=\\\"More than or equal to {{alertValue}} frustrations exists\\\"\\n *ngIf=\\\"alertPTypeID===1 && IssuesLists[process['Process'].ProcessID] && IssuesLists[process['Process'].ProcessID]['Issue'][Activity.ActivityID] >=alertValue && (MapType==='0' || MapType==='3')\\\">\\n <img src=\\\"./assets/images/star-red.png\\\" alt=\\\"redstar\\\"\\n style=\\\"margin-left:-11px;margin-top: -6px;width:20px;\\\">\\n </span>\\n <span\\n *ngIf=\\\"IssuesLists[process['Process'].ProcessID] && IssuesLists[process['Process'].ProcessID]['MetricList'][Activity.ActivityID] >=1 && (MapType==='0' || MapType==='3') ;else templateName\\\">\\n </span>\\n </div>\\n </div>\\n <div class=\\\"squareExActvty \\\" *ngIf=\\\"Activity.ActivityTypeID!=1\\\"\\n (click)=\\\"ChooseMatricOrIssue(process['Process'].ProcessID, Activity.ActivityID,MenuPermissions[menuName][menuID]['C'],IsVersion,MenuPermissions[menuName][menuID]['R'] , MenuPermissions[menuName][menuID]['U'] ,MenuPermissions[menuName][menuID]['D'])\\\"\\n [style.pointer-events]=\\\"!(MenuPermissions[menuName][menuID]['C'])\\\"\\n [ngClass]=\\\"{'removeColor':!(MenuPermissions[menuName][menuID]['C']),'AddColor':(MenuPermissions[menuName][menuID]['C'])}\\\">\\n <div class=\\\"actAlign\\\">\\n <span class=\\\"dots\\\" style=\\\"word-wrap: break-word;word-break: break-all;white-space: normal;\\\"\\n title=\\\"{{Activity.ActivityName}}\\\">\\n <b>{{Activity.squence}}. {{Activity.ActivityName}}</b>\\n </span>\\n <span *ngIf=\\\"IssuesLists[process['Process'].ProcessID]\\\">\\n <div class=\\\"example-handle\\\" cdkDragHandle>\\n <svg fill=\\\"currentColor\\\" width=\\\"24px\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n d=\\\"M10 9h4V6h3l-5-5-5 5h3v3zm-1 1H6V7l-5 5 5 5v-3h3v-4zm14 2l-5-5v3h-3v4h3v3l5-5zm-9 3h-4v3H7l5 5 5-5h-3v-3z\\\">\\n </path>\\n <path d=\\\"M0 0h24v24H0z\\\" fill=\\\"none\\\"></path>\\n </svg>\\n </div>\\n <span\\n *ngIf=\\\"IssuesLists[process['Process'].ProcessID]['MetricList'][Activity.ActivityID] &&(MapType==='1' ||MapType==='3')\\\"\\n style=\\\"float: right;\\\" class=\\\"circlelg metricsbg\\\"\\n (click)=\\\"getCase(process['Process'], Activity,2,MenuPermissions[menuName][menuID]['U'] ,MenuPermissions[menuName][menuID]['D']);$event.stopPropagation()\\\">\\n {{IssuesLists[process['Process'].ProcessID]['Metric'][Activity.ActivityID]}}\\n </span>\\n </span>\\n <span *ngIf=\\\"IssuesLists[process['Process'].ProcessID]\\\">\\n <span\\n *ngIf=\\\"IssuesLists[process['Process'].ProcessID]['Issue'][Activity.ActivityID] && (MapType==='0' || MapType==='3')\\\"\\n style=\\\"float: right;\\\" class=\\\"circlelg frustrationbg\\\"\\n (click)=\\\"getCase(process['Process'], Activity, 1,MenuPermissions[menuName][menuID]['U'] ,MenuPermissions[menuName][menuID]['D']);$event.stopPropagation()\\\">\\n {{IssuesLists[process['Process'].ProcessID]['Issue'][Activity.ActivityID]}}\\n </span>\\n </span>\\n <span ([ngModel])=\\\"showMetricAlert[Activity.ActivityID]\\\"\\n *ngIf=\\\"showMetricAlert[Activity.ActivityID]\\\">\\n <span class=\\\"circleI\\\" style=\\\"color: #4aabe7;float: right;\\\"\\n title=\\\"In {{alertMetricValue}} activities no metric exists\\\"\\n *ngIf=\\\"(MapType==='1' || MapType==='3')\\\">\\n <img src=\\\"./assets/images/star-blue.png\\\" alt=\\\"bluestar\\\" width=\\\"20px;\\\"\\n style=\\\"margin-left:-6px;margin-top: -3px;\\\" />\\n </span>\\n </span> \\n <span class=\\\"circleI\\\" style=\\\"color:#d55632;float: right;\\\"\\n title=\\\"More than or equal to {{alertValue}} frustrations exists\\\"\\n *ngIf=\\\"alertPTypeID===1 && IssuesLists[process['Process'].ProcessID]['Issue'][Activity.ActivityID] >=alertValue && (MapType==='0' || MapType==='3')\\\">\\n <img src=\\\"./assets/images/star-red.png\\\" alt=\\\"redstar\\\" width=\\\"20px;\\\" style=\\\"margin-left: -19px;\\n margin-top: -3px;\\\">\\n </span>\\n </div>\\n </div>\\n <div *ngIf=\\\"expandMap\\\">\\n <span *ngIf=\\\"IssuesLists[process['Process'].ProcessID] && (MapType==='0' ||MapType==='3')\\\">\\n <div *ngIf=\\\"IssuesLists[process['Process'].ProcessID]['IssueList'][Activity.ActivityID]\\\"\\n class=\\\"squareIssues\\\">\\n <div>\\n <table>\\n <tbody>\\n <tr>\\n <td style=\\\"word-break:normal;\\\"><strong>No.</strong></td>\\n <td style=\\\"float: left;\\\">\\n <strong> Frustrations </strong>\\n </td>\\n </tr>\\n </tbody>\\n <tr\\n *ngFor=\\\"let data of IssuesLists[process['Process'].ProcessID]['IssueList'][Activity.ActivityID];let i=index;\\\">\\n <td style=\\\"padding-left: 2px;word-break: normal;vertical-align: top;\\\">\\n {{i+1}}\\n </td>\\n <td style=\\\"padding-left: 2px;float: left;\\\">\\n {{data.Subject}}\\n </td>\\n <td style=\\\"height:20px;width:20px;\\\">\\n <span *ngIf=\\\"data.StatusID===1\\\"></span>\\n <span *ngIf=\\\"data.StatusID===2 \\\" class=\\\"circleM\\\" style=\\\"background-color: red;\\\"></span>\\n <span *ngIf=\\\"data.StatusID===3 \\\" class=\\\"circleM\\\"\\n style=\\\"background-color: yellow;\\\"></span>\\n <span *ngIf=\\\"data.StatusID===4 \\\" class=\\\"circleM\\\"\\n style=\\\"background-color: green;\\\"></span>\\n <span *ngIf=\\\"data.StatusID===5\\\" class=\\\"circleM\\\" style=\\\"background-color: black;\\\"></span>\\n </td>\\n </tr>\\n </table>\\n </div>\\n </div>\\n </span>\\n <span *ngIf=\\\"IssuesLists[process['Process'].ProcessID] && (MapType==='1' ||MapType==='3')\\\">\\n <div *ngIf=\\\"IssuesLists[process['Process'].ProcessID]['MetricList'][Activity.ActivityID]\\\"\\n class=\\\"squareM\\\">\\n <div>\\n <table>\\n <tbody>\\n <tr>\\n <td style=\\\"word-break:normal;\\\"><strong>No.</strong></td>\\n <td style=\\\"float: left;\\\">\\n <strong> Metrics </strong>\\n </td>\\n </tr>\\n\\n <tr\\n *ngFor=\\\"let data of IssuesLists[process['Process'].ProcessID]['MetricList'][Activity.ActivityID];let i=index;\\\">\\n <td style=\\\"padding-left: 2px;word-break: normal;vertical-align: top;\\\">\\n {{i+1}}\\n </td>\\n <td style=\\\"padding-left: 2px;float: left;\\\">\\n {{data.Description}}\\n </td>\\n\\n </tr>\\n </tbody>\\n </table>\\n\\n\\n </div>\\n\\n </div>\\n </span>\\n </div>\\n </div>\\n <div class=\\\"example-list label-style\\\" *ngIf=\\\"!IsVersion\\\">\\n <span>Drop here</span>\\n </div>\\n </div>\\n <div *ngIf=\\\"IssuesLists[process['Process'].ProcessID]\\\"\\n (click)=\\\"IsVersion || readOnly || !(MenuPermissions[menuName][menuID]['C'])? $event.stopPropagation() : AddActivity(process['Process'].ProcessID,0,MenuPermissions[menuName][menuID]['C']); IsVersion || readOnly || !(MenuPermissions[menuName][menuID]['C'])? false : null\\\"\\n [class.isDisabled]=\\\"IsVersion || readOnly || !(MenuPermissions[menuName][menuID]['C'])\\\"\\n style=\\\"cursor: pointer;margin-top: 15px;\\\"><b class=\\\"button\\\"\\n style=\\\"margin-left: 6px; height: 1px; width: 23px; float: left;border-radius: 2px; color: #929292;font-size: 19px; text-align: center; padding-bottom: 25px; \\\"><i\\n class=\\\"fa fa-plus-square\\\"></i></b>\\n <u style=\\\"font-size: 15px;color: #929292;\\\">Add new activity</u></div>\\n </div>\\n\\n <div class=\\\"donotprintthis\\\" *ngIf=\\\"processLists.length>0\\\" matTooltip=\\\"Create new process\\\"\\n (click)=\\\"AddProcess(MenuPermissions[menuName][menuID]['C'],IsVersion)\\\"\\n [style.pointer-events]=\\\"!(MenuPermissions[menuName][menuID]['C'])\\\"\\n [ngClass]=\\\"{'removeColor':!(MenuPermissions[menuName][menuID]['C']),'AddColor':(MenuPermissions[menuName][menuID]['C']),'disableProcess':(!TeamID)}\\\"\\n style=\\\" color:#3775b5;height: 40px;margin-top: 50px;padding-top: 2px;width: 60px;min-width: 42px;font-size: 25px;cursor: pointer;\\\">\\n <i class=\\\"fa fa-plus\\\"></i>\\n </div>\\n </div>\\n </div>\\n </div>\\n\\n <!----------top head-->\\n <div *ngIf=\\\"changeSize\\\" class=\\\"row\\\" [@changeDivSize]=currentState>\\n <div class=\\\"col-sm-12\\\" style=\\\"max-width: 98%;\\\">\\n <div class=\\\"\\\" id=\\\"printMap11\\\" p style=\\\"display: flex;\\n flex-wrap: nowrap;position: absolute;overflow: auto;\\\" cdkDropList cdkDropListOrientation=\\\"horizontal\\\"\\n [cdkDropListData]=\\\"ProcessFinalList\\\" (cdkDropListDropped)=\\\"dropProcess($event);$event.stopPropagation();\\\"\\n [ngStyle]=\\\"{'width': width+'%','height': height+'%'}\\\">\\n <div style=\\\"margin-right: 10px;width: 100px;\\\" *ngFor=\\\"let process of ProcessFinalList\\\" cdkDrag\\n [ngClass]=\\\"{'disableProcess':(IsVersion || readOnly)}\\\">\\n <div class=\\\"col-sm squarech\\\" style=\\\"width: 100px;\\\"\\n (click)=\\\"ChooseMatricOrIssue(process['Process'].ProcessID, 0,MenuPermissions[menuName][menuID]['C'],IsVersion,MenuPermissions[menuName][menuID]['R'],MenuPermissions[menuName][menuID]['U'],MenuPermissions[menuName][menuID]['D'])\\\"\\n [style.pointer-events]=\\\"!(MenuPermissions[menuName][menuID]['C'])\\\"\\n [ngClass]=\\\"{'removeColor':!(MenuPermissions[menuName][menuID]['C']),'AddColor':(MenuPermissions[menuName][menuID]['C'])}\\\">\\n <div class=\\\"example-handle\\\" cdkDragHandle style=\\\"font-size: 8px;color: #ccc !important;\\\">\\n <svg fill=\\\"currentColor\\\" style=\\\"width: 15px;\\\" fill=\\\"currentColor\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n d=\\\"M10 9h4V6h3l-5-5-5 5h3v3zm-1 1H6V7l-5 5 5 5v-3h3v-4zm14 2l-5-5v3h-3v4h3v3l5-5zm-9 3h-4v3H7l5 5 5-5h-3v-3z\\\">\\n </path>\\n <path d=\\\"M0 0h24v24H0z\\\" fill=\\\"none\\\"></path>\\n </svg>\\n </div>\\n <span *ngIf=\\\"process['Process'].TeamID===0\\\" class=\\\"circle\\\"\\n style=\\\"background-color: #d9c25a;border: 1px solid white;float: left;\\\"\\n title=\\\"No team associated with this process\\\"> </span>\\n <span class=\\\" \\\" style=\\\"float: left; color:#4aabe7 ;\\\" [@changeActBoxSize]=currentState\\n title=\\\"No metric associated with this process\\\"\\n *ngIf=\\\"!IssuesLists[process['Process'].ProcessID].MetricCount && !IssuesLists[process['Process'].ProcessID].pMetricCount && !IssuesLists[process['Process'].ProcessID].SubMetricCount && (MapType==='1' ||MapType==='3')\\\"> <img\\n src=\\\"./assets/images/triangle-blue.png\\\" alt=\\\"bluetriangle\\\" style=\\\"width: 11px; margin-top: -10px;\\n \\\" /></span>\\n <span class=\\\"\\\" style=\\\"float: left; color: #d55632;\\\" [@changeActBoxSize]=currentState\\n title=\\\"No frustrations assosiated with this process\\\"\\n *ngIf=\\\"!IssuesLists[process['Process'].ProcessID].IssueCount && !IssuesLists[process['Process'].ProcessID].pIssueCount && !IssuesLists[process['Process'].ProcessID].SubIssueCount && (MapType==='0' ||MapType==='3')\\\"> <img\\n src=\\\"./assets/images/triangle-red.png\\\" alt=\\\"redtriangle\\\" style=\\\"width: 11px;margin-top: -10px;\\n margin-left: 3px;\\\" /></span>\\n\\n <span class=\\\"circleSch\\\" title=\\\"Sub activity exits\\\"\\n *ngIf=\\\"IssuesLists[process['Process'].ProcessID] && IssuesLists[process['Process'].ProcessID].SubActivity!=0 && IssuesLists[process['Process'].ProcessID].SubActivity!=undefined\\\">\\n </span>\\n <span *ngIf=\\\"IssuesLists[process['Process'].ProcessID] \\\" style=\\\"cursor:pointer;float:right;\\\"\\n [@changeActBoxSize]=currentState>\\n <span *ngIf=\\\"ActiveActivities[process['Process'].ProcessID]\\\"\\n (click)=\\\"DisplaySubMap(process['Process'].ProcessID);$event.stopPropagation() \\\"\\n class=\\\"donotprintthis\\\"><span matTooltip=\\\"Expand process\\\">\\n <span class=\\\"fa-stack\\\" style=\\\"margin-left:-1px;\\\">\\n <i class=\\\"fa fa-square-o fa-stack-2x\\\"></i>\\n <i class=\\\"fa fa-expand fa-stack-1x\\\"></i>\\n </span>\\n </span></span>\\n </span>\\n <hr style=\\\"background-color: #265382;margin-bottom: 1px;\\\">\\n <span class=\\\"dots squareLabel\\\" [@changeTextSize]=currentState\\n style=\\\"word-wrap: break-word;word-break: break-all;white-space: normal;\\\"\\n title=\\\"{{process['Process'].ProcessName}}\\\"> \\n {{process['Process'].ProcessName}} </span>\\n <div [@changeActBoxSize]=currentState\\n *ngIf=\\\"IssuesLists[process['Process'].ProcessID]['pIssueCount'] && (MapType==='0' || MapType==='3')\\\"\\n (click)=\\\"getCase(process['Process'], 0, 1,MenuPermissions[menuName][menuID]['U'] ,MenuPermissions[menuName][menuID]['D']);$event.stopPropagation()\\\"\\n class=\\\"squareIssuech1\\\" style=\\\"float:right;margin-left:3px;margin-top: 5px;\\\">\\n {{IssuesLists[process['Process'].ProcessID]['pIssueCount']}}\\n </div>\\n <div [@changeActBoxSize]=currentState\\n *ngIf=\\\"IssuesLists[process['Process'].ProcessID] && IssuesLists[process['Process'].ProcessID]['pMetricCount'] && (MapType==='1' ||MapType==='3')\\\"\\n class=\\\"squareKPI2ch\\\" style=\\\" float:right;margin-top: 5px; \\\"\\n (click)=\\\"getCase(process['Process'], 0,2,MenuPermissions[menuName][menuID]['U'] ,MenuPermissions[menuName][menuID]['D']);$event.stopPropagation()\\\">\\n\\n {{IssuesLists[process['Process'].ProcessID]['pMetricCount']}} </div>\\n </div>\\n\\n <div class=\\\"row\\\" *ngIf=\\\"IssuesLists[process['Process'].ProcessID]\\\">\\n\\n <table style=\\\"width: 85%;\\n margin-left: 7%;\\\">\\n <tr>\\n\\n </tr>\\n </table>\\n\\n\\n </div>\\n <div *ngIf=\\\"expandMap \\\">\\n <span\\n *ngIf=\\\"IssuesLists[process['Process'].ProcessID]['MetricProcess'] && (MapType==='1' ||MapType==='3')\\\">\\n <div [@changeMFDivSize]=currentState style=\\\"width: 100px;margin-top: 8px;\\\"\\n *ngIf=\\\"IssuesLists[process['Process'].ProcessID]['MetricProcess'][process['Process'].ProcessID]\\\"\\n class=\\\"squareM\\\">\\n <div>\\n <table>\\n <tbody>\\n <tr>\\n <td style=\\\"word-break:normal;\\\"><strong [@changeTextSize]=currentState>No.</strong> </td>\\n <td style=\\\"float: left;\\\">\\n <strong [@changeTextSize]=currentState> Metrics </strong>\\n </td>\\n </tr>\\n\\n <tr\\n *ngFor=\\\"let data of IssuesLists[process['Process'].ProcessID]['MetricProcess'][process['Process'].ProcessID];let i=index;\\\">\\n <td [@changeTextSize]=currentState\\n style=\\\"padding-left: 2px;word-break: normal;vertical-align: top;\\\">\\n {{i+1}}\\n </td>\\n <td [@changeTextSize]=currentState style=\\\"padding-left: 2px;float: left;\\\">\\n {{data.Description}}\\n </td>\\n\\n </tr>\\n </tbody>\\n </table>\\n </div>\\n </div>\\n </span>\\n </div>\\n\\n <div *ngIf=\\\"expandMap \\\">\\n <span *ngIf=\\\"IssuesLists[process['Process'].ProcessID] && (MapType==='0' ||MapType==='3') \\\">\\n <div [@changeMFDivSize]=currentState style=\\\"width: 100px;margin-top: 8px;\\\"\\n *ngIf=\\\"IssuesLists[process['Process'].ProcessID]['IssueProcess'][process['Process'].ProcessID]\\\"\\n class=\\\"squareIssues\\\">\\n <div>\\n <table>\\n <tbody>\\n <tr>\\n <td style=\\\"word-break:normal;\\\"><strong [@changeTextSize]=currentState>No.</strong> </td>\\n <td style=\\\"float: left;\\\">\\n <strong [@changeTextSize]=currentState> Frustrations </strong>\\n </td>\\n </tr>\\n <tr\\n *ngFor=\\\"let data of IssuesLists[process['Process'].ProcessID]['IssueProcess'][process['Process'].ProcessID];let i=index;\\\">\\n <td [@changeTextSize]=currentState\\n style=\\\"padding-left: 2px;word-break: normal;vertical-align: top;\\\">\\n {{i+1}}\\n </td>\\n <td [@changeTextSize]=currentState style=\\\"padding-left: 2px;float: left;\\\">\\n {{data.Subject}}\\n </td>\\n <td style=\\\"height:20px;width:20px;\\\">\\n <span *ngIf=\\\"data.StatusID===1\\\"></span>\\n <span *ngIf=\\\"data.StatusID===2 \\\" class=\\\"circleM\\\"\\n style=\\\"background-color: red;font-size: 7px;\\\"></span>\\n <span *ngIf=\\\"data.StatusID===3 \\\" class=\\\"circleM\\\"\\n style=\\\"background-color: yellow;font-size: 7px;\\\"></span>\\n <span *ngIf=\\\"data.StatusID===4 \\\" class=\\\"circleM\\\"\\n style=\\\"background-color: green;font-size: 7px;\\\"></span>\\n <span *ngIf=\\\"data.StatusID===5 \\\" class=\\\"circleM\\\"\\n style=\\\"background-color: black;font-size: 7px;\\\"></span>\\n </td>\\n </tr>\\n </tbody>\\n </table>\\n </div>\\n </div>\\n </span>\\n </div>\\n <div cdkDropList id=\\\"{{process['ProcessID']}}\\\" [cdkDropListData]=\\\"process['ActivityList']\\\"\\n [cdkDropListConnectedTo]=\\\"connectedTo\\\"\\n (cdkDropListDropped)=\\\"dropActivity($event,process['Process']);$event.stopPropagation();\\\">\\n <div class=\\\"row\\\" *ngFor=\\\"let Activity of process['ActivityList']; let i=index\\\"\\n style=\\\"margin-top: 10px; width:100%; margin-left: 1px;\\\" cdkDrag\\n [ngClass]=\\\"{'disableProcess':(IsVersion || readOnly)}\\\">\\n <div class=\\\"squareInActvtych\\\" style=\\\"width: 100px;\\\" id=\\\"activity\\\" *ngIf=\\\"Activity.ActivityTypeID==1\\\"\\n (click)=\\\"ChooseMatricOrIssue(process['Process'].ProcessID, Activity.ActivityID,MenuPermissions[menuName][menuID]['C'],IsVersion,MenuPermissions[menuName][menuID]['R'],MenuPermissions[menuName][menuID]['U'] ,MenuPermissions[menuName][menuID]['D'])\\\"\\n [style.pointer-events]=\\\"!(MenuPermissions[menuName][menuID]['C'])\\\"\\n [ngClass]=\\\"{'removeColor':!(MenuPermissions[menuName][menuID]['C']),'AddColor':(MenuPermissions[menuName][menuID]['C'])}\\\">\\n <div class=\\\"dots\\\" [@changeTextSize]=currentState title=\\\"{{Activity.ActivityName}}\\\"\\n style=\\\"word-wrap: break-word;word-break: break-all;white-space: normal;\\\">\\n {{Activity.squence}} {{Activity.ActivityName}} </div>\\n <div *ngIf=\\\"IssuesLists[process['Process'].ProcessID]\\\">\\n <div class=\\\"example-handle\\\" cdkDragHandle style=\\\"font-size: 8px;\\\">\\n <svg fill=\\\"currentColor\\\" style=\\\"width: 15px;\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n d=\\\"M10 9h4V6h3l-5-5-5 5h3v3zm-1 1H6V7l-5 5 5 5v-3h3v-4zm14 2l-5-5v3h-3v4h3v3l5-5zm-9 3h-4v3H7l5 5 5-5h-3v-3z\\\">\\n </path>\\n <path d=\\\"M0 0h24v24H0z\\\" fill=\\\"none\\\"></path>\\n </svg>\\n </div>\\n <div [@changeActBoxSize]=currentState\\n *ngIf=\\\"IssuesLists[process['Process'].ProcessID]['Issue'][Activity.ActivityID] && (MapType==='0' || MapType==='3')\\\"\\n style=\\\"float: right; margin-top: 5px;\\n margin-left: 1px;\\\" class=\\\"circlelgch frustrationbg\\\"\\n (click)=\\\"getCase(process['Process'], Activity, 1,MenuPermissions[menuName][menuID]['U'] ,MenuPermissions[menuName][menuID]['D']);$event.stopPropagation()\\\">\\n {{IssuesLists[process['Process'].ProcessID]['Issue'][Activity.ActivityID]}}\\n </div>\\n </div>\\n <div *ngIf=\\\"IssuesLists[process['Process'].ProcessID]\\\">\\n <div [@changeActBoxSize]=currentState\\n *ngIf=\\\"IssuesLists[process['Process'].ProcessID]['MetricList'][Activity.ActivityID] &&(MapType==='1' ||MapType==='3')\\\"\\n style=\\\"float: right; margin-top:5px;margin-left:1px; \\\" class=\\\"circlelgch metricsbg\\\"\\n (click)=\\\"getCase(process['Process'], Activity,2,MenuPermissions[menuName][menuID]['U'] ,MenuPermissions[menuName][menuID]['D']);$event.stopPropagation()\\\">\\n {{IssuesLists[process['Process'].ProcessID]['Metric'][Activity.ActivityID]}}\\n </div>\\n <div *ngIf=\\\"(MapType==='0' || MapType==='1'|| MapType==='2'|| MapType==='3')\\\"\\n style=\\\"margin-left:26px;\\\"></div>\\n </div>\\n <div ([ngModel])=\\\"showMetricAlert[Activity.ActivityID]\\\"\\n *ngIf=\\\"showMetricAlert[Activity.ActivityID]\\\">\\n <div class=\\\"circleI\\\" style=\\\"color: #4aabe7; float: right;\\\"\\n title=\\\"In {{alertMetricValue}} activities no metric exists\\\"\\n *ngIf=\\\"(MapType==='1' || MapType==='3')\\\">\\n <img src=\\\"./assets/images/star-blue.png\\\" [@changeAlertBoxSize]=currentState alt=\\\"bluestar\\\"\\n width=\\\"20px;\\\" style=\\\"margin-left: -33px;\\n margin-top: -2px;\\\" />\\n </div>\\n </div>\\n <div class=\\\"circleI\\\" style=\\\"color:#d55632;float: right; \\\"\\n title=\\\"More than or equal to {{alertValue}} frustrations exists\\\"\\n *ngIf=\\\"alertPTypeID===1 && IssuesLists[process['Process'].ProcessID]['Issue'][Activity.ActivityID] >=alertValue && (MapType==='0' || MapType==='3')\\\">\\n <img src=\\\"./assets/images/star-red.png\\\" alt=\\\"redstar\\\" [@changeAlertBoxSize]=currentState\\n width=\\\"20px;\\\" style=\\\"margin-left: -5px;\\n margin-top: -2px;\\\">\\n </div>\\n <span\\n *ngIf=\\\"IssuesLists[process['Process'].ProcessID]['MetricList'][Activity.ActivityID] >=1 && (MapType==='0' || MapType==='3') ;else templateName\\\">\\n </span>\\n </div>\\n <div class=\\\"squareExActvtych\\\" style=\\\"width: 100px;\\\" id=\\\"activity\\\" *ngIf=\\\"Activity.ActivityTypeID!==1\\\"\\n (click)=\\\"ChooseMatricOrIssue(process['Process'].ProcessID, Activity.ActivityID,MenuPermissions[menuName][menuID]['C'],IsVersion,MenuPermissions[menuName][menuID]['R'],MenuPermissions[menuName][menuID]['U'] ,MenuPermissions[menuName][menuID]['D'])\\\"\\n [style.pointer-events]=\\\"!(MenuPermissions[menuName][menuID]['C'])\\\"\\n [ngClass]=\\\"{'removeColor':!(MenuPermissions[menuName][menuID]['C']),'AddColor':(MenuPermissions[menuName][menuID]['C'])}\\\">\\n <div class=\\\"dots\\\" [@changeTextSize]=currentState title=\\\"{{Activity.ActivityName}}\\\"\\n style=\\\"word-wrap: break-word;word-break: break-all;white-space: normal;\\\">\\n {{Activity.squence}} {{Activity.ActivityName}} </div>\\n <div *ngIf=\\\"IssuesLists[process['Process'].ProcessID]\\\">\\n\\n <div class=\\\"example-handle\\\" cdkDragHandle style=\\\"font-size: 8px;\\\">\\n <svg fill=\\\"currentColor\\\" style=\\\"width: 15px;\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n d=\\\"M10 9h4V6h3l-5-5-5 5h3v3zm-1 1H6V7l-5 5 5 5v-3h3v-4zm14 2l-5-5v3h-3v4h3v3l5-5zm-9 3h-4v3H7l5 5 5-5h-3v-3z\\\">\\n </path>\\n <path d=\\\"M0 0h24v24H0z\\\" fill=\\\"none\\\"></path>\\n </svg>\\n </div>\\n <div [@changeActBoxSize]=currentState\\n *ngIf=\\\"IssuesLists[process['Process'].ProcessID]['Issue'][Activity.ActivityID] && (MapType==='0' || MapType==='3')\\\"\\n style=\\\"float: right; margin-top: 5px;\\n margin-left: 1px;\\\" class=\\\"circlelgch frustrationbg\\\"\\n (click)=\\\"getCase(process['Process'], Activity, 1,MenuPermissions[menuName][menuID]['U'] ,MenuPermissions[menuName][menuID]['D']);$event.stopPropagation()\\\">\\n {{IssuesLists[process['Process'].ProcessID]['Issue'][Activity.ActivityID]}}\\n </div>\\n\\n </div>\\n <div *ngIf=\\\"IssuesLists[process['Process'].ProcessID]\\\">\\n <div [@changeActBoxSize]=currentState\\n *ngIf=\\\"IssuesLists[process['Process'].ProcessID]['MetricList'][Activity.ActivityID] &&(MapType==='1' ||MapType==='3')\\\"\\n style=\\\"float: right; margin-top:5px;margin-left:1px; \\\" class=\\\"circlelgch metricsbg\\\"\\n (click)=\\\"getCase(process['Process'], Activity,2,MenuPermissions[menuName][menuID]['U'] ,MenuPermissions[menuName][menuID]['D']);$event.stopPropagation()\\\">\\n {{IssuesLists[process['Process'].ProcessID]['Metric'][Activity.ActivityID]}}\\n </div>\\n <div *ngIf=\\\"(MapType==='0' || MapType==='1'|| MapType==='2'|| MapType==='3')\\\"\\n style=\\\"margin-left:26px;\\\"></div>\\n </div>\\n <div ([ngModel])=\\\"showMetricAlert[Activity.ActivityID]\\\"\\n *ngIf=\\\"showMetricAlert[Activity.ActivityID]\\\">\\n <div class=\\\"circleI\\\" style=\\\"color: #4aabe7; float: right;\\\"\\n title=\\\"In {{alertMetricValue}} activities no metric exists\\\"\\n *ngIf=\\\"(MapType==='1' || MapType==='3')\\\">\\n <img src=\\\"./assets/images/star-blue.png\\\" [@changeAlertBoxSize]=currentState alt=\\\"bluestar\\\"\\n width=\\\"20px;\\\" style=\\\"margin-left: -33px;\\n margin-top: -2px;\\\" />\\n </div>\\n </div>\\n <div class=\\\"circleI\\\" style=\\\"color:#d55632;float: right; \\\"\\n title=\\\"More than or equal to {{alertValue}} frustrations exists\\\"\\n *ngIf=\\\"alertPTypeID===1 && IssuesLists[process['Process'].ProcessID]['Issue'][Activity.ActivityID] >=alertValue && (MapType==='0' || MapType==='3')\\\">\\n <img src=\\\"./assets/images/star-red.png\\\" alt=\\\"redstar\\\" [@changeAlertBoxSize]=currentState\\n width=\\\"20px;\\\" style=\\\"margin-left: -5px;\\n margin-top: -2px;\\\">\\n </div>\\n\\n <span\\n *ngIf=\\\"IssuesLists[process['Process'].ProcessID]['MetricList'][Activity.ActivityID] >=1 && (MapType==='0' || MapType==='3') ;else templateName\\\">\\n\\n </span>\\n\\n\\n\\n </div>\\n\\n\\n <div *ngIf=\\\"expandMap\\\" style=\\\"padding-top:10px;\\\">\\n <span *ngIf=\\\"IssuesLists[process['Process'].ProcessID] && (MapType==='1' ||MapType==='3')\\\">\\n\\n <div [@changeMFDivSize]=currentState style=\\\"width: 100px;margin-top: 0px;\\\"\\n *ngIf=\\\"IssuesLists[process['Process'].ProcessID]['MetricList'][Activity.ActivityID]\\\"\\n class=\\\"squareM\\\">\\n <div>\\n\\n <table>\\n <tbody>\\n <tr>\\n <td style=\\\"word-break:normal;\\\"><strong [@changeTextSize]=currentState>No.</strong></td>\\n <td style=\\\"float: left;\\\">\\n <strong [@changeTextSize]=currentState> Metrics </strong>\\n </td>\\n </tr>\\n\\n <tr\\n *ngFor=\\\"let data of IssuesLists[process['Process'].ProcessID]['MetricList'][Activity.ActivityID];let i=index;\\\">\\n <td [@changeTextSize]=currentState\\n style=\\\"padding-left: 2px;word-break: normal;vertical-align: top;\\\">\\n {{i+1}}\\n </td>\\n <td [@changeTextSize]=currentState style=\\\"padding-left: 2px;float: left;\\\">\\n {{data.Description}}\\n </td>\\n\\n </tr>\\n </tbody>\\n </table>\\n\\n\\n </div>\\n\\n </div>\\n </span>\\n\\n </div>\\n\\n <div *ngIf=\\\"expandMap\\\" style=\\\"padding-top:10px;\\\">\\n <span *ngIf=\\\"IssuesLists[process['Process'].ProcessID] && (MapType==='0' ||MapType==='3')\\\">\\n\\n <div [@changeMFDivSize]=currentState style=\\\"width: 100px;margin-top: 0px;\\\"\\n *ngIf=\\\"IssuesLists[process['Process'].ProcessID]['IssueList'][Activity.ActivityID]\\\"\\n class=\\\"squareIssues\\\">\\n <div>\\n <table>\\n\\n <tbody>\\n <tr>\\n <td style=\\\"word-break:normal;\\\"><strong [@changeTextSize]=currentState>No.</strong> </td>\\n <td style=\\\"float: left;\\\">\\n <strong [@changeTextSize]=currentState> Frustrations </strong>\\n </td>\\n </tr>\\n\\n </tbody>\\n\\n <tr\\n *ngFor=\\\"let data of IssuesLists[process['Process'].ProcessID]['IssueList'][Activity.ActivityID];let i=index;\\\">\\n <td [@changeTextSize]=currentState\\n style=\\\"padding-left: 2px;word-break: normal;vertical-align: top;\\\">\\n {{i+1}}\\n </td>\\n <td [@changeTextSize]=currentState style=\\\"padding-left: 2px;float: left;\\\">\\n {{data.Subject}}\\n\\n </td>\\n <td style=\\\"height:20px;width:20px;\\\">\\n <span *ngIf=\\\"data.StatusID===1\\\"></span>\\n <span *ngIf=\\\"data.StatusID===2 \\\" class=\\\"circleM\\\"\\n style=\\\"background-color: red;font-size: 7px;\\\"></span>\\n <span *ngIf=\\\"data.StatusID===3 \\\" class=\\\"circleM\\\"\\n style=\\\"background-color: yellow;font-size: 7px;\\\"></span>\\n <span *ngIf=\\\"data.StatusID===4 \\\" class=\\\"circleM\\\"\\n style=\\\"background-color: green;font-size: 7px;\\\"></span>\\n <span *ngIf=\\\"data.StatusID===5\\\" class=\\\"circleM\\\"\\n style=\\\"background-color: black;font-size: 7px;\\\"></span>\\n </td>\\n </tr>\\n\\n </table>\\n\\n\\n </div>\\n\\n </div>\\n </span>\\n\\n </div>\\n\\n </div>\\n <div class=\\\"example-list label-style\\\" *ngIf=\\\"!IsVersion\\\" [@changeTextSize]=currentState\\n style=\\\"min-height: 40px;margin-top:5px;\\\">\\n <span>Drop here</span>\\n </div>\\n\\n </div>\\n\\n\\n <div *ngIf=\\\"IssuesLists[process['Process'].ProcessID]\\\"\\n (click)=\\\"IsVersion || readOnly || !(MenuPermissions[menuName][menuID]['C'])? $event.stopPropagation() : AddActivity(process['Process'].ProcessID,0,MenuPermissions[menuName][menuID]['C']); IsVersion || readOnly || !(MenuPermissions[menuName][menuID]['C'])? false : null\\\"\\n [class.isDisabled]=\\\"IsVersion || readOnly || !(MenuPermissions[menuName][menuID]['C'])\\\"\\n style=\\\"cursor: pointer;margin-top: 2px;\\\"><b class=\\\"button\\\" [@changeActBoxSize1]=currentState\\n style=\\\"margin-left: 6px; height: 1px; width: 23px; float: left;border-radius: 2px;background-color: #929292; color: white;font-size: 19px; text-align: center;margin-top: 8px;\\\">+</b>\\n <u style=\\\"color: #929292;font-size: 15px;\\\" [@changeTextSize]=currentState>Add new\\n activity</u></div>\\n </div>\\n\\n <div class=\\\"donotprintthis\\\" *ngIf=\\\"processLists.length>0\\\" matTooltip=\\\"Create new process\\\"\\n (click)=\\\"AddProcess(MenuPermissions[menuName][menuID]['C'],IsVersion)\\\"\\n [style.pointer-events]=\\\"!(MenuPermissions[menuName][menuID]['C'])\\\"\\n [ngClass]=\\\"{'removeColor':!(MenuPermissions[menuName][menuID]['C']),'AddColor':(MenuPermissions[menuName][menuID]['C']),'disableProcess':(!TeamID)}\\\"\\n style=\\\" color:#3775b5;height: 40px;margin-top: 10px;padding-top: 2px;width: 60px;min-width: 42px;font-size: 24px;margin:10px;cursor: pointer;\\\">\\n <i class=\\\"fa fa-plus\\\"></i>\\n </div>\\n\\n\\n\\n </div>\\n </div>\\n </div>\\n\\n <div class=\\\"row\\\" id=\\\"print-ZoomSection\\\" style=\\\"display: none;zoom: 90%;\\\">\\n <div class=\\\"row\\\" style=\\\"text-align: center;word-break: break-word;\\\">\\n <div class=\\\"col-sm-6\\\">\\n <strong> {{CompanyName }} - </strong> ProcessMap <br>\\n <span>Date: {{headerDate| date:'MM-dd-yyyy' }}</span><br>\\n <span>MapType: {{typeName}}</span> <br>\\n </div>\\n <div class=\\\"col-sm-6\\\">\\n <span>Team: {{TeamName}}</span><br>\\n <span>Version: {{currentVersion[\\\"VersionName\\\"]}}</span>\\n </div>\\n\\n </div>\\n\\n\\n <div style=\\\"width: 100%;\\\">\\n <ul style=\\\"display: flex;list-style: none;margin: 0;padding: 0;\\\">\\n <li style=\\\"width:80% !important\\\">\\n <div class=\\\"card\\\">\\n <div class=\\\"card-body\\\">\\n <ul style=\\\"display: flex;list-style: none;margin: 0;padding: 0;\\\">\\n <li style=\\\"margin-right: 65px;\\\">\\n <div>\\n <svg xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" width=\\\"15\\\" height=\\\"15\\\"\\n viewBox=\\\"0 0 172 172\\\" style=\\\" fill:#000000;\\\">\\n <g fill=\\\"none\\\" fill-rule=\\\"nonzero\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" stroke-linecap=\\\"butt\\\"\\n stroke-linejoin=\\\"miter\\\" stroke-miterlimit=\\\"10\\\" stroke-dasharray=\\\"\\\" stroke-dashoffset=\\\"0\\\"\\n font-family=\\\"none\\\" font-weight=\\\"none\\\" font-size=\\\"none\\\" text-anchor=\\\"none\\\"\\n style=\\\"mix-blend-mode: normal\\\">\\n <path d=\\\"M0,172v-172h172v172z\\\" fill=\\\"none\\\"></path>\\n <g fill=\\\"#3775b5\\\">\\n <path d=\\\"M0,13.23077v145.53846h172v-145.53846z\\\"></path>\\n </g>\\n </g>\\n </svg>\\n <span class=\\\"labelFont\\\"> Key Process\\n </span>\\n </div>\\n </li>\\n\\n <li>\\n <div>\\n <svg xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" width=\\\"16\\\" height=\\\"16\\\"\\n viewBox=\\\"0 0 172 172\\\" style=\\\" fill:#000000;\\\">\\n <g fill=\\\"none\\\" fill-rule=\\\"nonzero\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" stroke-linecap=\\\"butt\\\"\\n stroke-linejoin=\\\"miter\\\" stroke-miterlimit=\\\"10\\\" stroke-dasharray=\\\"\\\" stroke-dashoffset=\\\"0\\\"\\n font-family=\\\"none\\\" font-weight=\\\"none\\\" font-size=\\\"none\\\" text-anchor=\\\"none\\\"\\n style=\\\"mix-blend-mode: normal\\\">\\n <path d=\\\"M0,172v-172h172v172z\\\" fill=\\\"none\\\"></path>\\n <g fill=\\\"#4aabe7\\\">\\n <path\\n d=\\\"M86,17.2c-37.9948,0 -68.8,30.8052 -68.8,68.8c0,37.9948 30.8052,68.8 68.8,68.8c37.9948,0 68.8,-30.8052 68.8,-68.8c0,-37.9948 -30.8052,-68.8 -68.8,-68.8z\\\">\\n </path>\\n </g>\\n </g>\\n </svg>\\n <span class=\\\"labelFont\\\"> Metric</span>\\n </div>\\n </li>\\n </ul>\\n <ul style=\\\"display: flex;list-style: none;margin: 0;padding: 0;\\\">\\n <li style=\\\"margin-right: 30px;\\\">\\n <div><svg xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" width=\\\"15\\\" height=\\\"15\\\"\\n viewBox=\\\"0 0 172 172\\\" style=\\\" fill:#000000;\\\">\\n <g fill=\\\"none\\\" fill-rule=\\\"nonzero\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" stroke-linecap=\\\"butt\\\"\\n stroke-linejoin=\\\"miter\\\" stroke-miterlimit=\\\"10\\\" stroke-dasharray=\\\"\\\" stroke-dashoffset=\\\"0\\\"\\n font-family=\\\"none\\\" font-weight=\\\"none\\\" font-size=\\\"none\\\" text-anchor=\\\"none\\\"\\n style=\\\"mix-blend-mode: normal\\\">\\n <path d=\\\"M0,172v-172h172v172z\\\" fill=\\\"none\\\"></path>\\n <g fill=\\\"#a3cda2\\\">\\n <path d=\\\"M0,13.23077v145.53846h172v-145.53846z\\\"></path>\\n </g>\\n </g>\\n </svg>\\n <span class=\\\"labelFont\\\"> Activity - External to Process</span>\\n </div>\\n <li>\\n <div>\\n <svg xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" width=\\\"16\\\" height=\\\"16\\\"\\n viewBox=\\\"0 0 172 172\\\" style=\\\" fill:#000000;\\\">\\n <g fill=\\\"none\\\" fill-rule=\\\"nonzero\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" stroke-linecap=\\\"butt\\\"\\n stroke-linejoin=\\\"miter\\\" stroke-miterlimit=\\\"10\\\" stroke-dasharray=\\\"\\\" stroke-dashoffset=\\\"0\\\"\\n font-family=\\\"none\\\" font-weight=\\\"none\\\" font-size=\\\"none\\\" text-anchor=\\\"none\\\"\\n style=\\\"mix-blend-mode: normal\\\">\\n <path d=\\\"M0,172v-172h172v172z\\\" fill=\\\"none\\\"></path>\\n <g fill=\\\"#d55632\\\">\\n <path\\n d=\\\"M86,17.2c-37.9948,0 -68.8,30.8052 -68.8,68.8c0,37.9948 30.8052,68.8 68.8,68.8c37.9948,0 68.8,-30.8052 68.8,-68.8c0,-37.9948 -30.8052,-68.8 -68.8,-68.8z\\\">\\n </path>\\n </g>\\n </g>\\n </svg>\\n <span class=\\\"labelFont\\\"> Frustration / Issue</span>\\n </div>\\n </li>\\n </ul>\\n <ul style=\\\"display: flex;list-style: none;margin: 0;padding: 0;\\\">\\n <li style=\\\"margin-right: 30px;\\\">\\n <div>\\n <svg xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" width=\\\"15\\\" height=\\\"15\\\"\\n viewBox=\\\"0 0 172 172\\\" style=\\\" fill:#000000;\\\">\\n <g fill=\\\"none\\\" fill-rule=\\\"nonzero\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" stroke-linecap=\\\"butt\\\"\\n stroke-linejoin=\\\"miter\\\" stroke-miterlimit=\\\"10\\\" stroke-dasharray=\\\"\\\" stroke-dashoffset=\\\"0\\\"\\n font-family=\\\"none\\\" font-weight=\\\"none\\\" font-size=\\\"none\\\" text-anchor=\\\"none\\\"\\n style=\\\"mix-blend-mode: normal\\\">\\n <path d=\\\"M0,172v-172h172v172z\\\" fill=\\\"none\\\"></path>\\n <g fill=\\\"#e2e3e4\\\">\\n <path d=\\\"M0,13.23077v145.53846h172v-145.53846z\\\"></path>\\n </g>\\n </g>\\n </svg>\\n <span class=\\\"labelFont\\\"> Activity - Internal to Process</span>\\n </div>\\n </li>\\n <li>\\n <div>\\n <svg xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" width=\\\"16\\\" height=\\\"16\\\"\\n viewBox=\\\"0 0 172 172\\\" style=\\\" fill:#000000;\\\">\\n <g fill=\\\"none\\\" fill-rule=\\\"nonzero\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" stroke-linecap=\\\"butt\\\"\\n stroke-linejoin=\\\"miter\\\" stroke-miterlimit=\\\"10\\\" stroke-dasharray=\\\"\\\" stroke-dashoffset=\\\"0\\\"\\n font-family=\\\"none\\\" font-weight=\\\"none\\\" font-size=\\\"none\\\" text-anchor=\\\"none\\\"\\n style=\\\"mix-blend-mode: normal\\\">\\n <path d=\\\"M0,172v-172h172v172z\\\" fill=\\\"none\\\"></path>\\n <g fill=\\\"#d9c25a\\\">\\n <path\\n d=\\\"M86,17.2c-37.9948,0 -68.8,30.8052 -68.8,68.8c0,37.9948 30.8052,68.8 68.8,68.8c37.9948,0 68.8,-30.8052 68.8,-68.8c0,-37.9948 -30.8052,-68.8 -68.8,-68.8z\\\">\\n </path>\\n </g>\\n </g>\\n </svg>\\n <span class=\\\"labelFont\\\"> Sub-Activity Exists</span>\\n </div>\\n </li>\\n </ul>\\n </div>\\n </div>\\n </li> \\n <li style=\\\"width:80% !important\\\">\\n <div class=\\\"card\\\">\\n <div class=\\\"card-body\\\">\\n <ul style=\\\"display: flex;list-style: none;margin: 0;padding: 0;\\\">\\n <li style=\\\"margin-right: 20px;\\\">\\n <div>\\n <svg xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" width=\\\"16\\\" height=\\\"16\\\"\\n viewBox=\\\"0 0 172 172\\\" style=\\\" fill:#000000;\\\">\\n <g fill=\\\"none\\\" fill-rule=\\\"nonzero\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" stroke-linecap=\\\"butt\\\"\\n stroke-linejoin=\\\"miter\\\" stroke-miterlimit=\\\"10\\\" stroke-dasharray=\\\"\\\" stroke-dashoffset=\\\"0\\\"\\n font-family=\\\"none\\\" font-weight=\\\"none\\\" font-size=\\\"none\\\" text-anchor=\\\"none\\\"\\n style=\\\"mix-blend-mode: normal\\\">\\n <path d=\\\"M0,172v-172h172v172z\\\" fill=\\\"none\\\"></path>\\n <g fill=\\\"#00aced\\\">\\n <path\\n d=\\\"M86,128.1185l48.9555,29.54817l-12.99317,-55.685l43.25083,-37.46733l-56.9535,-4.83033l-22.25967,-52.51733l-22.25967,52.51733l-56.9535,4.83033l43.25083,37.46733l-12.99317,55.685z\\\">\\n </path>\\n </g>\\n </g>\\n </svg>\\n <span class=\\\"labelFont\\\"> Alert - Multiple Activities with No Metrics</span>\\n\\n </div>\\n </li>\\n <li style=\\\"margin-bottom: 9px;\\\">\\n <div>\\n <svg xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" width=\\\"16\\\" height=\\\"16\\\"\\n viewBox=\\\"0 0 172 172\\\" style=\\\" fill:#000000;\\\">\\n <g fill=\\\"none\\\" fill-rule=\\\"nonzero\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" stroke-linecap=\\\"butt\\\"\\n stroke-linejoin=\\\"miter\\\" stroke-miterlimit=\\\"10\\\" stroke-dasharray=\\\"\\\" stroke-dashoffset=\\\"0\\\"\\n font-family=\\\"none\\\" font-weight=\\\"none\\\" font-size=\\\"none\\\" text-anchor=\\\"none\\\"\\n style=\\\"mix-blend-mode: normal\\\">\\n <path d=\\\"M0,172v-172h172v172z\\\" fill=\\\"none\\\"></path>\\n <g fill=\\\"#e64b20\\\">\\n <path\\n d=\\\"M86,128.1185l48.9555,29.54817l-12.99317,-55.685l43.25083,-37.46733l-56.9535,-4.83033l-22.25967,-52.51733l-22.25967,52.51733l-56.9535,4.83033l43.25083,37.46733l-12.99317,55.685z\\\">\\n </path>\\n </g>\\n </g>\\n </svg>\\n <span class=\\\"labelFont\\\"> Alert - Multiple Frustrations Clustered</span>\\n </div>\\n </li>\\n </ul>\\n <ul style=\\\"display: flex;list-style: none;margin: 0;padding: 0;\\\">\\n <li style=\\\"margin-right: 35px;\\\">\\n <div>\\n <svg xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" width=\\\"16\\\" height=\\\"16\\\"\\n viewBox=\\\"0 0 172 172\\\" style=\\\" fill:#000000;\\\">\\n <g fill=\\\"none\\\" fill-rule=\\\"nonzero\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" stroke-linecap=\\\"butt\\\"\\n stroke-linejoin=\\\"miter\\\" stroke-miterlimit=\\\"10\\\" stroke-dasharray=\\\"\\\" stroke-dashoffset=\\\"0\\\"\\n font-family=\\\"none\\\" font-weight=\\\"none\\\" font-size=\\\"none\\\" text-anchor=\\\"none\\\"\\n style=\\\"mix-blend-mode: normal\\\">\\n <path d=\\\"M0,172v-172h172v172z\\\" fill=\\\"none\\\"></path>\\n <g>\\n <path\\n d=\\\"M13.7987,152.65c-2.6531,0 -5.0267,-1.3717 -6.3511,-3.6679c-1.3287,-2.2962 -1.3287,-5.0396 0,-7.3358l72.2013,-125.0569c1.3244,-2.2962 3.698,-3.6679 6.3511,-3.6679c2.6531,0 5.0267,1.3717 6.3511,3.6679l72.2013,125.0569c1.3287,2.2962 1.3287,5.0353 0,7.3358c-1.3244,2.2962 -3.698,3.6679 -6.3511,3.6679z\\\"\\n fill=\\\"#00aced\\\"></path>\\n <path\\n d=\\\"M86,15.0758c0.8987,0 3.139,0.2537 4.4892,2.5929l72.2013,125.0569c1.3502,2.3392 0.4515,4.4075 0,5.1858c-0.4515,0.774 -1.7888,2.5886 -4.4892,2.5886h-144.4026c-2.7004,0 -4.042,-1.8146 -4.4892,-2.5929c-0.4515,-0.7783 -1.3502,-2.8466 0,-5.1858l72.2013,-125.0526c1.3502,-2.3435 3.5905,-2.5929 4.4892,-2.5929M86,10.7758c-3.1949,0 -6.3898,1.5824 -8.213,4.7429l-72.2013,125.0526c-3.6507,6.3253 0.9116,14.2287 8.213,14.2287h144.4026c7.3014,0 11.8637,-7.9034 8.213,-14.2287l-72.2013,-125.0526c-1.8232,-3.1648 -5.0181,-4.7429 -8.213,-4.7429z\\\"\\n fill=\\\"#00aced\\\"></path>\\n <path\\n d=\\\"M86,118.3274c-4.0277,0 -7.2928,3.2651 -7.2928,7.2928c0,4.0277 3.2651,7.2928 7.2928,7.2928c4.0277,0 7.2928,-3.2651 7.2928,-7.2928c0,-4.0277 -3.2651,-7.2928 -7.2928,-7.2928zM80.1649,55.5947h11.6702v52.5202h-11.6702z\\\"\\n fill=\\\"#ffffff\\\"></path>\\n </g>\\n </g>\\n </svg>\\n <span class=\\\"labelFont\\\"> Alert - Key Process: No Metrics \\n </span>\\n </div>\\n </li>\\n <li style=\\\"margin-bottom: 9px;\\\">\\n <div>\\n <svg xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" width=\\\"16\\\" height=\\\"16\\\"\\n viewBox=\\\"0 0 172 172\\\" style=\\\" fill:#000000;\\\">\\n <g fill=\\\"none\\\" fill-rule=\\\"nonzero\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" stroke-linecap=\\\"butt\\\"\\n stroke-linejoin=\\\"miter\\\" stroke-miterlimit=\\\"10\\\" stroke-dasharray=\\\"\\\" stroke-dashoffset=\\\"0\\\"\\n font-family=\\\"none\\\" font-weight=\\\"none\\\" font-size=\\\"none\\\" text-anchor=\\\"none\\\"\\n style=\\\"mix-blend-mode: normal\\\">\\n <path d=\\\"M0,172v-172h172v172z\\\" fill=\\\"none\\\"></path>\\n <g>\\n <path\\n d=\\\"M13.7987,152.65c-2.6531,0 -5.0267,-1.3717 -6.3511,-3.6679c-1.3287,-2.2962 -1.3287,-5.0396 0,-7.3358l72.2013,-125.0569c1.3244,-2.2962 3.698,-3.6679 6.3511,-3.6679c2.6531,0 5.0267,1.3717 6.3511,3.6679l72.2013,125.0569c1.3287,2.2962 1.3287,5.0353 0,7.3358c-1.3244,2.2962 -3.698,3.6679 -6.3511,3.6679z\\\"\\n fill=\\\"#e64b20\\\"></path>\\n <path\\n d=\\\"M86,15.0758c0.8987,0 3.139,0.2537 4.4892,2.5929l72.2013,125.0569c1.3502,2.3392 0.4515,4.4075 0,5.1858c-0.4515,0.774 -1.7888,2.5886 -4.4892,2.5886h-144.4026c-2.7004,0 -4.042,-1.8146 -4.4892,-2.5929c-0.4515,-0.7783 -1.3502,-2.8466 0,-5.1858l72.2013,-125.0526c1.3502,-2.3435 3.5905,-2.5929 4.4892,-2.5929M86,10.7758c-3.1949,0 -6.3898,1.5824 -8.213,4.7429l-72.2013,125.0526c-3.6507,6.3253 0.9116,14.2287 8.213,14.2287h144.4026c7.3014,0 11.8637,-7.9034 8.213,-14.2287l-72.2013,-125.0526c-1.8232,-3.1648 -5.0181,-4.7429 -8.213,-4.7429z\\\"\\n fill=\\\"#e64b20\\\"></path>\\n <path\\n d=\\\"M86,118.3274c-4.0277,0 -7.2928,3.2651 -7.2928,7.2928c0,4.0277 3.2651,7.2928 7.2928,7.2928c4.0277,0 7.2928,-3.2651 7.2928,-7.2928c0,-4.0277 -3.2651,-7.2928 -7.2928,-7.2928zM80.1649,55.5947h11.6702v52.5202h-11.6702z\\\"\\n fill=\\\"#ffffff\\\"></path>\\n </g>\\n </g>\\n </svg>\\n <span class=\\\"labelFont\\\"> Alert - Key Process: No Frustrations</span>\\n </div>\\n </li>\\n </ul>\\n </div>\\n </div>\\n </li>\\n </ul>\\n </div>\\n\\n <style>\\n @media print {\\n .testq {\\n page-break-inside: avoid !important;\\n }\\n\\n .multidata {\\n display: block !important;\\n page-break-inside: avoid !important;\\n }\\n\\n .testq {\\n page-break-after: always !important;\\n }\\n\\n .testq:last-child {\\n page-break-after: avoid !important;\\n }\\n\\n .donotprintthis {\\n display: none;\\n\\n }\\n }\\n </style>\\n\\n\\n\\n\\n\\n <div class=\\\"row\\\" style=\\\"margin-left: 10px;\\\">\\n <div class=\\\"multidata\\\" style=\\\"margin-right: 10px;width: 100px;\\\" *ngFor=\\\"let process of ProcessFinalList\\\">\\n <div class=\\\"testq multidata\\\" style=\\\"margin:5% 0% !important;\\\">\\n <div class=\\\"col-sm squarech multidata\\\" style=\\\"width: 100px;margin-bottom: 10px;\\\"\\n [style.pointer-events]=\\\"!(MenuPermissions[menuName][menuID]['C'])\\\"\\n [ngClass]=\\\"{'removeColor':!(MenuPermissions[menuName][menuID]['C']),'AddColor':(MenuPermissions[menuName][menuID]['C'])}\\\">\\n <span *ngIf=\\\"process.TeamID===0\\\" class=\\\"circle\\\"\\n style=\\\"background-color: #d9c25a;border: 1px solid white;float: left;\\\"\\n title=\\\"No team associated with this process\\\"> </span>\\n <span class=\\\" \\\" style=\\\"float: left; color:#4aabe7 ;\\\" [@changeActBoxSize]=currentState\\n title=\\\"No metric associated with this process\\\"\\n *ngIf=\\\"!IssuesLists[process['Process'].ProcessID].MetricCount && !IssuesLists[process['Process'].ProcessID].pMetricCount && !IssuesLists[process['Process'].ProcessID].SubMetricCount && (MapType==='1' ||MapType==='3')\\\"> <img\\n src=\\\"./assets/images/triangle-blue.png\\\" alt=\\\"bluetriangle\\\" style=\\\"width: 11px; margin-top: -10px;\\n \\\" /></span>\\n <span class=\\\"\\\" style=\\\"float: left; color: #d55632;\\\" [@changeActBoxSize]=currentState\\n title=\\\"No frustrations assosiated with this process\\\"\\n *ngIf=\\\"!IssuesLists[process['Process'].ProcessID].IssueCount && !IssuesLists[process['Process'].ProcessID].pIssueCount && !IssuesLists[process['Process'].ProcessID].SubIssueCount && (MapType==='0' ||MapType==='3')\\\"> <img\\n src=\\\"./assets/images/triangle-red.png\\\" alt=\\\"redtriangle\\\" style=\\\"width: 11px;margin-top: -10px;\\n margin-left: 3px;\\\" /></span>\\n <span class=\\\"circleSch\\\" title=\\\"Sub activity exits\\\"\\n *ngIf=\\\"IssuesLists[process['Process'].ProcessID] && IssuesLists[process['Process'].ProcessID].SubActivity!=0 && IssuesLists[process['Process'].ProcessID].SubActivity!=undefined\\\">\\n </span>\\n\\n\\n <hr style=\\\"background-color: #265382;margin-bottom: 1px;\\\">\\n\\n <span class=\\\"dots squareLabel multidata\\\" [@changeTextSize]=currentState\\n style=\\\"word-wrap: break-word;word-break: break-all;white-space: normal;margin-top: 4px;\\\"\\n title=\\\"{{process['Process'].ProcessName}}\\\"> \\n {{process['Process'].ProcessName}} </span>\\n\\n <div [@changeActBoxSize]=currentState\\n *ngIf=\\\"IssuesLists[process['Process'].ProcessID] && IssuesLists[process['Process'].ProcessID]['pIssueCount'] && (MapType==='0' || MapType==='3')\\\"\\n (click)=\\\"getCase(process['Process'], 0, 1,MenuPermissions[menuName][menuID]['U'] ,MenuPermissions[menuName][menuID]['D']);$event.stopPropagation()\\\"\\n class=\\\"squareIssuech1\\\" style=\\\"float:right;margin-left:3px;margin-top: 5px;\\\">\\n {{IssuesLists[process['Process'].ProcessID]['pIssueCount']}}\\n </div>\\n <div [@changeActBoxSize]=currentState\\n *ngIf=\\\"IssuesLists[process['Process'].ProcessID] && IssuesLists[process['Process'].ProcessID]['pMetricCount'] && (MapType==='1' ||MapType==='3')\\\"\\n class=\\\"squareKPI2ch\\\" style=\\\" float:right;margin-top: 5px; \\\"\\n (click)=\\\"getCase(process['Process'], 0,2,MenuPermissions[menuName][menuID]['U'] ,MenuPermissions[menuName][menuID]['D']);$event.stopPropagation()\\\">\\n\\n {{IssuesLists[process['Process'].ProcessID]['pMetricCount']}} </div>\\n </div>\\n\\n <div class=\\\"row\\\" *ngIf=\\\"IssuesLists[process['Process'].ProcessID]\\\">\\n\\n <table style=\\\"width: 85%;\\n margin-left: 7%;\\\">\\n <tr>\\n\\n </tr>\\n </table>\\n\\n\\n </div>\\n <div *ngIf=\\\"expandMap \\\">\\n <span\\n *ngIf=\\\"IssuesLists[process['Process'].ProcessID]['MetricProcess'] && (MapType==='1' ||MapType==='3')\\\">\\n <div [@changeMFDivSize]=currentState style=\\\"width: 100px;margin-top: 2px;\\\"\\n *ngIf=\\\"IssuesLists[process['Process'].ProcessID]['MetricProcess'][process['Process'].ProcessID]\\\"\\n class=\\\"squareM\\\">\\n <div>\\n <table>\\n <tbody>\\n <tr>\\n <td style=\\\"word-break:normal;\\\"><strong [@changeTextSize]=currentState>No.</strong></td>\\n <td style=\\\"float: left;\\\">\\n <strong [@changeTextSize]=currentState> Metrics </strong>\\n </td>\\n </tr>\\n\\n <tr\\n *ngFor=\\\"let data of IssuesLists[process['Process'].ProcessID]['MetricProcess'][process['Process'].ProcessID];let i=index;\\\">\\n <td [@changeTextSize]=currentState\\n style=\\\"padding-left: 2px;word-break: normal;vertical-align: top;\\\">\\n {{i+1}}\\n </td>\\n <td [@changeTextSize]=currentState style=\\\"padding-left: 2px;float: left;\\\">\\n {{data.Description}}\\n </td>\\n\\n </tr>\\n </tbody>\\n </table>\\n\\n\\n </div>\\n\\n </div>\\n </span>\\n\\n </div>\\n\\n\\n\\n <div *ngIf=\\\"expandMap \\\">\\n <span *ngIf=\\\"IssuesLists[process['Process'].ProcessID] && (MapType==='0' ||MapType==='3') \\\">\\n <div [@changeMFDivSize]=currentState style=\\\"width: 100px;margin-top: 2px;\\\"\\n *ngIf=\\\"IssuesLists[process['Process'].ProcessID]['IssueProcess'][process['Process'].ProcessID]\\\"\\n class=\\\"squareIssues\\\">\\n <div>\\n <table>\\n <tbody>\\n <tr>\\n <td style=\\\"word-break:normal;\\\"><strong [@changeTextSize]=currentState>No.</strong></td>\\n <td style=\\\"float: left;\\\">\\n <strong [@changeTextSize]=currentState> Frustrations </strong>\\n </td>\\n </tr>\\n\\n <tr\\n *ngFor=\\\"let data of IssuesLists[process['Process'].ProcessID]['IssueProcess'][process['Process'].ProcessID];let i=index;\\\">\\n <td [@changeTextSize]=currentState\\n style=\\\"padding-left: 2px;word-break: normal;vertical-align: top;\\\">\\n {{i+1}}\\n </td>\\n <td [@changeTextSize]=currentState style=\\\"padding-left: 2px;float: left;\\\">\\n {{data.Subject}}\\n </td>\\n\\n <td style=\\\"height:20px;width:20px;\\\">\\n <span *ngIf=\\\"data.StatusID===1\\\"></span>\\n <span *ngIf=\\\"data.StatusID===2 \\\" class=\\\"circleM\\\"\\n style=\\\"background-color: red;font-size: 7px;\\\"></span>\\n <span *ngIf=\\\"data.StatusID===3 \\\" class=\\\"circleM\\\"\\n style=\\\"background-color: yellow;font-size: 7px;\\\"></span>\\n <span *ngIf=\\\"data.StatusID===4 \\\" class=\\\"circleM\\\"\\n style=\\\"background-color: green;font-size: 7px;\\\"></span>\\n <span *ngIf=\\\"data.StatusID===5 \\\" class=\\\"circleM\\\"\\n style=\\\"background-color: black;font-size: 7px;\\\"></span>\\n </td>\\n </tr>\\n </tbody>\\n </table>\\n\\n\\n </div>\\n\\n </div>\\n </span>\\n\\n </div>\\n\\n <div class=\\\"row multidata\\\"\\n *ngFor=\\\"let Activity of ActiveActivities[process['Process'].ProcessID]; let i=index\\\"\\n style=\\\"margin-top: 5px; width:100px; margin-left: 1px;\\\">\\n\\n <div class=\\\"squareInActvtych multidata\\\" style=\\\"width: 100px;\\\" id=\\\"activity\\\"\\n *ngIf=\\\"Activity.ActivityTypeID==1\\\"\\n (click)=\\\"ChooseMatricOrIssue(process['Process'].ProcessID, Activity.ActivityID,MenuPermissions[menuName][menuID]['C'],IsVersion,MenuPermissions[menuName][menuID]['R'],MenuPermissions[menuName][menuID]['U'] ,MenuPermissions[menuName][menuID]['D'])\\\"\\n [style.pointer-events]=\\\"!(MenuPermissions[menuName][menuID]['C'])\\\"\\n [ngClass]=\\\"{'removeColor':!(MenuPermissions[menuName][menuID]['C']),'AddColor':(MenuPermissions[menuName][menuID]['C'])}\\\">\\n\\n\\n <div class=\\\"dots\\\" [@changeTextSize]=currentState title=\\\"{{Activity.ActivityName}}\\\"\\n style=\\\"word-wrap: break-word;word-break: break-all;white-space: normal;\\\">\\n {{Activity.squence}} {{Activity.ActivityName}} </div>\\n <div *ngIf=\\\"IssuesLists[process['Process'].ProcessID]\\\">\\n <div [@changeActBoxSize]=currentState\\n *ngIf=\\\"IssuesLists[process['Process'].ProcessID]['Issue'][Activity.ActivityID] && (MapType==='0' || MapType==='3')\\\"\\n style=\\\"float: right; margin-top: -2px;\\n margin-left: 1px;\\\" class=\\\"circlelgch frustrationbg\\\"\\n (click)=\\\"getCase(process['Process'], Activity, 1,MenuPermissions[menuName][menuID]['U'] ,MenuPermissions[menuName][menuID]['D']);$event.stopPropagation()\\\">\\n {{IssuesLists[process['Process'].ProcessID]['Issue'][Activity.ActivityID]}}\\n </div>\\n\\n </div>\\n <div *ngIf=\\\"IssuesLists[process['Process'].ProcessID]\\\">\\n <div [@changeActBoxSize]=currentState\\n *ngIf=\\\"IssuesLists[process['Process'].ProcessID]['MetricList'][Activity.ActivityID] &&(MapType==='1' ||MapType==='3')\\\"\\n style=\\\"float: right; margin-top:-2px;margin-left:1px; \\\" class=\\\"circlelgch metricsbg\\\"\\n (click)=\\\"getCase(process['Process'], Activity,2,MenuPermissions[menuName][menuID]['U'] ,MenuPermissions[menuName][menuID]['D']);$event.stopPropagation()\\\">\\n {{IssuesLists[process['Process'].ProcessID]['Metric'][Activity.ActivityID]}}\\n </div>\\n <div *ngIf=\\\"(MapType==='0' || MapType==='1'|| MapType==='2'|| MapType==='3')\\\"\\n style=\\\"margin-left:26px;\\\"></div>\\n </div>\\n <div ([ngModel])=\\\"showMetricAlert[Activity.ActivityID]\\\" *ngIf=\\\"showMetricAlert[Activity.ActivityID]\\\">\\n <div class=\\\"circleI\\\" style=\\\"color: #4aabe7; float: right;\\\"\\n title=\\\"In {{alertMetricValue}} activities no metric exists\\\"\\n *ngIf=\\\"(MapType==='1' || MapType==='3')\\\">\\n <img src=\\\"./assets/images/star-blue.png\\\" [@changeAlertBoxSize]=currentState alt=\\\"bluestar\\\"\\n width=\\\"20px;\\\" style=\\\"margin-left: -33px;\\n margin-top: -2px;\\\" />\\n </div>\\n </div>\\n <div class=\\\"circleI\\\" style=\\\"color:#d55632;float: right; \\\"\\n title=\\\"More than or equal to {{alertValue}} frustrations exists\\\"\\n *ngIf=\\\"alertPTypeID===1 && IssuesLists[process['Process'].ProcessID]['Issue'][Activity.ActivityID] >=alertValue && (MapType==='0' || MapType==='3')\\\">\\n <img src=\\\"./assets/images/star-red.png\\\" alt=\\\"redstar\\\" [@changeAlertBoxSize]=currentState\\n width=\\\"20px;\\\" style=\\\"margin-left: -5px;\\n margin-top: -2px;\\\">\\n </div>\\n\\n <span\\n *ngIf=\\\"IssuesLists[process['Process'].ProcessID]['MetricList'][Activity.ActivityID] >=1 && (MapType==='0' || MapType==='3') ;else templateName\\\">\\n\\n </span>\\n\\n </div>\\n\\n <div class=\\\"squareExActvtych multidata\\\" style=\\\"width: 100px;\\\" id=\\\"activity\\\"\\n *ngIf=\\\"Activity.ActivityTypeID!==1\\\"\\n (click)=\\\"ChooseMatricOrIssue(process['Process'].ProcessID, Activity.ActivityID,MenuPermissions[menuName][menuID]['C'],IsVersion,MenuPermissions[menuName][menuID]['R'],MenuPermissions[menuName][menuID]['U'] ,MenuPermissions[menuName][menuID]['D'])\\\"\\n [style.pointer-events]=\\\"!(MenuPermissions[menuName][menuID]['C'])\\\"\\n [ngClass]=\\\"{'removeColor':!(MenuPermissions[menuName][menuID]['C']),'AddColor':(MenuPermissions[menuName][menuID]['C'])}\\\">\\n\\n\\n <div class=\\\"dots\\\" [@changeTextSize]=currentState title=\\\"{{Activity.ActivityName}}\\\"\\n style=\\\"word-wrap: break-word;word-break: break-all;white-space: normal;\\\">\\n {{Activity.squence}} {{Activity.ActivityName}} </div>\\n <div *ngIf=\\\"IssuesLists[process['Process'].ProcessID]\\\">\\n <div [@changeActBoxSize]=currentState\\n *ngIf=\\\"IssuesLists[process['Process'].ProcessID]['Issue'][Activity.ActivityID] && (MapType==='0' || MapType==='3')\\\"\\n style=\\\"float: right; margin-top: -2px;\\n margin-left: 1px;\\\" class=\\\"circlelgch frustrationbg\\\"\\n (click)=\\\"getCase(process['Process'], Activity, 1,MenuPermissions[menuName][menuID]['U'] ,MenuPermissions[menuName][menuID]['D']);$event.stopPropagation()\\\">\\n {{IssuesLists[process['Process'].ProcessID]['Issue'][Activity.ActivityID]}}\\n </div>\\n\\n </div>\\n <div *ngIf=\\\"IssuesLists[process['Process'].ProcessID]\\\">\\n <div [@changeActBoxSize]=currentState\\n *ngIf=\\\"IssuesLists[process['Process'].ProcessID]['MetricList'][Activity.ActivityID] &&(MapType==='1' ||MapType==='3')\\\"\\n style=\\\"float: right; margin-top:-2px;margin-left:1px; \\\" class=\\\"circlelgch metricsbg\\\"\\n (click)=\\\"getCase(process['Process'], Activity,2,MenuPermissions[menuName][menuID]['U'] ,MenuPermissions[menuName][menuID]['D']);$event.stopPropagation()\\\">\\n {{IssuesLists[process['Process'].ProcessID]['Metric'][Activity.ActivityID]}}\\n </div>\\n <div *ngIf=\\\"(MapType==='0' || MapType==='1'|| MapType==='2'|| MapType==='3')\\\"\\n style=\\\"margin-left:26px;\\\"></div>\\n </div>\\n <div ([ngModel])=\\\"showMetricAlert[Activity.ActivityID]\\\" *ngIf=\\\"showMetricAlert[Activity.ActivityID]\\\">\\n <div class=\\\"circleI\\\" style=\\\"color: #4aabe7; float: right;\\\"\\n title=\\\"In {{alertMetricValue}} activities no metric exists\\\"\\n *ngIf=\\\"(MapType==='1' || MapType==='3')\\\">\\n <img src=\\\"./assets/images/star-blue.png\\\" [@changeAlertBoxSize]=currentState alt=\\\"bluestar\\\"\\n width=\\\"20px;\\\" style=\\\"margin-left: -33px;\\n margin-top: -2px;\\\" />\\n </div>\\n </div>\\n <div class=\\\"circleI\\\" style=\\\"color:#d55632;float: right; \\\"\\n title=\\\"More than or equal to {{alertValue}} frustrations exists\\\"\\n *ngIf=\\\"alertPTypeID===1 && IssuesLists[process['Process'].ProcessID]['Issue'][Activity.ActivityID] >=alertValue && (MapType==='0' || MapType==='3')\\\">\\n <img src=\\\"./assets/images/star-red.png\\\" alt=\\\"redstar\\\" [@changeAlertBoxSize]=currentState\\n width=\\\"20px;\\\" style=\\\"margin-left: -5px;\\n margin-top: -2px;\\\">\\n </div>\\n\\n <span\\n *ngIf=\\\"IssuesLists[process['Process'].ProcessID]['MetricList'][Activity.ActivityID] >=1 && (MapType==='0' || MapType==='3') ;else templateName\\\">\\n\\n </span>\\n\\n\\n\\n </div>\\n\\n <div *ngIf=\\\"expandMap\\\" style=\\\"padding-top:5px;\\\">\\n <span *ngIf=\\\"IssuesLists[process['Process'].ProcessID] && (MapType==='1' ||MapType==='3')\\\">\\n\\n <div [@changeMFDivSize]=currentState style=\\\"width: 100px;margin-top: 0px;\\\"\\n *ngIf=\\\"IssuesLists[process['Process'].ProcessID]['MetricList'][Activity.ActivityID]\\\"\\n class=\\\"squareM\\\">\\n <div>\\n\\n <table>\\n <tbody>\\n <tr>\\n <td style=\\\"word-break:normal;\\\"><strong [@changeTextSize]=currentState>No.</strong></td>\\n <td style=\\\"float: left;\\\">\\n <strong [@changeTextSize]=currentState> Metrics </strong>\\n </td>\\n </tr>\\n\\n <tr\\n *ngFor=\\\"let data of IssuesLists[process['Process'].ProcessID]['MetricList'][Activity.ActivityID];let i=index;\\\">\\n <td [@changeTextSize]=currentState\\n style=\\\"padding-left: 2px;word-break: normal;vertical-align: top;\\\">\\n {{i+1}}\\n </td>\\n <td [@changeTextSize]=currentState style=\\\"padding-left: 2px;float: left;\\\">\\n {{data.Description}}\\n </td>\\n\\n </tr>\\n </tbody>\\n </table>\\n\\n\\n </div>\\n\\n </div>\\n </span>\\n\\n </div>\\n\\n <div *ngIf=\\\"expandMap\\\" style=\\\"padding-top:5px;\\\">\\n <span *ngIf=\\\"IssuesLists[process['Process'].ProcessID] && (MapType==='0' ||MapType==='3')\\\">\\n\\n <div [@changeMFDivSize]=currentState style=\\\"width: 100px;margin-top: 0px;\\\"\\n *ngIf=\\\"IssuesLists[process['Process'].ProcessID]['IssueList'][Activity.ActivityID]\\\"\\n class=\\\"squareIssues\\\">\\n <div>\\n <table>\\n\\n <tbody>\\n <tr>\\n <td style=\\\"word-break:normal;\\\"><strong [@changeTextSize]=currentState>No.</strong></td>\\n <td style=\\\"float: left;\\\">\\n <strong [@changeTextSize]=currentState> Frustrations </strong>\\n </td>\\n </tr>\\n\\n </tbody>\\n\\n <tr\\n *ngFor=\\\"let data of IssuesLists[process['Process'].ProcessID]['IssueList'][Activity.ActivityID];let i=index;\\\">\\n <td [@changeTextSize]=currentState\\n style=\\\"padding-left: 2px;word-break: normal;vertical-align: top;\\\">\\n {{i+1}}\\n </td>\\n <td [@changeTextSize]=currentState style=\\\"padding-left: 2px;float: left;\\\">\\n {{data.Subject}}\\n\\n </td>\\n <td style=\\\"height:20px;width:20px;\\\">\\n <span *ngIf=\\\"data.StatusID===1\\\"></span>\\n <span *ngIf=\\\"data.StatusID===2 \\\" class=\\\"circleM\\\"\\n style=\\\"background-color: red;font-size: 7px;\\\"></span>\\n <span *ngIf=\\\"data.StatusID===3 \\\" class=\\\"circleM\\\"\\n style=\\\"background-color: yellow;font-size: 7px;\\\"></span>\\n <span *ngIf=\\\"data.StatusID===4 \\\" class=\\\"circleM\\\"\\n style=\\\"background-color: green;font-size: 7px;\\\"></span>\\n <span *ngIf=\\\"data.StatusID===5\\\" class=\\\"circleM\\\"\\n style=\\\"background-color: black;font-size: 7px;\\\"></span>\\n </td>\\n </tr>\\n\\n </table>\\n\\n\\n </div>\\n\\n </div>\\n </span>\\n\\n </div>\\n\\n </div>\\n </div>\\n <div></div>\\n </div>\\n </div>\\n\\n\\n\\n <div class=\\\"footer\\\">\\n <label>{{copyRight}}</label>\\n </div>\\n </div>\\n\\n <div class=\\\"row\\\" id=\\\"print-section\\\" style=\\\"display: none;zoom: 90%;\\\">\\n <div class=\\\"row\\\" style=\\\"text-align: center;word-break: break-word;\\\">\\n <div class=\\\"col-sm-6\\\">\\n <strong> {{CompanyName }} - </strong> ProcessMap <br>\\n <span>Date: {{headerDate| date:'MM-dd-yyyy' }}</span><br>\\n <span>MapType: {{typeName}}</span> <br>\\n </div>\\n <div class=\\\"col-sm-6\\\">\\n <span>Team: {{TeamName}}</span><br>\\n <span>Version: {{currentVersion[\\\"VersionName\\\"]}}</span>\\n </div>\\n\\n </div>\\n\\n <div style=\\\"width: 100%;\\\">\\n <ul style=\\\"display: flex;list-style: none;margin: 0;padding: 0;\\\">\\n <li style=\\\"width:80% !important\\\">\\n <div class=\\\"card\\\">\\n <div class=\\\"card-body\\\">\\n <ul style=\\\"display: flex;list-style: none;margin: 0;padding: 0;\\\">\\n <li style=\\\"margin-right: 65px;\\\">\\n <div>\\n <svg xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" width=\\\"15\\\" height=\\\"15\\\"\\n viewBox=\\\"0 0 172 172\\\" style=\\\" fill:#000000;\\\">\\n <g fill=\\\"none\\\" fill-rule=\\\"nonzero\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" stroke-linecap=\\\"butt\\\"\\n stroke-linejoin=\\\"miter\\\" stroke-miterlimit=\\\"10\\\" stroke-dasharray=\\\"\\\" stroke-dashoffset=\\\"0\\\"\\n font-family=\\\"none\\\" font-weight=\\\"none\\\" font-size=\\\"none\\\" text-anchor=\\\"none\\\"\\n style=\\\"mix-blend-mode: normal\\\">\\n <path d=\\\"M0,172v-172h172v172z\\\" fill=\\\"none\\\"></path>\\n <g fill=\\\"#3775b5\\\">\\n <path d=\\\"M0,13.23077v145.53846h172v-145.53846z\\\"></path>\\n </g>\\n </g>\\n </svg>\\n <span class=\\\"labelFont\\\"> Key Process\\n </span>\\n </div>\\n </li>\\n\\n <li>\\n <div>\\n <svg xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" width=\\\"16\\\" height=\\\"16\\\"\\n viewBox=\\\"0 0 172 172\\\" style=\\\" fill:#000000;\\\">\\n <g fill=\\\"none\\\" fill-rule=\\\"nonzero\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" stroke-linecap=\\\"butt\\\"\\n stroke-linejoin=\\\"miter\\\" stroke-miterlimit=\\\"10\\\" stroke-dasharray=\\\"\\\" stroke-dashoffset=\\\"0\\\"\\n font-family=\\\"none\\\" font-weight=\\\"none\\\" font-size=\\\"none\\\" text-anchor=\\\"none\\\"\\n style=\\\"mix-blend-mode: normal\\\">\\n <path d=\\\"M0,172v-172h172v172z\\\" fill=\\\"none\\\"></path>\\n <g fill=\\\"#4aabe7\\\">\\n <path\\n d=\\\"M86,17.2c-37.9948,0 -68.8,30.8052 -68.8,68.8c0,37.9948 30.8052,68.8 68.8,68.8c37.9948,0 68.8,-30.8052 68.8,-68.8c0,-37.9948 -30.8052,-68.8 -68.8,-68.8z\\\">\\n </path>\\n </g>\\n </g>\\n </svg>\\n <span class=\\\"labelFont\\\"> Metric</span>\\n </div>\\n </li>\\n </ul>\\n <ul style=\\\"display: flex;list-style: none;margin: 0;padding: 0;\\\">\\n <li style=\\\"margin-right: 30px;\\\">\\n <div><svg xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" width=\\\"15\\\" height=\\\"15\\\"\\n viewBox=\\\"0 0 172 172\\\" style=\\\" fill:#000000;\\\">\\n <g fill=\\\"none\\\" fill-rule=\\\"nonzero\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" stroke-linecap=\\\"butt\\\"\\n stroke-linejoin=\\\"miter\\\" stroke-miterlimit=\\\"10\\\" stroke-dasharray=\\\"\\\" stroke-dashoffset=\\\"0\\\"\\n font-family=\\\"none\\\" font-weight=\\\"none\\\" font-size=\\\"none\\\" text-anchor=\\\"none\\\"\\n style=\\\"mix-blend-mode: normal\\\">\\n <path d=\\\"M0,172v-172h172v172z\\\" fill=\\\"none\\\"></path>\\n <g fill=\\\"#a3cda2\\\">\\n <path d=\\\"M0,13.23077v145.53846h172v-145.53846z\\\"></path>\\n </g>\\n </g>\\n </svg>\\n <span class=\\\"labelFont\\\"> Activity - External to Process</span>\\n </div>\\n <li>\\n <div>\\n <svg xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" width=\\\"16\\\" height=\\\"16\\\"\\n viewBox=\\\"0 0 172 172\\\" style=\\\" fill:#000000;\\\">\\n <g fill=\\\"none\\\" fill-rule=\\\"nonzero\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" stroke-linecap=\\\"butt\\\"\\n stroke-linejoin=\\\"miter\\\" stroke-miterlimit=\\\"10\\\" stroke-dasharray=\\\"\\\" stroke-dashoffset=\\\"0\\\"\\n font-family=\\\"none\\\" font-weight=\\\"none\\\" font-size=\\\"none\\\" text-anchor=\\\"none\\\"\\n style=\\\"mix-blend-mode: normal\\\">\\n <path d=\\\"M0,172v-172h172v172z\\\" fill=\\\"none\\\"></path>\\n <g fill=\\\"#d55632\\\">\\n <path\\n d=\\\"M86,17.2c-37.9948,0 -68.8,30.8052 -68.8,68.8c0,37.9948 30.8052,68.8 68.8,68.8c37.9948,0 68.8,-30.8052 68.8,-68.8c0,-37.9948 -30.8052,-68.8 -68.8,-68.8z\\\">\\n </path>\\n </g>\\n </g>\\n </svg>\\n <span class=\\\"labelFont\\\"> Frustration / Issue</span>\\n </div>\\n </li>\\n </ul>\\n <ul style=\\\"display: flex;list-style: none;margin: 0;padding: 0;\\\">\\n <li style=\\\"margin-right: 30px;\\\">\\n <div>\\n <svg xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" width=\\\"15\\\" height=\\\"15\\\"\\n viewBox=\\\"0 0 172 172\\\" style=\\\" fill:#000000;\\\">\\n <g fill=\\\"none\\\" fill-rule=\\\"nonzero\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" stroke-linecap=\\\"butt\\\"\\n stroke-linejoin=\\\"miter\\\" stroke-miterlimit=\\\"10\\\" stroke-dasharray=\\\"\\\" stroke-dashoffset=\\\"0\\\"\\n font-family=\\\"none\\\" font-weight=\\\"none\\\" font-size=\\\"none\\\" text-anchor=\\\"none\\\"\\n style=\\\"mix-blend-mode: normal\\\">\\n <path d=\\\"M0,172v-172h172v172z\\\" fill=\\\"none\\\"></path>\\n <g fill=\\\"#e2e3e4\\\">\\n <path d=\\\"M0,13.23077v145.53846h172v-145.53846z\\\"></path>\\n </g>\\n </g>\\n </svg>\\n <span class=\\\"labelFont\\\"> Activity - Internal to Process</span>\\n </div>\\n </li>\\n <li>\\n <div>\\n <svg xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" width=\\\"16\\\" height=\\\"16\\\"\\n viewBox=\\\"0 0 172 172\\\" style=\\\" fill:#000000;\\\">\\n <g fill=\\\"none\\\" fill-rule=\\\"nonzero\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" stroke-linecap=\\\"butt\\\"\\n stroke-linejoin=\\\"miter\\\" stroke-miterlimit=\\\"10\\\" stroke-dasharray=\\\"\\\" stroke-dashoffset=\\\"0\\\"\\n font-family=\\\"none\\\" font-weight=\\\"none\\\" font-size=\\\"none\\\" text-anchor=\\\"none\\\"\\n style=\\\"mix-blend-mode: normal\\\">\\n <path d=\\\"M0,172v-172h172v172z\\\" fill=\\\"none\\\"></path>\\n <g fill=\\\"#d9c25a\\\">\\n <path\\n d=\\\"M86,17.2c-37.9948,0 -68.8,30.8052 -68.8,68.8c0,37.9948 30.8052,68.8 68.8,68.8c37.9948,0 68.8,-30.8052 68.8,-68.8c0,-37.9948 -30.8052,-68.8 -68.8,-68.8z\\\">\\n </path>\\n </g>\\n </g>\\n </svg>\\n <span class=\\\"labelFont\\\"> Sub-Activity Exists</span>\\n </div>\\n </li>\\n </ul>\\n </div>\\n </div>\\n </li> \\n <li style=\\\"width:80% !important\\\">\\n <div class=\\\"card\\\">\\n <div class=\\\"card-body\\\">\\n <ul style=\\\"display: flex;list-style: none;margin: 0;padding: 0;\\\">\\n <li style=\\\"margin-right: 20px;\\\">\\n <div>\\n <svg xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" width=\\\"16\\\" height=\\\"16\\\"\\n viewBox=\\\"0 0 172 172\\\" style=\\\" fill:#000000;\\\">\\n <g fill=\\\"none\\\" fill-rule=\\\"nonzero\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" stroke-linecap=\\\"butt\\\"\\n stroke-linejoin=\\\"miter\\\" stroke-miterlimit=\\\"10\\\" stroke-dasharray=\\\"\\\" stroke-dashoffset=\\\"0\\\"\\n font-family=\\\"none\\\" font-weight=\\\"none\\\" font-size=\\\"none\\\" text-anchor=\\\"none\\\"\\n style=\\\"mix-blend-mode: normal\\\">\\n <path d=\\\"M0,172v-172h172v172z\\\" fill=\\\"none\\\"></path>\\n <g fill=\\\"#00aced\\\">\\n <path\\n d=\\\"M86,128.1185l48.9555,29.54817l-12.99317,-55.685l43.25083,-37.46733l-56.9535,-4.83033l-22.25967,-52.51733l-22.25967,52.51733l-56.9535,4.83033l43.25083,37.46733l-12.99317,55.685z\\\">\\n </path>\\n </g>\\n </g>\\n </svg>\\n <span class=\\\"labelFont\\\"> Alert - Multiple Activities with No Metrics</span>\\n\\n </div>\\n </li>\\n <li style=\\\"margin-bottom: 9px;\\\">\\n <div>\\n <svg xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" width=\\\"16\\\" height=\\\"16\\\"\\n viewBox=\\\"0 0 172 172\\\" style=\\\" fill:#000000;\\\">\\n <g fill=\\\"none\\\" fill-rule=\\\"nonzero\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" stroke-linecap=\\\"butt\\\"\\n stroke-linejoin=\\\"miter\\\" stroke-miterlimit=\\\"10\\\" stroke-dasharray=\\\"\\\" stroke-dashoffset=\\\"0\\\"\\n font-family=\\\"none\\\" font-weight=\\\"none\\\" font-size=\\\"none\\\" text-anchor=\\\"none\\\"\\n style=\\\"mix-blend-mode: normal\\\">\\n <path d=\\\"M0,172v-172h172v172z\\\" fill=\\\"none\\\"></path>\\n <g fill=\\\"#e64b20\\\">\\n <path\\n d=\\\"M86,128.1185l48.9555,29.54817l-12.99317,-55.685l43.25083,-37.46733l-56.9535,-4.83033l-22.25967,-52.51733l-22.25967,52.51733l-56.9535,4.83033l43.25083,37.46733l-12.99317,55.685z\\\">\\n </path>\\n </g>\\n </g>\\n </svg>\\n <span class=\\\"labelFont\\\"> Alert - Multiple Frustrations Clustered</span>\\n </div>\\n </li>\\n </ul>\\n <ul style=\\\"display: flex;list-style: none;margin: 0;padding: 0;\\\">\\n <li style=\\\"margin-right: 35px;\\\">\\n <div>\\n <svg xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" width=\\\"16\\\" height=\\\"16\\\"\\n viewBox=\\\"0 0 172 172\\\" style=\\\" fill:#000000;\\\">\\n <g fill=\\\"none\\\" fill-rule=\\\"nonzero\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" stroke-linecap=\\\"butt\\\"\\n stroke-linejoin=\\\"miter\\\" stroke-miterlimit=\\\"10\\\" stroke-dasharray=\\\"\\\" stroke-dashoffset=\\\"0\\\"\\n font-family=\\\"none\\\" font-weight=\\\"none\\\" font-size=\\\"none\\\" text-anchor=\\\"none\\\"\\n style=\\\"mix-blend-mode: normal\\\">\\n <path d=\\\"M0,172v-172h172v172z\\\" fill=\\\"none\\\"></path>\\n <g>\\n <path\\n d=\\\"M13.7987,152.65c-2.6531,0 -5.0267,-1.3717 -6.3511,-3.6679c-1.3287,-2.2962 -1.3287,-5.0396 0,-7.3358l72.2013,-125.0569c1.3244,-2.2962 3.698,-3.6679 6.3511,-3.6679c2.6531,0 5.0267,1.3717 6.3511,3.6679l72.2013,125.0569c1.3287,2.2962 1.3287,5.0353 0,7.3358c-1.3244,2.2962 -3.698,3.6679 -6.3511,3.6679z\\\"\\n fill=\\\"#00aced\\\"></path>\\n <path\\n d=\\\"M86,15.0758c0.8987,0 3.139,0.2537 4.4892,2.5929l72.2013,125.0569c1.3502,2.3392 0.4515,4.4075 0,5.1858c-0.4515,0.774 -1.7888,2.5886 -4.4892,2.5886h-144.4026c-2.7004,0 -4.042,-1.8146 -4.4892,-2.5929c-0.4515,-0.7783 -1.3502,-2.8466 0,-5.1858l72.2013,-125.0526c1.3502,-2.3435 3.5905,-2.5929 4.4892,-2.5929M86,10.7758c-3.1949,0 -6.3898,1.5824 -8.213,4.7429l-72.2013,125.0526c-3.6507,6.3253 0.9116,14.2287 8.213,14.2287h144.4026c7.3014,0 11.8637,-7.9034 8.213,-14.2287l-72.2013,-125.0526c-1.8232,-3.1648 -5.0181,-4.7429 -8.213,-4.7429z\\\"\\n fill=\\\"#00aced\\\"></path>\\n <path\\n d=\\\"M86,118.3274c-4.0277,0 -7.2928,3.2651 -7.2928,7.2928c0,4.0277 3.2651,7.2928 7.2928,7.2928c4.0277,0 7.2928,-3.2651 7.2928,-7.2928c0,-4.0277 -3.2651,-7.2928 -7.2928,-7.2928zM80.1649,55.5947h11.6702v52.5202h-11.6702z\\\"\\n fill=\\\"#ffffff\\\"></path>\\n </g>\\n </g>\\n </svg>\\n <span class=\\\"labelFont\\\"> Alert - Key Process: No Metrics \\n </span>\\n </div>\\n </li>\\n <li style=\\\"margin-bottom: 9px;\\\">\\n <div>\\n <svg xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" width=\\\"16\\\" height=\\\"16\\\"\\n viewBox=\\\"0 0 172 172\\\" style=\\\" fill:#000000;\\\">\\n <g fill=\\\"none\\\" fill-rule=\\\"nonzero\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" stroke-linecap=\\\"butt\\\"\\n stroke-linejoin=\\\"miter\\\" stroke-miterlimit=\\\"10\\\" stroke-dasharray=\\\"\\\" stroke-dashoffset=\\\"0\\\"\\n font-family=\\\"none\\\" font-weight=\\\"none\\\" font-size=\\\"none\\\" text-anchor=\\\"none\\\"\\n style=\\\"mix-blend-mode: normal\\\">\\n <path d=\\\"M0,172v-172h172v172z\\\" fill=\\\"none\\\"></path>\\n <g>\\n <path\\n d=\\\"M13.7987,152.65c-2.6531,0 -5.0267,-1.3717 -6.3511,-3.6679c-1.3287,-2.2962 -1.3287,-5.0396 0,-7.3358l72.2013,-125.0569c1.3244,-2.2962 3.698,-3.6679 6.3511,-3.6679c2.6531,0 5.0267,1.3717 6.3511,3.6679l72.2013,125.0569c1.3287,2.2962 1.3287,5.0353 0,7.3358c-1.3244,2.2962 -3.698,3.6679 -6.3511,3.6679z\\\"\\n fill=\\\"#e64b20\\\"></path>\\n <path\\n d=\\\"M86,15.0758c0.8987,0 3.139,0.2537 4.4892,2.5929l72.2013,125.0569c1.3502,2.3392 0.4515,4.4075 0,5.1858c-0.4515,0.774 -1.7888,2.5886 -4.4892,2.5886h-144.4026c-2.7004,0 -4.042,-1.8146 -4.4892,-2.5929c-0.4515,-0.7783 -1.3502,-2.8466 0,-5.1858l72.2013,-125.0526c1.3502,-2.3435 3.5905,-2.5929 4.4892,-2.5929M86,10.7758c-3.1949,0 -6.3898,1.5824 -8.213,4.7429l-72.2013,125.0526c-3.6507,6.3253 0.9116,14.2287 8.213,14.2287h144.4026c7.3014,0 11.8637,-7.9034 8.213,-14.2287l-72.2013,-125.0526c-1.8232,-3.1648 -5.0181,-4.7429 -8.213,-4.7429z\\\"\\n fill=\\\"#e64b20\\\"></path>\\n <path\\n d=\\\"M86,118.3274c-4.0277,0 -7.2928,3.2651 -7.2928,7.2928c0,4.0277 3.2651,7.2928 7.2928,7.2928c4.0277,0 7.2928,-3.2651 7.2928,-7.2928c0,-4.0277 -3.2651,-7.2928 -7.2928,-7.2928zM80.1649,55.5947h11.6702v52.5202h-11.6702z\\\"\\n fill=\\\"#ffffff\\\"></path>\\n </g>\\n </g>\\n </svg>\\n <span class=\\\"labelFont\\\"> Alert - Key Process: No Frustrations</span>\\n\\n </div>\\n </li>\\n </ul>\\n\\n\\n\\n\\n\\n\\n\\n\\n </div>\\n </div>\\n </li>\\n </ul>\\n\\n </div>\\n\\n\\n <!-- <div class=\\\"col-sm-12 form-inline\\\" style=\\\"margin: 0.5% 0%;padding: 0;\\\" >\\n <div class=\\\"col-sm-4 cardCustom form-inline\\\">\\n <div class=\\\"col-sm-6\\\">\\n <div class=\\\"form-group form-inline\\\" style=\\\"padding: 5px;\\\">\\n <span class=\\\"squre\\\" style=\\\"background-color: #3775b5; box-shadow: 0px 3px 3px 0px #265382;\\\"> </span>\\n <label class=\\\"labelFont\\\" > Key Process</label>\\n </div>\\n <div class=\\\"form-group form-inline\\\" style=\\\"padding: 5px;\\\">\\n <span class=\\\"squre\\\" style=\\\"background-color: #a3cda2;\\\"> </span>\\n <label class=\\\"labelFont\\\" > Activity - External to Process</label>\\n </div>\\n <div class=\\\"form-group form-inline\\\" style=\\\"padding: 5px;\\\">\\n <span class=\\\"squre\\\" style=\\\"background-color: #e2e3e4;\\\"> </span>\\n <label class=\\\"labelFont\\\" > Activity - Internal to Process</label>\\n </div>\\n </div>\\n <div class=\\\"col-sm-6\\\">\\n <div class=\\\"form-group form-inline\\\" style=\\\"padding: 5px;\\\">\\n <span class=\\\"circle metricsbg\\\"> </span>\\n <label class=\\\"labelFont\\\" > Metric</label>\\n </div>\\n <div class=\\\"form-group form-inline\\\" style=\\\"padding: 5px;\\\">\\n <span class=\\\"circle frustrationbg\\\" > </span>\\n <label class=\\\"labelFont\\\" > Frustration / Issue</label>\\n </div>\\n\\n <div class=\\\"form-group form-inline\\\" style=\\\"padding: 5px;\\\">\\n <span class=\\\"circle\\\" style=\\\"background-color: #d9c25a;\\\"> </span>\\n <label class=\\\"labelFont\\\" > Sub-Activity Exists</label>\\n </div>\\n </div>\\n </div>\\n <div class=\\\"col-sm-2\\\" style=\\\"text-align: center;\\\">\\n\\n </div>\\n <div class=\\\"col-sm-5 cardCustom form-inline offset-1\\\" style=\\\"height: 60px;\\\">\\n <div class=\\\"col-sm-6\\\">\\n <div class=\\\"form-group form-inline\\\" >\\n <span class=\\\"circleI\\\" style=\\\"color: #4aabe7;\\\">\\n <img src=\\\"./assets/images/star-blue.png\\\" alt=\\\"bluestar\\\" width=\\\"13px;\\\"/>\\n </span>\\n <label class=\\\"labelFont\\\" > Alert - Multiple Activities with No Metrics</label>\\n </div>\\n <div class=\\\"form-group form-inline\\\" >\\n <span class=\\\"circleI\\\" style=\\\"color: #4aabe7;\\\">\\n <img src=\\\"./assets/images/triangle-blue.png\\\" alt=\\\"bluetriangle\\\" width=\\\"11px;\\\"/>\\n </span>\\n <label class=\\\"labelFont\\\" > Alert - Key Process: No Metrics</label>\\n </div>\\n </div>\\n <div class=\\\"col-sm-6\\\">\\n <div class=\\\"form-group form-inline\\\" >\\n <span class=\\\"circleI\\\" style=\\\"color: #d55632;\\\">\\n <img src=\\\"./assets/images/star-red.png\\\" alt=\\\"redstar\\\" width=\\\"13px;\\\"/>\\n </span>\\n <label class=\\\"labelFont\\\" > Alert - Multiple Frustrations Clustered</label>\\n </div>\\n <div class=\\\"form-group form-inline\\\" >\\n <span class=\\\"circleI\\\" style=\\\"color: #d55632;\\\">\\n <img src=\\\"./assets/images/triangle-red.png\\\" alt=\\\"redtriangle\\\" width=\\\"11px;\\\"/>\\n </span>\\n <label class=\\\"labelFont\\\" > Alert - Key Process: No Frustrations</label>\\n </div>\\n </div>\\n </div>\\n\\n </div> -->\\n <style>\\n @media print {\\n .testq {\\n page-break-inside: avoid !important;\\n }\\n\\n .multidata {\\n display: block !important;\\n page-break-inside: avoid !important;\\n }\\n\\n .testq {\\n page-break-after: always !important;\\n }\\n\\n .testq:last-child {\\n page-break-after: avoid !important;\\n }\\n\\n .donotprintthis {\\n display: none;\\n\\n }\\n }\\n </style>\\n\\n\\n\\n <div class=\\\"\\\">\\n <div class=\\\"row \\\">\\n <div class=\\\"multidata\\\" *ngFor=\\\"let process of ProcessFinalList\\\"\\n style=\\\"margin-bottom:2%;padding-right: 0%;margin-left:2%\\\">\\n <div class=\\\"testq multidata\\\" style=\\\"margin:5% 0% !important;\\\">\\n <div class=\\\"col-sm-12 square multidata \\\" style=\\\"padding:2px 3px 31px 1px;width: 300px;height: 100px;\\\"\\n [style.pointer-events]=\\\"!(MenuPermissions[menuName][menuID]['C'])\\\"\\n [ngClass]=\\\"{'removeColor':!(MenuPermissions[menuName][menuID]['C']),'AddColor':(MenuPermissions[menuName][menuID]['C'])}\\\">\\n <span *ngIf=\\\"process['Process'].TeamID===0\\\" class=\\\"circle\\\"\\n style=\\\"margin-bottom: 20px !important;background-color: #d9c25a;border: 1px solid white;float: left;\\\"\\n title=\\\"No team associated with this process\\\"> </span>\\n <span class=\\\" \\\" style=\\\"margin-bottom: 20px !important;float: left; color:#4aabe7;\\\"\\n title=\\\"No metric associated with this process\\\"\\n *ngIf=\\\"!IssuesLists[process['Process'].ProcessID].MetricCount && !IssuesLists[process['Process'].ProcessID].pMetricCount && !IssuesLists[process['Process'].ProcessID].SubMetricCount && (MapType==='1' ||MapType==='3')\\\"> \\n <img src=\\\"./assets/images/triangle-blue.png\\\" alt=\\\"bluetriangle\\\"\\n style=\\\"width: 13px;margin-bottom: 20px !important;\\\" /></span>\\n <span class=\\\" \\\" style=\\\"float: left; color: #d55632;\\\"\\n title=\\\"No frustrations assosiated with this process\\\"\\n *ngIf=\\\"!IssuesLists[process['Process'].ProcessID].IssueCount && !IssuesLists[process['Process'].ProcessID].pIssueCount && !IssuesLists[process['Process'].ProcessID].SubIssueCount && (MapType==='0' ||MapType==='3')\\\"> \\n <img src=\\\"./assets/images/triangle-red.png\\\" alt=\\\"redtriangle\\\"\\n style=\\\"width: 13px;margin-bottom: 20px !important;\\\" /></span>\\n\\n <span style=\\\"float: left;margin-left:3px;\\\" class=\\\"circleS\\\" title=\\\"Sub activity exits\\\"\\n *ngIf=\\\" IssuesLists[process['Process'].ProcessID] && IssuesLists[process['Process'].ProcessID].SubActivity!=0 && IssuesLists[process['Process'].ProcessID].SubActivity!=undefined\\\">\\n </span>\\n <hr style=\\\"background-color: #265382;margin-top: 17px;\\\">\\n <div class=\\\"row multidata\\\">\\n <div class=\\\"col-sm-12 multidata \\\">\\n <div class=\\\"col-sm-10 offset-1 multidata\\\" style=\\\"height: 18px; margin-top: 8px;\\\">\\n <span class=\\\"dots squareLabel multidata\\\"\\n style=\\\"word-wrap: break-word;word-break: break-all;white-space: normal;\\\"\\n title=\\\"{{process['Process'].ProcessName}}\\\"> \\n {{process['Process'].ProcessName}} \\n </span>\\n </div>\\n </div>\\n </div>\\n <div>\\n <span\\n *ngIf=\\\"IssuesLists[process['Process'].ProcessID] && IssuesLists[process['Process'].ProcessID]['pMetricCount'] && (MapType==='1' ||MapType==='3')\\\"\\n class=\\\"squareKPI2\\\" style=\\\" float:right; margin-left:3px;\\\"\\n (click)=\\\"getCase(process['Process'], 0,2,MenuPermissions[menuName][menuID]['U'] ,MenuPermissions[menuName][menuID]['D']);$event.stopPropagation()\\\">\\n {{IssuesLists[process['Process'].ProcessID]['pMetricCount']}}\\n </span>\\n <span\\n *ngIf=\\\"IssuesLists[process['Process'].ProcessID] && IssuesLists[process['Process'].ProcessID]['pIssueCount'] && (MapType==='0' || MapType==='3')\\\"\\n (click)=\\\"getCase(process['Process'], 0, 1,MenuPermissions[menuName][menuID]['U'] ,MenuPermissions[menuName][menuID]['D']);$event.stopPropagation()\\\"\\n class=\\\"squareIssue1\\\" style=\\\"float:right;\\\">\\n {{IssuesLists[process['Process'].ProcessID]['pIssueCount']}}\\n </span>\\n </div>\\n\\n\\n\\n </div>\\n <div *ngIf=\\\"expandMap \\\">\\n <span\\n *ngIf=\\\"IssuesLists[process['Process'].ProcessID]['MetricProcess'] && (MapType==='1' ||MapType==='3')\\\">\\n <div\\n *ngIf=\\\"IssuesLists[process['Process'].ProcessID]['MetricProcess'][process['Process'].ProcessID]\\\"\\n class=\\\"squareM\\\" style=\\\"width: 300px;\\\">\\n <div>\\n <table>\\n <tbody>\\n <tr>\\n <td style=\\\"word-break:normal;\\\"><strong>No.</strong></td>\\n <td style=\\\"float: left;\\\">\\n <strong> Metrics </strong>\\n </td>\\n </tr>\\n\\n <tr\\n *ngFor=\\\"let data of IssuesLists[process['Process'].ProcessID]['MetricProcess'][process['Process'].ProcessID];let i=index;\\\">\\n <td style=\\\"padding-left: 2px;word-break: normal;vertical-align: top;\\\">\\n {{i+1}}\\n </td>\\n <td style=\\\"padding-left: 2px;float: left;\\\">\\n {{data.Description}}\\n </td>\\n\\n </tr>\\n </tbody>\\n </table>\\n\\n\\n </div>\\n\\n </div>\\n </span>\\n\\n </div>\\n\\n\\n\\n <div *ngIf=\\\"expandMap \\\">\\n <span *ngIf=\\\"IssuesLists[process['Process'].ProcessID] && (MapType==='0' ||MapType==='3') \\\">\\n <div *ngIf=\\\"IssuesLists[process['Process'].ProcessID]['IssueProcess'][process['Process'].ProcessID]\\\"\\n class=\\\"squareIssues\\\" style=\\\"width: 300px;\\\">\\n <div>\\n <table>\\n <tbody>\\n <tr>\\n <td style=\\\"word-break:normal;\\\"><strong>No.</strong></td>\\n <td style=\\\"float: left;\\\">\\n <strong> Frustrations </strong>\\n </td>\\n </tr>\\n\\n <tr\\n *ngFor=\\\"let data of IssuesLists[process['Process'].ProcessID]['IssueProcess'][process['Process'].ProcessID];let i=index;\\\">\\n <td style=\\\"padding-left: 2px;word-break: normal;vertical-align: top;\\\">\\n {{i+1}}\\n </td>\\n <td style=\\\"padding-left: 2px;float: left;\\\">\\n {{data.Subject}}\\n </td>\\n\\n <td style=\\\"height:20px;width:20px;\\\">\\n <span *ngIf=\\\"data.StatusID===1\\\"></span>\\n <span *ngIf=\\\"data.StatusID===2 \\\" class=\\\"circleM\\\" style=\\\"background-color: red;\\\"></span>\\n <span *ngIf=\\\"data.StatusID===3 \\\" class=\\\"circleM\\\"\\n style=\\\"background-color: yellow;\\\"></span>\\n <span *ngIf=\\\"data.StatusID===4 \\\" class=\\\"circleM\\\"\\n style=\\\"background-color: green;\\\"></span>\\n <span *ngIf=\\\"data.StatusID===5 \\\" class=\\\"circleM\\\"\\n style=\\\"background-color: black;\\\"></span>\\n </td>\\n </tr>\\n </tbody>\\n </table>\\n\\n\\n </div>\\n\\n </div>\\n </span>\\n\\n </div>\\n\\n <!---------------activity -pprint wrk-->\\n <div class=\\\"multidata\\\"\\n *ngFor=\\\"let Activity of ActiveActivities[process['Process'].ProcessID]; let i=index\\\"\\n style=\\\"margin-top: 15px; \\\">\\n\\n <div class=\\\"squareInActvty multidata \\\" id=\\\"activity\\\" *ngIf=\\\"Activity.ActivityTypeID==1\\\"\\n (click)=\\\"ChooseMatricOrIssue(process['Process'].ProcessID, Activity.ActivityID,MenuPermissions[menuName][menuID]['C'],IsVersion,MenuPermissions[menuName][menuID]['R'],MenuPermissions[menuName][menuID]['U'] ,MenuPermissions[menuName][menuID]['D'])\\\"\\n [style.pointer-events]=\\\"!(MenuPermissions[menuName][menuID]['C'])\\\"\\n [ngClass]=\\\"{'removeColor':!(MenuPermissions[menuName][menuID]['C']),'AddColor':(MenuPermissions[menuName][menuID]['C'])}\\\">\\n <div class=\\\"actAlign\\\">\\n <span class=\\\"dots\\\" style=\\\"word-wrap: break-word;word-break: break-all;white-space: normal;\\\"\\n title=\\\"{{Activity.ActivityName}}\\\">\\n <b> {{Activity.squence}}. {{Activity.ActivityName}} </b>\\n </span>\\n\\n\\n <span *ngIf=\\\"IssuesLists[process['Process'].ProcessID]\\\">\\n <span\\n *ngIf=\\\"IssuesLists[process['Process'].ProcessID]['MetricList'][Activity.ActivityID] &&(MapType==='1' ||MapType==='3')\\\"\\n style=\\\"float: right;\\\" class=\\\"circlelg metricsbg\\\"\\n (click)=\\\"getCase(process['Process'], Activity,2,MenuPermissions[menuName][menuID]['U'] ,MenuPermissions[menuName][menuID]['D']);$event.stopPropagation()\\\">\\n {{IssuesLists[process['Process'].ProcessID]['Metric'][Activity.ActivityID]}}\\n </span>\\n <!-- <div *ngIf=\\\"(MapType==='0' || MapType==='1'|| MapType==='2'|| MapType==='3')\\\"\\n style=\\\"margin-left:26px;\\\"></div> -->\\n </span>\\n <span *ngIf=\\\"IssuesLists[process['Process'].ProcessID]\\\">\\n <span\\n *ngIf=\\\"IssuesLists[process['Process'].ProcessID]['Issue'][Activity.ActivityID] && (MapType==='0' || MapType==='3')\\\"\\n style=\\\"float: right;\\\" class=\\\"circlelg frustrationbg\\\"\\n (click)=\\\"getCase(process['Process'], Activity, 1,MenuPermissions[menuName][menuID]['U'] ,MenuPermissions[menuName][menuID]['D']);$event.stopPropagation()\\\">\\n {{IssuesLists[process['Process'].ProcessID]['Issue'][Activity.ActivityID]}}\\n </span>\\n\\n </span>\\n <span ([ngModel])=\\\"showMetricAlert[Activity.ActivityID]\\\"\\n *ngIf=\\\"showMetricAlert[Activity.ActivityID]\\\">\\n <span class=\\\"circleI\\\" style=\\\"color: #4aabe7; float: right;\\\"\\n title=\\\"In {{alertMetricValue}} activities no metric exists\\\"\\n *ngIf=\\\"(MapType==='1' || MapType==='3')\\\">\\n <img src=\\\"./assets/images/star-blue.png\\\" alt=\\\"bluestar\\\" width=\\\"20px;\\\"\\n style=\\\"margin-left:-4px;\\\" />\\n </span>\\n </span>\\n\\n <span class=\\\"circleI\\\" style=\\\"color:#d55632;float: right; \\\"\\n title=\\\"More than or equal to {{alertValue}} frustrations exists\\\"\\n *ngIf=\\\"alertPTypeID===1 && IssuesLists[process['Process'].ProcessID]['Issue'][Activity.ActivityID] >=alertValue && (MapType==='0' || MapType==='3')\\\">\\n <img src=\\\"./assets/images/star-red.png\\\" alt=\\\"redstar\\\" style=\\\"margin-left:-11px;width:20px;\\\">\\n </span>\\n <span\\n *ngIf=\\\"IssuesLists[process['Process'].ProcessID]['MetricList'][Activity.ActivityID] >=1 && (MapType==='0' || MapType==='3') ;else templateName\\\">\\n </span>\\n </div>\\n </div>\\n <div class=\\\"squareExActvty multidata\\\" *ngIf=\\\"Activity.ActivityTypeID!=1\\\"\\n (click)=\\\"ChooseMatricOrIssue(process['Process'].ProcessID, Activity.ActivityID,MenuPermissions[menuName][menuID]['C'],IsVersion,MenuPermissions[menuName][menuID]['R'] , MenuPermissions[menuName][menuID]['U'] ,MenuPermissions[menuName][menuID]['D'])\\\"\\n [style.pointer-events]=\\\"!(MenuPermissions[menuName][menuID]['C'])\\\"\\n [ngClass]=\\\"{'removeColor':!(MenuPermissions[menuName][menuID]['C']),'AddColor':(MenuPermissions[menuName][menuID]['C'])}\\\">\\n <div class=\\\"actAlign\\\">\\n <span class=\\\"dots\\\" style=\\\"word-wrap: break-word;word-break: break-all;white-space: normal;\\\"\\n title=\\\"{{Activity.ActivityName}}\\\">\\n <b>{{Activity.squence}}. {{Activity.ActivityName}}</b>\\n </span>\\n <span *ngIf=\\\"IssuesLists[process['Process'].ProcessID]\\\">\\n <span\\n *ngIf=\\\"IssuesLists[process['Process'].ProcessID]['MetricList'][Activity.ActivityID] &&(MapType==='1' ||MapType==='3')\\\"\\n style=\\\"float: right;\\\" class=\\\"circlelg metricsbg\\\"\\n (click)=\\\"getCase(process['Process'], Activity,2,MenuPermissions[menuName][menuID]['U'] ,MenuPermissions[menuName][menuID]['D']);$event.stopPropagation()\\\">\\n {{IssuesLists[process['Process'].ProcessID]['Metric'][Activity.ActivityID]}}\\n </span>\\n <!-- <div *ngIf=\\\"(MapType==='0' || MapType==='1'|| MapType==='2'|| MapType==='3')\\\"\\n style=\\\"margin-left:26px;\\\"></div> -->\\n </span>\\n <span *ngIf=\\\"IssuesLists[process['Process'].ProcessID]\\\">\\n <span\\n *ngIf=\\\"IssuesLists[process['Process'].ProcessID]['Issue'][Activity.ActivityID] && (MapType==='0' || MapType==='3')\\\"\\n style=\\\"float: right;\\\" class=\\\"circlelg frustrationbg\\\"\\n (click)=\\\"getCase(process['Process'], Activity, 1,MenuPermissions[menuName][menuID]['U'] ,MenuPermissions[menuName][menuID]['D']);$event.stopPropagation()\\\">\\n {{IssuesLists[process['Process'].ProcessID]['Issue'][Activity.ActivityID]}}\\n </span>\\n </span>\\n <span ([ngModel])=\\\"showMetricAlert[Activity.ActivityID]\\\"\\n *ngIf=\\\"showMetricAlert[Activity.ActivityID]\\\">\\n <span class=\\\"circleI\\\" style=\\\"color: #4aabe7;float: right;\\\"\\n title=\\\"In {{alertMetricValue}} activities no metric exists\\\"\\n *ngIf=\\\"(MapType==='1' || MapType==='3')\\\">\\n <img src=\\\"./assets/images/star-blue.png\\\" alt=\\\"bluestar\\\" width=\\\"20px;\\\"\\n style=\\\"margin-left:-4px;\\\" />\\n </span>\\n </span> \\n <span class=\\\"circleI\\\" style=\\\"color:#d55632;float: right;\\\"\\n title=\\\"More than or equal to {{alertValue}} frustrations exists\\\"\\n *ngIf=\\\"alertPTypeID===1 && IssuesLists[process['Process'].ProcessID]['Issue'][Activity.ActivityID] >=alertValue && (MapType==='0' || MapType==='3')\\\">\\n <img src=\\\"./assets/images/star-red.png\\\" alt=\\\"redstar\\\" width=\\\"20px;\\\" style=\\\"margin-left:-11px;\\\">\\n </span>\\n </div>\\n </div>\\n <div *ngIf=\\\"expandMap\\\">\\n <span *ngIf=\\\"IssuesLists[process['Process'].ProcessID] && (MapType==='0' ||MapType==='3')\\\">\\n\\n <div *ngIf=\\\"IssuesLists[process['Process'].ProcessID]['IssueList'][Activity.ActivityID]\\\"\\n class=\\\"squareIssues\\\">\\n <div>\\n <table>\\n\\n <tbody>\\n <tr>\\n <td style=\\\"word-break:normal;\\\"><strong>No.</strong></td>\\n <td style=\\\"float: left;\\\">\\n <strong> Frustrations </strong>\\n </td>\\n </tr>\\n\\n </tbody>\\n\\n <tr\\n *ngFor=\\\"let data of IssuesLists[process['Process'].ProcessID]['IssueList'][Activity.ActivityID];let i=index;\\\">\\n <td style=\\\"padding-left: 2px;word-break: normal;vertical-align: top;\\\">\\n {{i+1}}\\n </td>\\n <td style=\\\"padding-left: 2px;float: left;\\\">\\n {{data.Subject}}\\n\\n </td>\\n <td style=\\\"height:20px;width:20px;\\\">\\n <span *ngIf=\\\"data.StatusID===1\\\"></span>\\n <span *ngIf=\\\"data.StatusID===2 \\\" class=\\\"circleM\\\" style=\\\"background-color: red;\\\"></span>\\n <span *ngIf=\\\"data.StatusID===3 \\\" class=\\\"circleM\\\"\\n style=\\\"background-color: yellow;\\\"></span>\\n <span *ngIf=\\\"data.StatusID===4 \\\" class=\\\"circleM\\\"\\n style=\\\"background-color: green;\\\"></span>\\n <span *ngIf=\\\"data.StatusID===5\\\" class=\\\"circleM\\\" style=\\\"background-color: black;\\\"></span>\\n </td>\\n </tr>\\n\\n </table>\\n\\n\\n </div>\\n\\n </div>\\n </span>\\n <span *ngIf=\\\"IssuesLists[process['Process'].ProcessID] && (MapType==='1' ||MapType==='3')\\\">\\n\\n <div *ngIf=\\\"IssuesLists[process['Process'].ProcessID]['MetricList'][Activity.ActivityID]\\\"\\n class=\\\"squareM\\\">\\n <div>\\n\\n <table>\\n <tbody>\\n <tr>\\n <td style=\\\"word-break:normal;\\\"><strong>No.</strong> </td>\\n <td style=\\\"float: left;\\\">\\n <strong> Metrics </strong>\\n </td>\\n </tr>\\n\\n <tr\\n *ngFor=\\\"let data of IssuesLists[process['Process'].ProcessID]['MetricList'][Activity.ActivityID];let i=index;\\\">\\n <td style=\\\"padding-left: 2px;word-break: normal;vertical-align: top;\\\">\\n {{i+1}}\\n </td>\\n <td style=\\\"padding-left: 2px;float: left;\\\">\\n {{data.Description}}\\n </td>\\n\\n </tr>\\n </tbody>\\n </table>\\n\\n\\n </div>\\n\\n </div>\\n </span>\\n </div>\\n </div>\\n </div>\\n <div>\\n </div>\\n </div>\\n </div>\\n </div>\\n\\n\\n\\n\\n <div class=\\\"footer\\\">\\n <label>{{copyRight}}</label>\\n </div>\\n\\n\\n\\n\\n </div>\\n </div>\\n </div>\\n <br>\\n <br>\\n\\n <div class=\\\"donotprintthis\\\">\\n <!--\\n <div class=\\\"row\\\" style=\\\"padding: 0% 14px 0% 14px;\\\">\\n <div class=\\\"col-md-5\\\">\\n <div class=\\\"card\\\" style=\\\"width: 380px;\\\">\\n <div class=\\\"card-block\\\">\\n <div class=\\\"row\\\">\\n <div class=\\\"col-md-6 \\\">\\n <ul>\\n <li> <div class=\\\"form-group form-inline\\\" style=\\\"padding: 5px;cursor: pointer;\\\" matTooltip=\\\"Key Process\\\">\\n <span class=\\\"squre\\\" style=\\\"background-color: #3775b5; box-shadow: 0px 3px 3px 0px #265382;\\\"> </span>\\n <label class=\\\"labelFont alignment\\\" > Key Process</label>\\n </div></li>\\n <li> <div class=\\\"form-group form-inline\\\" style=\\\"padding: 5px;cursor: pointer;\\\" matTooltip=\\\"Activity - External to Process\\\">\\n <span class=\\\"squre\\\" style=\\\"background-color: #a3cda2;\\\"> </span>\\n <label class=\\\"labelFont alignment \\\" > Activity - External to Process</label>\\n </div></li>\\n <li> <div class=\\\"form-group form-inline\\\" style=\\\"padding: 5px;cursor: pointer;\\\" matTooltip=\\\"Activity - Internal to Process\\\">\\n <span class=\\\"squre\\\" style=\\\"background-color: #e2e3e4;\\\"> </span>\\n <label class=\\\"labelFont alignment\\\" > Activity - Internal to Process</label>\\n </div></li>\\n </ul>\\n\\n\\n\\n </div>\\n <div class=\\\"col-md-6 \\\">\\n <ul>\\n <li>test</li>\\n <li>test</li>\\n <li>test</li>\\n </ul>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n <div class=\\\"col-md-2\\\">\\ntetsing my project\\n </div>\\n\\n <div class=\\\"col-md-5\\\">\\n <div class=\\\"card\\\" style=\\\"width: 380px;\\\">\\n <div class=\\\"card-block\\\">\\n <div class=\\\"row\\\">\\n <div class=\\\"col-md-6 \\\">\\n <ul>\\n <li>test</li>\\n <li>test</li>\\n </ul>\\n </div>\\n <div class=\\\"col-md-6 \\\">\\n <ul>\\n <li>test</li>\\n <li>test</li>\\n </ul>\\n </div>\\n </div> </div>\\n </div>\\n </div>\\n </div>\\n -->\\n <br>\\n <div class=\\\"col-sm-12 form-inline\\\">\\n\\n <div class=\\\"col-sm-4 cardCustom form-inline mb_la\\\" style=\\\"padding: 0; max-width: 30% \\\" id=\\\"moblgd\\\">\\n <div class=\\\"col-sm-6\\\" style=\\\"padding: 0;\\\">\\n <div class=\\\"form-group form-inline mb_view1\\\" style=\\\" margin-bottom: 4px;\\n margin-top: 5px; padding: 0px 0px 0px 3px;cursor: pointer;\\\" matTooltip=\\\"Key process\\\">\\n <span class=\\\"squre\\\" style=\\\"width:15px;background-color: #3775b5;\\n box-shadow: 0px 3px 3px 0px #265382;\\\"> </span><label class=\\\"labelFont alignment\\\"> \\n Key Process</label>\\n </div>\\n <div class=\\\"form-group form-inline\\\" style=\\\" padding: 0px 0px 0px 3px;cursor: pointer;\\\"\\n matTooltip=\\\"Activity - external to process\\\">\\n <ul style=\\\"list-style: none;padding:0;margin: 0;\\\">\\n <li><svg xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" width=\\\"15\\\" height=\\\"15\\\" viewBox=\\\"0 0 172 172\\\"\\n style=\\\" fill:#000000;\\\">\\n <g fill=\\\"none\\\" fill-rule=\\\"nonzero\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" stroke-linecap=\\\"butt\\\"\\n stroke-linejoin=\\\"miter\\\" stroke-miterlimit=\\\"10\\\" stroke-dasharray=\\\"\\\" stroke-dashoffset=\\\"0\\\"\\n font-family=\\\"none\\\" font-weight=\\\"none\\\" font-size=\\\"none\\\" text-anchor=\\\"none\\\"\\n style=\\\"mix-blend-mode: normal\\\">\\n <path d=\\\"M0,172v-172h172v172z\\\" fill=\\\"none\\\"></path>\\n <g fill=\\\"#a3cda2\\\">\\n <path d=\\\"M0,13.23077v145.53846h172v-145.53846z\\\"></path>\\n </g>\\n </g>\\n </svg>\\n <span class=\\\"labelFont alignment \\\"> Activity - External to Process</span>\\n </li>\\n </ul>\\n </div>\\n <div class=\\\"form-group form-inline\\\" style=\\\" padding: 0px 0px 0px 3px;cursor: pointer;\\\"\\n matTooltip=\\\"Activity - internal to process\\\">\\n <ul style=\\\"list-style: none;padding:0;margin: 0;\\\">\\n <li> <svg xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" width=\\\"15\\\" height=\\\"15\\\" viewBox=\\\"0 0 172 172\\\"\\n style=\\\" fill:#000000;\\\">\\n <g fill=\\\"none\\\" fill-rule=\\\"nonzero\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" stroke-linecap=\\\"butt\\\"\\n stroke-linejoin=\\\"miter\\\" stroke-miterlimit=\\\"10\\\" stroke-dasharray=\\\"\\\" stroke-dashoffset=\\\"0\\\"\\n font-family=\\\"none\\\" font-weight=\\\"none\\\" font-size=\\\"none\\\" text-anchor=\\\"none\\\"\\n style=\\\"mix-blend-mode: normal\\\">\\n <path d=\\\"M0,172v-172h172v172z\\\" fill=\\\"none\\\"></path>\\n <g fill=\\\"#e2e3e4\\\">\\n <path d=\\\"M0,13.23077v145.53846h172v-145.53846z\\\"></path>\\n </g>\\n </g>\\n </svg>\\n <span class=\\\"labelFont alignment\\\"> Activity - Internal to Process</span>\\n\\n </li>\\n </ul>\\n <!-- <span class=\\\"squre\\\" style=\\\"background-color: #e2e3e4;\\\"> </span> -->\\n </div>\\n </div>\\n <div class=\\\"col-sm-6\\\" style=\\\"padding: 0;\\\">\\n <div class=\\\"form-group form-inline \\\" style=\\\" padding: 0px 0px 0px 3px;cursor: pointer;\\\" matTooltip=\\\"Metric\\\">\\n <ul style=\\\"list-style: none;padding:0;margin: 0;\\\">\\n <li> <svg xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 172 172\\\"\\n style=\\\" fill:#000000;\\\">\\n <g fill=\\\"none\\\" fill-rule=\\\"nonzero\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" stroke-linecap=\\\"butt\\\"\\n stroke-linejoin=\\\"miter\\\" stroke-miterlimit=\\\"10\\\" stroke-dasharray=\\\"\\\" stroke-dashoffset=\\\"0\\\"\\n font-family=\\\"none\\\" font-weight=\\\"none\\\" font-size=\\\"none\\\" text-anchor=\\\"none\\\"\\n style=\\\"mix-blend-mode: normal\\\">\\n <path d=\\\"M0,172v-172h172v172z\\\" fill=\\\"none\\\"></path>\\n <g fill=\\\"#4aabe7\\\">\\n <path\\n d=\\\"M86,17.2c-37.9948,0 -68.8,30.8052 -68.8,68.8c0,37.9948 30.8052,68.8 68.8,68.8c37.9948,0 68.8,-30.8052 68.8,-68.8c0,-37.9948 -30.8052,-68.8 -68.8,-68.8z\\\">\\n </path>\\n </g>\\n </g>\\n </svg>\\n <span class=\\\"labelFont alignment\\\"> Metric</span>\\n </li>\\n </ul>\\n\\n </div>\\n <div class=\\\"form-group form-inline\\\" style=\\\" padding: 0px 0px 0px 3px;cursor: pointer;\\\"\\n matTooltip=\\\"Frustration / Issue\\\">\\n <ul style=\\\"list-style: none;padding:0;margin: 0;\\\">\\n <li> <svg xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 172 172\\\"\\n style=\\\" fill:#000000;\\\">\\n <g fill=\\\"none\\\" fill-rule=\\\"nonzero\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" stroke-linecap=\\\"butt\\\"\\n stroke-linejoin=\\\"miter\\\" stroke-miterlimit=\\\"10\\\" stroke-dasharray=\\\"\\\" stroke-dashoffset=\\\"0\\\"\\n font-family=\\\"none\\\" font-weight=\\\"none\\\" font-size=\\\"none\\\" text-anchor=\\\"none\\\"\\n style=\\\"mix-blend-mode: normal\\\">\\n <path d=\\\"M0,172v-172h172v172z\\\" fill=\\\"none\\\"></path>\\n <g fill=\\\"#d55632\\\">\\n <path\\n d=\\\"M86,17.2c-37.9948,0 -68.8,30.8052 -68.8,68.8c0,37.9948 30.8052,68.8 68.8,68.8c37.9948,0 68.8,-30.8052 68.8,-68.8c0,-37.9948 -30.8052,-68.8 -68.8,-68.8z\\\">\\n </path>\\n </g>\\n </g>\\n </svg>\\n <span class=\\\"labelFont alignment\\\"> Frustration / Issue</span>\\n </li>\\n </ul>\\n </div>\\n\\n <div class=\\\"form-group form-inline\\\" style=\\\" padding: 0px 0px 0px 3px;cursor: pointer;\\\"\\n matTooltip=\\\"Sub-activity exists\\\">\\n <ul style=\\\"list-style: none;padding:0;margin: 0;\\\">\\n <li>\\n <svg xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 172 172\\\"\\n style=\\\" fill:#000000;\\\">\\n <g fill=\\\"none\\\" fill-rule=\\\"nonzero\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" stroke-linecap=\\\"butt\\\"\\n stroke-linejoin=\\\"miter\\\" stroke-miterlimit=\\\"10\\\" stroke-dasharray=\\\"\\\" stroke-dashoffset=\\\"0\\\"\\n font-family=\\\"none\\\" font-weight=\\\"none\\\" font-size=\\\"none\\\" text-anchor=\\\"none\\\"\\n style=\\\"mix-blend-mode: normal\\\">\\n <path d=\\\"M0,172v-172h172v172z\\\" fill=\\\"none\\\"></path>\\n <g fill=\\\"#d9c25a\\\">\\n <path\\n d=\\\"M86,17.2c-37.9948,0 -68.8,30.8052 -68.8,68.8c0,37.9948 30.8052,68.8 68.8,68.8c37.9948,0 68.8,-30.8052 68.8,-68.8c0,-37.9948 -30.8052,-68.8 -68.8,-68.8z\\\">\\n </path>\\n </g>\\n </g>\\n </svg>\\n <span class=\\\"labelFont alignment\\\"> Sub-Activity Exists</span>\\n </li>\\n </ul>\\n\\n </div>\\n </div>\\n </div>\\n <div class=\\\"col-sm-4\\\" style=\\\"text-align: center;\\\">\\n <h6>\\n <strong style=\\\"word-break: break-all\\\"> {{CompanyName }} </strong>- ProcessMap <br>\\n <span>Date: {{headerDate| date:'MM-dd-yyyy' }}</span>\\n </h6>\\n </div>\\n <div class=\\\"col-sm-4 cardCustom form-inline mb_la\\\" style=\\\"padding: 0; max-width: 30% ;\\\" id=\\\"moblgd\\\">\\n <div class=\\\"col-sm-6\\\" style=\\\" padding: 0px 0px 0px 3px;\\\">\\n <div class=\\\"form-group form-inline\\\" style=\\\"cursor: pointer;\\\"\\n matTooltip=\\\"Alert - multiple activities with no metrics\\\">\\n <ul style=\\\"list-style: none;padding: 0;margin: 0;\\\">\\n <li>\\n <img src=\\\"./assets/images/star-blue.png\\\" alt=\\\"bluestar\\\" width=\\\"13px;\\\" />\\n <span class=\\\"labelFont alignment1\\\"> \\n Alert - Multiple Activities with No Metrics</span>\\n\\n </li>\\n </ul>\\n </div>\\n <div class=\\\"form-group form-inline\\\" style=\\\"cursor: pointer;\\\" matTooltip=\\\"Alert - key process: no metrics\\\">\\n <ul style=\\\"padding: 0;margin: 0;list-style: none;\\\">\\n <li>\\n <img src=\\\"./assets/images/triangle-blue.png\\\" alt=\\\"bluetriangle\\\" width=\\\"11px;\\\" />\\n <span class=\\\"labelFont alignment1\\\"> Alert - Key Process: No Metrics\\n </span>\\n\\n </li>\\n </ul>\\n </div>\\n </div>\\n <div class=\\\"col-sm-6\\\" style=\\\"padding: 0;\\\">\\n <div class=\\\"form-group form-inline\\\" style=\\\"cursor: pointer;\\\"\\n matTooltip=\\\"Alert - multiple frustrations clustered\\\">\\n <ul style=\\\"padding: 0;margin: 0;list-style: none;\\\">\\n <li>\\n <img src=\\\"./assets/images/star-red.png\\\" alt=\\\"redstar\\\" width=\\\"13px;\\\" />\\n <span class=\\\"labelFont alignment1\\\"> Alert - Multiple Frustrations\\n Clustered</span>\\n\\n </li>\\n </ul>\\n </div>\\n <div class=\\\"form-group form-inline\\\" style=\\\"cursor: pointer;\\\"\\n matTooltip=\\\"Alert - key process: no frustrations\\\">\\n <ul style=\\\"padding: 0;margin: 0;list-style: none;\\\">\\n <li>\\n <img src=\\\"./assets/images/triangle-red.png\\\" alt=\\\"redtriangle\\\" width=\\\"11px;\\\" />\\n <span class=\\\"labelFont alignment1\\\"> Alert -\\n Key Process: No Frustrations</span>\\n\\n </li>\\n </ul>\\n\\n </div>\\n </div>\\n </div>\\n </div>\\n\\n <br>\\n\\n </div>\\n\"","module.exports = \"<link href=\\\"../../assets/css/dmapp.css\\\" rel=\\\"stylesheet\\\" id=\\\"bootstrap-css\\\">\\r\\n<div\\r\\n *ngIf=\\\"data !== 'new' && data !== 'edit' && data!='log'&& data !== 'progress' && data !== 'status' && data !== 'rearrange'\\\">\\r\\n <mat-dialog-content>{{data}}</mat-dialog-content>\\r\\n <mat-dialog-actions align=\\\"center\\\">\\r\\n <div *ngIf=\\\"condition\\\">\\r\\n <button mat-raised-button mat-accent mat-dialog-close (click)=\\\"onNoClick()\\\">No</button>\\r\\n <!-- Can optionally provide a result for the closing dialog. -->\\r\\n <button mat-raised-button mat-accent [mat-dialog-close]=\\\"true\\\" (click)=\\\"onYesClick()\\\">Yes</button>\\r\\n </div>\\r\\n <div *ngIf=\\\"!condition && data !== 'progress' && data !== 'status'\\\">\\r\\n <div class=\\\"container\\\" fxLayout fxLayout.xs=\\\"column\\\" fxLayoutAlign=\\\"center\\\" fxLayoutGap=\\\"10px\\\" fxLayoutGap.xs=\\\"0\\\">\\r\\n <div class=\\\"item item-3 \\\">\\r\\n <button mat-button mat-accent mat-dialog-close>Ok</button>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </mat-dialog-actions>\\r\\n</div>\\r\\n<div *ngIf=\\\"data === 'new' || data === 'edit' || data === 'rearrange'\\\">\\r\\n <br>\\r\\n <div class=\\\"XBtn\\\">\\r\\n <span (click)=\\\"clear()\\\" matTooltip=\\\"Close\\\" class=\\\"close\\\">×</span>\\r\\n </div>\\r\\n <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n <div id=\\\"Rowheading\\\">\\r\\n <h4 class=\\\"alignheader\\\"><b>{{data | titlecase}} Process</b></h4>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n <div id=\\\"Rowwrapper\\\">\\r\\n <div id=\\\"RowtableActions\\\">\\r\\n <div id=\\\"field\\\">\\r\\n <mat-form-field>\\r\\n <input matInput [disabled]=\\\"data==='rearrange'\\\" maxlength=\\\"40\\\" id=\\\"lblProcess\\\" [(ngModel)]=\\\"ProcessName\\\"\\r\\n autocomplete=\\\"off\\\" value=\\\"\\\">\\r\\n <mat-placeholder>Process <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n </mat-form-field>\\r\\n </div>\\r\\n <div id=\\\"field\\\">\\r\\n <mat-form-field>\\r\\n <input matInput [disabled]=\\\"data==='rearrange'\\\" placeholder=\\\" Process Description\\\" maxlength=\\\"200\\\"\\r\\n autocomplete=\\\"off\\\" id=\\\"lblProcessDescription\\\" [(ngModel)]=\\\"ProcessDescription\\\" value=\\\"\\\">\\r\\n </mat-form-field>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n <div id=\\\"Rowwrapper\\\">\\r\\n <div id=\\\"RowtableActions\\\">\\r\\n <div id=\\\"field\\\">\\r\\n <mat-form-field>\\r\\n <mat-label> Team</mat-label>\\r\\n <mat-select (selectionChange)=\\\"teamChange($event)\\\"\\r\\n [disabled]=\\\"conditionActivity==='process' || data==='rearrange' || disableTeam\\\" [(ngModel)]=\\\"TeamID\\\">\\r\\n <mat-option *ngFor=\\\"let data of teamData;let i=index;\\\" [value]=\\\"teamData[i].TeamID\\\">\\r\\n {{teamData[i].TeamName}}\\r\\n </mat-option>\\r\\n </mat-select>\\r\\n </mat-form-field>\\r\\n </div>\\r\\n <div id=\\\"field\\\">\\r\\n <mat-form-field>\\r\\n <mat-placeholder>Sequence <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n <mat-select [disabled]=\\\"TeamID==='0' || TeamID===undefined || TeamID==='.' || TeamID===null || TeamID===0\\\"\\r\\n [(ngModel)]=\\\"squence\\\">\\r\\n <mat-option *ngFor=\\\"let data of sequenceList;let i=index;\\\" [value]=\\\"data\\\">\\r\\n {{data}}\\r\\n </mat-option>\\r\\n </mat-select>\\r\\n </mat-form-field>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n <div id=\\\"Rowwrapper\\\">\\r\\n <div id=\\\"RowtableActions\\\">\\r\\n <div id=\\\"buttonview\\\">\\r\\n <button class=\\\"addButtons btn\\\" mat-accent (click)=\\\"addProcess()\\\" [disabled]=\\\"btnDisabled\\\"><span\\r\\n *ngIf=\\\"data === 'new' || data==='rearrange'\\\">Save</span><span\\r\\n *ngIf=\\\"data === 'edit'\\\">Update</span></button>\\r\\n </div>\\r\\n <div id=\\\"buttonview\\\">\\r\\n <button mat-accent class=\\\"addButtons btn\\\" (click)='clear()'>Cancel</button>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n</div>\\r\\n<br>\\r\\n<mat-dialog-content class=\\\"warningMsg\\\">{{dataSelf}}</mat-dialog-content>\\r\\n<mat-dialog-content class=\\\"successMsg\\\"></mat-dialog-content>\"","module.exports = \"<link href=\\\"../../assets/css/dmapp.css\\\" rel=\\\"stylesheet\\\" id=\\\"bootstrap-css\\\">\\r\\n\\r\\n<div class=\\\"row\\\" id=\\\"container\\\">\\r\\n <div class=\\\"\\\" id=\\\"heading\\\">\\r\\n <h4>Process</h4>\\r\\n </div>\\r\\n <div id=\\\"wrapper\\\">\\r\\n <div id=\\\"tableActions\\\">\\r\\n <div class=\\\"\\\" id=\\\"search\\\" *ngIf=\\\"!disableSearch\\\">\\r\\n <mat-form-field style=\\\"margin-top: -5px;\\\" id=\\\"searchField\\\">\\r\\n <mat-placeholder class=\\\"placeholder\\\">Search here</mat-placeholder>\\r\\n <input matInput id=\\\"newGroup\\\" [disabled]=\\\"disableSearch\\\" (keyup)=\\\"searchText()\\\" name=\\\"search\\\"\\r\\n [(ngModel)]=\\\"searchtext\\\" value=\\\"\\\" autocomplete=\\\"off\\\">\\r\\n </mat-form-field>\\r\\n </div>\\r\\n <div class=\\\"\\\" id=\\\"excelBtn\\\" *ngIf=\\\"!disableSearch\\\">\\r\\n <button class=\\\"darkbtnbg btn btn-info\\\" style=\\\"margin-top:11px;cursor: pointer;\\\" [disabled]=\\\"isDisable\\\"\\r\\n matTooltip=\\\"Export as excel\\\" (click)=\\\"exportAsXLSX()\\\">\\r\\n Excel\\r\\n </button>\\r\\n </div>\\r\\n <div class=\\\"\\\" id=\\\"createBtn\\\">\\r\\n <button mat-accent class=\\\"darkbtnbg btn btn-info\\\" style=\\\"margin-top: 11px;\\\" (click)='openProcess()'\\r\\n [disabled]=\\\"!MenuPermissions[menuName][menuID]['C']\\\" matTooltip=\\\"New process\\\">New </button>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n</div>\\r\\n\\r\\n\\r\\n<div>\\r\\n <div class=\\\"tableDiv\\\">\\r\\n <table id=\\\"dtBasicExample\\\">\\r\\n <thead>\\r\\n <tr>\\r\\n <th class=\\\"pointer\\\" (click)=\\\"sort('TeamName')\\\"> Team\\r\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\r\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\r\\n </th>\\r\\n <th class=\\\"pointer\\\" (click)=\\\"sort('ProcessName')\\\"> Process\\r\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\r\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\r\\n </th>\\r\\n <th cName class=\\\"pointer\\\" (click)=\\\"sort('ProcessDescription')\\\"> Description\\r\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\r\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\r\\n </th>\\r\\n <th cName class=\\\"pointer\\\" (click)=\\\"sort('squence')\\\"> Sequence\\r\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\r\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\r\\n </th>\\r\\n <th>Action</th>\\r\\n </tr>\\r\\n </thead>\\r\\n\\r\\n <tbody *ngIf=\\\"empID===0\\\">\\r\\n <tr\\r\\n *ngFor=\\\"let element of processData | paginate: { itemsPerPage: rowsOnPage, currentPage: p } | sort: {property: column, direction: direction}; let i = index\\\">\\r\\n <td> {{element.TeamName}}</td>\\r\\n <td> {{element.ProcessName}}</td>\\r\\n <td> {{element.ProcessDescription}}</td>\\r\\n <td *ngIf=\\\"element.squence!=0;else upby\\\">\\r\\n {{element.squence}}\\r\\n </td>\\r\\n <ng-template #upby>\\r\\n <td>\\r\\n\\r\\n </td>\\r\\n </ng-template>\\r\\n\\r\\n <td style=\\\" cursor:pointer;\\\">\\r\\n\\r\\n <span>\\r\\n <a matTooltip=\\\"Edit process\\\" (click)=\\\"editProcess(element)\\\"\\r\\n [style.pointer-events]=\\\"!(MenuPermissions[menuName][menuID]['U'])?'none':'auto'\\\"\\r\\n [ngClass]=\\\"{'removeColor':!(MenuPermissions[menuName][menuID]['U']),'AddColor':(MenuPermissions[menuName][menuID]['U'] )}\\\"><i\\r\\n style=\\\"cursor: pointer;\\\" class=\\\"fa fa-pencil-square-o \\\" aria-hidden=\\\"true\\\"></i></a>\\r\\n <a matTooltip=\\\"Delete process\\\" (click)=\\\"deleteProcess(element)\\\"\\r\\n [style.pointer-events]=\\\"!(MenuPermissions[menuName][menuID]['D']) ?'none':'auto'\\\"\\r\\n [ngClass]=\\\"{'removeColor':!(MenuPermissions[menuName][menuID]['D']),'AddColor':(MenuPermissions[menuName][menuID]['D'] )}\\\"><i\\r\\n style=\\\"cursor: pointer;\\\" class=\\\"fa fa-trash-o \\\" aria-hidden=\\\"true\\\"></i></a>\\r\\n\\r\\n </span>\\r\\n </td>\\r\\n\\r\\n </tr>\\r\\n\\r\\n </tbody>\\r\\n\\r\\n\\r\\n\\r\\n <tbody\\r\\n *ngFor=\\\"let element of processData | paginate: { itemsPerPage: rowsOnPage, currentPage: p } | sort: {property: column, direction: direction}; let i = index\\\">\\r\\n <tr *ngIf=\\\"empID!==0 && element.R\\\">\\r\\n\\r\\n <td> {{element.TeamName}}</td>\\r\\n <td> {{element.ProcessName}}</td>\\r\\n <td> {{element.ProcessDescription}}</td>\\r\\n <td *ngIf=\\\"element.squence!=0;else upby\\\">\\r\\n {{element.squence}}\\r\\n </td>\\r\\n <ng-template #upby>\\r\\n <td>\\r\\n\\r\\n </td>\\r\\n </ng-template>\\r\\n <td>\\r\\n\\r\\n <span>\\r\\n <a matTooltip=\\\"Edit process\\\" (click)=\\\"editProcess(element)\\\"\\r\\n [style.pointer-events]=\\\"!(element.U)?'none':'auto'\\\"\\r\\n [ngClass]=\\\"{'removeColor':!(element.U),'AddColor':(element.U)}\\\"><i style=\\\"cursor: pointer;\\\"\\r\\n class=\\\"fa fa-pencil-square-o \\\" aria-hidden=\\\"true\\\"></i></a>\\r\\n <a matTooltip=\\\"Delete process\\\" (click)=\\\"deleteProcess(element)\\\"\\r\\n [style.pointer-events]=\\\"!(element.D) ?'none':'auto'\\\"\\r\\n [ngClass]=\\\"{'removeColor':!(element.D),'AddColor':(element.D)}\\\"><i style=\\\"cursor: pointer;\\\"\\r\\n class=\\\"fa fa-trash-o \\\" aria-hidden=\\\"true\\\"></i></a>\\r\\n </span>\\r\\n </td>\\r\\n\\r\\n </tr>\\r\\n <tr *ngIf=\\\"empID!==0\\\">\\r\\n\\r\\n <td> {{element.TeamName}}</td>\\r\\n <td> {{element.ProcessName}}</td>\\r\\n <td> {{element.ProcessDescription}}</td>\\r\\n <td *ngIf=\\\"element.squence!=0;else upby\\\">\\r\\n {{element.squence}}\\r\\n </td>\\r\\n <ng-template #upby>\\r\\n <td>\\r\\n\\r\\n </td>\\r\\n </ng-template>\\r\\n <td>\\r\\n\\r\\n <span>\\r\\n <a matTooltip=\\\"Edit process\\\" (click)=\\\"editProcess(element)\\\"\\r\\n [style.pointer-events]=\\\"!(MenuPermissions[menuName][menuID]['U'])?'none':'auto'\\\"\\r\\n [ngClass]=\\\"{'removeColor':!(MenuPermissions[menuName][menuID]['U']),'AddColor':(MenuPermissions[menuName][menuID]['U'])}\\\"><i\\r\\n style=\\\"cursor: pointer;\\\" class=\\\"fa fa-pencil-square-o \\\" aria-hidden=\\\"true\\\"></i></a>\\r\\n <a matTooltip=\\\"Delete process\\\" (click)=\\\"deleteProcess(element)\\\"\\r\\n [style.pointer-events]=\\\"!(MenuPermissions[menuName][menuID]['D']) ?'none':'auto'\\\"\\r\\n [ngClass]=\\\"{'removeColor':!(MenuPermissions[menuName][menuID]['D']),'AddColor':(MenuPermissions[menuName][menuID]['D'])}\\\"><i\\r\\n style=\\\"cursor: pointer;\\\" class=\\\"fa fa-trash-o \\\" aria-hidden=\\\"true\\\"></i></a>\\r\\n </span>\\r\\n </td>\\r\\n\\r\\n </tr>\\r\\n\\r\\n </tbody>\\r\\n\\r\\n </table><br>\\r\\n\\r\\n <div class=\\\"warningMsg\\\" *ngIf=\\\"!processData || processData.length === 0\\\">\\r\\n <span>No data available</span>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <div class=\\\"pageContainer\\\" *ngIf=\\\"processPaging && processData.length>0\\\">\\r\\n\\r\\n <div class=\\\"rowsSelection\\\">\\r\\n <mat-form-field style=\\\"width: 50px; margin-top: -15px;\\\">\\r\\n <mat-select [(ngModel)]=\\\"rowsOnPage\\\">\\r\\n <mat-option *ngFor=\\\"let row of rowsOnPageSet\\\" [value]=\\\"row\\\">\\r\\n {{row}}\\r\\n </mat-option>\\r\\n </mat-select>\\r\\n </mat-form-field>\\r\\n </div>\\r\\n\\r\\n\\r\\n <div class=\\\"pageSelection\\\">\\r\\n <pagination-controls (pageChange)=\\\"p = $event\\\"></pagination-controls>\\r\\n </div>\\r\\n </div>\\r\\n\"","module.exports = \"<link href=\\\"../../assets/css/dmapp.css\\\" rel=\\\"stylesheet\\\" id=\\\"bootstrap-css\\\">\\r\\n\\r\\n<div *ngIf=\\\"data !== 'new' && data !== 'edit' && data!='log'&& data !== 'progress' && data !== 'status'\\\">\\r\\n <mat-dialog-content>{{data}}</mat-dialog-content>\\r\\n <mat-dialog-actions align=\\\"center\\\">\\r\\n <div *ngIf=\\\"condition\\\">\\r\\n <button mat-raised-button mat-accent mat-dialog-close (click)=\\\"onNoClick()\\\">No</button>\\r\\n\\r\\n <button mat-raised-button mat-accent [mat-dialog-close]=\\\"true\\\" (click)=\\\"onYesClick()\\\">Yes</button>\\r\\n </div>\\r\\n <div *ngIf=\\\"!condition && data !== 'progress' && data !== 'status'\\\">\\r\\n <div class=\\\"container\\\" fxLayout fxLayout.xs=\\\"column\\\" fxLayoutAlign=\\\"center\\\" fxLayoutGap=\\\"10px\\\" fxLayoutGap.xs=\\\"0\\\">\\r\\n <div class=\\\"item item-3 \\\">\\r\\n <button mat-button mat-accent mat-dialog-close>Ok</button>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </mat-dialog-actions>\\r\\n</div>\\r\\n\\r\\n\\r\\n<div *ngIf=\\\"data === 'new' || data === 'edit'\\\">\\r\\n\\r\\n <br>\\r\\n <div class=\\\"XBtn\\\">\\r\\n <span (click)=\\\"Clear()\\\" matTooltip=\\\"Close\\\" class=\\\"close\\\">×</span>\\r\\n </div>\\r\\n <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n <div id=\\\"Rowheading\\\">\\r\\n <h4 class=\\\"alignheader\\\"><b>{{data | titlecase}} Project</b></h4>\\r\\n\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <div class=\\\"inputFields\\\">\\r\\n <div>\\r\\n\\r\\n <mat-form-field>\\r\\n <input matInput autocomplete=\\\"off\\\" maxlength=\\\"50\\\" id=\\\"lblProjectName\\\" [(ngModel)]=\\\"ProjectName\\\" value=\\\"\\\">\\r\\n <mat-placeholder>Project <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n </mat-form-field>\\r\\n </div>\\r\\n\\r\\n\\r\\n <div>\\r\\n <mat-form-field>\\r\\n <input matInput placeholder=\\\" Description\\\" autocomplete=\\\"off\\\" maxlength=\\\"200\\\" id=\\\"lblDescription\\\"\\r\\n [(ngModel)]=\\\"ProjectDescription\\\" value=\\\"\\\">\\r\\n </mat-form-field>\\r\\n </div>\\r\\n <div>\\r\\n <mat-form-field>\\r\\n\\r\\n <mat-placeholder>Status <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n <mat-select (selectionChange)=\\\"statusChange($event)\\\" [(ngModel)]=\\\"StatusID\\\">\\r\\n <mat-option *ngFor=\\\"let data of statusData;let i=index;\\\" [value]=\\\"statusData[i].ProjectStatusID\\\">\\r\\n {{data.ProjectStatusName}}\\r\\n </mat-option>\\r\\n </mat-select>\\r\\n </mat-form-field>\\r\\n\\r\\n </div>\\r\\n <div>\\r\\n\\r\\n\\r\\n <mat-form-field>\\r\\n <input matInput [matDatepicker]=\\\"picker\\\" [min]=\\\"Date\\\" [(ngModel)]=\\\"ProjectDueDate\\\" (blur)=\\\"validateDate()\\\"\\r\\n placeholder=\\\"Due Date(MM/DD/YYYY)\\\" (dateChange)=\\\"dob('change', $event)\\\">\\r\\n <mat-datepicker-toggle matSuffix [for]=\\\"picker\\\"></mat-datepicker-toggle>\\r\\n <mat-datepicker #picker [startAt]=\\\"Date\\\"></mat-datepicker>\\r\\n </mat-form-field>\\r\\n\\r\\n </div>\\r\\n <div>\\r\\n <mat-form-field>\\r\\n <mat-placeholder>Team <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n <mat-select [disabled]=\\\"conditionActivity==='process' || data==='rearrange' || disableTeam\\\"\\r\\n [(ngModel)]=\\\"TeamID\\\">\\r\\n <mat-option *ngFor=\\\"let data of teamData;let i=index;\\\" [value]=\\\"teamData[i].TeamID\\\">\\r\\n {{teamData[i].TeamName}}\\r\\n </mat-option>\\r\\n </mat-select>\\r\\n </mat-form-field>\\r\\n </div>\\r\\n <div>\\r\\n <mat-form-field>\\r\\n <input matInput placeholder=\\\"Project Owner\\\" autocomplete=\\\"off\\\" maxlength=\\\"200\\\" id=\\\"lblProjectOwner\\\"\\r\\n [(ngModel)]=\\\"ProjectOwner\\\" value=\\\"\\\">\\r\\n\\r\\n </mat-form-field>\\r\\n </div>\\r\\n\\r\\n\\r\\n </div>\\r\\n\\r\\n <!-- <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n <div id=\\\"Rowwrapper\\\">\\r\\n <div id=\\\"RowtableAction\\\">\\r\\n <div id=\\\"field\\\">\\r\\n \\r\\n <mat-form-field>\\r\\n <input matInput autocomplete=\\\"off\\\" maxlength=\\\"50\\\" id=\\\"lblProjectName\\\" [(ngModel)]=\\\"ProjectName\\\" \\r\\n value=\\\"\\\">\\r\\n <mat-placeholder>Project <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n </mat-form-field>\\r\\n </div>\\r\\n \\r\\n \\r\\n <div id=\\\"field\\\">\\r\\n <mat-form-field>\\r\\n <input matInput placeholder=\\\" Description\\\" autocomplete=\\\"off\\\" maxlength=\\\"200\\\" id=\\\"lblDescription\\\" [(ngModel)]=\\\"ProjectDescription\\\" \\r\\n value=\\\"\\\">\\r\\n </mat-form-field>\\r\\n </div>\\r\\n <div id=\\\"field\\\">\\r\\n <mat-form-field>\\r\\n \\r\\n <mat-placeholder>Status <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n <mat-select (selectionChange)=\\\"statusChange($event)\\\" [(ngModel)]=\\\"StatusID\\\">\\r\\n <mat-option *ngFor=\\\"let data of statusData;let i=index;\\\" [value]=\\\"statusData[i].ProjectStatusID\\\" >\\r\\n {{data.ProjectStatusName}}\\r\\n </mat-option>\\r\\n </mat-select>\\r\\n </mat-form-field>\\r\\n \\r\\n</div>\\r\\n </div>\\r\\n </div>\\r\\n </div> \\r\\n \\r\\n \\r\\n\\r\\n <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n <div id=\\\"Rowwrapper\\\">\\r\\n <div id=\\\"RowtableAction\\\">\\r\\n \\r\\n<div id=\\\"field\\\">\\r\\n\\r\\n\\r\\n <mat-form-field>\\r\\n <input matInput [matDatepicker]=\\\"picker\\\" [min]=\\\"Date\\\" [(ngModel)]=\\\"ProjectDueDate\\\" (blur)=\\\"validateDate()\\\" placeholder=\\\"Due Date(MM/DD/YYYY)\\\" (dateChange)=\\\"dob('change', $event)\\\" >\\r\\n <mat-datepicker-toggle matSuffix [for]=\\\"picker\\\"></mat-datepicker-toggle>\\r\\n <mat-datepicker #picker [startAt]=\\\"Date\\\"></mat-datepicker>\\r\\n </mat-form-field> \\r\\n \\r\\n</div>\\r\\n<div id=\\\"field\\\">\\r\\n <mat-form-field>\\r\\n <mat-placeholder>Team <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n <mat-select [disabled]=\\\"conditionActivity==='process' || data==='rearrange' || disableTeam\\\"\\r\\n [(ngModel)]=\\\"TeamID\\\" >\\r\\n <mat-option *ngFor=\\\"let data of teamData;let i=index;\\\" [value]=\\\"teamData[i].TeamID\\\" >\\r\\n {{teamData[i].TeamName}}\\r\\n </mat-option>\\r\\n </mat-select>\\r\\n </mat-form-field>\\r\\n </div> \\r\\n <div id=\\\"field\\\">\\r\\n <mat-form-field>\\r\\n <input matInput placeholder=\\\"Project Owner\\\" autocomplete=\\\"off\\\" maxlength=\\\"200\\\" id=\\\"lblProjectOwner\\\" [(ngModel)]=\\\"ProjectOwner\\\" \\r\\n value=\\\"\\\">\\r\\n \\r\\n </mat-form-field>\\r\\n </div>\\r\\n\\r\\n</div>\\r\\n </div>\\r\\n </div> -->\\r\\n\\r\\n <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n <div id=\\\"Rowwrapper\\\">\\r\\n <div id=\\\"RowtableActions\\\">\\r\\n <div id=\\\"buttonview\\\">\\r\\n\\r\\n <button class=\\\"addButtons btn\\\" mat-accent (click)=\\\"AddProjects()\\\" [disabled]=\\\"btnDisabled\\\"><span\\r\\n *ngIf=\\\"data === 'new'\\\">Save</span>\\r\\n <span *ngIf=\\\"data === 'edit'\\\">Update</span></button>\\r\\n\\r\\n </div>\\r\\n\\r\\n <div id=\\\"buttonview\\\"><button mat-accent class=\\\"addButtons btn\\\" (click)='Clear()'>Cancel</button></div>\\r\\n\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n</div>\\r\\n<br>\\r\\n<!-- <div *ngIf=\\\"data === 'edit'\\\">\\r\\n <div class=\\\"container\\\" fxLayout fxLayout.xs=\\\"column\\\" fxLayoutGap=\\\"10px\\\" fxLayoutGap.xs=\\\"0\\\">\\r\\n <div class=\\\"col-lg-6\\\">\\r\\n <div class=\\\"item item-1\\\" fxFlexOrder=\\\"1\\\" >\\r\\n <mat-label style=\\\"margin-left: 50px;\\\" *ngIf=\\\"updatedBy !== null\\\" >Updated By:<b> {{updatedBy}}</b></mat-label>\\r\\n \\r\\n </div>\\r\\n </div>\\r\\n \\r\\n <div class=\\\"col-lg-6\\\">\\r\\n <div class=\\\"item item-1\\\" fxFlexOrder=\\\"2\\\" >\\r\\n <mat-label *ngIf=\\\"updatedDate !== null\\\">Updated Date:<b> {{updatedDate | date:'MM/dd/yyyy'}}</b></mat-label>\\r\\n </div>\\r\\n </div>\\r\\n \\r\\n </div>\\r\\n </div> -->\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n<mat-dialog-content class=\\\"warningMsg\\\">{{dataSelf}}</mat-dialog-content>\\r\\n<mat-dialog-content class=\\\"successMsg\\\"></mat-dialog-content>\\r\\n\"","module.exports = \"<link href=\\\"../../assets/css/dmapp.css\\\" rel=\\\"stylesheet\\\" id=\\\"bootstrap-css\\\">\\n<style>\\n @media screen {\\n .donotprintthis1 {\\n display: none;\\n }\\n\\n .donotprintthis {\\n\\n display: block;\\n\\n }\\n }\\n\\n @media print {\\n /* table {\\n width: 100%;\\n font-size: smaller;\\n }\\n\\n th,\\n td {\\n text-align: center;\\n font-size: smaller;\\n }\\n\\n th {\\n color: white;\\n background-color: #474747;\\n height: 35px;\\n font-size: 13px;\\n }\\n\\n td {\\n height: 35px;\\n font-size: 13px;\\n }\\n\\n table {\\n border-collapse: collapse;\\n }\\n\\n table,\\n th,\\n td {\\n border: 1px solid #e1e1e1;\\n overflow: hidden;\\n word-wrap: break-word;\\n }\\n\\n table.fixed {\\n table-layout: fixed;\\n }\\n\\n table.fixed td {\\n overflow: hidden;\\n }\\n\\n .highlight td {\\n background: #C0C0C0;\\n }*/\\n\\n h5 {\\n text-align: center;\\n }\\n\\n .donotprintthis1 {\\n\\n display: block;\\n\\n }\\n\\n .donotprintthis {\\n\\n display: none;\\n\\n }\\n\\n .footer {\\n position: fixed;\\n bottom: 0;\\n font-size: 13px;\\n margin-left: 35%;\\n }\\n }\\n</style>\\n<p></p>\\n\\n<div class=\\\"row\\\" id=\\\"container\\\">\\n\\n <div class=\\\"\\\" id=\\\"heading\\\">\\n <h4>Project</h4>\\n </div>\\n\\n <div id=\\\"wrapper\\\">\\n\\n <div id=\\\"tableActions\\\">\\n <div class=\\\"\\\" id=\\\"search\\\" *ngIf=\\\"tableFormat\\\">\\n <span *ngIf=\\\"!disableSearch\\\">\\n <mat-form-field id=\\\"searchField\\\">\\n <mat-placeholder class=\\\"placeholder\\\">Search here</mat-placeholder>\\n <input matInput id=\\\"newGroup\\\" [disabled]=\\\"disableSearch\\\" (keyup)=\\\"Searchtext()\\\" name=\\\"search\\\"\\n [(ngModel)]=\\\"searchtext\\\" value=\\\"\\\" autocomplete=\\\"off\\\">\\n </mat-form-field>\\n </span>\\n </div>\\n\\n\\n <div *ngIf=\\\"!kenbanFormat\\\" class=\\\"\\\" id=\\\"excelBtn\\\">\\n <span *ngIf=\\\"!isDisable\\\">\\n <button class=\\\"darkbtnbg btn btn-info\\\" style=\\\"margin-top: 10px; cursor: pointer;\\\" [disabled]=\\\"isDisable\\\"\\n matTooltip=\\\"Export as excel\\\" style=\\\"cursor: pointer;margin-top: 10px;\\\" (click)=\\\"exportAsXLSX()\\\">\\n <!-- <i class='fa fa-file-excel-o'></i> -->\\n Excel\\n </button>\\n </span>\\n </div>\\n <div *ngIf=\\\"!tableFormat\\\" class=\\\"\\\" id=\\\"createBtn\\\">\\n <button class=\\\"darkbtnbg btn btn-info\\\" matTooltip=\\\"Print status view for projects\\\"\\n style='float:right;margin-top: 10px;' [disabled]=\\\"projectData.length===0\\\" printSectionId=\\\"print-section\\\"\\n [useExistingCss]=\\\"true\\\" ngxPrint>Print</button>\\n\\n </div>\\n\\n <div class=\\\"\\\" id=\\\"createBtn\\\">\\n <button class=\\\"darkbtnbg btn btn-info\\\" *ngIf=\\\"tableFormat\\\" style='margin-top: 10px;'\\n [disabled]=\\\"!MenuPermissions[menuName][menuID]['C']\\\" (click)='OpenProject()' matTooltip=\\\"New project\\\">New\\n </button>\\n </div>\\n\\n <div class=\\\"\\\" id=\\\"createBtn\\\">\\n <button class=\\\"darkbtnbg btn btn-info\\\" style=\\\"margin-top:10px;cursor: pointer;white-space: nowrap;\\\"\\n [disabled]=\\\"(!projectData ||projectData.length==0) || tableFormat \\\" (click)='table()'\\n matTooltip=\\\"Table view\\\">Table view </button>\\n </div>\\n <div class=\\\"\\\" id=\\\"createBtn\\\">\\n <button class=\\\"darkbtnbg btn btn-info\\\" style=\\\"margin-top:10px;cursor: pointer;white-space: nowrap;\\\"\\n [disabled]=\\\"(!projectData ||projectData.length==0) || kenbanFormat\\\" (click)='kenban()'\\n matTooltip=\\\"Status view\\\">Status view</button>\\n </div>\\n\\n\\n\\n </div>\\n </div>\\n</div>\\n\\n<div>\\n <div class=\\\"tableDiv\\\">\\n <table *ngIf=\\\"tableFormat\\\">\\n <thead>\\n <tr>\\n <th class=\\\"pointer\\\" (click)=\\\"sort('TeamName')\\\"> Project Team\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n <th class=\\\"pointer\\\" (click)=\\\"sort('ProjectName')\\\"> Project\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n <th class=\\\"pointer\\\" (click)=\\\"sort('ProjectDescription')\\\"> Description\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n <th class=\\\"pointer\\\" (click)=\\\"sort('ProjectStatusName')\\\"> Status\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n <th class=\\\"pointer\\\" (click)=\\\"sort('ProjectOwner')\\\"> Project Owner\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n <th class=\\\"pointer\\\" (click)=\\\"sort('ProjectDueDate')\\\"> Due Date\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n <th>Action</th>\\n </tr>\\n </thead>\\n <tbody>\\n <ng-container\\n *ngFor=\\\"let element of projectData | paginate: { itemsPerPage: rowsOnPage, currentPage: p } | sort: {property: column, direction: direction}; let i = index\\\">\\n <tr (click)=\\\"$event.stopPropagation();showFrust(element)\\\" style=\\\"cursor: pointer;\\\">\\n <td>{{element.TeamName}}</td>\\n <td>\\n\\n {{element.ProjectName}}\\n </td>\\n <td> {{element.ProjectDescription}}</td>\\n <td> {{element.ProjectStatusName}}</td>\\n <td>{{element.ProjectOwner}}</td>\\n <td>{{element.ProjectDueDate | date:'MM/dd/yyyy'}}</td>\\n <td style=\\\" cursor:pointer;\\\">\\n <span> <a matTooltip=\\\"Edit project\\\" (click)=\\\"$event.stopPropagation();EditProject(element)\\\"\\n [style.pointer-events]=\\\"(!MenuPermissions[menuName][menuID]['U'])?'none':'auto'\\\"\\n [ngClass]=\\\"{'removeColor':!(MenuPermissions[menuName][menuID]['U']),'AddColor':(MenuPermissions[menuName][menuID]['U'])}\\\"><i\\n style=\\\"cursor: pointer;\\\" class=\\\"fa fa-pencil-square-o \\\" aria-hidden=\\\"true\\\"></i></a>\\n <a matTooltip=\\\"Delete project\\\"\\n (click)=\\\"$event.stopPropagation();DeleteProject(element)\\\"\\n [style.pointer-events]=\\\"(!MenuPermissions[menuName][menuID]['D'])?'none':'auto'\\\"\\n [ngClass]=\\\"{'removeColor':!(MenuPermissions[menuName][menuID]['D']),'AddColor':(MenuPermissions[menuName][menuID]['D'])}\\\"><i\\n style=\\\"cursor: pointer;\\\" class=\\\"fa fa-trash-o \\\" aria-hidden=\\\"true\\\"></i></a> </span>\\n <a matTooltip=\\\"Project on-hold\\\" (click)=\\\"$event.stopPropagation();ForceClose(element)\\\"\\n [style.pointer-events]=\\\"(!MenuPermissions[menuName][menuID]['U'])?'none':'auto'\\\"\\n [ngClass]=\\\"{'removeColor':!(MenuPermissions[menuName][menuID]['U']),'AddColor':(MenuPermissions[menuName][menuID]['U'])}\\\"><i\\n style=\\\"cursor: pointer;\\\" class=\\\"fa fa-window-close\\\" aria-hidden=\\\"true\\\"></i></a>\\n </td>\\n </tr>\\n <tr *ngIf=\\\"rowSelected==element.ProjectID\\\">\\n\\n <td colspan=\\\"6\\\">\\n <table class=\\\"table2\\\">\\n <thead>\\n <tr>\\n <th class=\\\"Expcolor\\\" style=\\\"width: 15%; white-space: nowrap;\\\"> Frustration Team</th>\\n <th class=\\\"Expcolor\\\">Process</th>\\n <!--<th class=\\\"Expcolor\\\">Activity</th>-->\\n <th class=\\\"Expcolor\\\">Frustration</th>\\n <th class=\\\"Expcolor\\\">Description</th>\\n <th class=\\\"Expcolor\\\">Status</th>\\n </tr>\\n </thead>\\n <tbody *ngFor=\\\"let data of frustData\\\" style=\\\"cursor:pointer\\\" (click)=\\\"AddIssue(data)\\\">\\n <tr [style.pointer-events]=\\\"(!MenuPermissions[menuName][menuID]['U'])?'none':'auto'\\\"\\n [ngClass]=\\\"{'removeColor1':!(MenuPermissions[menuName][menuID]['U'])}\\\">\\n <td>{{data.TeamName}}</td>\\n <td>{{data.ProcessName}}</td>\\n <!--<td>{{data.ActivityName}}</td>-->\\n <td>{{data.Subject}}</td>\\n <td>{{data.Description}}</td>\\n <td>{{data.StatusName}}</td>\\n </tr>\\n </tbody>\\n </table>\\n <br>\\n <div class=\\\"warningMsg\\\" *ngIf=\\\"(frustData === null||frustData===undefined || frustData.length === 0)\\\">\\n <span>No data available</span>\\n </div>\\n </td>\\n </tr>\\n </ng-container>\\n </tbody>\\n\\n </table>\\n\\n\\n\\n\\n <br>\\n <div class=\\\"warningMsg\\\" *ngIf=\\\"(projectData === null||projectData===undefined || projectData.length === 0)\\\">\\n\\n <span>No data available</span>\\n\\n\\n </div>\\n </div>\\n\\n\\n <div class=\\\"pageContainer\\\" *ngIf=\\\"projectPaging && !kenbanFormat\\\">\\n <div class=\\\"rowsSelection\\\">\\n <mat-form-field style=\\\"width: 50px; margin-top: -15px;\\\">\\n <mat-select [(ngModel)]=\\\"rowsOnPage\\\">\\n <mat-option *ngFor=\\\"let row of rowsOnPageSet\\\" [value]=\\\"row\\\">\\n {{row}}\\n </mat-option>\\n </mat-select>\\n </mat-form-field>\\n </div>\\n <div class=\\\"pageSelection\\\">\\n <pagination-controls (pageChange)=\\\"p = $event\\\"></pagination-controls>\\n </div>\\n </div>\\n\\n <div class=\\\"row\\\" *ngIf=\\\"kenbanFormat\\\">\\n <div class=\\\"instruction\\\">\\n <p><strong><span class=\\\"impAsterisk\\\">* </span>Instructions: Double click or long press(for touch screen devices)\\n to activate rearrangement of the selected project.</strong></p>\\n </div>\\n <div class=\\\"col-md-2 viewforstatus\\\" *ngFor=\\\"let week of weeks\\\">\\n <div class=\\\"drag-container\\\" id=\\\"dragBox\\\" *ngIf=\\\"!ifTouchDevice\\\">\\n <div class=\\\"stageHeader pipelineHeader\\\" matTooltip=\\\"{{week.id}}\\\"> {{week.id}} ({{week.count}})</div>\\n\\n <div (mouseup)=\\\"onMouseUp()\\\" cdkDropList id=\\\"{{week.id}}\\\" [cdkDropListData]=\\\"week.weeklist\\\"\\n [cdkDropListConnectedTo]=\\\"connectedTo\\\" class=\\\"example-list\\\" (cdkDropListDropped)=\\\"drop($event,week.statusID)\\\">\\n <div #button long-press (onLongPressing)=\\\"onLongPressing()\\\" (dblclick)=\\\"onDblClick()\\\" (mouseup)=\\\"onMouseUp()\\\"\\n class=\\\"example-box\\\" style=\\\"word-wrap: break-word;word-break: break-all;white-space: normal;\\\"\\n *ngFor=\\\"let weekItem of week.weeklist\\\" cdkDrag\\n [cdkDragDisabled]=\\\"!MenuPermissions[menuName][menuID]['U'] || ifLongPress\\\">\\n\\n <span *ngIf=\\\"weekItem.UpdatedBy === null;else upby\\\">\\n Project: {{weekItem.ProjectName}}<br>\\n <!-- Created By: {{weekItem.CreatedBy}} <br> -->\\n Project owner:{{weekItem.ProjectOwner}}<br>\\n Due Date: {{weekItem.ProjectDueDate | date:'MM/dd/yyyy'}}\\n </span>\\n <ng-template #upby>\\n Project: {{weekItem.ProjectName}}<br>\\n <!-- Updated By: {{weekItem.UpdatedBy}}<br> -->\\n Project owner:{{weekItem.ProjectOwner}}<br>\\n Due Date: {{weekItem.ProjectDueDate | date:'MM/dd/yyyy'}}\\n </ng-template>\\n\\n\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n\\n <!-- *********************Print Kanban Section********************************* -->\\n\\n <div id=\\\"print-section\\\" class=\\\"donotprintthis1\\\">\\n\\n <div style=\\\"text-align: center;\\\">\\n <span>Company - <strong> {{loginCompanyName }} </strong></span> <br>\\n <span>Date: {{Date| date:'MM-dd-yyyy' }}</span><br>\\n <span>Projects Status View</span>\\n </div><br>\\n\\n\\n <div class=\\\"row\\\" *ngIf=\\\"kenbanFormat\\\">\\n <div class=\\\"col-md-2\\\" *ngFor=\\\"let week of weeks\\\">\\n <div class=\\\"drag-container\\\">\\n <div class=\\\"stageHeader pipelineHeader\\\" matTooltip=\\\"{{week.id}}\\\"> {{week.id}} ({{week.count}})</div>\\n\\n <div cdkDropList id=\\\"{{week.id}}\\\" [cdkDropListData]=\\\"week.weeklist\\\" [cdkDropListConnectedTo]=\\\"connectedTo\\\"\\n class=\\\"example-list\\\" (cdkDropListDropped)=\\\"drop($event,week.statusID)\\\">\\n <div class=\\\"example-box\\\" style=\\\"word-wrap: break-word;word-break: break-all;white-space: normal;\\\"\\n *ngFor=\\\"let weekItem of week.weeklist\\\" cdkDrag\\n [cdkDragDisabled]=\\\"!MenuPermissions[menuName][menuID]['U']\\\">\\n\\n\\n <span *ngIf=\\\"weekItem.UpdatedBy === null;else upby\\\">\\n Project: {{weekItem.ProjectName}}<br>\\n <!-- Created By: {{weekItem.CreatedBy}} <br> -->\\n Project owner:{{weekItem.ProjectOwner}} <br>\\n Due Date: {{weekItem.ProjectDueDate | date:'MM/dd/yyyy'}}\\n </span>\\n <ng-template #upby>\\n Project: {{weekItem.ProjectName}}<br>\\n <!-- Updated By: {{weekItem.UpdatedBy}}<br> -->\\n Project owner:{{weekItem.ProjectOwner}}<br>\\n Due Date: {{weekItem.ProjectDueDate | date:'MM/dd/yyyy'}}\\n </ng-template>\\n\\n\\n </div>\\n </div>\\n </div>\\n </div>\\n\\n </div>\\n <div class=\\\"footer\\\">\\n <label>{{copyRight}}</label>\\n </div>\\n </div>\\n <!-- ************************************************** -->\\n\"","module.exports = \"<link href=\\\"../../assets/css/dmapp.css\\\" rel=\\\"stylesheet\\\" id=\\\"bootstrap-css\\\">\\n\\n<style>\\n @media screen {\\n .donotprintthis1 {\\n display: none;\\n }\\n\\n .donotprintthis {\\n\\n display: block;\\n\\n }\\n }\\n\\n @media print {\\n h5 {\\n text-align: center;\\n }\\n\\n .donotprintthis1 {\\n\\n display: block;\\n\\n }\\n\\n .donotprintthis {\\n\\n display: none;\\n\\n }\\n }\\n</style>\\n\\n\\n\\n\\n<div class=\\\"reportHead\\\">\\n <div class=\\\"reportName\\\">\\n <h5>Projects in Backlog</h5>\\n </div>\\n <div class=\\\"reportActions\\\">\\n\\n <div class=\\\"searchField\\\" *ngIf=\\\"!disableSearch\\\">\\n <div class=\\\"item item-1\\\">\\n\\n <mat-form-field>\\n <mat-placeholder class=\\\"placeholder\\\">Search here</mat-placeholder>\\n <input matInput id=\\\"newGroup\\\" [disabled]=\\\"disableSearch\\\" (keyup)=\\\"Searchtext()\\\" name=\\\"search\\\"\\n [(ngModel)]=\\\"searchtext\\\" value=\\\"\\\" autocomplete=\\\"off\\\">\\n </mat-form-field>\\n </div>\\n </div>\\n <div class=\\\"printBtn\\\" *ngIf=\\\"!isDisable\\\">\\n <div class=\\\"item item-5\\\">\\n <button class=\\\"darkbtnbg btn btn-info\\\" printTitle=\\\"{{companyName}}\\\" matTooltip=\\\"Print report\\\"\\n printSectionId=\\\"printNoActions\\\" [useExistingCss]=\\\"true\\\" ngxPrint>Print</button>\\n\\n\\n </div>\\n </div>\\n <div class=\\\"excelBtn\\\" *ngIf=\\\"!isDisable\\\">\\n <div class=\\\"item item-5\\\">\\n <button class=\\\"darkbtnbg btn btn-info\\\" [disabled]=\\\"isDisable\\\" matTooltip=\\\"Export as excel\\\"\\n (click)=\\\"exportAsXLSX()\\\">\\n\\n Excel\\n </button>\\n </div>\\n\\n\\n </div>\\n\\n </div>\\n</div>\\n\\n\\n\\n<!-- ---------------------------Printing the report------------------------- -->\\n<div id=\\\"printNoActions\\\">\\n\\n <div class=\\\"donotprintthis1\\\">\\n <div style=\\\"text-align:center;margin-top: 15px;\\\">\\n <h6>\\n <span> Company - </span> {{companyName}} <br>\\n <span>Date: {{headerDate| date:'MM-dd-yyyy' }}</span><br>\\n <span>Report Type : Projects in Backlog</span>\\n\\n </h6>\\n\\n </div>\\n </div>\\n\\n <!-- <h5 class=\\\"donotprintthis1\\\"style=\\\"\\n margin-block-end: 30px;\\n \\\">Report Type : Projects in Backlog</h5> -->\\n <div class=\\\"tableDiv\\\">\\n <table id=\\\"dtBasicExample\\\">\\n <thead>\\n <tr>\\n <!--<th class=\\\"pointer\\\"> Company </th>-->\\n <th>No.</th>\\n <th class=\\\"pointer\\\" (click)=\\\"sort('TeamName')\\\"> Team\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n <th class=\\\"pointer\\\" (click)=\\\"sort('ProjectName')\\\"> Project\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n <th cName class=\\\"pointer\\\" (click)=\\\"sort('ProjectDescription')\\\"> Description\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n <th class=\\\"pointer\\\" (click)=\\\"sort('ProjectStatusName')\\\"> Status\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n <th class=\\\"pointer\\\" (click)=\\\"sort('ProjectOwner')\\\"> Project Owner\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n\\n </tr>\\n </thead>\\n <tbody>\\n <!---->\\n <tr\\n *ngFor=\\\"let element of NoActionProjectData | paginate: { itemsPerPage: rowsOnPage, currentPage: p } | sort: {property: column, direction: direction}; let i = index\\\">\\n <!--<td > {{element.CompanyName}}</td>-->\\n <td>{{i+1}}</td>\\n <td>{{element.TeamName}}</td>\\n <td> {{element.ProjectName}}</td>\\n <td> {{element.ProjectDescription}}</td>\\n <td> {{element.ProjectStatusName}}</td>\\n <td>{{element.ProjectOwner}}</td>\\n </tr>\\n </tbody>\\n\\n </table><br>\\n\\n <!-- <mat-paginator [pageSizeOptions]=\\\"[5, 10, 20]\\\" showFirstLastButtons></mat-paginator> -->\\n <div class=\\\"warningMsg\\\"\\n *ngIf=\\\"(NoActionProjectData === null||NoActionProjectData===undefined || NoActionProjectData.length === 0)\\\">\\n\\n <span>No data available</span>\\n\\n\\n </div>\\n </div>\\n <div class=\\\"donotprintthis1\\\" style=\\\" position: fixed; bottom: 0;\\n font-size: 13px;\\n margin-left: 35%;\\\">\\n <label>{{copyRight}}</label>\\n </div>\\n</div>\\n\\n\\n<div class=\\\"pageContainer\\\" *ngIf=\\\"processPaging &&NoActionProjectData.length>0\\\">\\n <div class=\\\"rowsSelection\\\">\\n <mat-form-field style=\\\"width: 50px; margin-top: -15px;\\\">\\n <mat-select [(ngModel)]=\\\"rowsOnPage\\\">\\n <mat-option *ngFor=\\\"let row of rowsOnPageSet\\\" [value]=\\\"row\\\">\\n {{row}}\\n </mat-option>\\n </mat-select>\\n </mat-form-field>\\n </div>\\n <div class=\\\"pageSelection\\\">\\n <pagination-controls (pageChange)=\\\"p = $event\\\"></pagination-controls>\\n </div>\\n</div>\\n\"","module.exports = \"<link href=\\\"../../assets/css/dmapp.css\\\" rel=\\\"stylesheet\\\" id=\\\"bootstrap-css\\\">\\n<div class=\\\"text-center\\\">\\n <h5 class=\\\"text-underline\\\">Quarters</h5>\\n</div>\\n<div id=\\\"wrapper\\\">\\n <div id=\\\"tableActions\\\">\\n <div class=\\\"field\\\">\\n <mat-form-field>\\n <mat-label>Select Starting Month <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-label>\\n <mat-select\\n [disabled]=\\\"isScoreCardsExist ||(employeeDetails && (employeeDetails.IsEmployeeLoginLevel=='Team' || employeeDetails.IsEmployeeLoginLevel=='Department'))\\\"\\n (selectionChange)=\\\"monthChange($event.value)\\\" [(ngModel)]=\\\"selectedMonthId\\\">\\n <mat-option *ngFor=\\\"let month of months;let i=index;\\\" [value]=\\\"month.MonthId\\\">\\n {{month.MonthName}}\\n </mat-option>\\n </mat-select>\\n </mat-form-field>\\n </div>\\n <div class=\\\"field\\\">\\n <mat-form-field>\\n <mat-label>Select Week Day</mat-label>\\n <mat-select\\n [disabled]=\\\"isScoreCardsExist ||(employeeDetails && (employeeDetails.IsEmployeeLoginLevel=='Team' || employeeDetails.IsEmployeeLoginLevel=='Department'))\\\"\\n (selectionChange)=\\\"weekDayChange($event.value)\\\" [(ngModel)]=\\\"selectedWeekDayId\\\">\\n <mat-option *ngFor=\\\"let weekDay of quarterWeekDays;let i=index;\\\" [value]=\\\"weekDay.WeekDayId\\\">\\n {{weekDay.WeekDay}}\\n </mat-option>\\n </mat-select>\\n </mat-form-field>\\n </div>\\n <div class=\\\"field\\\">\\n <mat-form-field>\\n <mat-label>Select Week Date</mat-label>\\n <mat-select\\n [disabled]=\\\"isScoreCardsExist ||(employeeDetails && (employeeDetails.IsEmployeeLoginLevel=='Team' || employeeDetails.IsEmployeeLoginLevel=='Department'))\\\"\\n (selectionChange)=\\\"weekDateChange($event.value)\\\" [(ngModel)]=\\\"selectedWeekDate\\\">\\n <mat-option *ngFor=\\\"let week of quarterWeekStartDate;let i=index;\\\" [value]=\\\"week\\\">\\n {{week}}\\n </mat-option>\\n </mat-select>\\n </mat-form-field>\\n </div>\\n <div class=\\\"field\\\">\\n <button class=\\\"darkbtnbg btn btn-info\\\" style='margin-top: 10px;'\\n [disabled]=\\\"!MenuPermissions[menuName][menuID]['C'] || isScoreCardsExist ||(employeeDetails && (employeeDetails.IsEmployeeLoginLevel=='Team' || employeeDetails.IsEmployeeLoginLevel=='Department'))\\\"\\n (click)='saveQuarters()' matTooltip=\\\"Save Quarter\\\">Save\\n </button>\\n </div>\\n <div class=\\\"field warningMsg\\\" *ngIf=\\\"errorMsg\\\" style=\\\"padding-top: 10px;\\\">\\n <span>{{errorMsg}}</span>\\n </div>\\n </div>\\n</div>\\n<!-- <div class=\\\"row col-sm-12\\\">\\n <span class=\\\"alert alert-info alert-info-sm\\\">Please select starting month to generate Quarters</span>\\n</div> -->\\n<div class=\\\"row col-sm-12\\\">\\n <ng-container *ngFor=\\\"let quarter of quarterList\\\">\\n <div class=\\\"col-sm-6 m-b-10\\\">\\n <div class=\\\"card text-center\\\">\\n <div class=\\\"card-header\\\">\\n <strong>{{quarter.QuarterName}}</strong>\\n </div>\\n <div class=\\\"card-body text-center\\\">\\n <div class=\\\"row col-sm-12\\\">\\n <ng-container *ngFor=\\\"let month of quarter.QuarterMonths\\\">\\n <div class=\\\"col-sm-4\\\" style=\\\"border-right: 1px solid;\\\">\\n {{month.MonthName}}\\n </div>\\n </ng-container>\\n </div>\\n </div>\\n </div>\\n </div>\\n </ng-container>\\n</div>\\n\"","module.exports = \"<style>\\n\\n @media screen\\n {\\n .donotprintthis1\\n {\\n display: none;\\n }\\n \\n .donotprintthis {\\n \\n display: block;\\n \\n }\\n }\\n \\n @media print {\\n h5{\\n text-align: center;\\n }\\n .donotprintthis1 {\\n \\n display: block;\\n \\n }\\n \\n .donotprintthis {\\n \\n display: none;\\n \\n }\\n }\\n \\n @media print {\\n @page { margin: 0; }\\n body { margin: 1.6cm; }\\n}\\n \\n@page \\n {\\n size: auto; /* auto is the initial value */\\n margin: 0mm; /* this affects the margin in the printer settings */\\n }\\n\\n </style>\\n \\n \\n\\n \\n<h5 style=\\\"margin-top: -30px;\\\">Activity Frustrations</h5>\\n\\n<div class=\\\"container\\\" style=\\\"margin-top: -10px\\\" fxLayout fxLayout.xs=\\\"column\\\" fxLayoutAlign=\\\"center\\\" fxLayoutGap=\\\"10px\\\" fxLayoutGap.xs=\\\"0\\\">\\n <div class=\\\"col-lg-8\\\">\\n <div class=\\\"item item-5 alignLeft\\\" fxFlex=\\\"12%\\\">\\n <!-- <h4>All processes - No frustration</h4> -->\\n </div>\\n </div>\\n <div class=\\\"item item-1\\\" fxFlex=\\\"51%\\\" fxFlexOrder=\\\"1\\\">\\n \\n </div>\\n \\n <div class=\\\"col-lg-3\\\"></div>\\n <div class=\\\"item item-5\\\" fxFlex=\\\"10%\\\" fxFlexOrder=\\\"3\\\" *ngIf=\\\"!isDisable\\\">\\n <button mat-raised-button color=\\\"primary\\\" matTooltip=\\\"Print report\\\" style=\\\"margin-top:10px;\\\" printSectionId=\\\"printNoActions\\\" [useExistingCss]=\\\"true\\\" ngxPrint><i class='fa fa-print'></i></button> \\n \\n \\n </div>\\n \\n <div class=\\\"item item-1\\\" fxFlex=\\\"25%\\\" fxFlexOrder=\\\"2\\\" *ngIf=\\\"!disableSearch\\\">\\n \\n <mat-form-field style=\\\"width: 180px\\\">\\n <mat-placeholder class=\\\"placeholder\\\">Search here</mat-placeholder>\\n <input matInput id=\\\"newGroup\\\" [disabled]=\\\"disableSearch\\\" (keyup)=\\\"Searchtext()\\\" name=\\\"search\\\" [(ngModel)]=\\\"searchtext\\\" value=\\\"\\\" autocomplete=\\\"off\\\">\\n </mat-form-field>\\n </div>\\n <div class=\\\"item item-5\\\" fxFlex=\\\"11%\\\" fxFlexOrder=\\\"3\\\">\\n \\n </div>\\n \\n </div>\\n\\n<div id=\\\"printNoActions\\\">\\n\\n <div class=\\\"donotprintthis1\\\"><div style=\\\"text-align:center;margin-top: 15px; margin-block-end: 30px\\\">\\n <h6>\\n <span> Company - </span> {{loginCompanyName}} <br>\\n <span>Date: {{headerDate| date:'MM-dd-yyyy' }}</span><br>\\n <span>Report Type : Activity Frustrations</span>\\n \\n </h6>\\n \\n </div>\\n </div>\\n \\n <table id=\\\"dtBasicExample\\\" style=\\\"margin-top: 10px;\\\" class=\\\"table table-responsive\\\" class=\\\"fixed\\\">\\n <thead>\\n <tr>\\n <!--<th class=\\\"pointer\\\"> Company </th>-->\\n \\n <th class=\\\"pointer\\\" (click)=\\\"sort('ProcessName')\\\"> Process\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n <th cName class=\\\"pointer\\\" (click)=\\\"sort('ActivityName')\\\"> Activity\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n <th class=\\\"pointer\\\" (click)=\\\"sort('FrustrationCount')\\\"> Frustration Count\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n \\n </tr>\\n </thead>\\n <tbody>\\n <!---->\\n <tr *ngFor=\\\"let element of pointersData | paginate: { itemsPerPage: rowsOnPage, currentPage: p } | sort: {property: column, direction: direction}; let i = index\\\">\\n <!--<td > {{element.CompanyName}}</td>-->\\n \\n <td> {{element.ProcessName}}</td> \\n <td> {{element.ActivityName}}</td>\\n <td> {{element.FrustrationCount}}</td>\\n\\n </tr>\\n </tbody>\\n\\n </table><br>\\n \\n <!-- <mat-paginator [pageSizeOptions]=\\\"[5, 10, 20]\\\" showFirstLastButtons></mat-paginator> -->\\n <div class=\\\"warningMsg\\\" *ngIf=\\\"(pointersData === null||pointersData===undefined || pointersData.length === 0)\\\">\\n \\n <span >No data available</span>\\n \\n \\n </div> \\n</div>\\n <div class=\\\"container row\\\" style=\\\"float:right\\\" *ngIf=\\\"processPaging && pointersData.length>0\\\">\\n <div class=\\\"col-lg-7\\\"></div>\\n <div class=\\\"col-lg-1\\\">\\n <mat-form-field style=\\\"width: 50px; margin-top: -15px;\\\">\\n <mat-select [(ngModel)]=\\\"rowsOnPage\\\">\\n <mat-option *ngFor=\\\"let row of rowsOnPageSet\\\" [value]=\\\"row\\\">\\n {{row}}\\n </mat-option>\\n </mat-select>\\n </mat-form-field>\\n </div>\\n \\n <div class=\\\"col-lg-4\\\">\\n \\n <!-- style=\\\"margin-top: -50px\\\" -->\\n <pagination-controls (pageChange)=\\\"p = $event\\\"></pagination-controls>\\n </div>\\n </div>\\n\\n\\n\\n\"","module.exports = \"<link href=\\\"../../assets/css/dmapp.css\\\" rel=\\\"stylesheet\\\" id=\\\"bootstrap-css\\\">\\r\\n\\r\\n<span (click)=\\\"close()\\\" matTooltip=\\\"Close\\\" class=\\\"close closereport\\\">×</span>\\r\\n<h1 mat-dialog-title></h1>\\r\\n<div mat-dialog-content>\\r\\n <div class=\\\"tableDiv\\\">\\r\\n <table>\\r\\n <thead>\\r\\n <tr>\\r\\n <th>Team</th>\\r\\n <th>Type</th>\\r\\n <th>Frustration</th>\\r\\n <th>Process</th>\\r\\n <th>Severity</th>\\r\\n <th>Status</th>\\r\\n </tr>\\r\\n </thead>\\r\\n <tbody>\\r\\n <tr *ngFor=\\\"let d of data\\\">\\r\\n <td>{{d.TeamName}}</td>\\r\\n <td>{{d.FrustrationsTypeName}}</td>\\r\\n <td>{{d.Subject}}</td>\\r\\n <td>{{d.ProcessName}}</td>\\r\\n <td>{{d.SeverityName}}</td>\\r\\n <td>{{d.StatusName}}</td>\\r\\n </tr>\\r\\n </tbody>\\r\\n </table>\\r\\n </div>\\r\\n</div>\\r\\n\"","module.exports = \"<script src=\\\"https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js\\\"></script>\\n<script src=\\\"https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js\\\"></script>\\n<script src=\\\"https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js\\\"></script>\\n<link href=\\\"../../assets/css/dmapp.css\\\" rel=\\\"stylesheet\\\" id=\\\"bootstrap-css\\\">\\n\\n<style>\\n .box {\\n display: flex;\\n flex-wrap: wrap;\\n text-align: center;\\n overflow-wrap: break-word;\\n }\\n\\n .box>* {\\n width: auto;\\n color: white;\\n background-color: black;\\n border: 1px solid;\\n\\n }\\n\\n @media screen {\\n .donotprintthis1 {\\n display: none;\\n }\\n\\n .donotprintthis {\\n\\n display: block;\\n\\n }\\n }\\n\\n @media print {\\n\\n div::-webkit-scrollbar {\\n display: none;\\n }\\n\\n h5 {\\n text-align: center;\\n }\\n\\n .donotprintthis1 {\\n\\n display: block;\\n\\n }\\n\\n .donotprintthis {\\n\\n display: none;\\n\\n }\\n\\n #totalTable {\\n display: none;\\n }\\n\\n #chartcategory {\\n display: flex;\\n }\\n }\\n</style>\\n\\n<div id=\\\"printCategory\\\">\\n <div class=\\\"donotprintthis\\\">\\n <div class=\\\"reportHead\\\">\\n <div class=\\\"reportName\\\">\\n <h5>Frustrations Report by Type</h5>\\n </div>\\n <div class=\\\"reportActions\\\" *ngIf='dashboardCat'>\\n\\n <div class=\\\"selectTeam\\\"\\n *ngIf=\\\" dashboard && (EmployeeID=='0' || employeeDetails.IsEmployeeLoginLevel=='Company') \\\">\\n <mat-form-field>\\n <mat-label> Select Type <span style=\\\"color:red; font-size: 15px;\\\">*</span></mat-label>\\n <mat-select (selectionChange)=\\\"reportTypeChange($event.value)\\\" [(ngModel)]=\\\"selectedReportType\\\">\\n <mat-option *ngFor=\\\"let scoreCardType of scoreCardTypes;\\\" [value]=\\\"scoreCardType\\\">\\n {{scoreCardType}}\\n </mat-option>\\n </mat-select>\\n </mat-form-field>\\n </div>\\n\\n <div class=\\\"selectTeam\\\"\\n *ngIf=\\\" dashboard &&!toggleTeam &&(EmployeeID=='0' || employeeDetails.IsEmployeeLoginLevel=='Company')\\\">\\n <mat-form-field>\\n <mat-label> Select Department <span style=\\\"color:red; font-size: 15px;\\\">*</span></mat-label>\\n <mat-select (selectionChange)=\\\"departmentChange($event.value)\\\" [(ngModel)]=\\\"selectedDepartmentId\\\">\\n <mat-option *ngFor=\\\"let dept of departmentList;\\\" [value]=\\\"dept.DepartmentID\\\">\\n {{dept.DepartmentName}}\\n </mat-option>\\n </mat-select>\\n </mat-form-field>\\n </div>\\n <div class=\\\"selectTeam\\\" *ngIf=\\\"toggleTeam && dashboard \\\">\\n <mat-form-field>\\n <mat-label> Select Team <span style=\\\"color:red; font-size: 15px;\\\">*</span></mat-label>\\n <mat-select (selectionChange)=\\\"teamChange($event)\\\" [(ngModel)]=\\\"TeamID\\\">\\n <mat-option *ngFor=\\\"let team of teamData;\\\" [value]=\\\"team.TeamID\\\">\\n {{team.TeamName}}\\n </mat-option>\\n </mat-select>\\n </mat-form-field>\\n </div>\\n <div class=\\\"printBtn\\\" *ngIf=\\\"isDisable\\\">\\n <button class=\\\"darkbtnbg btn btn-info\\\" matTooltip=\\\"Print report\\\" printSectionId=\\\"printCategory\\\"\\n printTitle=\\\"{{companyName}}\\\" [useExistingCss]=\\\"true\\\" ngxPrint>Print</button>\\n <!-- <button mat-raised-button color=\\\"primary\\\" matTooltip=\\\"Export As Excel\\\" style=\\\"margin-top:10px;cursor: pointer;\\\" (click)=\\\"exportAsXLSX()\\\"> Excel</button> -->\\n\\n </div>\\n <div class=\\\"excelBtn\\\" *ngIf=\\\"isDisable\\\">\\n <div class=\\\"item item-5\\\">\\n <button class=\\\"darkbtnbg btn btn-info\\\" matTooltip=\\\"Export as excel\\\" (click)=\\\"exportAsXLSX()\\\">\\n\\n Excel\\n </button>\\n </div>\\n\\n </div>\\n </div>\\n </div>\\n\\n </div>\\n\\n <div class=\\\"donotprintthis1\\\">\\n <div style=\\\"text-align:center;margin-top: 15px; margin-block-end: 30px\\\">\\n <h6>\\n <span> Company - </span> {{companyName}} <br>\\n <span>Date: {{headerDate| date:'MM-dd-yyyy' }}</span><br>\\n <span *ngIf=\\\"!selectedReportType || selectedReportType == 'Team'\\\">Team: {{TeamName ? TeamName : 'Aggregate\\n Report'}}</span>\\n <span *ngIf=\\\"selectedReportType == 'Department'\\\">Department: {{departmentName ? departmentName : 'Aggregate\\n Report'}}</span><br>\\n <span>Report Type : Frustrations Report by Type</span>\\n\\n </h6>\\n\\n </div>\\n </div>\\n <!-- <h5 class=\\\"donotprintthis1\\\"style=\\\"\\n margin-block-end: 30px;\\n \\\">Report Type : Frustrations Report by Type</h5> -->\\n\\n\\n\\n <!-- ---------------------------Printing the report------------------------- -->\\n <!-- <div id=\\\"printCategory\\\"> -->\\n\\n <div class=\\\"reportTable\\\" *ngIf='dashboard && !warningMsg'>\\n <!-- <div class=\\\"col-sm-6\\\" id=\\\"chartcategory\\\" style=\\\"height:350px;\\\"></div> -->\\n\\n <div class=\\\"col-sm-12 flex-container\\\" id=\\\"totalTable\\\" style=\\\"overflow-x: auto; width: 60em; white-space: nowrap;\\\">\\n\\n <br>\\n <table class=\\\"table\\\">\\n <tr style=\\\"background-color: #3775b5; color: white\\\">\\n <td style=\\\"text-align: center;\\\">Total <br> {{totalCount}}</td>\\n <td *ngFor='let d of frust' style=\\\"cursor: pointer;text-align: center;\\\">\\n <span (click)=\\\"getData(d.data)\\\"> {{d.label}} <br> {{d.value}}</span>\\n </td>\\n </tr>\\n </table>\\n </div>\\n <div class=\\\"donotprintthis1 col-sm-12 flex-container \\\" id=\\\"totalTable1\\\"\\n style=\\\" width: 110em; white-space: nowrap; word-break: break-all;\\\">\\n <div>\\n <br>\\n <table class=\\\"table\\\">\\n <tr style=\\\"background-color: #3775b5; color: white\\\">\\n <td style=\\\"text-align: center;\\\">Total <br> {{totalCount}}</td>\\n <td *ngFor='let d of frust' style=\\\"cursor: pointer;text-align: center;\\\">\\n <span (click)=\\\"getData(d.data)\\\"> {{d.label}} <br> {{d.value}}</span>\\n </td>\\n </tr>\\n </table>\\n </div>\\n\\n </div>\\n <div class=\\\"col-lg-12 noPagebreak\\\">\\n <div class=\\\"col-sm-12\\\" id=\\\"chartcategory\\\"></div>\\n </div>\\n <!-- <div class=\\\"col-sm-12\\\" id=\\\"chartcategory\\\" style=\\\"height:350px;overflow-x: scroll; overflow-y: hidden; width: 60em; white-space: nowrap;\\\"></div> -->\\n </div><br>\\n <!-- <div class=\\\"col-sm-6\\\" id=\\\"chartcategory\\\" style=\\\"height:350px;\\\"></div> -->\\n <br>\\n <div class=\\\"donotprintthis\\\">\\n <div class=\\\"searchField\\\" *ngIf='dashboardCat'>\\n\\n <div class=\\\"item item-1\\\" *ngIf=\\\"disableSearch\\\">\\n <mat-form-field>\\n <mat-placeholder class=\\\"placeholder\\\">Search here</mat-placeholder>\\n <input matInput id=\\\"newGroup\\\" (keyup)=\\\"Searchtext()\\\" name=\\\"search\\\" [(ngModel)]=\\\"searchtext\\\" value=\\\"\\\"\\n autocomplete=\\\"off\\\">\\n </mat-form-field>\\n </div>\\n\\n </div>\\n </div>\\n <div *ngIf='dashboardCat'>\\n <div class=\\\"tableDiv\\\">\\n <table>\\n <thead>\\n <tr>\\n <th>No.</th>\\n <th class=\\\"pointer\\\" *ngIf=\\\"selectedReportType === 'Department'\\\" (click)=\\\"sort('DepartmentName')\\\">\\n Department\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n <th class=\\\"pointer\\\" (click)=\\\"sort('TeamName')\\\"> Team\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n <th class=\\\"pointer\\\" (click)=\\\"sort('ProcessName')\\\"> Process\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n <th class=\\\"pointer\\\" (click)=\\\"sort('ActivityName')\\\"> Activity\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n\\n <th class=\\\"pointer\\\" (click)=\\\"sort('FrustrationsTypeName')\\\"> Type\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n <th class=\\\"pointer\\\" (click)=\\\"sort('Subject')\\\"> Frustration\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n <th class=\\\"pointer\\\" (click)=\\\"sort('Description')\\\"> Description\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n\\n <th class=\\\"pointer\\\" (click)=\\\"sort('StatusName')\\\"> Status\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n <th class=\\\"pointer\\\" (click)=\\\"sort('SeverityName')\\\"> Severity\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n <th class=\\\"pointer\\\" (click)=\\\"sort('ProjectName')\\\"> Project\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n\\n </tr>\\n </thead>\\n <tbody>\\n\\n <tr\\n *ngFor='let metric of metricList | paginate: { itemsPerPage: rowsOnPage, currentPage: p } | sort: {property: column, direction: direction};let i=index;'>\\n <td>{{i+1}}</td>\\n <td *ngIf=\\\"selectedReportType === 'Department'\\\">\\n {{metric.DepartmentName}}\\n </td>\\n <td>\\n {{metric.TeamName}}<br>\\n </td>\\n <td>\\n {{metric.ProcessName}}<br>\\n </td>\\n <td>\\n {{metric.ActivityName}}<br>\\n </td>\\n\\n <td>\\n {{metric.FrustrationsTypeName}}<br>\\n </td>\\n <td>\\n\\n {{metric.Subject}}\\n\\n </td>\\n <td>\\n {{metric.Description}}\\n </td>\\n <td>\\n {{metric.StatusName}}\\n </td>\\n <td>\\n {{metric.SeverityName}}\\n </td>\\n <td>\\n {{metric.ProjectName}}\\n </td>\\n </tr>\\n </tbody>\\n </table>\\n </div>\\n <div class=\\\"donotprintthis\\\" style=\\\"margin-top: 10px;\\\">\\n <div class=\\\"pageContainer\\\" *ngIf=\\\"activityPaging && metricList.length>0\\\">\\n <div class=\\\"rowsSelection\\\">\\n <mat-form-field style=\\\"width: 50px; margin-top: -15px;\\\">\\n <mat-select [(ngModel)]=\\\"rowsOnPage\\\">\\n <mat-option *ngFor=\\\"let row of rowsOnPageSet\\\" [value]=\\\"row\\\">\\n {{row}}\\n </mat-option>\\n </mat-select>\\n </mat-form-field>\\n </div>\\n <div class=\\\"pageSelection\\\">\\n <pagination-controls (pageChange)=\\\"p = $event\\\"></pagination-controls>\\n </div>\\n </div>\\n\\n </div>\\n </div>\\n <div class=\\\"donotprintthis1\\\" style=\\\" position: fixed; bottom: 0;\\n font-size: 13px;\\n margin-left: 35%;\\\">\\n <label>© {{copyRight}} </label>\\n </div>\\n</div>\\n\\n<!-- <div class=\\\"row\\\">\\n <div class=\\\"col-lg-9\\\"></div>\\n\\n <div class=\\\"container row\\\" style=\\\"float:right;margin-left: auto\\\" *ngIf=\\\"activityPaging && metricList.length>0\\\">\\n <div class=\\\"col-lg-6\\\"></div>\\n <div class=\\\"col-lg-1\\\">\\n <select class=\\\"form-control\\\" [(ngModel)]=\\\"rowsOnPage\\\"\\n style=\\\"border-left:0px;border-right:0px;border-top:0px;\\\">\\n <option *ngFor=\\\"let row of rowsOnPageSet\\\" [value]=\\\"row\\\">\\n {{row}}\\n </option>\\n </select>\\n </div>\\n\\n <div class=\\\"col-lg-5\\\" style=\\\"float: right;\\\">\\n\\n <!-- style=\\\"margin-top: -50px\\\" -->\\n<!-- <pagination-controls (pageChange)=\\\"p = $event\\\"></pagination-controls>\\n </div>\\n </div>\\n </div> -->\\n\\n<div class=\\\"warningMsg\\\" *ngIf=\\\"(metricList === null||metricList===undefined || metricList.length === 0)\\\">\\n\\n <span style=\\\"color:red;\\\">{{wrng}}</span>\\n\\n</div>\\n<div style=\\\"text-align:center;margin-top: 10px;\\\"><span style=\\\"color:red;\\\"> {{warningMsg}} </span></div>\\n\\n<br>\\n<div class=\\\"col-lg-12 noPagebreak\\\" *ngIf='!dashboard && !warningMsg;else temp;'>\\n <div class=\\\"col-sm-12\\\" id=\\\"chartcategory\\\" style=\\\"height:350px;\\\"></div>\\n</div>\\n<ng-template #temp>\\n <div class=\\\"col-sm-12\\\" id=\\\"chartcategory\\\"></div>\\n</ng-template>\\n<!-- ---------------------------------- -->\\n<!-- <div class=\\\"row\\\" *ngIf='dashboard && !warningMsg' style=\\\"margin-left: 10px;\\\"> -->\\n<!-- <div class=\\\"col-sm-6\\\" id=\\\"chartcategory\\\" style=\\\"height:350px;\\\"></div> -->\\n<!-- <div class=\\\"col-sm-6\\\" style=\\\"overflow-x: auto;\\\">\\n <br>\\n <table class=\\\"table\\\">\\n <tr style=\\\"background-color:black; color: white\\\">\\n <td>Total <br> {{totalCount}}</td>\\n <td *ngFor='let d of frust' style=\\\"cursor: pointer\\\">\\n <span (click)=\\\"getData(d.data)\\\"> {{d.label}} <br> {{d.value}}</span>\\n </td>\\n </tr>\\n </table>\\n </div>\\n <div class=\\\"col-sm-6\\\" id=\\\"chartcategory\\\" style=\\\"height:350px;\\\"></div>\\n </div> -->\"","module.exports = \"<link href=\\\"../../assets/css/dmapp.css\\\" rel=\\\"stylesheet\\\" id=\\\"bootstrap-css\\\">\\r\\n\\r\\n<span (click)=\\\"close()\\\" matTooltip=\\\"Close\\\" class=\\\"close closereport\\\">×</span>\\r\\n<h1 mat-dialog-title></h1>\\r\\n<div mat-dialog-content>\\r\\n <div class=\\\"tableDiv\\\">\\r\\n <table>\\r\\n <thead>\\r\\n <tr>\\r\\n <th>Team</th>\\r\\n <th>Process</th>\\r\\n <th>Activity</th>\\r\\n\\r\\n <th>Frustration</th>\\r\\n <th>Status</th>\\r\\n <th>Type</th>\\r\\n <th>Severity</th>\\r\\n <th>Description</th>\\r\\n <th>Date Opened</th>\\r\\n\\r\\n </tr>\\r\\n </thead>\\r\\n <tbody>\\r\\n <tr *ngFor=\\\"let d of data\\\">\\r\\n <td>{{d.TeamName}}</td>\\r\\n <td>{{d.ProcessName}}</td>\\r\\n <td>{{d.ActivityName}}</td>\\r\\n\\r\\n <td>{{d.Subject}}</td>\\r\\n <td>{{d.StatusName}}</td>\\r\\n <td>{{d.FrustrationsTypeName}}</td>\\r\\n <td>{{d.SeverityName}}</td>\\r\\n <td>{{d.Description}}</td>\\r\\n <td>{{d.CreatedDate | date:'MM/dd/yyyy'}}</td>\\r\\n\\r\\n </tr>\\r\\n </tbody>\\r\\n </table>\\r\\n </div>\\r\\n</div>\\r\\n\"","module.exports = \"<script src=\\\"https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js\\\"></script>\\n<script src=\\\"https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js\\\"></script>\\n<script src=\\\"https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js\\\"></script>\\n\\n<link href=\\\"../../assets/css/dmapp.css\\\" rel=\\\"stylesheet\\\" id=\\\"bootstrap-css\\\">\\n\\n<style>\\n #bg-text {\\n color: lightgrey;\\n font-size: 60px;\\n transform: rotate(300deg);\\n -webkit-transform: rotate(300deg);\\n }\\n\\n #content {\\n position: absolute;\\n z-index: 1;\\n }\\n\\n @media screen {\\n .donotprintthis1 {\\n display: none;\\n }\\n\\n .donotprintthis {\\n\\n display: block;\\n\\n }\\n }\\n\\n @media print {\\n h5 {\\n text-align: center;\\n }\\n\\n .donotprintthis1 {\\n\\n display: block;\\n\\n }\\n\\n .donotprintthis {\\n\\n display: none;\\n\\n }\\n }\\n</style>\\n\\n\\n\\n<div id=\\\"printSeverity\\\">\\n\\n <div class=\\\"donotprintthis\\\">\\n <div class=\\\"reportHead\\\">\\n <div class=\\\"reportName\\\">\\n <h5>Frustrations Severity Report</h5>\\n </div>\\n <div class=\\\"reportActions\\\" *ngIf='dashboardSev'>\\n <div class=\\\"selectTeam\\\">\\n <div class=\\\"item item-1\\\">\\n <mat-form-field>\\n <mat-label>* Select Team</mat-label>\\n\\n <mat-select (selectionChange)=\\\"GetSelectedReport($event)\\\" [(ngModel)]=\\\"TeamID\\\">\\n <mat-option *ngFor=\\\"let team of teamData;let i=index;\\\" [value]=\\\"team.TeamID\\\">\\n\\n <span> {{team.TeamName}} </span>\\n\\n </mat-option>\\n </mat-select>\\n </mat-form-field>\\n </div>\\n </div>\\n <div class=\\\"printBtn\\\" *ngIf=\\\"isDisable\\\">\\n <button class=\\\"darkbtnbg btn btn-info\\\" matTooltip=\\\"Print report\\\" printSectionId=\\\"printSeverity\\\"\\n printTitle=\\\"{{companyName}}\\\" [useExistingCss]=\\\"true\\\" ngxPrint>Print</button>\\n\\n </div>\\n <div class=\\\"excelBtn\\\" *ngIf=\\\"isDisable\\\">\\n <div class=\\\"item item-5\\\">\\n <button class=\\\"darkbtnbg btn btn-info\\\" matTooltip=\\\"Export as excel\\\" (click)=\\\"exportAsXLSX()\\\">\\n\\n Excel\\n </button>\\n </div>\\n\\n </div>\\n\\n </div>\\n </div>\\n </div>\\n\\n\\n <div class=\\\"donotprintthis1\\\">\\n <div style=\\\"text-align:center;margin-top: 15px; margin-block-end: 30px\\\">\\n <h6>\\n <span> Company - </span> {{companyName}} <br>\\n <span>Date: {{headerDate| date:'MM-dd-yyyy' }}</span><br>\\n <span >Team: {{TeamName ? TeamName : 'Aggregate\\n Report'}}</span><br>\\n <span>Report Type : Frustrations Severity Report</span>\\n\\n </h6>\\n\\n </div>\\n </div>\\n\\n\\n <!-- ---------------------------Printing the report------------------------- -->\\n <!-- <div id=\\\"printSeverity\\\"> -->\\n\\n <div class=\\\"reportTable\\\" *ngIf='dashboardSeverity && !warningMsg'>\\n <!-- <div class=\\\"col-sm-6\\\" id=\\\"chatSeverity\\\" style=\\\"height:350px;\\\" ></div> -->\\n <div class=\\\"col-sm-12\\\" style=\\\"overflow-x: auto;\\\">\\n <br>\\n <table class=\\\"table\\\" *ngIf=\\\"dashboardSeverity\\\">\\n <tr style=\\\"background-color:#3775b5; color: white\\\">\\n <td style=\\\"text-align: center;\\\">Total <br> {{totalCount}}</td>\\n <td *ngFor='let d of frust' style=\\\"cursor: pointer;text-align: center;\\\">\\n <span (click)=\\\"getData(d.data)\\\"> {{d.label}} <br> {{d.value}}</span>\\n\\n </td>\\n </tr>\\n </table>\\n </div>\\n <div class=\\\"col-sm-6\\\" id=\\\"chatSeverity\\\" style=\\\"height:350px;\\\"></div>\\n </div>\\n\\n <!-- <div class=\\\"col-sm-6\\\" id=\\\"chatSeverity\\\" style=\\\"height:350px;\\\"></div> -->\\n <div class=\\\"donotprintthis\\\">\\n <div class=\\\"searchField\\\" *ngIf='dashboardSev'>\\n\\n\\n <div class=\\\"item item-1\\\" *ngIf=\\\"disableSearch\\\">\\n <mat-form-field>\\n <mat-placeholder class=\\\"placeholder\\\">Search here</mat-placeholder>\\n <input matInput id=\\\"newGroup\\\" (keyup)=\\\"Searchtext()\\\" name=\\\"search\\\" [(ngModel)]=\\\"searchtext\\\" value=\\\"\\\"\\n autocomplete=\\\"off\\\">\\n </mat-form-field>\\n </div>\\n\\n\\n\\n </div>\\n </div>\\n <div *ngIf='dashboardSev'>\\n <div class=\\\"tableDiv\\\">\\n <table>\\n <thead>\\n <tr>\\n <th> No.</th>\\n <th class=\\\"pointer\\\" (click)=\\\"sort('TeamName')\\\"> Team\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n <th class=\\\"pointer\\\" (click)=\\\"sort('ProcessName')\\\"> Process\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n <th class=\\\"pointer\\\" (click)=\\\"sort('ActivityName')\\\"> Activity\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n\\n <th class=\\\"pointer\\\" (click)=\\\"sort('FrustrationsTypeName')\\\"> Type\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n <th class=\\\"pointer\\\" (click)=\\\"sort('Subject')\\\"> Frustration\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n <th class=\\\"pointer\\\" (click)=\\\"sort('Description')\\\"> Description\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n\\n <th class=\\\"pointer\\\" (click)=\\\"sort('StatusName')\\\"> Status\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n <th class=\\\"pointer\\\" (click)=\\\"sort('SeverityName')\\\"> Severity\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n <th class=\\\"pointer\\\" (click)=\\\"sort('ProjectName')\\\"> Project\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n </tr>\\n </thead>\\n <tbody>\\n <tr\\n *ngFor='let metric of metricList | paginate: { itemsPerPage: rowsOnPage, currentPage: p } | sort: {property: column, direction: direction};let i=index;'>\\n <td>{{i+1}}</td>\\n <td>{{metric.TeamName}}</td>\\n <td>\\n {{metric.ProcessName}}<br>\\n </td>\\n <td>{{metric.ActivityName}}</td>\\n\\n <td>\\n {{metric.FrustrationsTypeName}}\\n </td>\\n <td>\\n\\n {{metric.Subject}}\\n\\n </td>\\n <td>\\n {{metric.Description}}\\n </td>\\n\\n\\n\\n <td>\\n {{metric.StatusName}}\\n </td>\\n <td>\\n {{metric.SeverityName}}\\n </td>\\n <td>\\n {{metric.ProjectName}}\\n </td>\\n </tr>\\n </tbody>\\n </table>\\n\\n </div>\\n <div class=\\\"donotprintthis\\\" style=\\\"margin-top: 10px;\\\">\\n <div class=\\\"pageContainer\\\" *ngIf=\\\"activityPaging && metricList.length>0\\\">\\n <div class=\\\"rowsSelection\\\">\\n <mat-form-field style=\\\"width: 50px; margin-top: -15px;\\\">\\n <mat-select [(ngModel)]=\\\"rowsOnPage\\\">\\n <mat-option *ngFor=\\\"let row of rowsOnPageSet\\\" [value]=\\\"row\\\">\\n {{row}}\\n </mat-option>\\n </mat-select>\\n </mat-form-field>\\n </div>\\n <div class=\\\"pageSelection\\\">\\n <pagination-controls (pageChange)=\\\"p = $event\\\"></pagination-controls>\\n </div>\\n </div>\\n\\n </div>\\n </div>\\n <div class=\\\"donotprintthis1\\\" style=\\\" position: fixed; bottom: 0;\\n font-size: 13px;\\n margin-left: 35%;\\\">\\n <label>{{copyRight}}</label>\\n </div>\\n</div>\\n<!-- <div class=\\\"row\\\" >\\n <div class=\\\"col-lg-9\\\"></div>\\n <div class=\\\"container row\\\" style=\\\"float:right;margin-left: auto\\\" *ngIf=\\\"activityPaging && metricList.length>0\\\" >\\n <div class=\\\"col-lg-6\\\"></div>\\n <div class=\\\"col-lg-1\\\">\\n <select class=\\\"form-control\\\" [(ngModel)]=\\\"rowsOnPage\\\" style=\\\"border-left:0px;border-right:0px;border-top:0px;\\\">\\n <option *ngFor=\\\"let row of rowsOnPageSet\\\" [value]=\\\"row\\\">\\n {{row}}\\n </option>\\n </select>\\n </div>\\n \\n <div class=\\\"col-lg-5\\\" style=\\\"float: right;\\\">\\n \\n <!-- style=\\\"margin-top: -50px\\\" -->\\n<!--<pagination-controls (pageChange)=\\\"p = $event\\\"></pagination-controls>\\n </div>\\n </div>\\n </div> -->\\n\\n<div class=\\\"warningMsg\\\" *ngIf=\\\"(metricList === null||metricList===undefined || metricList.length === 0)\\\">\\n \\n <span style=\\\"color:red;\\\">{{wrng}}</span>\\n</div>\\n\\n<div style=\\\"text-align:center;margin-top: 10px;\\\"><span style=\\\"color:red;\\\"> {{warningMsg}} </span></div>\\n<br>\\n\\n<div class=\\\"row\\\" *ngIf='!dashboardSeverity && !warningMsg;else temp; ' style=\\\"margin-left: 10px;\\\">\\n\\n\\n <div class=\\\"col-sm-8\\\" id=\\\"chatSeverity\\\" style=\\\"height:250px;\\\"></div>\\n</div>\\n<ng-template #temp>\\n <div class=\\\"col-sm-8\\\" id=\\\"chatSeverity\\\"></div>\\n</ng-template>\\n<!-- -------------------------------------------------------------------------- -->\\n<!-- <div class=\\\"row\\\" *ngIf='dashboardSeverity && !warningMsg' style=\\\"margin-left: 10px;\\\">\\n\\n <div class=\\\"col-sm-6\\\" style=\\\"overflow-x: auto;\\\">\\n <br>\\n <table class=\\\"table\\\" *ngIf=\\\"dashboardSeverity\\\">\\n <tr style=\\\"background-color:black; color: white\\\">\\n <td>Total <br> {{totalCount}}</td>\\n <td *ngFor='let d of frust' style=\\\"cursor: pointer\\\" >\\n <span (click)=\\\"getData(d.data)\\\"> {{d.label}} <br> {{d.value}}</span>\\n\\n </td>\\n </tr> \\n </table>\\n </div>\\n <div class=\\\"col-sm-6\\\" id=\\\"chatSeverity\\\" style=\\\"height:350px;\\\" ></div>\\n</div> -->\\n\"","module.exports = \"<link href=\\\"../../assets/css/dmapp.css\\\" rel=\\\"stylesheet\\\" id=\\\"bootstrap-css\\\">\\r\\n\\r\\n<span (click)=\\\"close()\\\" matTooltip=\\\"Close\\\" class=\\\"close closereport\\\">×</span>\\r\\n<h1 mat-dialog-title></h1>\\r\\n<div mat-dialog-content>\\r\\n <div class=\\\"tableDiv\\\">\\r\\n <table>\\r\\n <thead>\\r\\n <tr>\\r\\n <th>Team</th>\\r\\n <th>Process</th>\\r\\n <th>Activity</th>\\r\\n\\r\\n <th>Metric</th>\\r\\n\\r\\n </tr>\\r\\n </thead>\\r\\n <tbody>\\r\\n <tr *ngFor=\\\"let d of data\\\">\\r\\n <td>{{d.TeamName}}</td>\\r\\n <td>{{d.ProcessName}}</td>\\r\\n <td>{{d.ActivityName}}</td>\\r\\n\\r\\n <td>{{d.Description}}</td>\\r\\n\\r\\n </tr>\\r\\n </tbody>\\r\\n </table>\\r\\n </div>\\r\\n</div>\\r\\n\"","module.exports = \"<script src=\\\"https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js\\\"></script>\\n<script src=\\\"https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js\\\"></script>\\n<script src=\\\"https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js\\\"></script>\\n\\n<link href=\\\"../../assets/css/dmapp.css\\\" rel=\\\"stylesheet\\\" id=\\\"bootstrap-css\\\">\\n\\n<style>\\n .box {\\n display: flex;\\n flex-wrap: wrap;\\n text-align: center;\\n overflow-wrap: break-word;\\n }\\n\\n .box>* {\\n width: 140px;\\n color: white;\\n background-color: #3775b5;\\n border: 1px solid;\\n\\n }\\n\\n @media screen {\\n .donotprintthis1 {\\n display: none;\\n }\\n\\n .donotprintthis {\\n\\n display: block;\\n\\n }\\n }\\n\\n\\n\\n @media print {\\n\\n div::-webkit-scrollbar {\\n display: none;\\n }\\n\\n h5 {\\n text-align: center;\\n }\\n\\n .donotprintthis1 {\\n\\n display: block;\\n\\n }\\n\\n .donotprintthis {\\n\\n display: none;\\n\\n }\\n\\n #totalTable {\\n display: none;\\n }\\n }\\n\\n .c3-legend-item {\\n fill: #9fabb1;\\n }\\n</style>\\n<div id=\\\"printMetricProcess\\\">\\n <div class=\\\"donotprintthis\\\">\\n <div class=\\\"reportHead\\\">\\n <div class=\\\"reportName\\\">\\n <h5>Metrics by Process</h5>\\n </div>\\n <div class=\\\"reportActions\\\" *ngIf='dashboardMe'>\\n <div class=\\\"selectTeam\\\"\\n *ngIf=\\\" dashboardMe &&( EmployeeID=='0' || employeeDetails.IsEmployeeLoginLevel=='Company')\\\">\\n <mat-form-field>\\n <mat-label> Select Type <span style=\\\"color:red; font-size: 15px;\\\">*</span></mat-label>\\n <mat-select (selectionChange)=\\\"reportTypeChange($event.value)\\\" [(ngModel)]=\\\"selectedReportType\\\">\\n <mat-option *ngFor=\\\"let scoreCardType of scoreCardTypes;\\\" [value]=\\\"scoreCardType\\\">\\n {{scoreCardType}}\\n </mat-option>\\n </mat-select>\\n </mat-form-field>\\n </div>\\n\\n <div class=\\\"selectTeam\\\"\\n *ngIf=\\\" dashboardMe &&!toggleTeam &&(EmployeeID=='0' || employeeDetails.IsEmployeeLoginLevel=='Company')\\\">\\n <mat-form-field>\\n <mat-label> Select Department <span style=\\\"color:red; font-size: 15px;\\\">*</span></mat-label>\\n <mat-select (selectionChange)=\\\"departmentChange($event.value)\\\" [(ngModel)]=\\\"selectedDepartmentId\\\">\\n <mat-option *ngFor=\\\"let dept of departmentList;\\\" [value]=\\\"dept.DepartmentID\\\">\\n {{dept.DepartmentName}}\\n </mat-option>\\n </mat-select>\\n </mat-form-field>\\n </div>\\n <div class=\\\"selectTeam\\\" *ngIf=\\\"toggleTeam && dashboardMe \\\">\\n <mat-form-field>\\n <mat-label> Select Team <span style=\\\"color:red; font-size: 15px;\\\">*</span></mat-label>\\n <mat-select (selectionChange)=\\\"teamChange($event)\\\" [(ngModel)]=\\\"TeamID\\\">\\n <mat-option *ngFor=\\\"let team of teamData;\\\" [value]=\\\"team.TeamID\\\">\\n {{team.TeamName}}\\n </mat-option>\\n </mat-select>\\n </mat-form-field>\\n </div>\\n <div class=\\\"printBtn\\\" *ngIf=\\\"isDisable\\\">\\n <button class=\\\"darkbtnbg btn btn-info\\\" matTooltip=\\\"Print report\\\" printSectionId=\\\"printMetricProcess\\\"\\n [useExistingCss]=\\\"true\\\" ngxPrint printTitle=\\\"{{companyName}}\\\">Print</button>\\n </div>\\n <div class=\\\"excelBtn\\\" *ngIf=\\\"isDisable\\\">\\n <div class=\\\"item item-5\\\">\\n <button class=\\\"darkbtnbg btn btn-info\\\" matTooltip=\\\"Export as excel\\\" (click)=\\\"exportAsXLSX()\\\">Excel</button>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n <div class=\\\"donotprintthis1\\\">\\n <div style=\\\"text-align:center;margin-top: 15px;\\\">\\n <h6>\\n <span> Company - {{companyName}} </span><br>\\n <span>Date: {{headerDate| date:'MM-dd-yyyy' }}</span><br>\\n <span *ngIf=\\\"!selectedReportType || selectedReportType == 'Team'\\\">Team: {{TeamName ? TeamName : 'Aggregate\\n Report'}}</span>\\n <span *ngIf=\\\"selectedReportType == 'Department'\\\">Department: {{departmentName ? departmentName : 'Aggregate\\n Report'}}</span><br>\\n <br>\\n <span>Report Type : Metrics by Process</span>\\n </h6>\\n </div>\\n </div>\\n <!-- ---------------------------Printing the report------------------------- -->\\n <div class=\\\"reportTable\\\" *ngIf='dashboardMetric && !warningMsg'>\\n <div class=\\\"col-sm-12\\\" id=\\\"totalTable\\\" style=\\\"overflow-x: auto; width: 60em; white-space: nowrap;\\\">\\n <br>\\n <table class=\\\"table\\\" *ngIf='dashboardMetric'>\\n <tr style=\\\"background-color: #3775b5; color: white;\\\">\\n <td style=\\\"text-align: center;\\\">Total <br> {{totalCount}}</td>\\n <td *ngFor='let d of frust' style=\\\"cursor: pointer;text-align: center;\\\">\\n <span (click)=\\\"getData(d.data)\\\"> {{d.label}} <br> {{d.value}}</span>\\n </td>\\n </tr>\\n </table>\\n </div>\\n <div class=\\\"donotprintthis1\\\">\\n <div class=\\\"col-sm-12\\\" style=\\\"overflow-x: auto; width: 60em; white-space: nowrap;\\\">\\n <br>\\n <div class=\\\"box\\\" id=\\\"totalTable1\\\">\\n <div style=\\\"align-content: center;\\\"><strong>Total <br> {{totalCount}}</strong></div>\\n <div *ngFor='let d of frust' style=\\\"cursor: pointer\\\">\\n <span (click)=\\\"getData(d.data)\\\"> {{d.label}} <br> {{d.value}}</span>\\n </div>\\n </div>\\n </div>\\n </div>\\n <div class=\\\"col-lg-12 noPagebreak\\\">\\n <div class=\\\"col-sm-12 mb_chart\\\" id=\\\"chartMetric\\\"></div>\\n </div>\\n </div><br>\\n <br>\\n <div class=\\\"donotprintthis\\\">\\n <div class=\\\"searchField\\\" *ngIf='dashboardMe'>\\n <div class=\\\"item item-1\\\" *ngIf=\\\"disableSearch\\\">\\n <mat-form-field>\\n <mat-placeholder class=\\\"placeholder\\\">Search here</mat-placeholder>\\n <input matInput id=\\\"newGroup\\\" (keyup)=\\\"Searchtext()\\\" name=\\\"search\\\" [(ngModel)]=\\\"searchtext\\\" value=\\\"\\\"\\n autocomplete=\\\"off\\\">\\n </mat-form-field>\\n </div>\\n </div>\\n </div>\\n <div *ngIf='dashboardMe'>\\n <div class=\\\"tableDiv\\\">\\n <table>\\n <thead>\\n <tr>\\n <th>No.</th>\\n <th class=\\\"pointer\\\" *ngIf=\\\"selectedReportType === 'Department'\\\" (click)=\\\"sort('DepartmentName')\\\">\\n Department\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n <th class=\\\"pointer\\\" (click)=\\\"sort('TeamName')\\\"> Team\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n <th class=\\\"pointer\\\" (click)=\\\"sort('ProcessName')\\\"> Process\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n <th class=\\\"pointer\\\" (click)=\\\"sort('ActivityName')\\\"> Activity\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n <th class=\\\"pointer\\\" (click)=\\\"sort('GoalName')\\\"> Goal\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n <th class=\\\"pointer\\\" (click)=\\\"sort('Description')\\\"> Metric\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n </tr>\\n </thead>\\n <tbody>\\n <tr\\n *ngFor='let metric of metricList | paginate: { itemsPerPage: rowsOnPage, currentPage: p } | sort: {property: column, direction: direction}; let i=index;'>\\n <td>{{i+1}}</td>\\n <td *ngIf=\\\"selectedReportType === 'Department'\\\">\\n {{metric.DepartmentName}}\\n </td>\\n <td>\\n {{metric.TeamName}}\\n </td>\\n <td>\\n {{metric.ProcessName}}\\n </td>\\n <td>\\n\\n {{metric.ActivityName}}\\n\\n </td>\\n <td>\\n {{metric.GoalName}}\\n </td>\\n <td>\\n {{metric.Description}}\\n </td>\\n </tr>\\n </tbody>\\n </table>\\n </div>\\n <div class=\\\"donotprintthis\\\" style=\\\"margin-top: 10px;\\\">\\n <div class=\\\"pageContainer\\\" *ngIf=\\\"activityPaging && metricList.length>0\\\">\\n\\n <div class=\\\"rowsSelection\\\">\\n <mat-form-field style=\\\"width: 50px; margin-top: -15px;\\\">\\n <mat-select [(ngModel)]=\\\"rowsOnPage\\\">\\n <mat-option *ngFor=\\\"let row of rowsOnPageSet\\\" [value]=\\\"row\\\">\\n {{row}}\\n </mat-option>\\n </mat-select>\\n </mat-form-field>\\n </div>\\n\\n\\n <div class=\\\"pageSelection\\\">\\n\\n <!-- style=\\\"margin-top: -50px\\\" -->\\n <pagination-controls (pageChange)=\\\"p = $event\\\"></pagination-controls>\\n </div>\\n </div>\\n\\n </div>\\n </div>\\n <div class=\\\"donotprintthis1\\\" style=\\\" position: fixed; bottom: 0;\\n font-size: 13px;\\n margin-left: 35%;\\\">\\n <label>{{copyRight}}</label>\\n </div>\\n</div>\\n\\n\\n<div class=\\\"warningMsg\\\" *ngIf=\\\"(metricList === null||metricList===undefined || metricList.length === 0)\\\">\\n <span style=\\\"color:red;\\\">{{wrng}}</span>\\n</div>\\n<div style=\\\"text-align:center;margin-top: 10px;\\\"><span style=\\\"color:red;\\\"> {{warningMsg}} </span></div>\\n<br>\\n<div class=\\\"col-lg-12 noPagebreak\\\" *ngIf='!dashboardMetric && !warningMsg;else temp;'>\\n <div class=\\\"col-sm-12 mb_chart\\\" id=\\\"chartMetric\\\" style=\\\"height:350px;\\\"></div>\\n <ng-template #temp>\\n <div class=\\\"col-sm-12\\\" id=\\\"chartMetric\\\"></div>\\n </ng-template>\\n</div>\\n<style>\\n @media (max-width: 768px) {\\n .mb_chart {\\n overflow-x: hidden !important;\\n }\\n }\\n</style>\\n\"","module.exports = \"<link href=\\\"../../assets/css/dmapp.css\\\" rel=\\\"stylesheet\\\" id=\\\"bootstrap-css\\\">\\r\\n\\r\\n<span (click)=\\\"close()\\\" matTooltip=\\\"Close\\\" class=\\\"close closereport\\\">×</span>\\r\\n<h1 mat-dialog-title></h1>\\r\\n<div mat-dialog-content>\\r\\n <div class=\\\"tableDiv\\\">\\r\\n <table>\\r\\n <thead>\\r\\n <tr>\\r\\n <th>Team</th>\\r\\n <th>Process</th>\\r\\n <th>Activity</th>\\r\\n\\r\\n <th>Frustration</th>\\r\\n <th>Status</th>\\r\\n <th>Type</th>\\r\\n <th>Severity</th>\\r\\n <th>Description</th>\\r\\n <th>Date Opened</th>\\r\\n\\r\\n </tr>\\r\\n </thead>\\r\\n <tbody>\\r\\n <tr *ngFor=\\\"let d of data\\\">\\r\\n <td>{{d.TeamName}}</td>\\r\\n <td>{{d.ProcessName}}</td>\\r\\n <td>{{d.ActivityName}}</td>\\r\\n\\r\\n <td>{{d.Subject}}</td>\\r\\n <td>{{d.StatusName}}</td>\\r\\n <td>{{d.FrustrationsTypeName}}</td>\\r\\n <td>{{d.SeverityName}}</td>\\r\\n <td>{{d.Description}}</td>\\r\\n <td>{{d.CreatedDate | date:'MM/dd/yyyy'}}</td>\\r\\n\\r\\n </tr>\\r\\n </tbody>\\r\\n </table>\\r\\n </div>\\r\\n</div>\\r\\n\"","module.exports = \"<script src=\\\"https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js\\\"></script>\\n<script src=\\\"https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js\\\"></script>\\n<script src=\\\"https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js\\\"></script>\\n<link href=\\\"../../assets/css/dmapp.css\\\" rel=\\\"stylesheet\\\" id=\\\"bootstrap-css\\\">\\n\\n<style>\\n .box {\\n display: flex;\\n flex-wrap: wrap;\\n text-align: center;\\n overflow-wrap: break-word;\\n }\\n\\n .box>* {\\n width: 140px;\\n color: white;\\n background-color: #3775b5;\\n border: 1px solid;\\n\\n }\\n\\n @media screen {\\n\\n #chartProcess2,\\n .donotprintthis1 {\\n display: none;\\n }\\n\\n .donotprintthis {\\n\\n display: block;\\n\\n }\\n }\\n\\n @media print {\\n div::-webkit-scrollbar {\\n display: none;\\n }\\n\\n /* div{\\n page-break-inside: avoid;\\n} */\\n\\n\\n h5 {\\n text-align: center;\\n }\\n\\n .donotprintthis1 {\\n\\n display: block;\\n\\n }\\n\\n .donotprintthis {\\n\\n display: none;\\n\\n }\\n\\n #totalTable {\\n display: none;\\n }\\n\\n #chartProcess2,\\n #chartProcess {\\n\\n /* margin-bottom: 150px; */\\n display: flex;\\n\\n }\\n\\n /* .noPagebreak{\\n page-break-inside: avoid;\\n } */\\n }\\n</style>\\n\\n<!-- Column2d-->\\n<div id=\\\"printFrustByPro\\\">\\n <div class=\\\"donotprintthis\\\">\\n <div class=\\\"reportHead\\\">\\n\\n <div class=\\\"reportName\\\">\\n <h5>Frustrations Report by Process</h5>\\n </div>\\n\\n <div class=\\\"reportActions\\\" *ngIf='dashboardPr'>\\n\\n <div class=\\\"selectTeam\\\"\\n *ngIf=\\\" dashboardProcess &&( EmployeeID=='0' || employeeDetails.IsEmployeeLoginLevel=='Company') \\\">\\n <mat-form-field>\\n <mat-label> Select Type <span style=\\\"color:red; font-size: 15px;\\\">*</span></mat-label>\\n <mat-select (selectionChange)=\\\"reportTypeChange($event.value)\\\" [(ngModel)]=\\\"selectedReportType\\\">\\n <mat-option *ngFor=\\\"let scoreCardType of scoreCardTypes;\\\" [value]=\\\"scoreCardType\\\">\\n {{scoreCardType}}\\n </mat-option>\\n </mat-select>\\n </mat-form-field>\\n </div>\\n\\n <div class=\\\"selectTeam\\\"\\n *ngIf=\\\" dashboardProcess &&!toggleTeam &&(EmployeeID=='0' || employeeDetails.IsEmployeeLoginLevel=='Company') \\\">\\n <mat-form-field>\\n <mat-label> Select Department <span style=\\\"color:red; font-size: 15px;\\\">*</span></mat-label>\\n <mat-select (selectionChange)=\\\"departmentChange($event.value)\\\" [(ngModel)]=\\\"selectedDepartmentId\\\">\\n <mat-option *ngFor=\\\"let dept of departmentList;\\\" [value]=\\\"dept.DepartmentID\\\">\\n {{dept.DepartmentName}}\\n </mat-option>\\n </mat-select>\\n </mat-form-field>\\n </div>\\n <div class=\\\"selectTeam\\\" *ngIf=\\\"toggleTeam && dashboardProcess \\\">\\n <mat-form-field>\\n <mat-label> Select Team <span style=\\\"color:red; font-size: 15px;\\\">*</span></mat-label>\\n <mat-select (selectionChange)=\\\"teamChange($event)\\\" [(ngModel)]=\\\"TeamID\\\">\\n <mat-option *ngFor=\\\"let team of teamData;\\\" [value]=\\\"team.TeamID\\\">\\n {{team.TeamName}}\\n </mat-option>\\n </mat-select>\\n </mat-form-field>\\n </div>\\n\\n <div class=\\\"printBtn\\\" *ngIf=\\\"isDisable\\\">\\n <button class=\\\"darkbtnbg btn btn-info\\\" matTooltip=\\\"Print report\\\" printSectionId=\\\"printFrustByPro\\\"\\n [useExistingCss]=\\\"true\\\" ngxPrint printTitle=\\\"{{companyName}}\\\">Print</button>\\n\\n </div>\\n\\n <div class=\\\"excelBtn\\\" *ngIf=\\\"isDisable\\\">\\n <div class=\\\"item item-5\\\">\\n <button class=\\\"darkbtnbg btn btn-info\\\" matTooltip=\\\"Export as excel\\\" (click)=\\\"exportAsXLSX()\\\">\\n\\n Excel\\n </button>\\n\\n </div>\\n </div>\\n </div>\\n </div>\\n\\n </div>\\n\\n <div class=\\\"donotprintthis1\\\">\\n <div style=\\\"text-align:center;margin-top: 15px; margin-block-end: 30px\\\">\\n <h6>\\n <span> Company - </span> {{companyName}} <br>\\n <span>Date: {{headerDate| date:'MM-dd-yyyy' }}</span><br>\\n <span *ngIf=\\\"!selectedReportType || selectedReportType == 'Team'\\\">Team: {{TeamName ? TeamName : 'Aggregate\\n Report'}}</span>\\n <span *ngIf=\\\"selectedReportType == 'Department'\\\">Department: {{departmentName ? departmentName : 'Aggregate\\n Report'}}</span><br>\\n <span> Report Type : Frustrations Report by Process</span>\\n\\n </h6>\\n </div>\\n </div>\\n\\n\\n <div class=\\\"reportTable\\\" *ngIf='dashboardProcess && !warningMsg'>\\n\\n <div class=\\\"col-sm-12\\\" id=\\\"totalTable\\\" style=\\\"overflow-x: auto;width: 60em; white-space: nowrap;\\\">\\n <br>\\n <table class=\\\"table\\\" *ngIf=\\\"dashboardProcess\\\">\\n <tr style=\\\"background-color:#3775b5; color: white\\\">\\n <td style=\\\"text-align: center;\\\">Total <br> {{totalCount}}</td>\\n <td *ngFor='let d of frust' style=\\\"cursor: pointer;text-align: center;\\\">\\n <span (click)=\\\"getData(d.data)\\\"> {{d.label}} <br> {{d.value}}</span>\\n\\n </td>\\n </tr>\\n </table>\\n </div>\\n <div class=\\\"donotprintthis1\\\">\\n\\n\\n <div class=\\\"col-sm-12\\\" style=\\\"overflow-x: auto;width: 60em; white-space: nowrap;\\\">\\n <br>\\n <div class=\\\"box\\\" id=\\\"totalTable1\\\" *ngIf=\\\"dashboardProcess\\\">\\n\\n <div style=\\\"align-content: center;\\\"><strong>Total <br> {{totalCount}}</strong></div>\\n <div *ngFor='let d of frust' style=\\\"cursor: pointer\\\">\\n <span (click)=\\\"getData(d.data)\\\"> {{d.label}} <br> {{d.value}}</span>\\n\\n </div>\\n\\n </div>\\n </div>\\n\\n </div>\\n <div class=\\\"col-lg-12 noPagebreak\\\">\\n <div class=\\\"col-sm-12\\\" id=\\\"chartProcess\\\"></div>\\n\\n </div>\\n\\n </div>\\n\\n <br>\\n <div class=\\\"donotprintthis\\\">\\n <div class=\\\"searchField\\\" *ngIf='dashboardPr'>\\n\\n\\n <div class=\\\"item item-1\\\" *ngIf=\\\"disableSearch\\\">\\n\\n <mat-form-field>\\n <mat-placeholder class=\\\"placeholder\\\">Search here</mat-placeholder>\\n <input matInput id=\\\"newGroup\\\" (keyup)=\\\"Searchtext()\\\" name=\\\"search\\\" [(ngModel)]=\\\"searchtext\\\" value=\\\"\\\"\\n autocomplete=\\\"off\\\">\\n </mat-form-field>\\n\\n </div>\\n\\n\\n </div>\\n </div>\\n <div *ngIf='dashboardPr'>\\n <div class=\\\"tableDiv\\\">\\n <table>\\n <thead>\\n <tr>\\n <th>No.</th>\\n <th class=\\\"pointer\\\" *ngIf=\\\"selectedReportType === 'Department'\\\" (click)=\\\"sort('DepartmentName')\\\">\\n Department\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n <th class=\\\"pointer\\\" (click)=\\\"sort('TeamName')\\\"> Team\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n <th class=\\\"pointer\\\" (click)=\\\"sort('ProcessName')\\\"> Process\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n <th class=\\\"pointer\\\" (click)=\\\"sort('ActivityName')\\\"> Activity\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n\\n <th class=\\\"pointer\\\" (click)=\\\"sort('FrustrationsTypeName')\\\"> Type\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n <th class=\\\"pointer\\\" (click)=\\\"sort('Subject')\\\"> Frustration\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n <th class=\\\"pointer\\\" (click)=\\\"sort('Description')\\\"> Description\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n\\n <th class=\\\"pointer\\\" (click)=\\\"sort('StatusName')\\\"> Status\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n <th class=\\\"pointer\\\" (click)=\\\"sort('SeverityName')\\\"> Severity\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n <th class=\\\"pointer\\\" (click)=\\\"sort('ProjectName')\\\"> Project\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n\\n </tr>\\n </thead>\\n <tbody>\\n <tr\\n *ngFor='let metric of metricList | paginate: { itemsPerPage: rowsOnPage, currentPage: p } | sort: {property: column, direction: direction};let i=index;'>\\n <td>{{i+1}}</td>\\n <td *ngIf=\\\"selectedReportType === 'Department'\\\">\\n {{metric.DepartmentName}}\\n </td>\\n <td>{{metric.TeamName}}</td>\\n <td>\\n {{metric.ProcessName}}<br>\\n </td>\\n <td>{{metric.ActivityName}}</td>\\n\\n <td>\\n {{metric.FrustrationsTypeName}}\\n </td>\\n <td>\\n\\n {{metric.Subject}}\\n\\n </td>\\n <td>\\n {{metric.Description}}\\n </td>\\n\\n\\n\\n <td>\\n {{metric.StatusName}}\\n </td>\\n <td>\\n {{metric.SeverityName}}\\n </td>\\n <td>\\n {{metric.ProjectName}}\\n </td>\\n </tr>\\n </tbody>\\n </table>\\n\\n </div>\\n <div class=\\\"donotprintthis\\\" style=\\\"margin-top: 10px;\\\">\\n <div class=\\\"pageContainer\\\" *ngIf=\\\"activityPaging && metricList.length>0\\\">\\n <div class=\\\"rowsSelection\\\">\\n <mat-form-field style=\\\"width: 50px; margin-top: -15px;\\\">\\n <mat-select [(ngModel)]=\\\"rowsOnPage\\\">\\n <mat-option *ngFor=\\\"let row of rowsOnPageSet\\\" [value]=\\\"row\\\">\\n {{row}}\\n </mat-option>\\n </mat-select>\\n </mat-form-field>\\n </div>\\n <div class=\\\"pageSelection\\\">\\n <pagination-controls (pageChange)=\\\"p = $event\\\"></pagination-controls>\\n </div>\\n </div>\\n\\n </div>\\n </div>\\n <div class=\\\"donotprintthis1\\\" style=\\\" position: fixed; bottom: 0;\\n font-size: 13px;\\n margin-left: 35%;\\\">\\n <label>{{copyRight}}</label>\\n </div>\\n</div>\\n\\n<div class=\\\"warningMsg\\\" *ngIf=\\\"(metricList === null||metricList===undefined || metricList.length === 0)\\\">\\n <span style=\\\"color:red;\\\">{{wrng}}</span>\\n</div>\\n\\n<div style=\\\"text-align:center;margin-top: 10px;\\\"><span style=\\\"color:red;\\\"> {{warningMsg}} </span></div>\\n<br>\\n\\n<div class=\\\"col-lg-12 noPagebreak\\\" *ngIf='!dashboardProcess && !warningMsg;else temp;'>\\n\\n\\n <div class=\\\"col-sm-12\\\" id=\\\"chartProcess\\\" style=\\\"height:350px;\\\"></div>\\n <ng-template #temp>\\n <div class=\\\"col-sm-12\\\" id=\\\"chartProcess\\\"></div>\\n </ng-template>\\n</div>\\n\"","module.exports = \"<link href=\\\"../../assets/css/dmapp.css\\\" rel=\\\"stylesheet\\\" id=\\\"bootstrap-css\\\">\\r\\n\\r\\n<span (click)=\\\"close()\\\" matTooltip=\\\"Close\\\" class=\\\"close closereport\\\">×</span>\\r\\n<h1 mat-dialog-title></h1>\\r\\n<div mat-dialog-content>\\r\\n <div class=\\\"tableDiv\\\">\\r\\n <table>\\r\\n <thead>\\r\\n <tr>\\r\\n <th>Project Name</th>\\r\\n <th>Project Status</th>\\r\\n <th>Issues\\r\\n <table>\\r\\n <tr>\\r\\n <!-- <th>\\r\\n Issue ID\\r\\n </th> -->\\r\\n <th>Team</th>\\r\\n <th>Process</th>\\r\\n <th>Frustration</th>\\r\\n <th>Description</th>\\r\\n <th>Status</th>\\r\\n\\r\\n </tr>\\r\\n </table>\\r\\n </th>\\r\\n\\r\\n </tr>\\r\\n </thead>\\r\\n <tbody>\\r\\n <tr *ngFor=\\\"let d of data1\\\">\\r\\n\\r\\n <td>\\r\\n {{d.name}}\\r\\n </td>\\r\\n <td>\\r\\n {{d.status}}\\r\\n </td>\\r\\n <td>\\r\\n <table>\\r\\n <tr *ngFor=\\\"let p of d.data\\\">\\r\\n <!-- <td>\\r\\n Issue-{{p.PointerID}}\\r\\n </td> -->\\r\\n <td>{{p.TeamName}}</td>\\r\\n <td>\\r\\n {{p.ProcessName}}\\r\\n </td>\\r\\n <td>{{p.Subject}}</td>\\r\\n <td>{{p.Description}}</td>\\r\\n <td>\\r\\n {{p.StatusName}}\\r\\n </td>\\r\\n\\r\\n </tr>\\r\\n </table>\\r\\n </td>\\r\\n\\r\\n\\r\\n </tr>\\r\\n </tbody>\\r\\n </table>\\r\\n </div>\\r\\n</div>\\r\\n\"","module.exports = \"<script src=\\\"https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js\\\"></script>\\r\\n<script src=\\\"https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js\\\"></script>\\r\\n<script src=\\\"https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js\\\"></script>\\r\\n<link href=\\\"../../assets/css/dmapp.css\\\" rel=\\\"stylesheet\\\" id=\\\"bootstrap-css\\\">\\r\\n\\r\\n<style>\\r\\n #bg-text {\\r\\n color: lightgrey;\\r\\n font-size: 60px;\\r\\n transform: rotate(300deg);\\r\\n -webkit-transform: rotate(300deg);\\r\\n }\\r\\n\\r\\n #content {\\r\\n position: absolute;\\r\\n z-index: 1;\\r\\n }\\r\\n\\r\\n @media screen {\\r\\n .donotprintthis1 {\\r\\n display: none;\\r\\n }\\r\\n\\r\\n .donotprintthis {\\r\\n\\r\\n display: block;\\r\\n\\r\\n }\\r\\n }\\r\\n\\r\\n\\r\\n @media print {\\r\\n h5 {\\r\\n text-align: center;\\r\\n }\\r\\n\\r\\n .donotprintthis1 {\\r\\n\\r\\n display: block;\\r\\n\\r\\n }\\r\\n\\r\\n .donotprintthis {\\r\\n\\r\\n display: none;\\r\\n\\r\\n }\\r\\n }\\r\\n</style>\\r\\n<!--<div id=\\\"bg-text\\\" ><img src=\\\"./assets/images/DorseyMainLogo.png\\\" width=\\\"20%\\\" alt=\\\"dorsey Logo\\\" /></div>-->\\r\\n\\r\\n<div id=\\\"printProjectByStatus\\\">\\r\\n <div class=\\\"donotprintthis\\\">\\r\\n <div class=\\\"reportHead\\\">\\r\\n <div class=\\\"reportName\\\">\\r\\n <h5>Project Report by Status</h5>\\r\\n </div>\\r\\n <div class=\\\"reportActions\\\" *ngIf='dashboardPro'>\\r\\n\\r\\n <div class=\\\"printBtn\\\" *ngIf=\\\"isDisable\\\">\\r\\n <button class=\\\"darkbtnbg btn btn-info\\\" matTooltip=\\\"Print report\\\" printTitle=\\\"{{companyName}}\\\"\\r\\n printSectionId=\\\"printProjectByStatus\\\" [useExistingCss]=\\\"true\\\" ngxPrint>Print</button>\\r\\n\\r\\n\\r\\n </div>\\r\\n <div class=\\\"excelBtn\\\" *ngIf=\\\"isDisable\\\">\\r\\n <div class=\\\"item item-5\\\">\\r\\n <button class=\\\"darkbtnbg btn btn-info\\\" matTooltip=\\\"Export as excel\\\" (click)=\\\"exportAsXLSX()\\\">\\r\\n\\r\\n Excel\\r\\n </button>\\r\\n </div>\\r\\n\\r\\n\\r\\n </div>\\r\\n\\r\\n\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <div class=\\\"donotprintthis1\\\">\\r\\n <div style=\\\"text-align:center;margin-top: 15px; margin-block-end: 30px\\\">\\r\\n <h6>\\r\\n <span> Company - </span> {{companyName}} <br>\\r\\n <span>Date: {{headerDate| date:'MM-dd-yyyy' }}</span><br>\\r\\n <span>Report Type : Project Report by Statsus</span>\\r\\n\\r\\n\\r\\n </h6>\\r\\n\\r\\n </div>\\r\\n </div>\\r\\n <!-- ---------------------------Printing the report------------------------- -->\\r\\n <div class=\\\"reportTable\\\" *ngIf='dashboardProject && !warningMsg'>\\r\\n <div class=\\\"col-sm-12\\\" style=\\\"overflow-x: auto; width: 60em; white-space: nowrap;\\\">\\r\\n <br>\\r\\n <table class=\\\"table\\\" *ngIf=\\\"dashboardProject\\\">\\r\\n <tr style=\\\"background-color:#3775b5; color: white\\\">\\r\\n <td style=\\\"text-align: center;\\\">Total <br> {{totalCount}}</td>\\r\\n <td *ngFor='let d of frust' style=\\\"cursor: pointer;text-align: center;\\\">\\r\\n <span (click)=\\\"getData(d.data)\\\"> {{d.label}} <br> {{d.value}}</span>\\r\\n\\r\\n </td>\\r\\n </tr>\\r\\n </table>\\r\\n </div>\\r\\n <div class=\\\"col-lg-12 noPagebreak\\\">\\r\\n <div class=\\\"col-sm-12\\\" id=\\\"chart\\\" style=\\\"height:350px;\\\"></div>\\r\\n </div>\\r\\n </div><br>\\r\\n <div class=\\\"donotprintthis\\\">\\r\\n <div class=\\\"searchField\\\" *ngIf='dashboardPro'>\\r\\n <div class=\\\"item item-1\\\" *ngIf=\\\"disableSearch\\\">\\r\\n <mat-form-field>\\r\\n <mat-placeholder class=\\\"placeholder\\\">Search here</mat-placeholder>\\r\\n <input matInput id=\\\"newGroup\\\" (keyup)=\\\"Searchtext()\\\" name=\\\"search\\\" [(ngModel)]=\\\"searchtext\\\" value=\\\"\\\"\\r\\n autocomplete=\\\"off\\\">\\r\\n </mat-form-field>\\r\\n </div>\\r\\n\\r\\n </div>\\r\\n </div>\\r\\n <div *ngIf='dashboardPro'>\\r\\n <div class=\\\"tableDiv\\\">\\r\\n <table>\\r\\n <thead>\\r\\n <tr>\\r\\n <th>\\r\\n No.\\r\\n </th>\\r\\n <th class=\\\"pointer\\\" (click)=\\\"sort('team')\\\"> Project Team\\r\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\r\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\r\\n </th>\\r\\n <th class=\\\"pointer\\\" (click)=\\\"sort('name')\\\"> Project\\r\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\r\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\r\\n </th>\\r\\n\\r\\n <th class=\\\"pointer\\\" (click)=\\\"sort('status')\\\"> Project Status\\r\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\r\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\r\\n </th>\\r\\n <th class=\\\"pointer\\\" (click)=\\\"sort('owner')\\\"> Project Owner\\r\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\r\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\r\\n </th>\\r\\n <th class=\\\"pointer\\\" (click)=\\\"sort('data')\\\"> Frustration Team\\r\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\r\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\r\\n </th>\\r\\n\\r\\n\\r\\n <th class=\\\"pointer\\\" (click)=\\\"sort('data')\\\"> Process\\r\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\r\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\r\\n </th>\\r\\n <th class=\\\"pointer\\\" (click)=\\\"sort('data')\\\"> Frustration\\r\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\r\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\r\\n </th>\\r\\n <th class=\\\"pointer\\\" (click)=\\\"sort('data')\\\"> Description\\r\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\r\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\r\\n </th>\\r\\n <th class=\\\"pointer\\\" (click)=\\\"sort('data')\\\"> Status\\r\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\r\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\r\\n </th>\\r\\n\\r\\n </tr>\\r\\n </thead>\\r\\n <tbody>\\r\\n <tr\\r\\n *ngFor='let d of finalList | paginate: { itemsPerPage: rowsOnPage, currentPage: p } | sort: {property: column, direction: direction};let i=index;'>\\r\\n <td>\\r\\n <span>{{i+1}}</span>\\r\\n </td>\\r\\n <td>\\r\\n {{d.team}}\\r\\n </td>\\r\\n <td>{{d.name}}</td>\\r\\n <td>{{d.status}}</td>\\r\\n <td>{{d.owner}}</td>\\r\\n <td>\\r\\n <div class=\\\"tableRowData\\\" *ngFor='let frustData of d.data'>\\r\\n {{frustData.TeamName}}\\r\\n </div>\\r\\n </td>\\r\\n <td>\\r\\n <div class=\\\"tableRowData\\\" *ngFor='let frustData of d.data'>\\r\\n {{frustData.ProcessName}}\\r\\n </div>\\r\\n </td>\\r\\n\\r\\n <td>\\r\\n <div class=\\\"tableRowData\\\" *ngFor='let frustData of d.data'>\\r\\n {{frustData.Subject}}\\r\\n </div>\\r\\n </td>\\r\\n\\r\\n <td>\\r\\n <div class=\\\"tableRowData\\\" *ngFor='let frustData of d.data'>\\r\\n {{frustData.Description}}\\r\\n </div>\\r\\n </td>\\r\\n\\r\\n <td>\\r\\n <div class=\\\"tableRowData\\\" *ngFor='let frustData of d.data'>\\r\\n {{frustData.StatusName}}\\r\\n </div>\\r\\n </td>\\r\\n\\r\\n </tr>\\r\\n </tbody>\\r\\n </table>\\r\\n </div>\\r\\n <div class=\\\"donotprintthis\\\" style=\\\"margin-top: 10px;\\\">\\r\\n <div class=\\\"pageContainer\\\" *ngIf=\\\"activityPaging && finalList.length>0\\\">\\r\\n <div class=\\\"rowsSelection\\\">\\r\\n <mat-form-field style=\\\"width: 50px; margin-top: -15px;\\\">\\r\\n <mat-select [(ngModel)]=\\\"rowsOnPage\\\">\\r\\n <mat-option *ngFor=\\\"let row of rowsOnPageSet\\\" [value]=\\\"row\\\">\\r\\n {{row}}\\r\\n </mat-option>\\r\\n </mat-select>\\r\\n </mat-form-field>\\r\\n </div>\\r\\n <div class=\\\"pageSelection\\\">\\r\\n <pagination-controls (pageChange)=\\\"p = $event\\\"></pagination-controls>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"donotprintthis1\\\" style=\\\" position: fixed; bottom: 0;\\r\\n font-size: 13px;\\r\\n margin-left: 35%;\\\">\\r\\n <label>{{copyRight}}</label>\\r\\n </div>\\r\\n</div>\\r\\n<div class=\\\"warningMsg\\\" *ngIf=\\\"(finalList === null||finalList===undefined ||finalList.length === 0)\\\">\\r\\n <span style=\\\"color:red;\\\">{{wrng}}</span>\\r\\n</div>\\r\\n\\r\\n<div style=\\\"text-align:center;margin-top: 10px;\\\"><span style=\\\"color:red;\\\"> {{warningMsg}} </span></div>\\r\\n<br>\\r\\n<div class=\\\"col-lg-12 noPagebreak\\\" *ngIf='!dashboardProject && !warningMsg;else temp;'>\\r\\n <div class=\\\"col-sm-12\\\" id=\\\"chart\\\" style=\\\"height:350px;\\\"></div>\\r\\n</div>\\r\\n<ng-template #temp>\\r\\n <div class=\\\"col-sm-8\\\" id=\\\"chart\\\"></div>\\r\\n</ng-template>\\r\\n\"","module.exports = \"<script src=\\\"https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js\\\"></script>\\n<script src=\\\"https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js\\\"></script>\\n<script src=\\\"https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js\\\"></script>\\n<link href=\\\"../../assets/css/dmapp.css\\\" rel=\\\"stylesheet\\\" id=\\\"bootstrap-css\\\">\\n\\n<div class=\\\"reportParent\\\">\\n <mat-form-field>\\n <mat-label>Report Type</mat-label>\\n <mat-select (selectionChange)=\\\"report($event)\\\" [(ngModel)]=\\\"ReportID\\\">\\n <mat-option *ngFor=\\\"let data of reportData;let i=index;\\\" [value]=\\\"reportData[i].ReportID\\\">\\n {{reportData[i].ReportName}}\\n </mat-option>\\n </mat-select>\\n </mat-form-field>\\n</div>\\n\\n\\n\\n\\n<div *ngIf=\\\"ReportID===1\\\">\\n <app-report-metric-process></app-report-metric-process>\\n</div>\\n\\n<div *ngIf=\\\"ReportID===2\\\">\\n <app-nometric-process></app-nometric-process>\\n\\n</div>\\n<div *ngIf=\\\"ReportID===3\\\">\\n <app-report-process></app-report-process>\\n\\n</div>\\n\\n<div *ngIf=\\\"ReportID===4\\\">\\n <app-report-category></app-report-category>\\n</div>\\n\\n<div *ngIf=\\\"ReportID===5\\\">\\n <app-other-frustration></app-other-frustration>\\n\\n</div>\\n\\n<div *ngIf=\\\"ReportID===6\\\">\\n <app-frustration-reports></app-frustration-reports>\\n\\n</div>\\n\\n<div *ngIf=\\\"ReportID===7\\\">\\n <app-frustration-comments></app-frustration-comments>\\n</div>\\n\\n<div *ngIf=\\\"ReportID===8\\\">\\n <app-report-hipriority></app-report-hipriority>\\n</div>\\n\\n<div *ngIf=\\\"ReportID===9\\\">\\n <app-report-project></app-report-project>\\n</div>\\n\\n<div *ngIf=\\\"ReportID===10\\\">\\n <app-projects-noactions></app-projects-noactions>\\n\\n</div>\\n\\n\\n\\n<div *ngIf=\\\"ReportID===11\\\">\\n <app-hipriority></app-hipriority>\\n</div>\\n<!-- <div *ngIf=\\\"ReportID===12\\\">\\n <app-report-activity-issues></app-report-activity-issues>\\n </div> -->\\n\"","module.exports = \"<link href=\\\"../../assets/css/dmapp.css\\\" rel=\\\"stylesheet\\\" id=\\\"bootstrap-css\\\">\\r\\n<div *ngIf=\\\"data !== 'new' && data !== 'edit'\\\">\\r\\n <mat-dialog-content>{{data}}</mat-dialog-content>\\r\\n <mat-dialog-actions align=\\\"center\\\">\\r\\n <div *ngIf=\\\"condition\\\">\\r\\n <button mat-raised-button mat-accent mat-dialog-close (click)=\\\"onNoClick()\\\">No</button>\\r\\n <!-- Can optionally provide a result for the closing dialog. -->\\r\\n <button mat-raised-button mat-accent [mat-dialog-close]=\\\"true\\\" (click)=\\\"onYesClick()\\\">Yes</button>\\r\\n </div>\\r\\n <div *ngIf=\\\"!condition && data !== 'progress' && data !== 'status'\\\">\\r\\n <div class=\\\"container\\\" fxLayout fxLayout.xs=\\\"column\\\" fxLayoutAlign=\\\"center\\\" fxLayoutGap=\\\"10px\\\"\\r\\n fxLayoutGap.xs=\\\"0\\\">\\r\\n <div class=\\\"item item-3 \\\">\\r\\n <button mat-button mat-accent mat-dialog-close>Ok</button>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </mat-dialog-actions>\\r\\n</div>\\r\\n\\r\\n<!-- style=\\\"height: 560px;width: 850px;\\\" -->\\r\\n<div *ngIf=\\\"data === 'new' || data === 'edit'\\\"><br>\\r\\n <div class=\\\"XBtn\\\">\\r\\n <span (click)=\\\"close()\\\" matTooltip=\\\"Close\\\" class=\\\"close\\\">×</span>\\r\\n </div>\\r\\n\\r\\n <!-- <span (click)=\\\"close()\\\" matTooltip=\\\"Close\\\" class=\\\"close\\\">×</span>\\r\\n <h1 mat-dialog-title style=\\\"text-align: center\\\">{{data | titlecase}} Role</h1>\\r\\n <div mat-dialog-content>\\r\\n <div class=\\\"container\\\" fxLayout fxLayout.xs=\\\"column\\\" fxLayoutAlign=\\\"center\\\" fxLayoutGap=\\\"10px\\\"\\r\\n fxLayoutGap.xs=\\\"0\\\">\\r\\n <div class=\\\"item item-1\\\" fxFlex=\\\"45%\\\">\\r\\n <mat-form-field>\\r\\n \\r\\n <input matInput autocomplete=\\\"off\\\" maxlength=\\\"100\\\" id=\\\"lblActivityName\\\" [(ngModel)]=\\\"RoleName\\\"\\r\\n value=\\\"\\\">\\r\\n <mat-placeholder>Role Name <span style=\\\"color:red; font-size: 20px;\\\">*</span></mat-placeholder>\\r\\n </mat-form-field>\\r\\n </div>\\r\\n <div class=\\\"item item-1\\\" fxFlex=\\\"10%\\\"></div>\\r\\n <div class=\\\"item item-1\\\" fxFlex=\\\"45%\\\">\\r\\n \\r\\n <mat-form-field>\\r\\n <mat-label> Role Description</mat-label>\\r\\n <input matInput autocomplete=\\\"off\\\" maxlength=\\\"100\\\" id=\\\"lblActivityName\\\"\\r\\n [(ngModel)]=\\\"RoleDescription\\\" value=\\\"\\\">\\r\\n </mat-form-field>\\r\\n </div>\\r\\n </div>\\r\\n <div>\\r\\n <mat-label><strong>* Permissions</strong></mat-label>\\r\\n </div><br>\\r\\n \\r\\n \\r\\n \\r\\n <div *ngIf=\\\"1==1\\\" class=\\\"container\\\" \\r\\n fxLayoutGap.xs=\\\"0\\\">\\r\\n <table class='table borderless'>\\r\\n <tr >\\r\\n <td style=\\\"width: 120px;\\\">All</td>\\r\\n \\r\\n <td> \\r\\n\\r\\n <div style=\\\"display:inline-block; width:110px\\\" *ngFor=\\\"let list of permissionsList\\\">\\r\\n \\r\\n <mat-checkbox *ngIf=\\\"list=='R'\\\" (change)=\\\"onClick(list, data)\\\" [(ngModel)]=\\\"checkedCB[list]\\\">Read</mat-checkbox>\\r\\n <mat-checkbox *ngIf=\\\"list=='C'\\\" (change)=\\\"onClick(list, data)\\\" [(ngModel)]=\\\"checkedCB[list]\\\">Create</mat-checkbox>\\r\\n <mat-checkbox *ngIf=\\\"list=='U'\\\" (change)=\\\"onClick(list, data)\\\" [(ngModel)]=\\\"checkedCB[list]\\\">Update</mat-checkbox>\\r\\n <mat-checkbox *ngIf=\\\"list=='D'\\\" (change)=\\\"onClick(list, data)\\\" [(ngModel)]=\\\"checkedCB[list]\\\">Delete</mat-checkbox>\\r\\n </div>\\r\\n \\r\\n </td>\\r\\n </tr>\\r\\n </table>\\r\\n <table class='table borderless'>\\r\\n <div *ngFor=\\\"let menu of menuData\\\">\\r\\n \\r\\n <tr >\\r\\n <td *ngIf=\\\"menu.MenuName!='FrustrationsType'\\\" style=\\\"width: 120px;\\\" > {{menu.MenuName}}</td>\\r\\n <td *ngIf=\\\"menu.MenuName=='FrustrationsType'\\\" style=\\\"width: 120px;\\\" > Frustration Types</td>\\r\\n <td> <span *ngIf=\\\"rowID && PermissonJosn[menu.MenuName]\\\"> \\r\\n <div style=\\\"display:inline-block; width:110px\\\" *ngFor=\\\"let list of permissionsList\\\">\\r\\n \\r\\n \\r\\n <mat-checkbox color=\\\"primary\\\" [disabled]=\\\"(menu.MenuName=='ProcessMap' && list=='R') || (menu.MenuName=='Alerts' && list!='R' ) || (menu.MenuName=='Metric Table' && list!='R' ) ||menu.MenuName=='Company' &&CurrentUser !=='admin' || (menu.MenuName=='Reports' && list!=='R') || (menu.MenuName=='Cases' && list!=='R' && list!='U' ) || (menu.MenuName == 'FrustrationsType' && list!='R')\\\" [(ngModel)]=\\\"PermissonJosn[menu.MenuName][menu.MenuID][list]\\\"\\r\\n (change)=\\\"onCheckboxMenuChange(menu.MenuName,menu.MenuID,list,$event,'edit')\\\">{{list}}</mat-checkbox>\\r\\n </div> \\r\\n </span>\\r\\n\\r\\n <span *ngIf=\\\"!rowID && newPermissions[menu.MenuName]\\\"> \\r\\n <div style=\\\"display:inline-block; width:110px\\\" *ngFor=\\\"let list of permissionsList\\\">\\r\\n \\r\\n \\r\\n <mat-checkbox color=\\\"primary\\\" [disabled]=\\\"(menu.MenuName=='ProcessMap' && list=='R') || (menu.MenuName=='Alerts' && list!='R' ) || (menu.MenuName=='Metric Table' && list!='R' ) ||(menu.MenuName=='Company' &&CurrentUser !=='admin') || (menu.MenuName=='Reports' && list!=='R') || (menu.MenuName=='Cases' && list!=='R' && list!='U' ) || (menu.MenuName == 'FrustrationsType' && list!='R')\\\" [(ngModel)]=\\\"newPermissions[menu.MenuName][menu.MenuID][list]\\\"\\r\\n (change)=\\\"onCheckboxMenuChange(menu.MenuName,menu.MenuID,list,$event,'new')\\\">{{list}}</mat-checkbox>\\r\\n </div> \\r\\n </span>\\r\\n\\r\\n </td>\\r\\n </tr>\\r\\n </div>\\r\\n </table>\\r\\n </div>\\r\\n \\r\\n <div *ngIf=\\\"showGranual\\\" class=\\\"container\\\" fxLayout fxLayout.xs=\\\"column\\\" fxLayoutAlign=\\\"center\\\" fxLayoutGap=\\\"10px\\\"\\r\\n fxLayoutGap.xs=\\\"0\\\">\\r\\n\\r\\n <div class=\\\"item item-1\\\" fxFlex=\\\"100%\\\">\\r\\n <span>\\r\\n <mat-checkbox\\r\\n [(ngModel)]=\\\"mapCheck\\\"></mat-checkbox> ProcessMap\\r\\n <span *ngIf=\\\"mapCheck\\\">\\r\\n\\r\\n <span *ngIf=\\\"rowID\\\"> <span *ngFor=\\\"let list of permissionsList\\\">\\r\\n \\r\\n <mat-checkbox color=\\\"primary\\\" [(ngModel)]=\\\"mapList['Map'][list]\\\"\\r\\n (change)=\\\"onCheckboxChange('Map','ProcessMap' ,list,$event,'edit')\\\">{{list}}</mat-checkbox>\\r\\n </span></span>\\r\\n <span *ngIf=\\\"!rowID\\\"> <span *ngFor=\\\"let list of permissionsList\\\">\\r\\n \\r\\n <mat-checkbox color=\\\"primary\\\" \\r\\n (change)=\\\"onCheckboxChange('Map','ProcessMap',list,$event,'new')\\\">{{list}}</mat-checkbox>\\r\\n </span></span>\\r\\n\\r\\n\\r\\n </span>\\r\\n <div *ngIf=\\\"mapCheck\\\" class=\\\"col-lg\\\">\\r\\n \\r\\n <span *ngFor=\\\"let team of MainJson| keyvalue;let i = index\\\" >\\r\\n \\r\\n <mat-checkbox [(ngModel)]=\\\"teamCheckList[team.key]\\\"></mat-checkbox>\\r\\n {{team.key.split('æææ')[0]}}\\r\\n <span *ngIf=\\\"teamCheckList[team.key] || teamList[team.key.split('æææ')[1]]\\\">\\r\\n <span *ngIf=\\\"rowID\\\"> <span *ngFor=\\\"let list of permissionsList\\\">\\r\\n \\r\\n <mat-checkbox color=\\\"primary\\\"\\r\\n [(ngModel)]=\\\"teamList[team.key.split('æææ')[1]][list]\\\"\\r\\n (change)=\\\"onCheckboxChange('Team',team.key.split('æææ')[1],list,$event,'edit')\\\">\\r\\n {{list}}</mat-checkbox>\\r\\n </span></span>\\r\\n <span *ngIf=\\\"!rowID\\\"> <span *ngFor=\\\"let list of permissionsList\\\">\\r\\n \\r\\n <mat-checkbox color=\\\"primary\\\"\\r\\n (change)=\\\"onCheckboxChange('Team',team.key.split('æææ')[1],list,$event,'new')\\\">\\r\\n {{list}}</mat-checkbox>\\r\\n </span></span>\\r\\n </span><br>\\r\\n <div *ngIf=\\\"teamCheckList[team.key]\\\">\\r\\n\\r\\n <span *ngFor=\\\"let process of team.value| keyvalue;let j= index\\\" style=\\\"display: none;\\\">\\r\\n \\r\\n <mat-checkbox [(ngModel)]=\\\"processCheckList[process.key]\\\"></mat-checkbox>\\r\\n {{process.key.split('æææ')[0]}}\\r\\n <span *ngIf=\\\"processCheckList[process.key]\\\">\\r\\n\\r\\n <span *ngIf=\\\"rowID && processList\\\"> <span *ngFor=\\\"let list of permissionsList\\\">\\r\\n \\r\\n <mat-checkbox color=\\\"primary\\\"\\r\\n [(ngModel)]=\\\"processList[process.key.split('æææ')[1]][list]\\\"\\r\\n (change)=\\\"onCheckboxChange('Process',process.key.split('æææ')[1],list,$event,'edit')\\\">\\r\\n {{list}}</mat-checkbox>\\r\\n </span></span>\\r\\n <span *ngIf=\\\"!rowID\\\"> <span *ngFor=\\\"let list of permissionsList\\\">\\r\\n \\r\\n <mat-checkbox color=\\\"primary\\\"\\r\\n (change)=\\\"onCheckboxChange('Process',process.key.split('æææ')[1],list,$event,'new')\\\">\\r\\n {{list}}</mat-checkbox>\\r\\n </span></span> \\r\\n </span><br>\\r\\n <div *ngIf=\\\"processCheckList[process.key]\\\">\\r\\n \\r\\n <span *ngFor=\\\"let activity of process.value;let k =index\\\">\\r\\n \\r\\n <mat-checkbox [(ngModel)]=\\\"activityCheckList[activity]\\\"></mat-checkbox>\\r\\n {{activity.split('æææ')[0]}}\\r\\n <span *ngIf=\\\"activityCheckList[activity]\\\">\\r\\n\\r\\n <span *ngIf=\\\"rowID\\\"> <span *ngFor=\\\"let list of permissionsList\\\">\\r\\n \\r\\n <mat-checkbox color=\\\"primary\\\"\\r\\n [(ngModel)]=\\\"activityList[activity.split('æææ')[1]][list]\\\"\\r\\n (change)=\\\"onCheckboxChange('Activity',activity.split('æææ')[1],list,$event,'edit')\\\">\\r\\n {{list}}</mat-checkbox>\\r\\n </span></span>\\r\\n <span *ngIf=\\\"!rowID\\\"> <span *ngFor=\\\"let list of permissionsList\\\">\\r\\n \\r\\n <mat-checkbox color=\\\"primary\\\"\\r\\n (change)=\\\"onCheckboxChange('Activity',activity.split('æææ')[1],list,$event,'new')\\\">\\r\\n {{list}}</mat-checkbox>\\r\\n </span></span>\\r\\n\\r\\n </span> <br>\\r\\n </span> </div>\\r\\n </span>\\r\\n </div>\\r\\n </span>\\r\\n </div>\\r\\n </span> <br><br> <br>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n \\r\\n\\r\\n <div class=\\\"container\\\" fxLayout fxLayout.xs=\\\"column\\\" fxLayoutAlign=\\\"center\\\" fxLayoutGap=\\\"10px\\\" fxLayoutGap.xs=\\\"0\\\">\\r\\n <br><br>\\r\\n <div class=\\\"item item-1\\\" fxFlexOrder=\\\"1\\\">\\r\\n <button class=\\\"addButtons\\\" mat-raised-button mat-accent (click)=\\\"AddRole()\\\"><span *ngIf=\\\"data === 'new'\\\">Save</span><span *ngIf=\\\"data === 'edit'\\\" >Update</span></button>\\r\\n </div>\\r\\n <div class=\\\"item item-1\\\" fxFlexOrder=\\\"3\\\">\\r\\n <button mat-raised-button mat-accent class=\\\"addButtons\\\" (click)='close()'>Cancel</button>\\r\\n </div>\\r\\n </div> -->\\r\\n\\r\\n <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n\\r\\n <div id=\\\"Rowheading\\\">\\r\\n <h4 class=\\\"alignheader\\\"><b>{{data | titlecase}} Role</b></h4>\\r\\n\\r\\n </div>\\r\\n </div>\\r\\n <div mat-dialog-content>\\r\\n <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n <div id=\\\"Rowwrapper\\\">\\r\\n <div id=\\\"RowtableActions\\\">\\r\\n <div id=\\\"field\\\">\\r\\n <mat-form-field>\\r\\n\\r\\n <input matInput autocomplete=\\\"off\\\" maxlength=\\\"100\\\" id=\\\"lblActivityName\\\"\\r\\n [(ngModel)]=\\\"RoleName\\\" value=\\\"\\\">\\r\\n <mat-placeholder>Role Name <span style=\\\"color:red; font-size: 20px;\\\">*</span>\\r\\n </mat-placeholder>\\r\\n </mat-form-field>\\r\\n </div>\\r\\n <div id=\\\"field\\\">\\r\\n\\r\\n <mat-form-field>\\r\\n <mat-label> Role Description</mat-label>\\r\\n <input matInput autocomplete=\\\"off\\\" maxlength=\\\"100\\\" id=\\\"lblActivityName\\\"\\r\\n [(ngModel)]=\\\"RoleDescription\\\" value=\\\"\\\">\\r\\n </mat-form-field>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n <div id=\\\"Rowheading\\\">\\r\\n <mat-label><strong>* Permissions</strong></mat-label>\\r\\n </div>\\r\\n </div>\\r\\n <div *ngIf=\\\"1==1\\\" class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n <div id=\\\"Rowwrapper\\\">\\r\\n <div id=\\\"RowtableActions\\\">\\r\\n\\r\\n <table style=\\\"border: none;\\\" class='table borderless'>\\r\\n <tr>\\r\\n <td style=\\\"width: 120px;\\\">All</td>\\r\\n\\r\\n <td>\\r\\n\\r\\n <div style=\\\"display:inline-block; width:110px\\\" *ngFor=\\\"let list of permissionsList\\\">\\r\\n \\r\\n <mat-checkbox *ngIf=\\\"list=='R'\\\" (change)=\\\"onClick(list, data)\\\"\\r\\n [(ngModel)]=\\\"checkedCB[list]\\\">Read</mat-checkbox>\\r\\n <mat-checkbox *ngIf=\\\"list=='C'\\\" (change)=\\\"onClick(list, data)\\\"\\r\\n [(ngModel)]=\\\"checkedCB[list]\\\">Create</mat-checkbox>\\r\\n <mat-checkbox *ngIf=\\\"list=='U'\\\" (change)=\\\"onClick(list, data)\\\"\\r\\n [(ngModel)]=\\\"checkedCB[list]\\\">Update</mat-checkbox>\\r\\n <mat-checkbox *ngIf=\\\"list=='D'\\\" (change)=\\\"onClick(list, data)\\\"\\r\\n [(ngModel)]=\\\"checkedCB[list]\\\">Delete</mat-checkbox>\\r\\n </div>\\r\\n\\r\\n </td>\\r\\n </tr>\\r\\n </table>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n <div *ngIf=\\\"1==1\\\" class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n <div id=\\\"Rowwrapper\\\">\\r\\n <div id=\\\"RowtableActions\\\">\\r\\n <table style=\\\"border: none;\\\" class='table borderless'>\\r\\n <div *ngFor=\\\"let menu of menuData\\\">\\r\\n\\r\\n <tr>\\r\\n\\r\\n <td *ngIf=\\\"menu.MenuName!='FrustrationsType' && menu.MenuName!='UserManual'\\\"\\r\\n style=\\\"width: 120px;\\\"> {{menu.MenuName}}\\r\\n </td>\\r\\n <td *ngIf=\\\"menu.MenuName=='FrustrationsType' && menu.MenuName!='UserManual'\\\"\\r\\n style=\\\"width: 120px;\\\"> Frustration Types\\r\\n </td>\\r\\n\\r\\n <td> <span\\r\\n *ngIf=\\\"rowID && PermissonJosn[menu.MenuName] && menu.menuName!=='UserManual'\\\">\\r\\n <div style=\\\"display:inline-block; width:110px\\\"\\r\\n *ngFor=\\\"let list of permissionsList\\\">\\r\\n \\r\\n\\r\\n <mat-checkbox color=\\\"primary\\\" [disabled]=\\\"(menu.MenuName=='ProcessMap' && list=='R') \\r\\n || (menu.MenuName=='Alerts' && list!='R' ) \\r\\n \\r\\n || (menu.MenuName=='Metric Table' && list!='R' ) \\r\\n ||menu.MenuName=='Company' &&CurrentUser !=='admin' \\r\\n || (menu.MenuName=='Reports' && list!=='R') \\r\\n || (menu.MenuName=='Score Card' && list=='R') \\r\\n || (menu.MenuName=='Cases' && list!=='R' && list!='U' ) \\r\\n || (menu.MenuName == 'FrustrationsType' && list!='R')\\r\\n || (menu.MenuName == 'Goals' && list!='R')\\r\\n || (menu.MenuName == 'Quarter' && list!='R')\\\"\\r\\n [(ngModel)]=\\\"PermissonJosn[menu.MenuName][menu.MenuID][list]\\\"\\r\\n (change)=\\\"onCheckboxMenuChange(menu.MenuName,menu.MenuID,list,$event,'edit')\\\">\\r\\n {{list}}</mat-checkbox>\\r\\n </div>\\r\\n </span>\\r\\n\\r\\n <span\\r\\n *ngIf=\\\"!rowID && newPermissions[menu.MenuName] && menu.menuName!=='UserManual'\\\">\\r\\n <div style=\\\"display:inline-block; width:110px\\\"\\r\\n *ngFor=\\\"let list of permissionsList\\\">\\r\\n \\r\\n\\r\\n <mat-checkbox color=\\\"primary\\\" [disabled]=\\\"(menu.MenuName=='ProcessMap' && list=='R') ||\\r\\n (menu.MenuName=='Alerts' && list!='R' ) \\r\\n || (menu.MenuName=='Metric Table' && list!='R' )\\r\\n ||(menu.MenuName=='Company' && CurrentUser !=='admin') \\r\\n || (menu.MenuName=='Reports' && list!=='R')\\r\\n || (menu.MenuName=='Score Card' && list=='R')\\r\\n || (menu.MenuName=='Cases' && list!=='R' && list!='U' ) \\r\\n || (menu.MenuName == 'FrustrationsType' && list!='R')\\r\\n || (menu.MenuName == 'Goals' && list!='R' )\\r\\n || (menu.MenuName == 'Quarter' && list!='R' )\\\"\\r\\n [(ngModel)]=\\\"newPermissions[menu.MenuName][menu.MenuID][list]\\\"\\r\\n (change)=\\\"onCheckboxMenuChange(menu.MenuName,menu.MenuID,list,$event,'new')\\\">\\r\\n {{list}}</mat-checkbox>\\r\\n </div>\\r\\n </span>\\r\\n\\r\\n </td>\\r\\n </tr>\\r\\n </div>\\r\\n </table>\\r\\n\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n <div *ngIf=\\\"showGranual\\\" class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n <div id=\\\"Rowwrapper\\\">\\r\\n <div id=\\\"Rowheading\\\">\\r\\n <!-- <div class=\\\"item item-1\\\" fxFlex=\\\"100%\\\"> -->\\r\\n <!-- <span> -->\\r\\n <table style=\\\"border: none;\\\" class='table borderless'>\\r\\n <tr>\\r\\n <td>\\r\\n <mat-checkbox [(ngModel)]=\\\"mapCheck\\\"></mat-checkbox> ProcessMap\\r\\n </td>\\r\\n <td>\\r\\n <span *ngIf=\\\"mapCheck\\\">\\r\\n\\r\\n <span *ngIf=\\\"rowID\\\">\\r\\n <div style=\\\"display:inline-block; width:110px\\\"\\r\\n *ngFor=\\\"let list of permissionsList\\\">\\r\\n \\r\\n <mat-checkbox color=\\\"primary\\\" [(ngModel)]=\\\"mapList['Map'][list]\\\"\\r\\n (change)=\\\"onCheckboxChange('Map','ProcessMap' ,list,$event,'edit')\\\">\\r\\n {{list}}</mat-checkbox>\\r\\n </div>\\r\\n </span>\\r\\n <span *ngIf=\\\"!rowID\\\">\\r\\n <div style=\\\"display:inline-block; width:110px\\\"\\r\\n *ngFor=\\\"let list of permissionsList\\\">\\r\\n \\r\\n <mat-checkbox color=\\\"primary\\\"\\r\\n (change)=\\\"onCheckboxChange('Map','ProcessMap',list,$event,'new')\\\">\\r\\n {{list}}</mat-checkbox>\\r\\n </div>\\r\\n </span>\\r\\n\\r\\n\\r\\n </span>\\r\\n </td>\\r\\n </tr>\\r\\n </table>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n <div *ngIf=\\\"showGranual\\\" class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n <div id=\\\"Rowwrapper\\\">\\r\\n <div id=\\\"RowtableActions\\\">\\r\\n <div *ngIf=\\\"mapCheck\\\">\\r\\n <table style=\\\"border: none;\\\" class='table borderless'>\\r\\n <div *ngFor=\\\"let team of MainJson| keyvalue;let i = index\\\">\\r\\n <tr>\\r\\n <td>\\r\\n <mat-checkbox [(ngModel)]=\\\"teamCheckList[team.key]\\\"></mat-checkbox>\\r\\n {{team.key.split('æææ')[0]}}\\r\\n </td>\\r\\n <td>\\r\\n <span *ngIf=\\\"teamCheckList[team.key] || teamList[team.key.split('æææ')[1]]\\\">\\r\\n <span *ngIf=\\\"rowID\\\">\\r\\n <div style=\\\"display:inline-block; width:110px\\\"\\r\\n *ngFor=\\\"let list of permissionsList\\\">\\r\\n \\r\\n <mat-checkbox color=\\\"primary\\\"\\r\\n [(ngModel)]=\\\"teamList[team.key.split('æææ')[1]][list]\\\"\\r\\n (change)=\\\"onCheckboxChange('Team',team.key.split('æææ')[1],list,$event,'edit')\\\">\\r\\n {{list}}</mat-checkbox>\\r\\n </div>\\r\\n </span>\\r\\n <span *ngIf=\\\"!rowID\\\">\\r\\n <div style=\\\"display:inline-block; width:110px\\\"\\r\\n *ngFor=\\\"let list of permissionsList\\\">\\r\\n \\r\\n <mat-checkbox color=\\\"primary\\\"\\r\\n (change)=\\\"onCheckboxChange('Team',team.key.split('æææ')[1],list,$event,'new')\\\">\\r\\n {{list}}</mat-checkbox>\\r\\n </div>\\r\\n </span>\\r\\n </span><br>\\r\\n <div *ngIf=\\\"teamCheckList[team.key]\\\">\\r\\n\\r\\n <span *ngFor=\\\"let process of team.value| keyvalue;let j= index\\\"\\r\\n style=\\\"display: none;\\\">\\r\\n \\r\\n <mat-checkbox [(ngModel)]=\\\"processCheckList[process.key]\\\">\\r\\n </mat-checkbox>\\r\\n {{process.key.split('æææ')[0]}}\\r\\n <span *ngIf=\\\"processCheckList[process.key]\\\">\\r\\n\\r\\n <span *ngIf=\\\"rowID && processList\\\">\\r\\n <div style=\\\"display:inline-block; width:110px\\\"\\r\\n *ngFor=\\\"let list of permissionsList\\\">\\r\\n \\r\\n <mat-checkbox color=\\\"primary\\\"\\r\\n [(ngModel)]=\\\"processList[process.key.split('æææ')[1]][list]\\\"\\r\\n (change)=\\\"onCheckboxChange('Process',process.key.split('æææ')[1],list,$event,'edit')\\\">\\r\\n {{list}}</mat-checkbox>\\r\\n </div>\\r\\n </span>\\r\\n <span *ngIf=\\\"!rowID\\\">\\r\\n <div style=\\\"display:inline-block; width:110px\\\"\\r\\n *ngFor=\\\"let list of permissionsList\\\">\\r\\n \\r\\n <mat-checkbox color=\\\"primary\\\"\\r\\n (change)=\\\"onCheckboxChange('Process',process.key.split('æææ')[1],list,$event,'new')\\\">\\r\\n {{list}}</mat-checkbox>\\r\\n </div>\\r\\n </span>\\r\\n </span><br>\\r\\n <div *ngIf=\\\"processCheckList[process.key]\\\">\\r\\n\\r\\n <span *ngFor=\\\"let activity of process.value;let k =index\\\">\\r\\n \\r\\n <mat-checkbox [(ngModel)]=\\\"activityCheckList[activity]\\\">\\r\\n </mat-checkbox>\\r\\n {{activity.split('æææ')[0]}}\\r\\n <span *ngIf=\\\"activityCheckList[activity]\\\">\\r\\n\\r\\n <span *ngIf=\\\"rowID\\\">\\r\\n <div style=\\\"display:inline-block; width:110px\\\"\\r\\n *ngFor=\\\"let list of permissionsList\\\">\\r\\n \\r\\n <mat-checkbox color=\\\"primary\\\"\\r\\n [(ngModel)]=\\\"activityList[activity.split('æææ')[1]][list]\\\"\\r\\n (change)=\\\"onCheckboxChange('Activity',activity.split('æææ')[1],list,$event,'edit')\\\">\\r\\n {{list}}</mat-checkbox>\\r\\n </div>\\r\\n </span>\\r\\n <span *ngIf=\\\"!rowID\\\">\\r\\n <div style=\\\"display:inline-block; width:110px\\\"\\r\\n *ngFor=\\\"let list of permissionsList\\\">\\r\\n \\r\\n <mat-checkbox color=\\\"primary\\\"\\r\\n (change)=\\\"onCheckboxChange('Activity',activity.split('æææ')[1],list,$event,'new')\\\">\\r\\n {{list}}</mat-checkbox>\\r\\n </div>\\r\\n </span>\\r\\n\\r\\n </span> <br>\\r\\n </span>\\r\\n </div>\\r\\n </span>\\r\\n </div>\\r\\n </td>\\r\\n </tr>\\r\\n </div>\\r\\n </table>\\r\\n </div>\\r\\n <!-- </span> <br><br> <br> -->\\r\\n <!-- </div> -->\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n <div id=\\\"Rowwrapper\\\">\\r\\n <div id=\\\"RowtableActions\\\" style=\\\"margin-top: 1%;\\\">\\r\\n <div id=\\\"buttonview\\\">\\r\\n <button class=\\\"addButtons btn\\\" mat-accent (click)=\\\"AddRole()\\\" [disabled]=\\\"btnDisabled\\\"><span\\r\\n *ngIf=\\\"data === 'new'\\\">Save</span><span *ngIf=\\\"data === 'edit'\\\">Update</span></button>\\r\\n </div>\\r\\n <div id=\\\"buttonview\\\">\\r\\n <button mat-accent class=\\\"addButtons btn\\\" (click)='close()'>Cancel</button>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n</div>\\r\\n\\r\\n\\r\\n<mat-dialog-content style=\\\"color: red;text-align: center\\\">{{errorMessage}}</mat-dialog-content>\\r\\n\"","module.exports = \"<link href=\\\"../../assets/css/dmapp.css\\\" rel=\\\"stylesheet\\\" id=\\\"bootstrap-css\\\">\\n<div class=\\\"row\\\" id=\\\"container\\\">\\n <div class=\\\"\\\" id=\\\"heading\\\">\\n <h4>Roles</h4>\\n </div>\\n <div id=\\\"wrapper\\\">\\n <div id=\\\"tableActions\\\">\\n <div class=\\\"\\\" id=\\\"search\\\">\\n <mat-form-field style=\\\"margin-top: -5px;\\\" id=\\\"searchField\\\">\\n <mat-placeholder class=\\\"placeholder\\\">Search here</mat-placeholder>\\n <input matInput id=\\\"newGroup\\\" [disabled]=\\\"disableSearch\\\" (keyup)=\\\"Searchtext()\\\" name=\\\"search\\\"\\n [(ngModel)]=\\\"searchtext\\\" value=\\\"\\\" autocomplete=\\\"off\\\">\\n </mat-form-field>\\n </div>\\n <div class=\\\"\\\" id=\\\"excelBtn\\\">\\n <button class=\\\"darkbtnbg btn btn-info\\\" [disabled]=\\\"isDisable\\\" matTooltip=\\\"Export as excel\\\"\\n style=\\\"margin-top:11px;cursor: pointer;\\\" (click)=\\\"exportAsXLSX()\\\">\\n\\n Excel\\n </button>\\n </div>\\n <div class=\\\"\\\" id=\\\"createBtn\\\">\\n <button mat-accent class=\\\"darkbtnbg btn btn-info\\\" style=\\\"margin-top: 11px;\\\"\\n [disabled]=\\\"!MenuPermissions[menuName][menuID]['C']\\\" (click)='CreateRole(\\\"new\\\")' matTooltip=\\\"New role\\\"> New\\n </button>\\n </div>\\n </div>\\n </div>\\n</div>\\n\\n\\n<!-- <div class=\\\"container\\\" style=\\\"margin-top: -10px\\\" fxLayout fxLayout.xs=\\\"column\\\" fxLayoutAlign=\\\"center\\\" fxLayoutGap=\\\"10px\\\" fxLayoutGap.xs=\\\"0\\\">\\n <div class=\\\"col-lg-8\\\">\\n <div class=\\\"item item-5 alignLeft\\\" fxFlex=\\\"12%\\\">\\n <h4>Roles</h4>\\n </div>\\n </div>\\n <div class=\\\"item item-1\\\" fxFlex=\\\"51%\\\" fxFlexOrder=\\\"1\\\">\\n \\n </div>\\n <div class=\\\"item item-1\\\" fxFlex=\\\"25%\\\" fxFlexOrder=\\\"2\\\" *ngIf=\\\"!disableSearch\\\">\\n \\n <mat-form-field style=\\\"width: 180px\\\">\\n <mat-placeholder class=\\\"placeholder\\\">Search here</mat-placeholder>\\n <input matInput id=\\\"newGroup\\\" [disabled]=\\\"disableSearch\\\" (keyup)=\\\"Searchtext()\\\" name=\\\"search\\\" [(ngModel)]=\\\"searchtext\\\" value=\\\"\\\" autocomplete=\\\"off\\\">\\n </mat-form-field>\\n </div>\\n <div class=\\\"item item-5\\\" fxFlex=\\\"10%\\\" fxFlexOrder=\\\"3\\\" *ngIf=\\\"!isDisable\\\">\\n <button class=\\\"darkbtnbg btn btn-info\\\" [disabled]=\\\"isDisable\\\" matTooltip=\\\"Export As Excel\\\" style=\\\"margin-top:10px;cursor: pointer;\\\" (click)=\\\"exportAsXLSX()\\\">\\n \\n Excel\\n </button> \\n\\n </div>\\n <div class=\\\"item item-5\\\" fxFlex=\\\"11%\\\" fxFlexOrder=\\\"3\\\">\\n <button mat-accent class=\\\"darkbtnbg btn btn-info\\\" style=\\\"margin-top: 11px;\\\" [disabled]=\\\"!MenuPermissions[menuName][menuID]['C']\\\" (click)='CreateRole(\\\"new\\\")' matTooltip=\\\"New Role\\\"> NEW </button>\\n </div>\\n \\n </div> -->\\n\\n<div>\\n\\n <table class=\\\"table table-responsive\\\" class=\\\"fixed\\\">\\n <thead>\\n <tr>\\n\\n <th class=\\\"pointer\\\" (click)=\\\"sort('RoleName')\\\"> Role\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n\\n <th cName class=\\\"pointer\\\" (click)=\\\"sort('RoleDescription')\\\"> Description\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n\\n\\n <th action>Action</th>\\n </tr>\\n </thead>\\n <tbody>\\n <tr\\n *ngFor=\\\"let element of roleData | paginate: { itemsPerPage: rowsOnPage, currentPage: p } | sort: {property: column, direction: direction}; let i = index\\\">\\n\\n <td> {{element.RoleName}}</td>\\n <td> {{element.RoleDescription}}</td>\\n <td style=\\\" cursor:pointer;\\\">\\n {{element.EmployeeID}}\\n <span> <a matTooltip=\\\"Edit role\\\"\\n [style.pointer-events]=\\\"(!MenuPermissions[menuName][menuID]['U']) || element.RoleID===TeamMemberRoleID|| element.RoleID===TeamAdminRoleID || element.RoleID===ReadOnlyRoleID || element.RoleID==emproleID || element.RoleID == compRoleID?'none':'auto'\\\"\\n [ngClass]=\\\"{'removeColor':(!(MenuPermissions[menuName][menuID]['U']) || element.RoleID===TeamMemberRoleID|| element.RoleID===TeamAdminRoleID || element.RoleID===ReadOnlyRoleID || element.RoleID==emproleID) || element.RoleID == compRoleID,'AddColor':((MenuPermissions[menuName][menuID]['U']))}\\\"\\n (click)=\\\"EditRole(element)\\\"><i class=\\\"fa fa-pencil-square-o \\\" aria-hidden=\\\"true\\\"\\n style=\\\"cursor: pointer;\\\"></i></a>\\n\\n <a matTooltip=\\\"Delete role\\\"\\n [style.pointer-events]=\\\"(!MenuPermissions[menuName][menuID]['D']) || element.RoleID===TeamMemberRoleID||element.RoleID===TeamAdminRoleID || element.RoleID===ReadOnlyRoleID ||element.RoleID==emproleID || element.RoleID == compRoleID ?'none':'auto'\\\"\\n [ngClass]=\\\"{'removeColor':(!(MenuPermissions[menuName][menuID]['D']) || element.RoleID===TeamMemberRoleID|| element.RoleID===TeamAdminRoleID || element.RoleID===ReadOnlyRoleID || element.RoleID==emproleID) || element.RoleID == compRoleID,'AddColor':((MenuPermissions[menuName][menuID]['U']))}\\\"\\n (click)=\\\"DeleteRole(element)\\\"><i class=\\\"fa fa-trash-o \\\" aria-hidden=\\\"true\\\"\\n style=\\\"cursor: pointer;\\\"></i></a> </span>\\n </td>\\n\\n </tr>\\n </tbody>\\n\\n </table><br>\\n\\n\\n\\n <div class=\\\"warningMsg\\\" *ngIf=\\\"(roleData === null||roleData===undefined || roleData.length === 0)\\\">\\n\\n <span>No data available</span>\\n\\n\\n </div>\\n\\n\\n <div class=\\\"pageContainer\\\" *ngIf=\\\"roleData.length>0\\\">\\n <div class=\\\"rowsSelection\\\">\\n <mat-form-field style=\\\"width: 50px; margin-top: -15px;\\\">\\n <mat-select [(ngModel)]=\\\"rowsOnPage\\\">\\n <mat-option *ngFor=\\\"let row of rowsOnPageSet\\\" [value]=\\\"row\\\">\\n {{row}}\\n </mat-option>\\n </mat-select>\\n </mat-form-field>\\n </div>\\n <div class=\\\"pageSelection\\\">\\n\\n <pagination-controls (pageChange)=\\\"p = $event\\\"></pagination-controls>\\n </div>\\n </div>\\n\\n\\n\\n <!-- <div class=\\\"container row\\\" style=\\\"float:right\\\" *ngIf=\\\"roleData.length>0\\\" >\\n <div class=\\\"col-lg-6\\\"></div>\\n <div class=\\\"col-lg-1\\\">\\n <mat-form-field style=\\\"width: 50px; margin-top: -15px;\\\">\\n <mat-select [(ngModel)]=\\\"rowsOnPage\\\">\\n <mat-option *ngFor=\\\"let row of rowsOnPageSet\\\" [value]=\\\"row\\\">\\n {{row}}\\n </mat-option>\\n </mat-select>\\n </mat-form-field>\\n </div>\\n \\n \\n <div class=\\\"col-lg-5\\\" style=\\\"float:right\\\">\\n \\n <pagination-controls (pageChange)=\\\"p = $event\\\"></pagination-controls>\\n </div>\\n </div> -->\\n\\n\\n\\n</div>\\n\"","module.exports = \"<link href=\\\"../../assets/css/dmapp.css\\\" rel=\\\"stylesheet\\\" id=\\\"bootstrap-css\\\">\\r\\n<div class=\\\"row\\\" id=\\\"container\\\">\\r\\n <div>\\r\\n <h5 style=\\\"padding-top: 15px;\\\">Sub Entities </h5>\\r\\n </div>\\r\\n <div id=\\\"tableActions\\\">\\r\\n <div class=\\\"\\\" id=\\\"search\\\">\\r\\n <mat-form-field style=\\\"margin-top: -5px;\\\" id=\\\"searchField\\\">\\r\\n <mat-placeholder class=\\\"placeholder\\\">Search here</mat-placeholder>\\r\\n <input matInput id=\\\"newGroup\\\" (keyup)=\\\"Searchtext()\\\" [disabled]=\\\"isSearchDisable\\\"\\r\\n [(ngModel)]=\\\"searchtext\\\" name=\\\"search\\\" value=\\\"\\\" autocomplete=\\\"off\\\">\\r\\n </mat-form-field>\\r\\n </div>\\r\\n <div class=\\\"\\\" id=\\\"excelBtn\\\" style=\\\"display: none;\\\">\\r\\n <button class=\\\"darkbtnbg btn btn-info\\\" matTooltip=\\\"Export as excel\\\"\\r\\n style=\\\"margin-top:11px;cursor: pointer;\\\">\\r\\n Excel\\r\\n </button>\\r\\n </div>\\r\\n <div class=\\\"\\\" id=\\\"createBtn\\\" *ngIf=\\\"!isSuperAdmin\\\">\\r\\n <button mat-accent class=\\\"darkbtnbg btn btn-info\\\" (click)='newSubCompany()' matTooltip=\\\"New Sub entity\\\">New\\r\\n </button>\\r\\n </div>\\r\\n </div>\\r\\n</div>\\r\\n<div class=\\\"tableDiv\\\">\\r\\n <table>\\r\\n <thead>\\r\\n <tr>\\r\\n <th class=\\\"pointer\\\" (click)=\\\"sort('CompanyName')\\\"> Entity\\r\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\r\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\r\\n </th>\\r\\n <th class=\\\"pointer\\\" (click)=\\\"sort('Email')\\\"> Email\\r\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\r\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\r\\n </th>\\r\\n <th class=\\\"pointer\\\" (click)=\\\"sort('Phone1')\\\"> Phone\\r\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\r\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\r\\n </th>\\r\\n <th class=\\\"pointer\\\" (click)=\\\"sort('NoOfSubCompanies')\\\"> Sub Entities\\r\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\r\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\r\\n </th>\\r\\n <th> Enable Score Card</th>\\r\\n <th action>Action</th>\\r\\n </tr>\\r\\n </thead>\\r\\n <tbody>\\r\\n <tr *ngFor=\\\"let element of subCompanyDetails | paginate: { itemsPerPage: rowsOnPage, currentPage: p } | sort: {property: column, direction: direction}; let i = index\\\"\\r\\n id=\\\"trRow\\\" [ngClass]=\\\"element.CompanyID === currentRow ? 'highlight' : ''\\\">\\r\\n <td> {{element.CompanyName}}</td>\\r\\n <td>{{element.Email}} </td>\\r\\n <td> {{element.Phone1 }} </td>\\r\\n <td> {{element.NoOfSubCompanies ? element.NoOfSubCompanies : 0}} </td>\\r\\n <td>\\r\\n <span *ngIf=\\\"isSuperAdmin || !isCompanyLogin\\\">\\r\\n <mat-slide-toggle [(ngModel)]=\\\"element.EnableScoreCard\\\" [checked]=\\\"element.EnableScoreCard\\\"\\r\\n (change)='enableScoreCardChange($event,element)'></mat-slide-toggle>\\r\\n </span>\\r\\n <span *ngIf=\\\"!isSuperAdmin && isCompanyLogin\\\">\\r\\n {{element.EnableScoreCard ? 'Yes' : 'No'}}\\r\\n </span>\\r\\n </td>\\r\\n <td style=\\\"cursor:pointer;\\\">\\r\\n <!-- $event.stopPropagation(); -->\\r\\n <span>\\r\\n <a matTooltip=\\\"View Sub Entities\\\"\\r\\n [attr.disabled]=\\\"(element.NoOfSubCompanies || element.NoOfSubCompanies == 0) ? false: true\\\"\\r\\n (click)=\\\"viewSubEntities(element)\\\"\\r\\n [style.pointer-events]=\\\"element.NoOfSubCompanies == 0 ? 'none' : 'auto'\\\"\\r\\n [ngClass]=\\\"{'removeColor':(element.NoOfSubCompanies == 0),'AddColor':(element.NoOfSubCompanies != 0)}\\\">\\r\\n <i style=\\\"cursor: pointer;\\\" class=\\\"fa fa-eye \\\" aria-hidden=\\\"true\\\"></i>\\r\\n </a> \\r\\n <a matTooltip=\\\"Edit Entity\\\" (click)=\\\"EditCompany(element)\\\" class=\\\"fontLabel\\\"><i\\r\\n style=\\\"cursor: pointer;\\\" class=\\\"fa fa-pencil-square-o \\\" aria-hidden=\\\"true\\\"></i></a>\\r\\n <a matTooltip=\\\"Delete Entity\\\" class=\\\"fontLabel\\\"\\r\\n (click)=\\\"DeleteCompany(element)\\\"><i style=\\\"cursor: pointer;\\\" class=\\\"fa fa-trash-o \\\"\\r\\n aria-hidden=\\\"true\\\"></i></a>\\r\\n \\r\\n <!-- -->\\r\\n <a style=\\\"cursor: pointer; color: #3775b5; width: 20px; size: 2px;\\\" (click)=\\\"Navigate(element)\\\"\\r\\n class=\\\"rightArrow\\\" matTooltip=\\\"Login with {{element.CompanyName}} entity\\\"><i\\r\\n class=\\\"fa fa-arrow-circle-right fa-5x\\\"></i></a>\\r\\n </span>\\r\\n </td>\\r\\n\\r\\n </tr>\\r\\n </tbody>\\r\\n\\r\\n </table>\\r\\n <br>\\r\\n <div class=\\\"warningMsg\\\"\\r\\n *ngIf=\\\"(subCompanyDetails === null||subCompanyDetails===undefined || subCompanyDetails.length === 0)\\\">\\r\\n <span>No data available</span>\\r\\n </div>\\r\\n</div>\\r\\n<app-sub-company *ngIf=\\\"showSubEntities\\\" [entityLicenses]=\\\"entityLicenses\\\" [subEntityLicenses]=\\\"subEntityLicenses\\\"\\r\\n [subCompanyCount]=\\\"subCompanyCount\\\" [isSuperAdmin]=\\\"isSuperAdmin\\\" [companyId]=\\\"parentCompanyId\\\"\\r\\n [organizationId]=\\\"organizationId\\\">\\r\\n</app-sub-company>\"","module.exports = \"<link href=\\\"../../assets/css/dmapp.css\\\" rel=\\\"stylesheet\\\" id=\\\"bootstrap-css\\\">\\r\\n\\r\\n<div *ngIf=\\\"data !== 'new' && data !== 'edit' \\\">\\r\\n <mat-dialog-content>{{data}}</mat-dialog-content>\\r\\n <mat-dialog-actions align=\\\"center\\\">\\r\\n <div *ngIf=\\\"condition\\\">\\r\\n <button mat-raised-button mat-accent mat-dialog-close (click)=\\\"onNoClick()\\\">No</button>\\r\\n\\r\\n <button mat-raised-button mat-accent [mat-dialog-close]=\\\"true\\\" (click)=\\\"onYesClick()\\\">Yes</button>\\r\\n </div>\\r\\n <div *ngIf=\\\"!condition \\\">\\r\\n <div class=\\\"container\\\" fxLayout fxLayout.xs=\\\"column\\\" fxLayoutAlign=\\\"center\\\" fxLayoutGap=\\\"10px\\\" fxLayoutGap.xs=\\\"0\\\">\\r\\n <div class=\\\"item item-3 \\\">\\r\\n <button mat-button mat-accent mat-dialog-close>Ok</button>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </mat-dialog-actions>\\r\\n</div>\\r\\n\\r\\n\\r\\n<div *ngIf=\\\"data === 'new' || data === 'edit'\\\">\\r\\n <br>\\r\\n <div class=\\\"XBtn\\\">\\r\\n <span (click)=\\\"Clear()\\\" matTooltip=\\\"Close\\\" class=\\\"close\\\">×</span>\\r\\n </div>\\r\\n <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n <div id=\\\"Rowheading\\\">\\r\\n <h4 class=\\\"alignheader\\\"><b>{{data | titlecase}} Team</b></h4>\\r\\n\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n\\r\\n <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n <div id=\\\"Rowwrapper\\\">\\r\\n <div id=\\\"RowtableActions\\\">\\r\\n <div id=\\\"field\\\">\\r\\n <mat-form-field>\\r\\n <mat-label> Department Name <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-label>\\r\\n\\r\\n <mat-select (selectionChange)=\\\"departmentChange($event)\\\" [(ngModel)]=\\\"DepartmentID\\\">\\r\\n <mat-option *ngFor=\\\"let dept of DepartmentList;let i=index;\\\" [value]=\\\"dept.DepartmentID\\\">\\r\\n {{dept.DepartmentName}}\\r\\n </mat-option>\\r\\n </mat-select>\\r\\n </mat-form-field>\\r\\n </div>\\r\\n\\r\\n <div id=\\\"field\\\">\\r\\n\\r\\n\\r\\n <mat-form-field>\\r\\n <input matInput autocomplete=\\\"off\\\" maxlength=\\\"30\\\" [disabled]=\\\"TeamName==='Leadership Team'\\\" id=\\\"lblTeamName\\\"\\r\\n (keyup)=\\\"validate()\\\" [(ngModel)]=\\\"TeamName\\\" value=\\\"\\\">\\r\\n <mat-placeholder>Team <span style=\\\"color:red; font-size: 15px;;\\\">*</span></mat-placeholder>\\r\\n </mat-form-field>\\r\\n </div>\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <div class=\\\"row\\\">\\r\\n <div id=\\\"field\\\">\\r\\n <mat-form-field>\\r\\n\\r\\n <input matInput placeholder=\\\" Description\\\" autocomplete=\\\"off\\\" maxlength=\\\"200\\\" id=\\\"lblTeamDescription\\\"\\r\\n [(ngModel)]=\\\"TeamDescription\\\" value=\\\"\\\">\\r\\n </mat-form-field>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n\\r\\n <div class=\\\"row\\\" id=\\\"Rowcontainer\\\">\\r\\n <div id=\\\"Rowwrapper\\\">\\r\\n <div id=\\\"RowtableActions\\\">\\r\\n <div id=\\\"buttonview\\\">\\r\\n <button class=\\\"addButtons btn\\\" [disabled]=\\\"btnDisabled\\\" mat-accent (click)=\\\"AddTeam ()\\\"><span\\r\\n *ngIf=\\\"data === 'new'\\\">Save</span><span *ngIf=\\\"data === 'edit'\\\">Update</span></button>\\r\\n </div>\\r\\n <div id=\\\"buttonview\\\">\\r\\n <button mat-accent class=\\\"addButtons btn\\\" (click)='Clear()'>Cancel</button>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n <br>\\r\\n <mat-dialog-content class=\\\"warningMsg\\\">{{dataSelf}}</mat-dialog-content>\\r\\n <mat-dialog-content class=\\\"successMsg\\\"></mat-dialog-content>\\r\\n\"","module.exports = \"<link href=\\\"../../assets/css/dmapp.css\\\" rel=\\\"stylesheet\\\" id=\\\"bootstrap-css\\\">\\n\\n\\n<div class=\\\"row\\\" id=\\\"container\\\">\\n <div class=\\\"\\\" id=\\\"heading\\\">\\n <h4>Team</h4>\\n </div>\\n <div id=\\\"wrapper\\\">\\n <div id=\\\"tableActions\\\">\\n <div class=\\\"\\\" id=\\\"search\\\" *ngIf=\\\"!disableSearch\\\">\\n <mat-form-field style=\\\"margin-top: -5px;\\\" id=\\\"searchField\\\">\\n <mat-placeholder class=\\\"placeholder\\\">Search here</mat-placeholder>\\n <input matInput id=\\\"newGroup\\\" [disabled]=\\\"disableSearch\\\" (keyup)=\\\"searchText()\\\" name=\\\"search\\\"\\n [(ngModel)]=\\\"searchtext\\\" value=\\\"\\\" autocomplete=\\\"off\\\">\\n </mat-form-field>\\n </div>\\n <div class=\\\"\\\" id=\\\"excelBtn\\\" *ngIf=\\\"!disableSearch\\\">\\n <button class=\\\"darkbtnbg btn btn-info\\\" style=\\\"margin-top:11px;cursor: pointer;\\\" [disabled]=\\\"isDisable\\\"\\n matTooltip=\\\"Export as excel\\\" (click)=\\\"exportAsXLSX()\\\">\\n\\n Excel\\n </button>\\n </div>\\n <div class=\\\"\\\" id=\\\"createBtn\\\">\\n <button mat-accent class=\\\"darkbtnbg btn btn-info\\\" style=\\\"margin-top: 11px;\\\"\\n [disabled]=\\\"!MenuPermissions[menuName][menuID]['C'] || (employeeDetails && employeeDetails.IsEmployeeLoginLevel == 'Team')\\\"\\n (click)='OpenTeam()' matTooltip=\\\"New team\\\">New </button>\\n </div>\\n </div>\\n </div>\\n</div>\\n<div>\\n <table class=\\\"table table-responsive\\\" class=\\\"fixed\\\">\\n <thead>\\n <tr>\\n <th cName class=\\\"pointer\\\" (click)=\\\"sort('DepartmentName')\\\"> Department\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n <th cName class=\\\"pointer\\\" (click)=\\\"sort('TeamName')\\\"> Team\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n <th cName class=\\\"pointer\\\" (click)=\\\"sort('TeamDescription')\\\"> Description\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n <th action>Action</th>\\n </tr>\\n </thead>\\n <tbody *ngIf=\\\"empID===0\\\">\\n <tr\\n *ngFor=\\\"let element of teamData | paginate: { itemsPerPage: rowsOnPage, currentPage: p } | sort: {property: column, direction: direction}; let i = index\\\">\\n <td> {{element.DepartmentName}}</td>\\n <td> {{element.TeamName}}</td>\\n <td>{{element.TeamDescription}}</td>\\n <td style=\\\" cursor:pointer;\\\">\\n <span>\\n <a matTooltip=\\\"Edit team\\\" (click)=\\\"EditTeam(element)\\\"><i style=\\\"cursor: pointer;\\\"\\n class=\\\"fa fa-pencil-square-o \\\" aria-hidden=\\\"true\\\"></i></a>\\n <a matTooltip=\\\"Delete team\\\" (click)=\\\"DeleteTeam(element)\\\"\\n [style.pointer-events]=\\\"!(element.TeamName!=='Leadership Team')?'none':'auto'\\\"\\n [ngClass]=\\\"{'removeColor':!(element.TeamName!=='Leadership Team')}\\\"><i style=\\\"cursor: pointer;\\\"\\n class=\\\"fa fa-trash-o \\\" aria-hidden=\\\"true\\\"></i></a>\\n </span>\\n </td>\\n </tr>\\n </tbody>\\n <tbody\\n *ngFor=\\\"let element of teamData | paginate: { itemsPerPage: rowsOnPage, currentPage: p } | sort: {property: column, direction: direction}; let i = index\\\">\\n <tr *ngIf=\\\"empID!==0 && element.R\\\">\\n <td> {{element.DepartmentName}}</td>\\n <td> {{element.TeamName}}</td>\\n <td>{{element.TeamDescription}}</td>\\n <td>\\n <span>\\n <a matTooltip=\\\"Edit team\\\" (click)=\\\"EditTeam(element)\\\" [style.pointer-events]=\\\"!(element.U)?'none':'auto'\\\"\\n [ngClass]=\\\"{'removeColor':!(element.U),'AddColor':(element.U)}\\\"><i style=\\\"cursor: pointer;\\\"\\n class=\\\"fa fa-pencil-square-o \\\" aria-hidden=\\\"true\\\"></i></a>\\n <a matTooltip=\\\"Delete team\\\" (click)=\\\"DeleteTeam(element)\\\"\\n [style.pointer-events]=\\\"!(element.D) ||!(element.TeamName!=='Leadership Team')?'none':'auto'\\\"\\n [ngClass]=\\\"{'removeColor':!(element.D) || !(element.TeamName!=='Leadership Team'),'AddColor':(element.D)}\\\"><i\\n style=\\\"cursor: pointer;\\\" class=\\\"fa fa-trash-o \\\" aria-hidden=\\\"true\\\"></i></a>\\n </span>\\n </td>\\n </tr>\\n <tr *ngIf=\\\"empID!==0\\\">\\n <td> {{element.DepartmentName}}</td>\\n <td> {{element.TeamName}}</td>\\n <td>{{element.TeamDescription}}</td>\\n <td>\\n <span>\\n <a matTooltip=\\\"Edit team\\\" (click)=\\\"EditTeam(element)\\\" [style.pointer-events]=\\\"(!MenuPermissions[menuName][menuID]['U'] || \\n (employeeDetails && \\n employeeDetails.IsEmployeeLoginLevel == 'Team'))?'none':'auto'\\\" [ngClass]=\\\"{'removeColor':(!MenuPermissions[menuName][menuID]['U'] || \\n (employeeDetails && \\n employeeDetails.IsEmployeeLoginLevel == 'Team')),'AddColor':(MenuPermissions[menuName][menuID]['U'])}\\\"><i\\n style=\\\"cursor: pointer;\\\" class=\\\"fa fa-pencil-square-o \\\" aria-hidden=\\\"true\\\"></i></a>\\n <a matTooltip=\\\"Delete team\\\" (click)=\\\"DeleteTeam(element)\\\"\\n [style.pointer-events]=\\\"(!MenuPermissions[menuName][menuID]['D'] || \\n (employeeDetails && \\n employeeDetails.IsEmployeeLoginLevel == 'Team') || !(element.TeamName!=='Leadership Team')) ? 'none' : 'auto'\\\"\\n [ngClass]=\\\"{'removeColor':(!MenuPermissions[menuName][menuID]['D'] || \\n (employeeDetails && \\n employeeDetails.IsEmployeeLoginLevel == 'Team') || !(element.TeamName!=='Leadership Team')),'AddColor':(MenuPermissions[menuName][menuID]['D'])}\\\"><i\\n style=\\\"cursor: pointer;\\\" class=\\\"fa fa-trash-o \\\" aria-hidden=\\\"true\\\"></i></a>\\n </span>\\n </td>\\n </tr>\\n </tbody>\\n </table>\\n <br>\\n <div class=\\\"warningMsg\\\" *ngIf=\\\"(teamData === null||teamData===undefined || teamData.length === 0)\\\">\\n <span>No data available</span>\\n </div>\\n <div class=\\\"pageContainer\\\" *ngIf=\\\"teamPaging && teamData.length>0\\\">\\n <div class=\\\"rowsSelection\\\">\\n <mat-form-field style=\\\"width: 50px; margin-top: -15px;\\\">\\n <mat-select [(ngModel)]=\\\"rowsOnPage\\\">\\n <mat-option *ngFor=\\\"let row of rowsOnPageSet\\\" [value]=\\\"row\\\">\\n {{row}}\\n </mat-option>\\n </mat-select>\\n </mat-form-field>\\n </div>\\n <div class=\\\"pageSelection\\\">\\n <pagination-controls (pageChange)=\\\"p = $event\\\"></pagination-controls>\\n </div>\\n </div>\\n\"","module.exports = \"\\n<mat-tab-group style=\\\"width:84%\\\" (selectedTabChange)=\\\"onLinkClick($event)\\\">\\n <mat-tab label=\\\"Company\\\" >\\n <table style=\\\"margin-top: 20px\\\" id=\\\"dtBasicExample\\\" class=\\\"table table-responsive\\\" class=\\\"fixed\\\">\\n <thead>\\n <tr>\\n <!--<th class=\\\"pointer\\\"> Company </th>-->\\n <th class=\\\"pointer\\\" (click)=\\\"sort('UserName')\\\"> User\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n \\n \\n <th>Read</th>\\n <th>Create</th>\\n <th>Edit</th>\\n <th>Delete</th>\\n </tr>\\n </thead>\\n <tbody>\\n <!---->\\n <tr *ngFor=\\\"let element of roleData | paginate: { itemsPerPage: rowsOnPage, currentPage: p } | sort: {property: column, direction: direction}; let i = index\\\">\\n <!--<td > {{element.CompanyName}}</td>-->\\n \\n <td> {{element.UserName}}</td> \\n \\n <td><mat-checkbox></mat-checkbox></td>\\n <td><mat-checkbox></mat-checkbox></td>\\n <td><mat-checkbox></mat-checkbox></td>\\n <td><mat-checkbox></mat-checkbox></td>\\n </tr>\\n </tbody>\\n \\n </table>\\n <div style=\\\"text-align: right\\\" *ngIf=\\\"processPaging\\\">\\n <div class=\\\"col-lg-9\\\">\\n <mat-form-field style=\\\"width: 50px\\\">\\n <mat-select [(ngModel)]=\\\"rowsOnPage\\\">\\n <mat-option *ngFor=\\\"let row of rowsOnPageSet\\\" [value]=\\\"row\\\">\\n {{row}}\\n </mat-option>\\n </mat-select>\\n </mat-form-field>\\n </div>\\n <div class=\\\"col-lg-12\\\" style=\\\"margin-top: -40px\\\">\\n <pagination-controls (pageChange)=\\\"p = $event\\\"></pagination-controls>\\n </div>\\n </div>\\n </mat-tab>\\n <mat-tab label=\\\"Employee\\\" >\\n <table style=\\\"margin-top: 20px\\\" id=\\\"dtEmployeeExample\\\" class=\\\"table table-responsive\\\" class=\\\"fixed\\\">\\n <thead>\\n <tr>\\n <!--<th class=\\\"pointer\\\"> Company </th>-->\\n <th class=\\\"pointer\\\" (click)=\\\"sort('UserName')\\\"> User\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n \\n \\n <th>Read</th>\\n <th>Create</th>\\n <th>Edit</th>\\n <th>Delete</th>\\n </tr>\\n </thead>\\n <tbody>\\n <!---->\\n <tr *ngFor=\\\"let element of roleData | paginate: { itemsPerPage: rowsOnPage, currentPage: p } | sort: {property: column, direction: direction}; let i = index\\\">\\n <!--<td > {{element.CompanyName}}</td>-->\\n \\n <td> {{element.UserName}}</td> \\n \\n <td><mat-checkbox></mat-checkbox></td>\\n <td><mat-checkbox></mat-checkbox></td>\\n <td><mat-checkbox></mat-checkbox></td>\\n <td><mat-checkbox></mat-checkbox></td>\\n </tr>\\n </tbody>\\n \\n </table>\\n <div style=\\\"text-align: right\\\" *ngIf=\\\"processPaging\\\">\\n <div class=\\\"col-lg-9\\\">\\n <mat-form-field style=\\\"width: 50px\\\">\\n <mat-select [(ngModel)]=\\\"rowsOnPage\\\">\\n <mat-option *ngFor=\\\"let row of rowsOnPageSet\\\" [value]=\\\"row\\\">\\n {{row}}\\n </mat-option>\\n </mat-select>\\n </mat-form-field>\\n </div>\\n <div class=\\\"col-lg-12\\\" style=\\\"margin-top: -40px\\\">\\n <pagination-controls (pageChange)=\\\"p = $event\\\"></pagination-controls>\\n </div>\\n </div>\\n </mat-tab>\\n <mat-tab label=\\\"Process\\\" >\\n <table style=\\\"margin-top: 20px\\\" id=\\\"dtProcessExample\\\" class=\\\"table table-responsive\\\" class=\\\"fixed\\\">\\n <thead>\\n <tr>\\n <!--<th class=\\\"pointer\\\"> Company </th>-->\\n <th class=\\\"pointer\\\" (click)=\\\"sort('UserName')\\\"> User\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n \\n <th>Read</th>\\n <th>Create</th>\\n <th>Edit</th>\\n <th>Delete</th>\\n </tr>\\n </thead>\\n <tbody>\\n <!---->\\n <tr *ngFor=\\\"let element of roleData | paginate: { itemsPerPage: rowsOnPage, currentPage: p } | sort: {property: column, direction: direction}; let i = index\\\">\\n <!--<td > {{element.CompanyName}}</td>-->\\n \\n <td> {{element.UserName}}</td> \\n \\n <td><mat-checkbox></mat-checkbox></td>\\n <td><mat-checkbox></mat-checkbox></td>\\n <td><mat-checkbox></mat-checkbox></td>\\n <td><mat-checkbox></mat-checkbox></td>\\n </tr>\\n </tbody>\\n \\n </table>\\n <div style=\\\"text-align: right\\\" *ngIf=\\\"processPaging\\\">\\n <div class=\\\"col-lg-9\\\">\\n <mat-form-field style=\\\"width: 50px\\\">\\n <mat-select [(ngModel)]=\\\"rowsOnPage\\\">\\n <mat-option *ngFor=\\\"let row of rowsOnPageSet\\\" [value]=\\\"row\\\">\\n {{row}}\\n </mat-option>\\n </mat-select>\\n </mat-form-field>\\n </div>\\n <div class=\\\"col-lg-12\\\" style=\\\"margin-top: -40px\\\">\\n <pagination-controls (pageChange)=\\\"p = $event\\\"></pagination-controls>\\n </div>\\n </div>\\n </mat-tab>\\n <mat-tab label=\\\"Team\\\" >\\n <table style=\\\"margin-top: 20px\\\" id=\\\"dtTeamExample\\\" class=\\\"table table-responsive\\\" class=\\\"fixed\\\">\\n <thead>\\n <tr>\\n <!--<th class=\\\"pointer\\\"> Company </th>-->\\n <th class=\\\"pointer\\\" (click)=\\\"sort('UserName')\\\"> User\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n \\n <th>Read</th>\\n <th>Create</th>\\n <th>Edit</th>\\n <th>Delete</th>\\n </tr>\\n </thead>\\n <tbody>\\n <!---->\\n <tr *ngFor=\\\"let element of roleData | paginate: { itemsPerPage: rowsOnPage, currentPage: p } | sort: {property: column, direction: direction}; let i = index\\\">\\n <!--<td > {{element.CompanyName}}</td>-->\\n \\n <td> {{element.UserName}}</td> \\n \\n <td><mat-checkbox></mat-checkbox></td>\\n <td><mat-checkbox></mat-checkbox></td>\\n <td><mat-checkbox></mat-checkbox></td>\\n <td><mat-checkbox></mat-checkbox></td>\\n </tr>\\n </tbody>\\n \\n </table>\\n <div style=\\\"text-align: right\\\" *ngIf=\\\"processPaging\\\">\\n <div class=\\\"col-lg-9\\\">\\n <mat-form-field style=\\\"width: 50px\\\">\\n <mat-select [(ngModel)]=\\\"rowsOnPage\\\">\\n <mat-option *ngFor=\\\"let row of rowsOnPageSet\\\" [value]=\\\"row\\\">\\n {{row}}\\n </mat-option>\\n </mat-select>\\n </mat-form-field>\\n </div>\\n <div class=\\\"col-lg-12\\\" style=\\\"margin-top: -40px\\\">\\n <pagination-controls (pageChange)=\\\"p = $event\\\"></pagination-controls>\\n </div>\\n </div>\\n </mat-tab>\\n <mat-tab label=\\\"Process Map\\\" >\\n <table style=\\\"margin-top: 20px\\\" id=\\\"dtProceMpExample\\\" class=\\\"table table-responsive\\\" class=\\\"fixed\\\">\\n <thead>\\n <tr>\\n <!--<th class=\\\"pointer\\\"> Company </th>-->\\n <th class=\\\"pointer\\\" (click)=\\\"sort('UserName')\\\"> User\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n \\n <th>Read</th>\\n <th>Create</th>\\n <th>Edit</th>\\n <th>Delete</th>\\n </tr>\\n </thead>\\n <tbody>\\n <!---->\\n <tr *ngFor=\\\"let element of roleData | paginate: { itemsPerPage: rowsOnPage, currentPage: p } | sort: {property: column, direction: direction}; let i = index\\\">\\n <!--<td > {{element.CompanyName}}</td>-->\\n \\n <td> {{element.UserName}}</td> \\n \\n <td><mat-checkbox></mat-checkbox></td>\\n <td><mat-checkbox></mat-checkbox></td>\\n <td><mat-checkbox></mat-checkbox></td>\\n <td><mat-checkbox></mat-checkbox></td>\\n </tr>\\n </tbody>\\n \\n </table>\\n <div style=\\\"text-align: right\\\" *ngIf=\\\"processPaging\\\">\\n <div class=\\\"col-lg-9\\\">\\n <mat-form-field style=\\\"width: 50px\\\">\\n <mat-select [(ngModel)]=\\\"rowsOnPage\\\">\\n <mat-option *ngFor=\\\"let row of rowsOnPageSet\\\" [value]=\\\"row\\\">\\n {{row}}\\n </mat-option>\\n </mat-select>\\n </mat-form-field>\\n </div>\\n <div class=\\\"col-lg-12\\\" style=\\\"margin-top: -40px\\\">\\n <pagination-controls (pageChange)=\\\"p = $event\\\"></pagination-controls>\\n </div>\\n </div>\\n </mat-tab>\\n <mat-tab label=\\\"Activity\\\">\\n <table style=\\\"margin-top: 20px\\\" id=\\\"dtActivityExample\\\" class=\\\"table table-responsive\\\" class=\\\"fixed\\\">\\n <thead>\\n <tr>\\n <!--<th class=\\\"pointer\\\"> Company </th>-->\\n <th class=\\\"pointer\\\" (click)=\\\"sort('UserName')\\\"> User\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n \\n \\n <th>Read</th>\\n <th>Create</th>\\n <th>Edit</th>\\n <th>Delete</th>\\n </tr>\\n </thead>\\n <tbody>\\n <!---->\\n <tr *ngFor=\\\"let element of roleData | paginate: { itemsPerPage: rowsOnPage, currentPage: p } | sort: {property: column, direction: direction}; let i = index\\\">\\n <!--<td > {{element.CompanyName}}</td>-->\\n \\n <td> {{element.RoleName}}</td> \\n \\n <td><mat-checkbox></mat-checkbox></td>\\n <td><mat-checkbox></mat-checkbox></td>\\n <td><mat-checkbox></mat-checkbox></td>\\n <td><mat-checkbox></mat-checkbox></td>\\n </tr>\\n </tbody>\\n \\n </table>\\n <div style=\\\"text-align: right\\\" *ngIf=\\\"processPaging\\\">\\n <div class=\\\"col-lg-9\\\">\\n <mat-form-field style=\\\"width: 50px\\\">\\n <mat-select [(ngModel)]=\\\"rowsOnPage\\\">\\n <mat-option *ngFor=\\\"let row of rowsOnPageSet\\\" [value]=\\\"row\\\">\\n {{row}}\\n </mat-option>\\n </mat-select>\\n </mat-form-field>\\n </div>\\n <div class=\\\"col-lg-12\\\" style=\\\"margin-top: -40px\\\">\\n <pagination-controls (pageChange)=\\\"p = $event\\\"></pagination-controls>\\n </div>\\n </div>\\n </mat-tab>\\n <mat-tab label=\\\"Metric\\\">\\n <table style=\\\"margin-top: 20px\\\" id=\\\"dtMetricExample\\\" class=\\\"table table-responsive\\\" class=\\\"fixed\\\">\\n <thead>\\n <tr>\\n <!--<th class=\\\"pointer\\\"> Company </th>-->\\n <th class=\\\"pointer\\\" (click)=\\\"sort('UserName')\\\"> User\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n \\n \\n <th>Read</th>\\n <th>Create</th>\\n <th>Edit</th>\\n <th>Delete</th>\\n </tr>\\n </thead>\\n <tbody>\\n <!---->\\n <tr *ngFor=\\\"let element of roleData | paginate: { itemsPerPage: rowsOnPage, currentPage: p } | sort: {property: column, direction: direction}; let i = index\\\">\\n <!--<td > {{element.CompanyName}}</td>-->\\n \\n <td> {{element.UserName}}</td> \\n \\n <td><mat-checkbox></mat-checkbox></td>\\n <td><mat-checkbox></mat-checkbox></td>\\n <td><mat-checkbox></mat-checkbox></td>\\n <td><mat-checkbox></mat-checkbox></td>\\n </tr>\\n </tbody>\\n \\n </table>\\n <div style=\\\"text-align: right\\\" *ngIf=\\\"processPaging\\\">\\n <div class=\\\"col-lg-9\\\">\\n <mat-form-field style=\\\"width: 50px\\\">\\n <mat-select [(ngModel)]=\\\"rowsOnPage\\\">\\n <mat-option *ngFor=\\\"let row of rowsOnPageSet\\\" [value]=\\\"row\\\">\\n {{row}}\\n </mat-option>\\n </mat-select>\\n </mat-form-field>\\n </div>\\n <div class=\\\"col-lg-12\\\" style=\\\"margin-top: -40px\\\">\\n <pagination-controls (pageChange)=\\\"p = $event\\\"></pagination-controls>\\n </div>\\n </div>\\n </mat-tab>\\n <mat-tab label=\\\"Frustration\\\">\\n <table style=\\\"margin-top: 20px\\\" id=\\\"dtFrustationExample\\\" class=\\\"table table-responsive\\\" class=\\\"fixed\\\">\\n <thead>\\n <tr>\\n <!--<th class=\\\"pointer\\\"> Company </th>-->\\n <th class=\\\"pointer\\\" (click)=\\\"sort('UserName')\\\"> User\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n \\n \\n <th>Read</th>\\n <th>Create</th>\\n <th>Edit</th>\\n <th>Delete</th>\\n </tr>\\n </thead>\\n <tbody>\\n <!---->\\n <tr *ngFor=\\\"let element of roleData | paginate: { itemsPerPage: rowsOnPage, currentPage: p } | sort: {property: column, direction: direction}; let i = index\\\">\\n <!--<td > {{element.CompanyName}}</td>-->\\n \\n <td> {{element.UserName}}</td> \\n \\n <td><mat-checkbox></mat-checkbox></td>\\n <td><mat-checkbox></mat-checkbox></td>\\n <td><mat-checkbox></mat-checkbox></td>\\n <td><mat-checkbox></mat-checkbox></td>\\n </tr>\\n </tbody>\\n \\n </table>\\n <div style=\\\"text-align: right\\\" *ngIf=\\\"processPaging\\\">\\n <div class=\\\"col-lg-9\\\">\\n <mat-form-field style=\\\"width: 50px\\\">\\n <mat-select [(ngModel)]=\\\"rowsOnPage\\\">\\n <mat-option *ngFor=\\\"let row of rowsOnPageSet\\\" [value]=\\\"row\\\">\\n {{row}}\\n </mat-option>\\n </mat-select>\\n </mat-form-field>\\n </div>\\n <div class=\\\"col-lg-12\\\" style=\\\"margin-top: -40px\\\">\\n <pagination-controls (pageChange)=\\\"p = $event\\\"></pagination-controls>\\n </div>\\n </div>\\n </mat-tab>\\n <mat-tab label=\\\"Project\\\">\\n <table style=\\\"margin-top: 20px\\\" id=\\\"dtprojectExample\\\" class=\\\"table table-responsive\\\" class=\\\"fixed\\\">\\n <thead>\\n <tr>\\n <!--<th class=\\\"pointer\\\"> Company </th>-->\\n <th class=\\\"pointer\\\" (click)=\\\"sort('UserName')\\\"> User\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n \\n \\n <th>Read</th>\\n <th>Create</th>\\n <th>Edit</th>\\n <th>Delete</th>\\n </tr>\\n </thead>\\n <tbody>\\n <!---->\\n <tr *ngFor=\\\"let element of roleData | paginate: { itemsPerPage: rowsOnPage, currentPage: p } | sort: {property: column, direction: direction}; let i = index\\\">\\n <!--<td > {{element.CompanyName}}</td>-->\\n \\n <td> {{element.UserName}}</td> \\n \\n <td><mat-checkbox></mat-checkbox></td>\\n <td><mat-checkbox></mat-checkbox></td>\\n <td><mat-checkbox></mat-checkbox></td>\\n <td><mat-checkbox></mat-checkbox></td>\\n </tr>\\n </tbody>\\n \\n </table>\\n <div style=\\\"text-align: right\\\" *ngIf=\\\"processPaging\\\">\\n <div class=\\\"col-lg-9\\\">\\n <mat-form-field style=\\\"width: 50px\\\">\\n <mat-select [(ngModel)]=\\\"rowsOnPage\\\">\\n <mat-option *ngFor=\\\"let row of rowsOnPageSet\\\" [value]=\\\"row\\\">\\n {{row}}\\n </mat-option>\\n </mat-select>\\n </mat-form-field>\\n </div>\\n <div class=\\\"col-lg-12\\\" style=\\\"margin-top: -40px\\\">\\n <pagination-controls (pageChange)=\\\"p = $event\\\"></pagination-controls>\\n </div>\\n </div>\\n </mat-tab>\\n <mat-tab label=\\\"Cases\\\">\\n<table style=\\\"margin-top: 20px\\\" id=\\\"dtcasesExample\\\" class=\\\"table table-responsive\\\" class=\\\"fixed\\\">\\n <thead>\\n <tr>\\n <!--<th class=\\\"pointer\\\"> Company </th>-->\\n <th class=\\\"pointer\\\" (click)=\\\"sort('UserName')\\\"> User\\n <i class=\\\"fa fa-arrow-down\\\" *ngIf=\\\"arrow\\\"></i>\\n <i class=\\\"fa fa-arrow-up\\\" *ngIf=\\\"!arrow\\\"></i>\\n </th>\\n \\n \\n <th>Read</th>\\n <th>Create</th>\\n <th>Edit</th>\\n <th>Delete</th>\\n </tr>\\n </thead>\\n <tbody>\\n <!---->\\n <tr *ngFor=\\\"let element of roleData | paginate: { itemsPerPage: rowsOnPage, currentPage: p } | sort: {property: column, direction: direction}; let i = index\\\">\\n <!--<td > {{element.CompanyName}}</td>-->\\n \\n <td> {{element.UserName}}</td> \\n \\n <td><mat-checkbox></mat-checkbox></td>\\n <td><mat-checkbox></mat-checkbox></td>\\n <td><mat-checkbox></mat-checkbox></td>\\n <td><mat-checkbox></mat-checkbox></td>\\n </tr>\\n </tbody>\\n \\n </table>\\n <div style=\\\"text-align: right\\\" *ngIf=\\\"processPaging\\\">\\n <div class=\\\"col-lg-9\\\">\\n <mat-form-field style=\\\"width: 50px\\\">\\n <mat-select [(ngModel)]=\\\"rowsOnPage\\\">\\n <mat-option *ngFor=\\\"let row of rowsOnPageSet\\\" [value]=\\\"row\\\">\\n {{row}}\\n </mat-option>\\n </mat-select>\\n </mat-form-field>\\n </div>\\n <div class=\\\"col-lg-12\\\" style=\\\"margin-top: -40px\\\">\\n <pagination-controls (pageChange)=\\\"p = $event\\\"></pagination-controls>\\n </div>\\n </div>\\n </mat-tab>\\n</mat-tab-group>\\n\"","module.exports = \"<div class=\\\"container\\\">\\n <div class=\\\"unselectable\\\" >\\n <pdf-viewer src=\\\"./assets/images/D-MAPP UserGuide 9_20.pdf\\\" oncontextmenu=\\\"return false\\\" [render-text]=\\\"true\\\"\\n class=\\\"pdfbg\\\"></pdf-viewer>\\n <!-- <embed src=\\\"./assets/images/D-MAPP UserGuide 9_20 _Sep 8.docx\\\" width=\\\"1000px\\\" height=\\\"500px\\\" /> -->\\n <!-- <iframe src=\\\"./assets/images/D-MAPP UserGuide 9_20 _Sep 8.docx\\\" width=\\\"668\\\" height=\\\"714\\\" frameborder=\\\"0\\\" marginwidth=\\\"0\\\" marginheight=\\\"0\\\" scrolling=\\\"yes\\\" style=\\\"border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;\\\" allowfullscreen> </iframe> -->\\n <!-- <object data=\\\"./assets/images/D-MAPP UserGuide 9_20 _Sep 8.docx\\\" width=\\\"300\\\" height=\\\"200\\\"></object> -->\\n <!-- <ngx-doc-viewer url=\\\"./assets/images/D-MAPP UserGuide 9_20 _Sep 8.docx\\\" viewer=\\\"google\\\" style=\\\"width:100%;height:50vh;\\\"></ngx-doc-viewer> -->\\n </div>\\n</div>\\n\\n<style>\\n .pdfbg{\\n display: block;height: 500px;\\n background: #e6e6e6;\\n margin: 3% 0%;\\n }\\n .unselectable {\\n -webkit-user-select: none;\\n -webkit-touch-callout: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n color: #cc0000;\\n }\\n</style>\"","module.exports = \"<div *ngIf=\\\"showDetails\\\" class=\\\"donotprintthis\\\">\\r\\n <button class=\\\"btn btn-default\\\" matTooltip=\\\"Back to Score Card List\\\" (click)=\\\"backToScoreCard()\\\">Back\\r\\n </button>\\r\\n \\r\\n <button class=\\\"btn btn-default\\\" (click)=\\\"convetToPDF()\\\" style=\\\"display: none;\\\">PDF</button>\\r\\n\\r\\n \\r\\n <button class=\\\"btn btn-default\\\" (click)=\\\"printScoreCard('print-section')\\\">Print</button>\\r\\n \\r\\n <button class=\\\"btn btn-default\\\" matTooltip=\\\"Export as excel\\\" (click)=\\\"exportAsXLSX()\\\">\\r\\n Excel\\r\\n </button>\\r\\n \\r\\n <button class=\\\"darkbtnbg btn btn-info\\\" (click)=\\\"goToAddScoreCard()\\\"\\r\\n [disabled]=\\\"!MenuPermissions[menuName][menuID]['U'] || (employeeDetails && employeeDetails.IsEmployeeLoginLevel=='Team')\\\">Edit</button>\\r\\n\\r\\n\\r\\n\\r\\n</div>\\r\\n<br>\\r\\n<div id=\\\"print-section\\\" class=\\\"m-2\\\">\\r\\n <div class=\\\"row\\\" *ngIf=\\\"showDetails\\\">\\r\\n <div class=\\\"col-sm-2\\\">\\r\\n <img style=\\\"background:#404040;width: 60% !important;\\\" class=\\\"center\\\"\\r\\n src=\\\"./assets/images/DorseyMainLogo_1.png\\\" alt=\\\"dorsey Logo\\\" />\\r\\n </div>\\r\\n <div class=\\\"col-sm-5\\\">\\r\\n <div>\\r\\n <b> Company Name: </b> {{scoreCard.CompanyName}} \\r\\n </div>\\r\\n <div>\\r\\n <b> Quarter: </b>{{scoreCard.QuarterName}} \\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"col-sm-5\\\">\\r\\n <div>\\r\\n <b *ngIf=\\\"scoreCard.ScoreCardType=='Department'\\\"> Department Name: </b>\\r\\n <b *ngIf=\\\"scoreCard.ScoreCardType=='Team'\\\"> Team Name: </b>\\r\\n <span *ngIf=\\\"scoreCard.ScoreCardType=='Department'\\\">\\r\\n {{scoreCard.DepartmentName}} </span>\\r\\n <span *ngIf=\\\"scoreCard.ScoreCardType=='Team'\\\">{{scoreCard.TeamName}}</span>\\r\\n </div>\\r\\n <div>\\r\\n <b> Score Card Name: </b>{{scoreCard.ScoreCardName}}\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"p-t-20\\\">\\r\\n <div class=\\\"table-responsive\\\" style=\\\"font-size: small;\\\">\\r\\n <table class=\\\"table table-bordered\\\" id=\\\"table12\\\">\\r\\n <thead *ngIf=\\\"WeekDateList.length > 0\\\">\\r\\n <tr>\\r\\n <th class=\\\"min-width headcol text-center\\\" rowspan=\\\"2\\\">Goal</th>\\r\\n <th class=\\\"min-width headcol1 text-center\\\" rowspan=\\\"2\\\">Metric</th>\\r\\n <th class=\\\"headcol2\\\" style=\\\"padding: 0px;\\\">\\r\\n <div class=\\\"\\\" style=\\\"text-align: center;\\\">\\r\\n Target\\r\\n </div>\\r\\n <hr style=\\\"margin: 0;background-color: white;\\\">\\r\\n <div class=\\\"row text-center m-0\\\">\\r\\n <div class=\\\"col\\\">\\r\\n Green\\r\\n </div>\\r\\n <div class=\\\"col\\\">\\r\\n Yellow\\r\\n </div>\\r\\n <div class=\\\"col\\\">\\r\\n Red\\r\\n </div>\\r\\n </div>\\r\\n </th>\\r\\n <th class=\\\"headcol3\\\" style=\\\"width: 80px;\\\">Frequency</th>\\r\\n <th style=\\\"width: 80px;\\\">UOM</th>\\r\\n <th class=\\\"w-50\\\">\\r\\n <div>Wk 1</div>\\r\\n <div>({{WeekDateList[0].label}})</div>\\r\\n </th>\\r\\n <th class=\\\"w-50\\\">\\r\\n <div>Wk 2</div>\\r\\n <div>({{WeekDateList[1].label}})</div>\\r\\n </th>\\r\\n <th class=\\\"w-50\\\">\\r\\n <div>Wk 3</div>\\r\\n <div>({{WeekDateList[2].label}})</div>\\r\\n </th>\\r\\n <th class=\\\"w-50\\\">\\r\\n <div>Wk 4 </div>\\r\\n <div>({{WeekDateList[3].label}})</div>\\r\\n </th>\\r\\n <th class=\\\"w-50\\\">\\r\\n <div>Wk 5</div>\\r\\n <div>({{WeekDateList[4].label}})</div>\\r\\n </th>\\r\\n <th class=\\\"w-50\\\">\\r\\n <div>Wk 6</div>\\r\\n <div>({{WeekDateList[5].label}})</div>\\r\\n </th>\\r\\n <th class=\\\"w-50\\\">\\r\\n <div>Wk 7</div>\\r\\n <div> ({{WeekDateList[6].label}})</div>\\r\\n </th>\\r\\n <th class=\\\"w-50\\\">\\r\\n <div>Wk 8</div>\\r\\n <div> ({{WeekDateList[7].label}})</div>\\r\\n </th>\\r\\n <th class=\\\"w-50\\\">\\r\\n <div>Wk 9</div>\\r\\n <div> ({{WeekDateList[8].label}})</div>\\r\\n </th>\\r\\n <th class=\\\"w-50\\\">\\r\\n <div>Wk 10</div>\\r\\n <div> ({{WeekDateList[9].label}})</div>\\r\\n </th>\\r\\n <th class=\\\"w-50\\\">\\r\\n <div>Wk 11</div>\\r\\n <div> ({{WeekDateList[10].label}})</div>\\r\\n </th>\\r\\n <th class=\\\"w-50\\\">\\r\\n <div>Wk 12</div>\\r\\n <div>({{WeekDateList[11].label}})</div>\\r\\n </th>\\r\\n <th class=\\\"w-50\\\" *ngIf=\\\"WeekDateList[12]!=undefined\\\">\\r\\n <div>Wk 13</div>\\r\\n <div>({{WeekDateList[12].label}})</div>\\r\\n </th>\\r\\n <th class=\\\"w-50\\\" *ngIf=\\\"WeekDateList[13]!=undefined\\\">\\r\\n <div>Wk 14</div>\\r\\n <div>({{WeekDateList[13].label}})</div>\\r\\n </th>\\r\\n </tr>\\r\\n </thead>\\r\\n <tbody id=\\\"databody\\\">\\r\\n <tr *ngFor=\\\"let metric of selectedMetrics\\\">\\r\\n <td class=\\\"min-width bodycol\\\" [attr.rowspan]=\\\"metric.goalSpan\\\" *ngIf=\\\"metric.goalSpan\\\">\\r\\n {{metric.GoalName}}</td>\\r\\n <td class=\\\"min-width bodycol1\\\">{{metric.Description}}</td>\\r\\n <td class=\\\"min-width-300 bodycol2\\\">\\r\\n <div class=\\\"row text-center\\\">\\r\\n <div class=\\\"col\\\" style=\\\"width:100px;flex-wrap: inherit;\\\">\\r\\n <span\\r\\n *ngIf=\\\"(metric.GreenTargetSymbol) && (metric.GreenTargetSymbol != '==')\\\">{{metric.GreenTargetSymbol}}</span> \\r\\n <span\\r\\n *ngIf=\\\"(metric.GreenTargetSymbol) && (metric.GreenTargetSymbol == '==')\\\">=</span> \\r\\n <span\\r\\n *ngIf=\\\"metric.GreenTargetSymbol != 'Yes' && metric.GreenTargetSymbol != 'No'\\\">{{metric.GreenMinimum}}</span>\\r\\n <span *ngIf=\\\"!metric.GreenTargetSymbol\\\" class=\\\"f-b\\\"> - </span>\\r\\n <span *ngIf=\\\"!metric.GreenTargetSymbol\\\">{{metric.GreenMaximum}}</span>\\r\\n </div>\\r\\n <div class=\\\"col\\\" style=\\\"width:100px;flex-wrap: inherit;\\\">\\r\\n <span\\r\\n *ngIf=\\\"(metric.YellowTargetSymbol) && (metric.YellowTargetSymbol != '==')\\\">{{metric.YellowTargetSymbol}}</span> \\r\\n <span\\r\\n *ngIf=\\\"(metric.YellowTargetSymbol) && (metric.YellowTargetSymbol == '==')\\\">=</span> \\r\\n <span\\r\\n *ngIf=\\\"metric.YellowTargetSymbol != 'Yes' && metric.YellowTargetSymbol != 'No'\\\">{{metric.YellowMinimum}}</span>\\r\\n <span *ngIf=\\\"!metric.YellowTargetSymbol\\\" class=\\\"f-b\\\"> - </span>\\r\\n <span *ngIf=\\\"!metric.YellowTargetSymbol\\\">{{metric.YellowMaximum}}</span>\\r\\n </div>\\r\\n <div class=\\\"col\\\" style=\\\"width:100px;flex-wrap: inherit;\\\">\\r\\n <span\\r\\n *ngIf=\\\"(metric.RedTargetSymbol) && (metric.RedTargetSymbol != '==')\\\">{{metric.RedTargetSymbol}}</span> \\r\\n <span\\r\\n *ngIf=\\\"(metric.RedTargetSymbol) && (metric.RedTargetSymbol == '==')\\\">=</span> \\r\\n <span\\r\\n *ngIf=\\\"metric.RedTargetSymbol != 'Yes' && metric.RedTargetSymbol != 'No'\\\">{{metric.RedMinimum}}</span>\\r\\n <span *ngIf=\\\"!metric.RedTargetSymbol\\\" class=\\\"f-b\\\"> - </span>\\r\\n <span *ngIf=\\\"!metric.RedTargetSymbol\\\">{{metric.RedMaximum}}</span>\\r\\n </div>\\r\\n </div>\\r\\n </td>\\r\\n <td class=\\\"bodycol3\\\"><span>{{metric.Frequency}}</span></td>\\r\\n <td><span>{{metric.UOM}}</span></td>\\r\\n <td class=\\\"w-80\\\" [ngStyle]=\\\"myStyleWeek(metric, 1)\\\"\\r\\n [attr.colspan]=\\\"metric.Frequency == 'Weekly' ? '1' : '4'\\\">\\r\\n <span *ngIf=\\\"metric.GreenTargetSymbol == 'Yes' ||\\r\\n metric.YellowTargetSymbol == 'Yes' ||\\r\\n metric.RedTargetSymbol == 'Yes' ||\\r\\n metric.GreenTargetSymbol == 'No' ||\\r\\n metric.YellowTargetSymbol == 'No' ||\\r\\n metric.RedTargetSymbol == 'No'\\\">{{metric.Week1 == 2 ? 'Yes' : metric.Week1 == 1\\r\\n ? 'No' : ''}}</span>\\r\\n <span *ngIf=\\\"metric.GreenTargetSymbol != 'Yes' && \\r\\n metric.GreenTargetSymbol != 'No' &&\\r\\n metric.YellowTargetSymbol != 'Yes' &&\\r\\n metric.YellowTargetSymbol != 'No' &&\\r\\n metric.RedTargetSymbol != 'Yes' &&\\r\\n metric.RedTargetSymbol != 'No'\\\">{{metric.Week1}}</span>\\r\\n </td>\\r\\n <td class=\\\"w-80\\\" *ngIf=\\\"metric.Frequency == 'Weekly'\\\" [ngStyle]=\\\"myStyleWeek(metric, 2)\\\">\\r\\n <!-- <span>{{metric.Week2}}</span> -->\\r\\n <span *ngIf=\\\"metric.GreenTargetSymbol == 'Yes' ||\\r\\n metric.YellowTargetSymbol == 'Yes' ||\\r\\n metric.RedTargetSymbol == 'Yes' ||\\r\\n metric.GreenTargetSymbol == 'No' ||\\r\\n metric.YellowTargetSymbol == 'No' ||\\r\\n metric.RedTargetSymbol == 'No'\\\">{{metric.Week2 == 2 ? 'Yes' : metric.Week2 == 1 ? 'No' :\\r\\n ''}}</span>\\r\\n <span *ngIf=\\\"metric.GreenTargetSymbol != 'Yes' && \\r\\n metric.GreenTargetSymbol != 'No' &&\\r\\n metric.YellowTargetSymbol != 'Yes' &&\\r\\n metric.YellowTargetSymbol != 'No' &&\\r\\n metric.RedTargetSymbol != 'Yes' &&\\r\\n metric.RedTargetSymbol != 'No'\\\">{{metric.Week2}}</span>\\r\\n </td>\\r\\n <td class=\\\"w-80\\\" *ngIf=\\\"metric.Frequency == 'Weekly'\\\" [ngStyle]=\\\"myStyleWeek(metric, 3)\\\">\\r\\n <!-- <span>{{metric.Week3}}</span> -->\\r\\n <span *ngIf=\\\"metric.GreenTargetSymbol == 'Yes' ||\\r\\n metric.YellowTargetSymbol == 'Yes' ||\\r\\n metric.RedTargetSymbol == 'Yes' ||\\r\\n metric.GreenTargetSymbol == 'No' ||\\r\\n metric.YellowTargetSymbol == 'No' ||\\r\\n metric.RedTargetSymbol == 'No'\\\">{{metric.Week3 == 2 ? 'Yes' : metric.Week3 == 1 ? 'No' :\\r\\n ''}}</span>\\r\\n <span *ngIf=\\\"metric.GreenTargetSymbol != 'Yes' && \\r\\n metric.GreenTargetSymbol != 'No' &&\\r\\n metric.YellowTargetSymbol != 'Yes' &&\\r\\n metric.YellowTargetSymbol != 'No' &&\\r\\n metric.RedTargetSymbol != 'Yes' &&\\r\\n metric.RedTargetSymbol != 'No'\\\">{{metric.Week3}}</span>\\r\\n </td>\\r\\n <td class=\\\"w-80\\\" *ngIf=\\\"metric.Frequency == 'Weekly'\\\" [ngStyle]=\\\"myStyleWeek(metric, 4)\\\">\\r\\n <!-- <span>{{metric.Week4}}</span> -->\\r\\n <span *ngIf=\\\"metric.GreenTargetSymbol == 'Yes' ||\\r\\n metric.YellowTargetSymbol == 'Yes' ||\\r\\n metric.RedTargetSymbol == 'Yes' ||\\r\\n metric.GreenTargetSymbol == 'No' ||\\r\\n metric.YellowTargetSymbol == 'No' ||\\r\\n metric.RedTargetSymbol == 'No'\\\">{{metric.Week4 == 2 ? 'Yes' : metric.Week4 == 1 ?\\r\\n 'No' : ''}}</span>\\r\\n <span *ngIf=\\\"metric.GreenTargetSymbol != 'Yes' && \\r\\n metric.GreenTargetSymbol != 'No' &&\\r\\n metric.YellowTargetSymbol != 'Yes' &&\\r\\n metric.YellowTargetSymbol != 'No' &&\\r\\n metric.RedTargetSymbol != 'Yes' &&\\r\\n metric.RedTargetSymbol != 'No'\\\">{{metric.Week4}}</span>\\r\\n </td>\\r\\n <td class=\\\"w-80\\\" [ngStyle]=\\\"myStyleWeek(metric, 5)\\\"\\r\\n [attr.colspan]=\\\"metric.Frequency == 'Weekly' ? '1' : '4'\\\">\\r\\n <!-- <span>{{metric.Week5}}</span> -->\\r\\n <span *ngIf=\\\"metric.GreenTargetSymbol == 'Yes' ||\\r\\n metric.YellowTargetSymbol == 'Yes' ||\\r\\n metric.RedTargetSymbol == 'Yes' ||\\r\\n metric.GreenTargetSymbol == 'No' ||\\r\\n metric.YellowTargetSymbol == 'No' ||\\r\\n metric.RedTargetSymbol == 'No'\\\">{{metric.Week5 == 2 ? 'Yes' : metric.Week5 == 1 ? 'No' :\\r\\n ''}}</span>\\r\\n <span *ngIf=\\\"metric.GreenTargetSymbol != 'Yes' && \\r\\n metric.GreenTargetSymbol != 'No' &&\\r\\n metric.YellowTargetSymbol != 'Yes' &&\\r\\n metric.YellowTargetSymbol != 'No' &&\\r\\n metric.RedTargetSymbol != 'Yes' &&\\r\\n metric.RedTargetSymbol != 'No'\\\">{{metric.Week5}}</span>\\r\\n </td>\\r\\n <td class=\\\"w-80\\\" *ngIf=\\\"metric.Frequency == 'Weekly'\\\" [ngStyle]=\\\"myStyleWeek(metric, 6)\\\">\\r\\n <!-- <span>{{metric.Week6}}</span> -->\\r\\n <span *ngIf=\\\"metric.GreenTargetSymbol == 'Yes' ||\\r\\n metric.YellowTargetSymbol == 'Yes' ||\\r\\n metric.RedTargetSymbol == 'Yes' ||\\r\\n metric.GreenTargetSymbol == 'No' ||\\r\\n metric.YellowTargetSymbol == 'No' ||\\r\\n metric.RedTargetSymbol == 'No'\\\">{{metric.Week6 == 2 ? 'Yes' : metric.Week6 == 1 ? 'No' :\\r\\n ''}}</span>\\r\\n <span *ngIf=\\\"metric.GreenTargetSymbol != 'Yes' && \\r\\n metric.GreenTargetSymbol != 'No' &&\\r\\n metric.YellowTargetSymbol != 'Yes' &&\\r\\n metric.YellowTargetSymbol != 'No' &&\\r\\n metric.RedTargetSymbol != 'Yes' &&\\r\\n metric.RedTargetSymbol != 'No'\\\">{{metric.Week6}}</span>\\r\\n </td>\\r\\n <td class=\\\"w-80\\\" *ngIf=\\\"metric.Frequency == 'Weekly'\\\" [ngStyle]=\\\"myStyleWeek(metric, 7)\\\">\\r\\n <!-- <span>{{metric.Week7}}</span> -->\\r\\n <span *ngIf=\\\"metric.GreenTargetSymbol == 'Yes' ||\\r\\n metric.YellowTargetSymbol == 'Yes' ||\\r\\n metric.RedTargetSymbol == 'Yes' ||\\r\\n metric.GreenTargetSymbol == 'No' ||\\r\\n metric.YellowTargetSymbol == 'No' ||\\r\\n metric.RedTargetSymbol == 'No'\\\">{{metric.Week7 == 2 ? 'Yes' : metric.Week7 == 1 ? 'No' :\\r\\n ''}}</span>\\r\\n <span *ngIf=\\\"metric.GreenTargetSymbol != 'Yes' && \\r\\n metric.GreenTargetSymbol != 'No' &&\\r\\n metric.YellowTargetSymbol != 'Yes' &&\\r\\n metric.YellowTargetSymbol != 'No' &&\\r\\n metric.RedTargetSymbol != 'Yes' &&\\r\\n metric.RedTargetSymbol != 'No'\\\">{{metric.Week7}}</span>\\r\\n </td>\\r\\n <td class=\\\"w-80\\\" *ngIf=\\\"metric.Frequency == 'Weekly'\\\" [ngStyle]=\\\"myStyleWeek(metric, 8)\\\">\\r\\n <!-- <span>{{metric.Week8}}</span> -->\\r\\n <span *ngIf=\\\"metric.GreenTargetSymbol == 'Yes' ||\\r\\n metric.YellowTargetSymbol == 'Yes' ||\\r\\n metric.RedTargetSymbol == 'Yes' ||\\r\\n metric.GreenTargetSymbol == 'No' ||\\r\\n metric.YellowTargetSymbol == 'No' ||\\r\\n metric.RedTargetSymbol == 'No'\\\">{{metric.Week8 == 2 ? 'Yes' : metric.Week8 == 1 ?\\r\\n 'No' : ''}}</span>\\r\\n <span *ngIf=\\\"metric.GreenTargetSymbol != 'Yes' && \\r\\n metric.GreenTargetSymbol != 'No' &&\\r\\n metric.YellowTargetSymbol != 'Yes' &&\\r\\n metric.YellowTargetSymbol != 'No' &&\\r\\n metric.RedTargetSymbol != 'Yes' &&\\r\\n metric.RedTargetSymbol != 'No'\\\">{{metric.Week8}}</span>\\r\\n </td>\\r\\n <td class=\\\"w-80\\\" [ngStyle]=\\\"myStyleWeek(metric, 9)\\\"\\r\\n [attr.colspan]=\\\"metric.Frequency == 'Weekly' ? '1' : '6'\\\">\\r\\n <!-- <span>{{metric.Week9}}</span> -->\\r\\n <span *ngIf=\\\"metric.GreenTargetSymbol == 'Yes' ||\\r\\n metric.YellowTargetSymbol == 'Yes' ||\\r\\n metric.RedTargetSymbol == 'Yes' ||\\r\\n metric.GreenTargetSymbol == 'No' ||\\r\\n metric.YellowTargetSymbol == 'No' ||\\r\\n metric.RedTargetSymbol == 'No'\\\">{{metric.Week9 == 2 ? 'Yes' : metric.Week9 == 1 ? 'No' :\\r\\n ''}}</span>\\r\\n <span *ngIf=\\\"metric.GreenTargetSymbol != 'Yes' && \\r\\n metric.GreenTargetSymbol != 'No' &&\\r\\n metric.YellowTargetSymbol != 'Yes' &&\\r\\n metric.YellowTargetSymbol != 'No' &&\\r\\n metric.RedTargetSymbol != 'Yes' &&\\r\\n metric.RedTargetSymbol != 'No'\\\">{{metric.Week9}}</span>\\r\\n </td>\\r\\n <td class=\\\"w-80\\\" *ngIf=\\\"metric.Frequency == 'Weekly'\\\" [ngStyle]=\\\"myStyleWeek(metric, 10)\\\">\\r\\n <!-- <span>{{metric.Week10}}</span> -->\\r\\n <span *ngIf=\\\"metric.GreenTargetSymbol == 'Yes' ||\\r\\n metric.YellowTargetSymbol == 'Yes' ||\\r\\n metric.RedTargetSymbol == 'Yes' ||\\r\\n metric.GreenTargetSymbol == 'No' ||\\r\\n metric.YellowTargetSymbol == 'No' ||\\r\\n metric.RedTargetSymbol == 'No'\\\">{{metric.Week10 == 2 ? 'Yes' : metric.Week10 == 1 ? 'No' :\\r\\n ''}}</span>\\r\\n <span *ngIf=\\\"metric.GreenTargetSymbol != 'Yes' && \\r\\n metric.GreenTargetSymbol != 'No' &&\\r\\n metric.YellowTargetSymbol != 'Yes' &&\\r\\n metric.YellowTargetSymbol != 'No' &&\\r\\n metric.RedTargetSymbol != 'Yes' &&\\r\\n metric.RedTargetSymbol != 'No'\\\">{{metric.Week10}}</span>\\r\\n </td>\\r\\n <td class=\\\"w-80\\\" *ngIf=\\\"metric.Frequency == 'Weekly'\\\" [ngStyle]=\\\"myStyleWeek(metric, 11)\\\">\\r\\n <!-- <span>{{metric.Week11}}</span> -->\\r\\n <span *ngIf=\\\"metric.GreenTargetSymbol == 'Yes' ||\\r\\n metric.YellowTargetSymbol == 'Yes' ||\\r\\n metric.RedTargetSymbol == 'Yes' ||\\r\\n metric.GreenTargetSymbol == 'No' ||\\r\\n metric.YellowTargetSymbol == 'No' ||\\r\\n metric.RedTargetSymbol == 'No'\\\">{{metric.Week11 == 2 ? 'Yes' : metric.Week11 == 1 ? 'No' :\\r\\n ''}}</span>\\r\\n <span *ngIf=\\\"metric.GreenTargetSymbol != 'Yes' && \\r\\n metric.GreenTargetSymbol != 'No' &&\\r\\n metric.YellowTargetSymbol != 'Yes' &&\\r\\n metric.YellowTargetSymbol != 'No' &&\\r\\n metric.RedTargetSymbol != 'Yes' &&\\r\\n metric.RedTargetSymbol != 'No'\\\">{{metric.Week11}}</span>\\r\\n </td>\\r\\n <td class=\\\"w-80\\\" *ngIf=\\\"metric.Frequency == 'Weekly'\\\" [ngStyle]=\\\"myStyleWeek(metric, 12)\\\">\\r\\n <!-- <span>{{metric.Week12}}</span> -->\\r\\n <span *ngIf=\\\"metric.GreenTargetSymbol == 'Yes' ||\\r\\n metric.YellowTargetSymbol == 'Yes' ||\\r\\n metric.RedTargetSymbol == 'Yes' ||\\r\\n metric.GreenTargetSymbol == 'No' ||\\r\\n metric.YellowTargetSymbol == 'No' ||\\r\\n metric.RedTargetSymbol == 'No'\\\">{{metric.Week12 == 2 ? 'Yes' : metric.Week12 == 1 ? 'No' :\\r\\n ''}}</span>\\r\\n <span *ngIf=\\\"metric.GreenTargetSymbol != 'Yes' && \\r\\n metric.GreenTargetSymbol != 'No' &&\\r\\n metric.YellowTargetSymbol != 'Yes' &&\\r\\n metric.YellowTargetSymbol != 'No' &&\\r\\n metric.RedTargetSymbol != 'Yes' &&\\r\\n metric.RedTargetSymbol != 'No'\\\">{{metric.Week12}}</span>\\r\\n </td>\\r\\n <td class=\\\"w-80\\\" *ngIf=\\\"metric.Frequency == 'Weekly' && WeekDateList[12]!=undefined\\\"\\r\\n [ngStyle]=\\\"myStyleWeek(metric, 13)\\\">\\r\\n <!-- <span>{{metric.Week13}}</span> -->\\r\\n <span *ngIf=\\\"metric.GreenTargetSymbol == 'Yes' ||\\r\\n metric.YellowTargetSymbol == 'Yes' ||\\r\\n metric.RedTargetSymbol == 'Yes' ||\\r\\n metric.GreenTargetSymbol == 'No' ||\\r\\n metric.YellowTargetSymbol == 'No' ||\\r\\n metric.RedTargetSymbol == 'No'\\\">{{metric.Week13 == 2 ? 'Yes' : metric.Week13 == 1 ? 'No' :\\r\\n ''}}</span>\\r\\n <span *ngIf=\\\"metric.GreenTargetSymbol != 'Yes' && \\r\\n metric.GreenTargetSymbol != 'No' &&\\r\\n metric.YellowTargetSymbol != 'Yes' &&\\r\\n metric.YellowTargetSymbol != 'No' &&\\r\\n metric.RedTargetSymbol != 'Yes' &&\\r\\n metric.RedTargetSymbol != 'No'\\\">{{metric.Week13}}</span>\\r\\n </td>\\r\\n\\r\\n <td class=\\\"w-80\\\" *ngIf=\\\"metric.Frequency == 'Weekly' && WeekDateList[13]!=undefined\\\"\\r\\n [ngStyle]=\\\"myStyleWeek(metric, 14)\\\">\\r\\n <!-- <span>{{metric.Week14}}</span> -->\\r\\n <span *ngIf=\\\"metric.GreenTargetSymbol == 'Yes' ||\\r\\n metric.YellowTargetSymbol == 'Yes' ||\\r\\n metric.RedTargetSymbol == 'Yes' ||\\r\\n metric.GreenTargetSymbol == 'No' ||\\r\\n metric.YellowTargetSymbol == 'No' ||\\r\\n metric.RedTargetSymbol == 'No'\\\">{{metric.Week14 == 2 ? 'Yes' : metric.Week14 == 1 ? 'No' :\\r\\n ''}}</span>\\r\\n <span *ngIf=\\\"metric.GreenTargetSymbol != 'Yes' && \\r\\n metric.GreenTargetSymbol != 'No' &&\\r\\n metric.YellowTargetSymbol != 'Yes' &&\\r\\n metric.YellowTargetSymbol != 'No' &&\\r\\n metric.RedTargetSymbol != 'Yes' &&\\r\\n metric.RedTargetSymbol != 'No'\\\">{{metric.Week14}}</span>\\r\\n </td>\\r\\n </tr>\\r\\n\\r\\n </tbody>\\r\\n </table>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <div class=\\\"p-t-20\\\" style=\\\"display: none;\\\">\\r\\n <div class=\\\"table-responsive\\\" style=\\\"font-size: small;\\\">\\r\\n <table class=\\\"table table-bordered\\\" id=\\\"table1\\\">\\r\\n <thead *ngIf=\\\"WeekDateList.length > 0\\\">\\r\\n <tr>\\r\\n <th class=\\\"min-width headcol text-center\\\">Goal</th>\\r\\n <th class=\\\"min-width headcol1\\\">Metric</th>\\r\\n <th class=\\\"headcol2\\\">Green</th>\\r\\n <th class=\\\"headcol2\\\">Yellow</th>\\r\\n <th class=\\\"headcol2\\\">Red</th>\\r\\n <th style=\\\"width:80px;\\\">Frequency</th>\\r\\n <th style=\\\"width:80px;\\\">UOM</th>\\r\\n <th class=\\\"w-50\\\">\\r\\n <div>Wk 1</div>\\r\\n <div>({{WeekDateList[0].label}})</div>\\r\\n </th>\\r\\n <th class=\\\"w-50\\\">\\r\\n <div>Wk 2</div>\\r\\n <div>({{WeekDateList[1].label}})</div>\\r\\n </th>\\r\\n <th class=\\\"w-50\\\">\\r\\n <div>Wk 3</div>\\r\\n <div>({{WeekDateList[2].label}})</div>\\r\\n </th>\\r\\n <th class=\\\"w-50\\\">\\r\\n <div>Wk 4 </div>\\r\\n <div>({{WeekDateList[3].label}})</div>\\r\\n </th>\\r\\n <th class=\\\"w-50\\\">\\r\\n <div>Wk 5</div>\\r\\n <div>({{WeekDateList[4].label}})</div>\\r\\n </th>\\r\\n <th class=\\\"w-50\\\">\\r\\n <div>Wk 6</div>\\r\\n <div>({{WeekDateList[5].label}})</div>\\r\\n </th>\\r\\n <th class=\\\"w-50\\\">\\r\\n <div>Wk 7</div>\\r\\n <div> ({{WeekDateList[6].label}})</div>\\r\\n </th>\\r\\n <th class=\\\"w-50\\\">\\r\\n <div>Wk 8</div>\\r\\n <div> ({{WeekDateList[7].label}})</div>\\r\\n </th>\\r\\n <th class=\\\"w-50\\\">\\r\\n <div>Wk 9</div>\\r\\n <div> ({{WeekDateList[8].label}})</div>\\r\\n </th>\\r\\n <th class=\\\"w-50\\\">\\r\\n <div>Wk 10</div>\\r\\n <div> ({{WeekDateList[9].label}})</div>\\r\\n </th>\\r\\n <th class=\\\"w-50\\\">\\r\\n <div>Wk 11</div>\\r\\n <div> ({{WeekDateList[10].label}})</div>\\r\\n </th>\\r\\n <th class=\\\"w-50\\\">\\r\\n <div>Wk 12</div>\\r\\n <div>({{WeekDateList[11].label}})</div>\\r\\n </th>\\r\\n <th class=\\\"w-50\\\" *ngIf=\\\"WeekDateList[12]!=undefined\\\">\\r\\n <div>Wk 13</div>\\r\\n <div>({{WeekDateList[12].label}})</div>\\r\\n </th>\\r\\n <th class=\\\"w-50\\\" *ngIf=\\\"WeekDateList[13]!=undefined\\\">\\r\\n <div>Wk 14</div>\\r\\n <div>({{WeekDateList[13].label}})</div>\\r\\n </th>\\r\\n </tr>\\r\\n </thead>\\r\\n <tbody id=\\\"databody\\\">\\r\\n <tr *ngFor=\\\"let metric of excelMetricList\\\">\\r\\n <td class=\\\"min-width bodycol\\\" [attr.rowspan]=\\\"metric.goalSpan\\\" *ngIf=\\\"metric.goalSpan\\\">\\r\\n {{metric.GoalName}}</td>\\r\\n <td class=\\\"min-width bodycol1\\\">{{metric.Description}}</td>\\r\\n <td>\\r\\n <span\\r\\n *ngIf=\\\"(metric.GreenTargetSymbol) && (metric.GreenTargetSymbol != '==')\\\">{{metric.GreenTargetSymbol}}</span> \\r\\n <span\\r\\n *ngIf=\\\"(metric.GreenTargetSymbol) && (metric.GreenTargetSymbol == '==')\\\">=</span> \\r\\n <span\\r\\n *ngIf=\\\"metric.GreenTargetSymbol != 'Yes' && metric.GreenTargetSymbol != 'No'\\\">{{metric.GreenMinimum}}</span>\\r\\n <span *ngIf=\\\"!metric.GreenTargetSymbol\\\" class=\\\"f-b\\\"> - </span>\\r\\n <span *ngIf=\\\"!metric.GreenTargetSymbol\\\">{{metric.GreenMaximum}}</span>\\r\\n </td>\\r\\n <td>\\r\\n <span\\r\\n *ngIf=\\\"(metric.YellowTargetSymbol) && (metric.YellowTargetSymbol != '==')\\\">{{metric.YellowTargetSymbol}}</span> \\r\\n <span\\r\\n *ngIf=\\\"(metric.YellowTargetSymbol) && (metric.YellowTargetSymbol == '==')\\\">=</span> \\r\\n <span\\r\\n *ngIf=\\\"metric.YellowTargetSymbol != 'Yes' && metric.YellowTargetSymbol != 'No'\\\">{{metric.YellowMinimum}}</span>\\r\\n <span *ngIf=\\\"!metric.YellowTargetSymbol\\\" class=\\\"f-b\\\"> - </span>\\r\\n <span *ngIf=\\\"!metric.YellowTargetSymbol\\\">{{metric.YellowMaximum}}</span>\\r\\n </td>\\r\\n <td>\\r\\n <span\\r\\n *ngIf=\\\"(metric.RedTargetSymbol) && (metric.RedTargetSymbol != '==')\\\">{{metric.RedTargetSymbol}}</span> \\r\\n <span *ngIf=\\\"(metric.RedTargetSymbol) && (metric.RedTargetSymbol == '==')\\\">=</span> \\r\\n <span\\r\\n *ngIf=\\\"metric.RedTargetSymbol != 'Yes' && metric.RedTargetSymbol != 'No'\\\">{{metric.RedMinimum}}</span>\\r\\n <span *ngIf=\\\"!metric.RedTargetSymbol\\\" class=\\\"f-b\\\"> - </span>\\r\\n <span *ngIf=\\\"!metric.RedTargetSymbol\\\">{{metric.RedMaximum}}</span>\\r\\n </td>\\r\\n <td class=\\\"bodycol3\\\"><span>{{metric.Frequency}}</span></td>\\r\\n <td><span>{{metric.UOM}}</span></td>\\r\\n <td class=\\\"w-80\\\" [ngStyle]=\\\"myStyleWeek(metric, 1)\\\"\\r\\n [attr.colspan]=\\\"metric.Frequency == 'Weekly' ? '1' : '4'\\\">\\r\\n <span *ngIf=\\\"metric.GreenTargetSymbol == 'Yes' ||\\r\\n metric.YellowTargetSymbol == 'Yes' ||\\r\\n metric.RedTargetSymbol == 'Yes' ||\\r\\n metric.GreenTargetSymbol == 'No' ||\\r\\n metric.YellowTargetSymbol == 'No' ||\\r\\n metric.RedTargetSymbol == 'No'\\\">{{metric.Week1 == 2 ? 'Yes' : metric.Week1 == 1\\r\\n ? 'No' : ''}}</span>\\r\\n <span *ngIf=\\\"metric.GreenTargetSymbol != 'Yes' && \\r\\n metric.GreenTargetSymbol != 'No' &&\\r\\n metric.YellowTargetSymbol != 'Yes' &&\\r\\n metric.YellowTargetSymbol != 'No' &&\\r\\n metric.RedTargetSymbol != 'Yes' &&\\r\\n metric.RedTargetSymbol != 'No'\\\">{{metric.Week1}}</span>\\r\\n </td>\\r\\n <td class=\\\"w-80\\\" *ngIf=\\\"metric.Frequency == 'Weekly'\\\" [ngStyle]=\\\"myStyleWeek(metric, 2)\\\">\\r\\n <!-- <span>{{metric.Week2}}</span> -->\\r\\n <span *ngIf=\\\"metric.GreenTargetSymbol == 'Yes' ||\\r\\n metric.YellowTargetSymbol == 'Yes' ||\\r\\n metric.RedTargetSymbol == 'Yes' ||\\r\\n metric.GreenTargetSymbol == 'No' ||\\r\\n metric.YellowTargetSymbol == 'No' ||\\r\\n metric.RedTargetSymbol == 'No'\\\">{{metric.Week2 == 2 ? 'Yes' : metric.Week2 == 1 ? 'No' :\\r\\n ''}}</span>\\r\\n <span *ngIf=\\\"metric.GreenTargetSymbol != 'Yes' && \\r\\n metric.GreenTargetSymbol != 'No' &&\\r\\n metric.YellowTargetSymbol != 'Yes' &&\\r\\n metric.YellowTargetSymbol != 'No' &&\\r\\n metric.RedTargetSymbol != 'Yes' &&\\r\\n metric.RedTargetSymbol != 'No'\\\">{{metric.Week2}}</span>\\r\\n </td>\\r\\n <td class=\\\"w-80\\\" *ngIf=\\\"metric.Frequency == 'Weekly'\\\" [ngStyle]=\\\"myStyleWeek(metric, 3)\\\">\\r\\n <!-- <span>{{metric.Week3}}</span> -->\\r\\n <span *ngIf=\\\"metric.GreenTargetSymbol == 'Yes' ||\\r\\n metric.YellowTargetSymbol == 'Yes' ||\\r\\n metric.RedTargetSymbol == 'Yes' ||\\r\\n metric.GreenTargetSymbol == 'No' ||\\r\\n metric.YellowTargetSymbol == 'No' ||\\r\\n metric.RedTargetSymbol == 'No'\\\">{{metric.Week3 == 2 ? 'Yes' : metric.Week3 == 1 ? 'No' :\\r\\n ''}}</span>\\r\\n <span *ngIf=\\\"metric.GreenTargetSymbol != 'Yes' && \\r\\n metric.GreenTargetSymbol != 'No' &&\\r\\n metric.YellowTargetSymbol != 'Yes' &&\\r\\n metric.YellowTargetSymbol != 'No' &&\\r\\n metric.RedTargetSymbol != 'Yes' &&\\r\\n metric.RedTargetSymbol != 'No'\\\">{{metric.Week3}}</span>\\r\\n </td>\\r\\n <td class=\\\"w-80\\\" *ngIf=\\\"metric.Frequency == 'Weekly'\\\" [ngStyle]=\\\"myStyleWeek(metric, 4)\\\">\\r\\n <!-- <span>{{metric.Week4}}</span> -->\\r\\n <span *ngIf=\\\"metric.GreenTargetSymbol == 'Yes' ||\\r\\n metric.YellowTargetSymbol == 'Yes' ||\\r\\n metric.RedTargetSymbol == 'Yes' ||\\r\\n metric.GreenTargetSymbol == 'No' ||\\r\\n metric.YellowTargetSymbol == 'No' ||\\r\\n metric.RedTargetSymbol == 'No'\\\">{{metric.Week4 == 2 ? 'Yes' : metric.Week4 == 1 ?\\r\\n 'No' : ''}}</span>\\r\\n <span *ngIf=\\\"metric.GreenTargetSymbol != 'Yes' && \\r\\n metric.GreenTargetSymbol != 'No' &&\\r\\n metric.YellowTargetSymbol != 'Yes' &&\\r\\n metric.YellowTargetSymbol != 'No' &&\\r\\n metric.RedTargetSymbol != 'Yes' &&\\r\\n metric.RedTargetSymbol != 'No'\\\">{{metric.Week4}}</span>\\r\\n </td>\\r\\n <td class=\\\"w-80\\\" [ngStyle]=\\\"myStyleWeek(metric, 5)\\\"\\r\\n [attr.colspan]=\\\"metric.Frequency == 'Weekly' ? '1' : '4'\\\">\\r\\n <!-- <span>{{metric.Week5}}</span> -->\\r\\n <span *ngIf=\\\"metric.GreenTargetSymbol == 'Yes' ||\\r\\n metric.YellowTargetSymbol == 'Yes' ||\\r\\n metric.RedTargetSymbol == 'Yes' ||\\r\\n metric.GreenTargetSymbol == 'No' ||\\r\\n metric.YellowTargetSymbol == 'No' ||\\r\\n metric.RedTargetSymbol == 'No'\\\">{{metric.Week5 == 2 ? 'Yes' : metric.Week5 == 1 ? 'No' :\\r\\n ''}}</span>\\r\\n <span *ngIf=\\\"metric.GreenTargetSymbol != 'Yes' && \\r\\n metric.GreenTargetSymbol != 'No' &&\\r\\n metric.YellowTargetSymbol != 'Yes' &&\\r\\n metric.YellowTargetSymbol != 'No' &&\\r\\n metric.RedTargetSymbol != 'Yes' &&\\r\\n metric.RedTargetSymbol != 'No'\\\">{{metric.Week5}}</span>\\r\\n </td>\\r\\n <td class=\\\"w-80\\\" *ngIf=\\\"metric.Frequency == 'Weekly'\\\" [ngStyle]=\\\"myStyleWeek(metric, 6)\\\">\\r\\n <!-- <span>{{metric.Week6}}</span> -->\\r\\n <span *ngIf=\\\"metric.GreenTargetSymbol == 'Yes' ||\\r\\n metric.YellowTargetSymbol == 'Yes' ||\\r\\n metric.RedTargetSymbol == 'Yes' ||\\r\\n metric.GreenTargetSymbol == 'No' ||\\r\\n metric.YellowTargetSymbol == 'No' ||\\r\\n metric.RedTargetSymbol == 'No'\\\">{{metric.Week6 == 2 ? 'Yes' : metric.Week6 == 1 ? 'No' :\\r\\n ''}}</span>\\r\\n <span *ngIf=\\\"metric.GreenTargetSymbol != 'Yes' && \\r\\n metric.GreenTargetSymbol != 'No' &&\\r\\n metric.YellowTargetSymbol != 'Yes' &&\\r\\n metric.YellowTargetSymbol != 'No' &&\\r\\n metric.RedTargetSymbol != 'Yes' &&\\r\\n metric.RedTargetSymbol != 'No'\\\">{{metric.Week6}}</span>\\r\\n </td>\\r\\n <td class=\\\"w-80\\\" *ngIf=\\\"metric.Frequency == 'Weekly'\\\" [ngStyle]=\\\"myStyleWeek(metric, 7)\\\">\\r\\n <!-- <span>{{metric.Week7}}</span> -->\\r\\n <span *ngIf=\\\"metric.GreenTargetSymbol == 'Yes' ||\\r\\n metric.YellowTargetSymbol == 'Yes' ||\\r\\n metric.RedTargetSymbol == 'Yes' ||\\r\\n metric.GreenTargetSymbol == 'No' ||\\r\\n metric.YellowTargetSymbol == 'No' ||\\r\\n metric.RedTargetSymbol == 'No'\\\">{{metric.Week7 == 2 ? 'Yes' : metric.Week7 == 1 ? 'No' :\\r\\n ''}}</span>\\r\\n <span *ngIf=\\\"metric.GreenTargetSymbol != 'Yes' && \\r\\n metric.GreenTargetSymbol != 'No' &&\\r\\n metric.YellowTargetSymbol != 'Yes' &&\\r\\n metric.YellowTargetSymbol != 'No' &&\\r\\n metric.RedTargetSymbol != 'Yes' &&\\r\\n metric.RedTargetSymbol != 'No'\\\">{{metric.Week7}}</span>\\r\\n </td>\\r\\n <td class=\\\"w-80\\\" *ngIf=\\\"metric.Frequency == 'Weekly'\\\" [ngStyle]=\\\"myStyleWeek(metric, 8)\\\">\\r\\n <!-- <span>{{metric.Week8}}</span> -->\\r\\n <span *ngIf=\\\"metric.GreenTargetSymbol == 'Yes' ||\\r\\n metric.YellowTargetSymbol == 'Yes' ||\\r\\n metric.RedTargetSymbol == 'Yes' ||\\r\\n metric.GreenTargetSymbol == 'No' ||\\r\\n metric.YellowTargetSymbol == 'No' ||\\r\\n metric.RedTargetSymbol == 'No'\\\">{{metric.Week8 == 2 ? 'Yes' : metric.Week8 == 1 ?\\r\\n 'No' : ''}}</span>\\r\\n <span *ngIf=\\\"metric.GreenTargetSymbol != 'Yes' && \\r\\n metric.GreenTargetSymbol != 'No' &&\\r\\n metric.YellowTargetSymbol != 'Yes' &&\\r\\n metric.YellowTargetSymbol != 'No' &&\\r\\n metric.RedTargetSymbol != 'Yes' &&\\r\\n metric.RedTargetSymbol != 'No'\\\">{{metric.Week8}}</span>\\r\\n </td>\\r\\n <td class=\\\"w-80\\\" [ngStyle]=\\\"myStyleWeek(metric, 9)\\\"\\r\\n [attr.colspan]=\\\"metric.Frequency == 'Weekly' ? '1' : '6'\\\">\\r\\n <!-- <span>{{metric.Week9}}</span> -->\\r\\n <span *ngIf=\\\"metric.GreenTargetSymbol == 'Yes' ||\\r\\n metric.YellowTargetSymbol == 'Yes' ||\\r\\n metric.RedTargetSymbol == 'Yes' ||\\r\\n metric.GreenTargetSymbol == 'No' ||\\r\\n metric.YellowTargetSymbol == 'No' ||\\r\\n metric.RedTargetSymbol == 'No'\\\">{{metric.Week9 == 2 ? 'Yes' : metric.Week9 == 1 ? 'No' :\\r\\n ''}}</span>\\r\\n <span *ngIf=\\\"metric.GreenTargetSymbol != 'Yes' && \\r\\n metric.GreenTargetSymbol != 'No' &&\\r\\n metric.YellowTargetSymbol != 'Yes' &&\\r\\n metric.YellowTargetSymbol != 'No' &&\\r\\n metric.RedTargetSymbol != 'Yes' &&\\r\\n metric.RedTargetSymbol != 'No'\\\">{{metric.Week9}}</span>\\r\\n </td>\\r\\n <td class=\\\"w-80\\\" *ngIf=\\\"metric.Frequency == 'Weekly'\\\" [ngStyle]=\\\"myStyleWeek(metric, 10)\\\">\\r\\n <!-- <span>{{metric.Week10}}</span> -->\\r\\n <span *ngIf=\\\"metric.GreenTargetSymbol == 'Yes' ||\\r\\n metric.YellowTargetSymbol == 'Yes' ||\\r\\n metric.RedTargetSymbol == 'Yes' ||\\r\\n metric.GreenTargetSymbol == 'No' ||\\r\\n metric.YellowTargetSymbol == 'No' ||\\r\\n metric.RedTargetSymbol == 'No'\\\">{{metric.Week10 == 2 ? 'Yes' : metric.Week10 == 1 ? 'No' :\\r\\n ''}}</span>\\r\\n <span *ngIf=\\\"metric.GreenTargetSymbol != 'Yes' && \\r\\n metric.GreenTargetSymbol != 'No' &&\\r\\n metric.YellowTargetSymbol != 'Yes' &&\\r\\n metric.YellowTargetSymbol != 'No' &&\\r\\n metric.RedTargetSymbol != 'Yes' &&\\r\\n metric.RedTargetSymbol != 'No'\\\">{{metric.Week10}}</span>\\r\\n </td>\\r\\n <td class=\\\"w-80\\\" *ngIf=\\\"metric.Frequency == 'Weekly'\\\" [ngStyle]=\\\"myStyleWeek(metric, 11)\\\">\\r\\n <!-- <span>{{metric.Week11}}</span> -->\\r\\n <span *ngIf=\\\"metric.GreenTargetSymbol == 'Yes' ||\\r\\n metric.YellowTargetSymbol == 'Yes' ||\\r\\n metric.RedTargetSymbol == 'Yes' ||\\r\\n metric.GreenTargetSymbol == 'No' ||\\r\\n metric.YellowTargetSymbol == 'No' ||\\r\\n metric.RedTargetSymbol == 'No'\\\">{{metric.Week11 == 2 ? 'Yes' : metric.Week11 == 1 ? 'No' :\\r\\n ''}}</span>\\r\\n <span *ngIf=\\\"metric.GreenTargetSymbol != 'Yes' && \\r\\n metric.GreenTargetSymbol != 'No' &&\\r\\n metric.YellowTargetSymbol != 'Yes' &&\\r\\n metric.YellowTargetSymbol != 'No' &&\\r\\n metric.RedTargetSymbol != 'Yes' &&\\r\\n metric.RedTargetSymbol != 'No'\\\">{{metric.Week11}}</span>\\r\\n </td>\\r\\n <td class=\\\"w-80\\\" *ngIf=\\\"metric.Frequency == 'Weekly'\\\" [ngStyle]=\\\"myStyleWeek(metric, 12)\\\">\\r\\n <!-- <span>{{metric.Week12}}</span> -->\\r\\n <span *ngIf=\\\"metric.GreenTargetSymbol == 'Yes' ||\\r\\n metric.YellowTargetSymbol == 'Yes' ||\\r\\n metric.RedTargetSymbol == 'Yes' ||\\r\\n metric.GreenTargetSymbol == 'No' ||\\r\\n metric.YellowTargetSymbol == 'No' ||\\r\\n metric.RedTargetSymbol == 'No'\\\">{{metric.Week12 == 2 ? 'Yes' : metric.Week12 == 1 ? 'No' :\\r\\n ''}}</span>\\r\\n <span *ngIf=\\\"metric.GreenTargetSymbol != 'Yes' && \\r\\n metric.GreenTargetSymbol != 'No' &&\\r\\n metric.YellowTargetSymbol != 'Yes' &&\\r\\n metric.YellowTargetSymbol != 'No' &&\\r\\n metric.RedTargetSymbol != 'Yes' &&\\r\\n metric.RedTargetSymbol != 'No'\\\">{{metric.Week12}}</span>\\r\\n </td>\\r\\n <td class=\\\"w-80\\\" *ngIf=\\\"metric.Frequency == 'Weekly' && WeekDateList[12]!=undefined\\\"\\r\\n [ngStyle]=\\\"myStyleWeek(metric, 13)\\\">\\r\\n <!-- <span>{{metric.Week13}}</span> -->\\r\\n <span *ngIf=\\\"metric.GreenTargetSymbol == 'Yes' ||\\r\\n metric.YellowTargetSymbol == 'Yes' ||\\r\\n metric.RedTargetSymbol == 'Yes' ||\\r\\n metric.GreenTargetSymbol == 'No' ||\\r\\n metric.YellowTargetSymbol == 'No' ||\\r\\n metric.RedTargetSymbol == 'No'\\\">{{metric.Week13 == 2 ? 'Yes' : metric.Week13 == 1 ? 'No' :\\r\\n ''}}</span>\\r\\n <span *ngIf=\\\"metric.GreenTargetSymbol != 'Yes' && \\r\\n metric.GreenTargetSymbol != 'No' &&\\r\\n metric.YellowTargetSymbol != 'Yes' &&\\r\\n metric.YellowTargetSymbol != 'No' &&\\r\\n metric.RedTargetSymbol != 'Yes' &&\\r\\n metric.RedTargetSymbol != 'No'\\\">{{metric.Week13}}</span>\\r\\n </td>\\r\\n\\r\\n <td class=\\\"w-80\\\" *ngIf=\\\"metric.Frequency == 'Weekly' && WeekDateList[13]!=undefined\\\"\\r\\n [ngStyle]=\\\"myStyleWeek(metric, 14)\\\">\\r\\n <!-- <span>{{metric.Week14}}</span> -->\\r\\n <span *ngIf=\\\"metric.GreenTargetSymbol == 'Yes' ||\\r\\n metric.YellowTargetSymbol == 'Yes' ||\\r\\n metric.RedTargetSymbol == 'Yes' ||\\r\\n metric.GreenTargetSymbol == 'No' ||\\r\\n metric.YellowTargetSymbol == 'No' ||\\r\\n metric.RedTargetSymbol == 'No'\\\">{{metric.Week14 == 2 ? 'Yes' : metric.Week14 == 1 ? 'No' :\\r\\n ''}}</span>\\r\\n <span *ngIf=\\\"metric.GreenTargetSymbol != 'Yes' && \\r\\n metric.GreenTargetSymbol != 'No' &&\\r\\n metric.YellowTargetSymbol != 'Yes' &&\\r\\n metric.YellowTargetSymbol != 'No' &&\\r\\n metric.RedTargetSymbol != 'Yes' &&\\r\\n metric.RedTargetSymbol != 'No'\\\">{{metric.Week14}}</span>\\r\\n </td>\\r\\n </tr>\\r\\n\\r\\n </tbody>\\r\\n </table>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n</div>\\r\\n\"","import { Component, OnInit, Inject, } from '@angular/core';\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { DorseyService } from '../dorsey.service';\nimport { FormControl } from '@angular/forms';\nimport { Observable } from 'rxjs';\nimport { LocalStorageService } from 'ngx-webstorage';\nimport { EmployeeLoginLevel } from '../common/models/login-level.model';\nimport { copyRight } from '../copyRight.model';\n\n\n\n@Component({\n selector: 'app-activity',\n templateUrl: './activity.component.html',\n providers: [DorseyService]\n})\nexport class ActivityComponent implements OnInit {\n employeeLoginLevel = EmployeeLoginLevel;\n employeeDetails: any;\n companyName: string;\n\n granualActivity = [];\n ProcessByTeam = [];\n headerText: string;\n status = false;\n activityData: any;\n originalData: any;\n departmentData: any;\n employeeData: any;\n processData: any;\n CompanyID: string;\n ProcessID: string;\n // ProcessID1: string;\n DepartmentID: string;\n EmployeeID: number;\n ActivityTypeID: string;\n activityTypeData: any;\n ActivityID: string;\n condition = false;\n ActivityName: string;\n p: number = 1;\n rowsOnPage = 10;\n rowsOnPageSet = [];\n rowCount: any;\n dynamicRows = 10;\n isDesc: boolean = false;\n column = \"\";\n direction: number;\n arrow = true;\n\n parentID: number\n searchTerm: FormControl = new FormControl();\n myBooks = <any>[];\n searchtext: string;\n saveFilter = [];\n activityPaging = false;\n teamData: any;\n //teamids=[];\n keyActivityTeam: any;\n isDisable = false;\n disableSearch = false;\n TeamID: number;\n currentUser: string;\n menuData: any;\n MenuPermissions: any;\n menuName: string;\n menuID: string;\n Permissons: any;\n ParentName = [];\n TeamIDByProcess: string;\n EmpROleID: string;\n squence: number;\n empID: string;\n tempAc = [];\n userTeamID: string;\n loginCompanyName: any;\n lastSequence: number;\n TeamName: any;\n pointerData: any;\n actData: any;\n sequenceList = [];\n usersData: any;\n userRoleAssignmentData: any;\n rolesData: any;\n UserID: any;\n copyDate: number;\n companyData: any;\n constructor(public dialog: MatDialog, public dorseyService: DorseyService, private storage: LocalStorageService) {\n // this.Permissons=this.storage.retrieve(\"Permissions\");\n this.userTeamID = this.storage.retrieve('TeamID');\n this.CompanyID = this.storage.retrieve('companyID');\n this.menuData = this.storage.retrieve('menuData');\n this.currentUser = this.storage.retrieve('user');\n this.MenuPermissions = this.storage.retrieve('MenuPermissions');\n\n this.empID = this.storage.retrieve(\"EmployeeID\");\n this.loginCompanyName = this.storage.retrieve('loginCompanyName');\n this.UserID = this.storage.retrieve('UserID');\n this.EmpROleID = this.storage.retrieve('EmpRoleID');\n this.employeeDetails = this.storage.retrieve('employeeDetails');\n this.GetTeam();\n }\n\n ngOnInit() {\n if (this.employeeDetails) {\n this.EmployeeID = this.employeeDetails.EmployeeID;\n this.TeamID = this.employeeDetails.TeamID;\n }\n else {\n this.EmployeeID = 0;\n }\n this.menuData = this.menuData.filter(x => x.MenuName.toString().toLowerCase() === 'activity');\n\n if (this.menuData.length > 0) {\n this.menuName = this.menuData[0][\"MenuName\"];\n this.menuID = this.menuData[0][\"MenuID\"];\n }\n this.GetProcess();\n this.GetActivity();\n this.GetActivityType();\n this.GetActivitiesTeam();\n this.copyDate = (new Date()).getFullYear();\n }\n\n GetUsers() {\n this.dorseyService.GetUsersList().subscribe(users => {\n this.usersData = JSON.parse(users['_body']);\n });\n }\n GetRoles() {\n this.dorseyService.GetRoles(this.CompanyID).subscribe(users => {\n this.rolesData = JSON.parse(users['_body']);\n });\n }\n GetUserRoleAssignment() {\n this.dorseyService.GetUserRoleAssignment().subscribe(userRoles => {\n this.userRoleAssignmentData = JSON.parse(userRoles['_body']);\n this.dorseyService.GetRoles(this.CompanyID).subscribe(users => {\n this.rolesData = JSON.parse(users['_body']);\n if (this.empID.toString() !== '0') {\n let roles = this.userRoleAssignmentData.filter(x => x.UserID === this.UserID);\n if (roles.length > 0) {\n this.EmpROleID = roles[0].RoleID;\n let roleData = this.rolesData.filter(x => x.RoleID === this.EmpROleID);\n if (roleData.length > 0) {\n this.MenuPermissions = JSON.parse(roleData[0].MenuJson);\n }\n\n }\n }\n });\n });\n }\n\n OpenActivity(type: string) {\n this.dialogCall(type);\n }\n GetTeam() {\n this.dorseyService.GetTeam(this.CompanyID).subscribe(subData => {\n subData = JSON.parse(subData['_body']);\n this.teamData = subData;\n\n if (this.employeeDetails) {\n if (this.employeeDetails.IsEmployeeLoginLevel == this.employeeLoginLevel.Department) {\n this.teamData = this.teamData.filter(ent => ent.DepartmentID == this.employeeDetails.DepartmentID)\n }\n else if (this.employeeDetails.IsEmployeeLoginLevel == this.employeeLoginLevel.Team) {\n this.teamData = this.teamData.filter(ent => ent.DepartmentID == this.employeeDetails.DepartmentID && ent.TeamID == this.employeeDetails.TeamID)\n this.TeamName = this.teamData[0].TeamName;\n }\n else {\n this.teamData = subData;\n }\n }\n });\n }\n\n GetActivitiesTeam() {\n this.dorseyService.GetActivitiesTeam().subscribe(subData => {\n subData = JSON.parse(subData['_body']);\n this.keyActivityTeam = subData;\n });\n }\n\n Searchtext() {\n this.activityData = this.saveFilter;\n\n let tempActivity = this.activityData.filter(\n (item) => {\n return (\n (item.ProcessName !== null && item.ProcessName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1)\n || (item.ActivityName !== null && item.ActivityName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1)) ||\n (item.TeamName !== null && item.TeamName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n (item.ActivityTypeName !== null && item.ActivityTypeName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n (item.Parentname !== null && item.Parentname.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1);\n ;\n }\n\n );\n this.activityData = tempActivity;\n if (this.activityData.length == 0) {\n // this.GetActivity();\n this.isDisable = true;\n } else {\n this.isDisable = false;\n }\n if (this.searchtext === '') {\n this.activityData = this.saveFilter;\n this.dynamicRows = 10;\n this.rowsOnPageSet = [];\n this.rowCount = this.activityData.length;\n while (this.dynamicRows < this.rowCount) {\n this.rowsOnPageSet.push(this.dynamicRows);\n this.dynamicRows = this.dynamicRows + 10;\n }\n if (!this.rowsOnPageSet.includes(this.rowCount))\n this.rowsOnPageSet.push(this.rowCount);\n if (this.rowsOnPageSet) {\n\n this.rowsOnPage = this.rowsOnPageSet[0];\n }\n this.isDisable = false;\n } else {\n this.rowCount = tempActivity.length;\n this.dynamicRows = 10;\n this.rowsOnPageSet = [];\n while (this.dynamicRows < this.rowCount) {\n this.rowsOnPageSet.push(this.dynamicRows);\n this.dynamicRows = this.dynamicRows + 10;\n }\n if (!this.rowsOnPageSet.includes(this.rowCount)) {\n this.rowsOnPageSet.push(this.rowCount);\n if (this.rowsOnPageSet)\n this.rowsOnPage = this.rowsOnPageSet[0];\n }\n\n if (this.rowsOnPageSet.length === 1) {\n if (this.rowsOnPageSet[0] <= 10)\n this.rowsOnPage = this.rowsOnPageSet[0];\n }\n }\n }\n GetCompanyName() {\n if (this.CompanyID != '0') {\n this.dorseyService.GetCompanyData().subscribe(data => {\n this.companyData = JSON.parse(data['_body']);\n let dataCompany = this.companyData.filter(x => x.CompanyID === this.CompanyID);\n if (dataCompany.length > 0) {\n this.loginCompanyName = dataCompany[0].CompanyName;\n }\n });\n }\n }\n\n exportAsXLSX(): void {\n let allData = JSON.parse(JSON.stringify(this.activityData));\n for (let i = 0; i < allData.length; i++) {\n allData[i].Team = allData[i].TeamName;\n allData[i].Process = this.activityData[i].ProcessName;\n\n allData[i].Activity = this.activityData[i].ActivityName;\n\n allData[i].Parent = this.activityData[i].Parentname;\n\n allData[i].ActivityType = this.activityData[i].ActivityTypeName;\n allData[i].Sequence = this.activityData[i].squence;\n\n // if( this.activityData[i].ParentID===0)\n // { allData[i].Parent = this.activityData[i].ProcessName;\n\n // }\n // else{\n // allData[i].Parent = this.ParentName[i];\n\n // }\n\n delete (allData[i].ActivityTypeName);\n delete (allData[i].ActivityTypeID);\n delete (allData[i].Parentname);\n delete (allData[i].TeamID2);\n delete (allData[i].ProcessID2);\n delete (allData[i].TeamName1);\n delete (allData[i].CompanyID2);\n delete (allData[i].IsActive2);\n delete (allData[i].CreatedDate2);\n delete (allData[i].CreatedBy2);\n\n\n delete (allData[i].UpdatedDate2);\n delete (allData[i].UpdatedBy2);\n delete (allData[i].TeamDescription);\n\n\n\n delete (allData[i].TeamName);\n delete (allData[i].squence1);\n delete (allData[i].ProcessName);\n delete (allData[i].ActivityName);\n delete (allData[i].TeamID);\n delete (allData[i].CompanyID);\n delete (allData[i].CompanyID1);\n delete (allData[i].TeamID1);\n delete (allData[i].ProcessID);\n delete (allData[i].ProcessID1);\n delete (allData[i].ActivityID);\n delete (allData[i].location);\n delete (allData[i].ActivityTypeID);\n\n delete (allData[i].CreatedDate);\n delete (allData[i].CreatedBy);\n delete (allData[i].VersionID);\n\n delete (allData[i].DepartmentID);\n delete (allData[i].EmployeeID);\n\n delete (allData[i].ParentID);\n delete (allData[i].UpdatedDate);\n delete (allData[i].UpdatedBy);\n delete (allData[i].VersionID1);\n delete (allData[i].ProcessID1);\n delete (allData[i].IsActive);\n\n delete (allData[i].ProcessName1);\n delete (allData[i].ProcessDescription1);\n delete (allData[i].DepartmentID1);\n delete (allData[i].EmployeeID1);\n delete (allData[i].CreatedBy1);\n delete (allData[i].CreatedDate1);\n delete (allData[i].UpdatedBy1);\n delete (allData[i].UpdatedDate1);\n delete (allData[i].IsActive1);\n delete (allData[i].squence);\n\n delete (allData[i].CompanyID);\n delete (allData[i].ParentID1);\n delete (allData[i].ProcessDescription);\n delete (allData[i].R);\n delete (allData[i].C);\n delete (allData[i].U);\n delete (allData[i].D);\n\n }\n\n\n this.dorseyService.generateExcel(allData, this.loginCompanyName + '_activity' + \"_\" + (new Date().getMonth() + 1) + '-' + new Date().getDate() + '-' + new Date().getFullYear(), 'Activity', \"Company: \" + this.loginCompanyName, '', \"Activity Report\", copyRight, 'FFFFFF00', 'FF0000FF');\n }\n\n\n GetActivity() {\n this.activityData = [];\n this.ParentName = [];\n this.dorseyService.GetActivity(this.CompanyID).subscribe(subData => {\n subData = JSON.parse(subData['_body']);\n this.activityData = subData;\n this.storage.store(\"actData\", this.activityData);\n this.originalData = subData;\n let tempactivityData = this.activityData;\n\n if (this.activityData.length === 0) {\n this.activityPaging = false;\n this.isDisable = true;\n this.disableSearch = true;\n }\n else {\n this.rowCount = this.activityData.length;\n this.saveFilter = JSON.parse(JSON.stringify(this.activityData));\n this.activityPaging = true;\n this.isDisable = false;\n\n this.disableSearch = false;\n this.rowsOnPageSet = [];\n this.dynamicRows = 10;\n\n\n if (this.employeeDetails) {\n if (this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Department) {\n this.activityData = this.activityData.filter(entity1 => this.teamData.find(entity2 => entity1.TeamID == entity2.TeamID));\n }\n else if (this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Team) {\n this.activityData = this.activityData.filter(ent => ent.TeamID == this.employeeDetails.TeamID)\n }\n else {\n let data = this.activityData.filter(x => x.CompanyID === this.CompanyID);\n this.activityData = data;\n }\n if (!this.employeeDetails.PermissionJson || this.employeeDetails.PermissionJson === \"{}\") {\n this.rowCount = this.activityData.length;\n this.saveFilter = JSON.parse(JSON.stringify(this.activityData));\n this.getActivityPagination(this.rowCount)\n return;\n }\n\n this.Permissons = JSON.parse(this.employeeDetails.PermissionJson);\n this.Permissons = this.Permissons[\"Activity\"];\n let activityKeys = Object.keys(this.Permissons);\n let tempProcess = this.processData;\n {\n this.activityData = tempactivityData.filter(x => x.CompanyID === this.CompanyID);\n this.processData = tempProcess.filter(x => x.CompanyID === this.CompanyID);\n }\n\n for (let i = 0; i < activityKeys.length; i++) {\n let actData = this.activityData.filter(x => x.ActivityID.toString() === activityKeys[i].toString());\n if (actData.length > 0) {\n let permissonKeys = Object.keys(this.Permissons[activityKeys[i]]);\n\n if (permissonKeys.indexOf('R') > -1)\n actData[0]['R'] = this.Permissons[activityKeys[i]]['R'];\n else\n actData[0]['R'] = false;\n\n\n if (permissonKeys.indexOf('C') > -1)\n actData[0]['C'] = this.Permissons[activityKeys[i]]['C'];\n else\n actData[0]['C'] = false;\n\n\n if (permissonKeys.indexOf('U') > -1)\n actData[0]['U'] = this.Permissons[activityKeys[i]]['U'];\n else\n actData[0]['U'] = false;\n\n\n if (permissonKeys.indexOf('D') > -1)\n actData[0]['D'] = this.Permissons[activityKeys[i]]['D'];\n else\n actData[0]['D'] = false;\n\n this.granualActivity.push(actData[0]);\n }\n }\n this.activityData = this.granualActivity;\n this.rowCount = this.granualActivity.length;\n }\n\n }\n\n if (this.activityData.length > 0) {\n this.rowCount = this.activityData.length;\n this.activityPaging = true;\n this.isDisable = false;\n this.disableSearch = false;\n this.saveFilter = JSON.parse(JSON.stringify(this.activityData));\n this.getActivityPagination(this.rowCount)\n }\n else if (this.activityData.length === 0) {\n this.activityPaging = false;\n this.isDisable = true;\n this.disableSearch = true;\n }\n this.ifEmployeeLogin();\n });\n\n\n }\n\n getActivityPagination(rowCountNo) {\n while (this.dynamicRows < rowCountNo) {\n this.rowsOnPageSet.push(this.dynamicRows);\n this.dynamicRows = this.dynamicRows + 10;\n }\n if (!this.rowsOnPageSet.includes(rowCountNo)) this.rowsOnPageSet.push(rowCountNo);\n if (this.rowsOnPageSet.length === 1) {\n if (this.rowsOnPageSet[0] <= 10)\n this.rowsOnPage = this.rowsOnPageSet[0];\n }\n\n }\n\n\n ifEmployeeLogin() {\n if (this.userTeamID != '0' && this.userTeamID != null) {\n let tempProcessData = this.activityData.filter(x => x.TeamID == this.userTeamID);\n if (tempProcessData.length == 0) {\n this.isDisable = true;\n this.disableSearch = true;\n }\n }\n }\n\n sort(property) {\n this.arrow = !this.arrow;\n this.isDesc = !this.isDesc; //change the direction\n this.column = property;\n this.direction = this.isDesc ? 1 : -1;\n }\n\n GetEmployee() {\n this.dorseyService.GetEmployee(this.CompanyID).subscribe(subData => {\n\n subData = JSON.parse(subData['_body']);\n this.employeeData = subData;\n\n if (this.empID.toString() !== '0') {\n let filterEmp = this.employeeData.filter(x => x.EmployeeID === this.empID);\n if (filterEmp.length > 0) {\n this.userTeamID = filterEmp[0].TeamID;\n }\n }\n });\n }\n\n GetProcess() {\n this.dorseyService.GetProcess(this.CompanyID).subscribe(subData => {\n subData = JSON.parse(subData['_body']);\n this.processData = subData;\n\n if (this.employeeDetails) {\n if (this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Department) {\n this.processData = this.processData.filter(entity1 => this.teamData.find(entity2 => entity1.TeamID == entity2.TeamID));\n }\n else if (this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Team) {\n this.processData = this.processData.filter(ent => ent.TeamID == this.employeeDetails.TeamID)\n }\n else {\n let data = this.processData.filter(x => x.CompanyID === this.CompanyID);\n this.processData = data;\n }\n }\n\n });\n }\n\n GetActivityType() {\n this.dorseyService.GetActivityType().subscribe(subData => {\n subData = JSON.parse(subData['_body']);\n this.activityTypeData = subData;\n });\n }\n\n dialogCall(msg: string) {\n const dialogRef = this.dialog.open(ActivityDialogComponent, {\n panelClass: 'custom-dialog-container',\n data: msg + 'æææ' + true,\n });\n dialogRef.componentInstance.EmployeeID = this.EmployeeID;\n dialogRef.componentInstance.currentUser = this.currentUser;\n dialogRef.componentInstance.processData = this.processData;\n dialogRef.componentInstance.employeeData = this.employeeData;\n dialogRef.componentInstance.departmentData = this.departmentData;\n dialogRef.componentInstance.activityTypeData = this.activityTypeData;\n dialogRef.componentInstance.activityData = this.activityData;\n dialogRef.componentInstance.originalData = this.activityData;\n dialogRef.componentInstance.teamData = this.teamData;\n dialogRef.componentInstance.CompanyID = this.CompanyID;\n dialogRef.componentInstance.TeamIDByProcess = this.TeamIDByProcess;\n dialogRef.componentInstance.TeamID = this.TeamID;\n\n\n if (msg === 'new' || msg === 'sub') {\n this.TeamID = null;\n dialogRef.componentInstance.TeamID = this.TeamID;\n this.sequenceList = [];\n }\n\n if (msg === 'edit') {\n dialogRef.componentInstance.keyActivityTeam = this.keyActivityTeam;\n this.status = true;\n this.headerText = 'Edit Activity';\n let tempProcessData = this.processData.filter(x => x.TeamID === this.TeamID);\n dialogRef.componentInstance.processData = tempProcessData;\n dialogRef.componentInstance.ProcessByTeam = this.ProcessByTeam;\n dialogRef.componentInstance.ActivityID = this.ActivityID;\n dialogRef.componentInstance.ActivityName = this.ActivityName;\n dialogRef.componentInstance.ProcessID = this.ProcessID;\n dialogRef.componentInstance.ParentActivityID = this.parentID;\n dialogRef.componentInstance.DepartmentID = this.DepartmentID;\n dialogRef.componentInstance.EmployeeID = this.EmployeeID;\n dialogRef.componentInstance.ActivityTypeID = this.ActivityTypeID;\n dialogRef.componentInstance.tempActivity = this.activityData;\n dialogRef.componentInstance.squence = this.squence;\n dialogRef.componentInstance.sequenceList = this.sequenceList;\n dialogRef.componentInstance.actData = this.actData;\n dialogRef.componentInstance.oldTeamId = this.TeamID;\n dialogRef.componentInstance.oldProcessID = this.ProcessID;\n dialogRef.componentInstance.oldActivityID = this.parentID;\n }\n\n if (msg === 'new' || msg === 'sub') {\n this.searchtext = '';\n this.ParentName = [];\n this.GetActivity();\n }\n\n dialogRef.afterClosed().subscribe(result => {\n\n // this.rowsOnPageSet=[];\n this.dynamicRows = 10;\n if (this.searchtext !== '' && this.searchtext !== undefined) {\n this.Searchtext();\n }\n else {\n\n this.GetActivity();\n }\n\n if (result.toString() === 'true') {\n ;\n let statusMsg = '';\n if (msg === 'new') {\n statusMsg = 'Saved successfully';\n } else {\n\n statusMsg = 'Updated successfully';\n }\n\n\n // this.rowsOnPageSet=[];\n this.dynamicRows = 10;\n this.ParentName = [];\n this.GetActivity();\n\n const dialogRefsub = this.dialog.open(ActivityDialogComponent, {\n panelClass: 'custom-dialog-container',\n data: statusMsg + 'æææ' + false,\n // width: '30%'\n });\n\n setTimeout(() => {\n this.GetActivity();\n }, 500);\n dialogRefsub.afterClosed().subscribe(result1 => {\n this.ParentName = [];\n if (this.searchtext !== '') {\n this.Searchtext();\n }\n else {\n this.GetActivity();\n }\n });\n }\n });\n }\n\n\n EditActivity(element) {\n this.GetProcess();\n for (let i = 0; i < this.processData.length; i++) {\n if (this.processData[i].ProcessID === element.ProcessID) {\n this.TeamID = this.processData[i]['TeamID'];\n }\n }\n this.parentID = element.ParentID;\n this.ActivityID = element.ActivityID;\n this.ActivityName = element.ActivityName;\n this.ProcessID = element.ProcessID;\n this.ActivityTypeID = element.ActivityTypeID;\n this.DepartmentID = element.DepartmentID;\n this.EmployeeID = element.EmployeeID;\n this.TeamID = element.TeamID;\n this.squence = element.squence;\n this.storage.store(\"ProcessID\", this.ProcessID);\n this.storage.store(\"ActivityID\", this.ActivityID);\n this.actData = this.storage.retrieve(\"actData\");\n for (let i = 0; i < this.actData.length; i++) {\n if (this.TeamID === this.actData[i].TeamID) {\n this.sequenceList.push(Number(this.actData[i].squence));\n }\n }\n this.dialogCall('edit');\n }\n\n GetPointer() {\n this.dorseyService.GetPointer(this.CompanyID).subscribe(subData => {\n subData = JSON.parse(subData['_body']);\n this.pointerData = subData;\n });\n }\n\n ifMaxRow() {\n if (this.rowsOnPage == this.activityData.length) {\n this.rowsOnPage = this.rowsOnPage - 1;\n }\n }\n\n DeleteActivity(element) {\n this.ActivityID = element.ActivityID;\n this.CompanyID = element.CompanyID;\n this.TeamID = element.TeamID;\n this.squence = element.squence;\n this.ProcessID = element.ProcessID;\n this.parentID = element.ParentID;\n const dialogRef = this.dialog.open(ActivityDialogComponent, {\n panelClass: 'custom-dialog-container',\n data: 'Are you sure you want to delete activity: ' + element.ActivityName + '?æææ' + true,\n\n });\n dialogRef.afterClosed().subscribe(result => {\n if (result) {\n this.dorseyService.DeleteActivity(this.ActivityID, this.CompanyID, this.TeamID, this.squence, this.ProcessID, this.parentID).subscribe(data => {\n if (data.ok) {\n this.ifMaxRow();\n this.condition = true;\n this.dialogCall('Deleted successfully');\n }\n this.dynamicRows = 10;\n this.rowsOnPageSet = [];\n this.GetActivity();\n });\n }\n });\n }\n}\n\n\n@Component({\n selector: 'app-dialog',\n templateUrl: 'dialog.html',\n providers: [DorseyService]\n})\nexport class ActivityDialogComponent implements OnInit {\n\n public breakpoint: number;\n oldTeamId: any;\n oldProcessID: any;\n oldActivityID: any;\n lastSequence: number;\n condition = false;\n activityData: any;\n departmentData: any;\n employeeData: any;\n processData: any;\n CompanyID: string;\n ProcessID: string;\n DepartmentID: string;\n EmployeeID: number;\n ActivityTypeID: string;\n activityTypeData: any;\n dataSelf: string;\n headerText: string;\n ActivityID: string;\n ParentActivityID = 0;\n ActivityName: string;\n processCtrl = new FormControl();\n filteredProcess: Observable<any[]>;\n tempActivity = [];\n tempDepart: any;\n keyActivityTeam: any;\n teamData: any;\n currentUser: string;\n ProcessByTeam = [];\n TeamIDByProcess: string;\n TeamID: number;\n conditionActivity = '';\n squence: number;\n sequenceList: number[] = [];\n ParentName = [];\n originalData: any;\n actData: any;\n btnDisabled = false;\n constructor(\n public dialogRef: MatDialogRef<ActivityDialogComponent>,\n @Inject(MAT_DIALOG_DATA) public data: any, public dorseyService: DorseyService, private storage: LocalStorageService) {\n this.data = this.data.split('æææ');\n\n if (this.data[1] === 'true') {\n this.condition = true;\n } else if (this.data[1] === 'false') {\n this.condition = false;\n }\n else {\n if (this.data[1] === '') {\n this.conditionActivity = 'process';\n } else {\n this.conditionActivity = 'activity';\n }\n }\n\n if (this.data[0].toString() === 'Deleted successfully' || this.data[0].toString() === \"This Activity have issues or metrics or sub activity\") {\n this.condition = false;\n }\n this.data = this.data[0];\n }\n\n\n ngOnInit() {\n\n this.breakpoint = window.innerWidth <= 900 ? 1 : 3;\n if (this.conditionActivity === 'process' || this.conditionActivity === 'activity') {\n\n for (let i = 0; i < this.activityData.length; i++) {\n\n if (this.activityData[i].ProcessID === this.ProcessID && this.activityData[i].ParentID === this.ParentActivityID && this.activityData[i].TeamID === this.TeamID) {\n this.sequenceList.push(Number(this.activityData[i].squence));\n }\n }\n\n let seq = this.sequenceList.length + 1;\n if (this.sequenceList.length !== 0) {\n this.sequenceList.push(seq);\n }\n else this.sequenceList.push(1);\n this.squence = this.sequenceList[this.sequenceList.length - 1]\n ;\n }\n\n if (this.data === 'edit' || this.data === 'rearrange') {\n this.tempActivity = [];\n this.sequenceList = [];\n\n if (this.data === 'edit') {\n this.activityData = this.actData;\n }\n for (let i = 0; i < this.activityData.length; i++) {\n if (this.activityData[i].ProcessID === this.ProcessID && this.activityData[i].ParentID === 0) {\n this.tempActivity.push(this.activityData[i]);\n }\n }\n for (let i = 0; i < this.activityData.length; i++) {\n if (this.activityData[i].ProcessID === this.ProcessID && this.activityData[i].ParentID === this.ParentActivityID && this.activityData[i].TeamID === this.TeamID) {\n this.sequenceList.push(this.activityData[i].squence);\n }\n }\n }\n this.sequenceList.sort();\n this.sequenceList.sort(this.sortNumber);\n this.lastSequence = this.sequenceList.length;\n }\n onResize(event) {\n this.breakpoint = (event.target.innerWidth <= 1000) ? 1 : 3;\n }\n sortNumber(a, b) {\n return a - b;\n }\n Clear() {\n this.dialogRef.close(false);\n }\n process(event) {\n this.TeamID = 0;\n if (this.ParentActivityID !== 0) {\n this.squence = null;\n this.ParentActivityID = null;\n\n }\n this.dorseyService.GetActivity(this.CompanyID).subscribe(subData => {\n subData = JSON.parse(subData['_body']);\n this.activityData = subData;\n this.tempActivity = [];\n this.ProcessByTeam = [];\n this.sequenceList = [];\n this.ProcessID = event.value;\n this.activityData.sort(function (a, b) {\n return a.squence - b.squence;\n });\n for (let i = 0; i < this.processData.length; i++) {\n if (this.processData[i].ProcessID === this.ProcessID) {\n this.TeamID = this.processData[i]['TeamID'];\n }\n }\n for (let i = 0; i < this.activityData.length; i++) {\n\n if (this.activityData[i].ProcessID === this.ProcessID && this.activityData[i].ParentID === 0 && this.TeamID === this.activityData[i].TeamID) {\n this.tempActivity.push(this.activityData[i]);\n\n }\n\n if (this.data !== 'sub' && this.ParentActivityID === 0) {\n if (this.activityData[i].ProcessID === this.ProcessID && this.activityData[i].ParentID === this.ParentActivityID && this.TeamID === this.activityData[i].TeamID) {\n this.sequenceList.push(this.activityData[i].squence);\n }\n }\n }\n if (this.ProcessID != this.oldProcessID) {\n let seq = this.sequenceList.length + 1;\n if (this.data !== 'sub' && this.ParentActivityID === 0) {\n if (this.sequenceList.length !== 0) {\n this.sequenceList.push(seq);\n }\n else this.sequenceList.push(1);\n }\n }\n if (this.data !== 'sub' && this.ParentActivityID === 0) {\n this.squence = this.sequenceList[this.sequenceList.length - 1];\n this.lastSequence = this.sequenceList.length;\n }\n });\n\n }\n bindSequence() {\n\n this.dorseyService.GetActivity(this.CompanyID).subscribe(subData => {\n subData = JSON.parse(subData['_body']);\n this.activityData = subData;\n this.activityData.sort(function (a, b) {\n return a.squence - b.squence;\n });\n\n this.sequenceList = [];\n for (let i = 0; i < this.activityData.length; i++) {\n if (this.activityData[i].ProcessID === this.ProcessID && this.activityData[i].ParentID === this.ParentActivityID && this.activityData[i].TeamID === this.TeamID) {\n this.sequenceList.push(this.activityData[i].squence);\n }\n }\n\n if (this.ParentActivityID != this.oldActivityID) {\n let seq = this.sequenceList.length + 1;\n if (this.sequenceList.length !== 0) {\n this.sequenceList.push(seq);\n }\n else this.sequenceList.push(1);\n }\n\n this.squence = this.sequenceList[this.sequenceList.length - 1];\n this.lastSequence = this.sequenceList.length;\n });\n }\n activityType(event) {\n this.ActivityTypeID = event.value;\n }\n department(event) {\n this.DepartmentID = event.value;\n }\n employee(event) {\n this.EmployeeID = event.value;\n\n let tempEmp = this.employeeData.filter(x => x.EmployeeID === this.EmployeeID);\n\n if (tempEmp.length > 0 && tempEmp.length === 1) {\n this.tempDepart = this.departmentData.filter(x => x.DepartmentID === tempEmp[0].DepartmentID);\n this.DepartmentID = this.tempDepart[0].DepartmentID;\n\n }\n }\n AddActivity() {\n this.btnDisabled = true;\n\n setTimeout(() => {\n this.btnDisabled = false;\n }, 1000);\n let count = 0;\n const Editcount = 0;\n if (this.data === 'sub' && !this.ParentActivityID || !this.squence) {\n this.dataSelf = 'Please enter mandatory(*) fields';\n return\n }\n if (this.ActivityName === undefined || this.ActivityTypeID === undefined || this.ProcessID === undefined ||\n\n this.ActivityName.trim() === '' || this.ActivityTypeID === '' || this.ProcessID === '') {\n // this.DepartmentID === undefined || this.EmployeeID === undefined || || this.DepartmentID === '' || this.EmployeeID === ''\n this.dataSelf = 'Please enter mandatory(*) fields';\n if (this.data === 'new') {\n\n }\n count++;\n }\n\n if (count === 0 && Editcount === 0) {\n this.dataSelf = '';\n if (this.data === 'new') {\n this.Saving(this.data);\n } else {\n this.Saving(this.data);\n }\n } else {\n\n }\n }\n GetTempActivity(ProcessID: string) {\n for (let i = 0; i < this.activityData.length; i++) {\n\n if (this.activityData[i].ProcessID === ProcessID && this.activityData[i].ParentID === 0) {\n this.tempActivity.push(this.activityData[i]);\n }\n }\n }\n onYesClick() {\n\n this.dialogRef.close(true);\n }\n\n onNoClick(): void {\n this.dialogRef.close();\n }\n Saving(msg: string) {\n\n if (this.data === 'sub' && !this.ParentActivityID || !this.squence) {\n this.dataSelf = 'Please enter mandatory(*) fields';\n return\n }\n\n\n const json = {\n CompanyID: this.CompanyID,\n // CompanyID: \"1\",\n\n ActivityID: this.ActivityID,\n // TeamID: this.teamID,\n ParentID: this.ParentActivityID,\n ActivityName: this.ActivityName,\n ProcessID: this.ProcessID,\n ActivityTypeID: this.ActivityTypeID,\n // DepartmentID: this.DepartmentID,\n // EmployeeID: this.EmployeeID,\n DepartmentID: \"0\",\n EmployeeID: this.EmployeeID,\n CreatedBy: this.currentUser,\n UpdatedBy: this.currentUser,\n TeamIDs: this.TeamID,\n squence: this.squence,\n type: msg,\n lastSequence: this.lastSequence\n };\n if (msg === 'new' || msg === 'sub') {\n this.dorseyService.SaveActivity(json, 'No').subscribe(data => {\n if (data['_body'].toString() === 'true') {\n this.dataSelf = 'Saved succesfully';\n this.ActivityName = '';\n this.ActivityTypeID = '';\n this.squence = this.sequenceList[this.sequenceList.length - 1] + 1;\n this.sequenceList.push(this.squence);\n } else {\n this.dataSelf = 'Save failed';\n }\n });\n } else {\n this.lastSequence = this.sequenceList.length;\n this.dorseyService.SaveActivity(json, 'No').subscribe(data => {\n if (data['_body'].toString() === 'true') {\n this.dialogRef.close(true);\n } else {\n this.dataSelf = 'Updated successfully';\n }\n });\n }\n }\n IsAlpha(evt) {\n var keyCode = (evt.which) ? evt.which : evt.keyCode\n if ((keyCode < 65 || keyCode > 90) && (keyCode < 97 || keyCode > 123) && keyCode != 32) {\n return false;\n }\n return true;\n }\n\n\n}\n","module.exports = \".text-underline {\\n text-decoration: underline;\\n}\\n\\n.field {\\n margin-left: 2%;\\n}\\n\\n#tableActions {\\n justify-content: flex-start !important;\\n}\\n\\n.form-group {\\n margin-bottom: 0.25rem;\\n}\\n\\n.example-headers-align .mat-expansion-panel-header-title,\\n.example-headers-align .mat-expansion-panel-header-description {\\n flex-basis: 0;\\n}\\n\\n.example-headers-align .mat-expansion-panel-header-description {\\n justify-content: space-between;\\n align-items: center;\\n}\\n\\n.example-headers-align .mat-form-field + .mat-form-field {\\n margin-left: 8px;\\n}\\n\\n.mat-action-row {\\n padding: 0px !important;\\n}\\n\\nmat-expansion-panel-header {\\n height: 48px !important;\\n pointer-events: none;\\n border-bottom: 1px solid lightgrey;\\n}\\n\\n.p-t-20 {\\n padding-top: 20px !important;\\n}\\n\\nmat-panel-title {\\n font-weight: 600;\\n}\\n\\nth {\\n color: white;\\n background-color: #474747;\\n}\\n\\n.target-width {\\n width: 75px;\\n}\\n\\n.f-b {\\n font-weight: bold;\\n}\\n\\n.p-0 {\\n padding: 0px !important;\\n}\\n\\n.m-0 {\\n margin: 0px !important;\\n}\\n\\n.min-width-300 {\\n min-width: 300px !important;\\n width: 450px !important;\\n max-width: 450px !important;\\n word-break: break-all;\\n}\\n\\n.min-width {\\n min-width: 130px !important;\\n}\\n\\n.w-50 {\\n text-align: center;\\n min-width: 50px !important;\\n}\\n\\n.w-100 {\\n width: 100%;\\n}\\n\\n.m-2 {\\n margin: 2%;\\n}\\n\\n.btn-default {\\n background-color: #e6e8eb !important;\\n}\\n\\n.bg-red {\\n background-color: red;\\n text-align: center;\\n padding-top: 20px;\\n}\\n\\n.bg-yellow {\\n background-color: yellow;\\n text-align: center;\\n padding-top: 20px;\\n}\\n\\n.bg-green {\\n background-color: green;\\n text-align: center;\\n padding-top: 20px;\\n}\\n\\n.w-80 {\\n min-width: 80px;\\n}\\n\\n.w-130 {\\n min-width: 130px;\\n}\\n\\n.warningMsg {\\n text-align: center;\\n color: red;\\n}\\n\\n.p-r-0 {\\n padding-right: 5px !important;\\n}\\n\\n.min-width-100 {\\n min-width: 100px !important;\\n}\\n\\n.min-width-500 {\\n min-width: 500px !important;\\n width: 750px !important;\\n}\\n\\n.headcol {\\n position: -webkit-sticky;\\n position: sticky;\\n left: 0px;\\n /* height: 48px; */\\n z-index: 1;\\n}\\n\\n.headcol1 {\\n position: -webkit-sticky;\\n position: sticky;\\n left: 130px;\\n /* height: 48px; */\\n z-index: 1;\\n}\\n\\n.bodycol {\\n position: -webkit-sticky;\\n position: sticky;\\n left: 0px;\\n z-index: 1;\\n background-color: lightgrey;\\n text-align: center;\\n vertical-align: middle;\\n}\\n\\n.bodycol1 {\\n position: -webkit-sticky;\\n position: sticky;\\n left: 130px;\\n z-index: 1;\\n background-color: lightgrey;\\n text-align: center;\\n vertical-align: middle;\\n}\\n\\n.v-m {\\n vertical-align: middle;\\n}\\n\\n.quarter-message {\\n color: red;\\n font-weight: bold;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvYWRkLXNjb3JlLWNhcmQvRjpcXE5pa2lsIFdvcmtcXFByb2plY3RzXFxEb3JzZXlcXEhpZXJhcmNoeSBTb3VyY2UgQ29kZVxcV29ya2luZ1xcZG9yc2V5R3JvdXAvc3JjXFxhcHBcXGFkZC1zY29yZS1jYXJkXFxhZGQtc2NvcmUtY2FyZC5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvYWRkLXNjb3JlLWNhcmQvYWRkLXNjb3JlLWNhcmQuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDSSwwQkFBQTtBQ0NKOztBREVBO0VBQ0ksZUFBQTtBQ0NKOztBREVBO0VBQ0ksc0NBQUE7QUNDSjs7QURFQTtFQUNJLHNCQUFBO0FDQ0o7O0FERUE7O0VBRUUsYUFBQTtBQ0NGOztBREVBO0VBQ0UsOEJBQUE7RUFDQSxtQkFBQTtBQ0NGOztBREVBO0VBQ0UsZ0JBQUE7QUNDRjs7QURFQTtFQUNBLHVCQUFBO0FDQ0E7O0FERUE7RUFDSSx1QkFBQTtFQUNBLG9CQUFBO0VBQ0Esa0NBQUE7QUNDSjs7QURFQTtFQUNFLDRCQUFBO0FDQ0Y7O0FERUE7RUFDSSxnQkFBQTtBQ0NKOztBREVBO0VBQ0UsWUFBQTtFQUNBLHlCQUFBO0FDQ0Y7O0FERUE7RUFDRSxXQUFBO0FDQ0Y7O0FERUE7RUFDRSxpQkFBQTtBQ0NGOztBREVBO0VBQ0UsdUJBQUE7QUNDRjs7QURFQTtFQUNFLHNCQUFBO0FDQ0Y7O0FERUE7RUFDRSwyQkFBQTtFQUNBLHVCQUFBO0VBQ0EsMkJBQUE7RUFDQSxxQkFBQTtBQ0NGOztBREVBO0VBQ0UsMkJBQUE7QUNDRjs7QURFQTtFQUNFLGtCQUFBO0VBQ0EsMEJBQUE7QUNDRjs7QURFQTtFQUNFLFdBQUE7QUNDRjs7QURFQTtFQUNFLFVBQUE7QUNDRjs7QURFQTtFQUNFLG9DQUFBO0FDQ0Y7O0FERUE7RUFDRSxxQkFBQTtFQUVBLGtCQUFBO0VBQ0EsaUJBQUE7QUNBRjs7QURHQTtFQUNFLHdCQUFBO0VBRUEsa0JBQUE7RUFDQSxpQkFBQTtBQ0RGOztBRElBO0VBQ0UsdUJBQUE7RUFFQSxrQkFBQTtFQUNBLGlCQUFBO0FDRkY7O0FES0E7RUFDRSxlQUFBO0FDRkY7O0FES0E7RUFDRSxnQkFBQTtBQ0ZGOztBREtBO0VBQ0Usa0JBQUE7RUFDQSxVQUFBO0FDRkY7O0FES0E7RUFDRSw2QkFBQTtBQ0ZGOztBREtBO0VBQ0UsMkJBQUE7QUNGRjs7QURLQTtFQUNFLDJCQUFBO0VBQ0EsdUJBQUE7QUNGRjs7QURLQTtFQUNFLHdCQUFBO0VBQUEsZ0JBQUE7RUFDRSxTQUFBO0VBQ0Esa0JBQUE7RUFDQSxVQUFBO0FDRko7O0FES0E7RUFDRSx3QkFBQTtFQUFBLGdCQUFBO0VBQ0UsV0FBQTtFQUNBLGtCQUFBO0VBQ0EsVUFBQTtBQ0ZKOztBREtBO0VBQ0Usd0JBQUE7RUFBQSxnQkFBQTtFQUNFLFNBQUE7RUFDQSxVQUFBO0VBQ0EsMkJBQUE7RUFDQSxrQkFBQTtFQUNBLHNCQUFBO0FDRko7O0FES0E7RUFDRSx3QkFBQTtFQUFBLGdCQUFBO0VBQ0UsV0FBQTtFQUNBLFVBQUE7RUFDQSwyQkFBQTtFQUNBLGtCQUFBO0VBQ0Esc0JBQUE7QUNGSjs7QURLQTtFQUNFLHNCQUFBO0FDRkY7O0FES0E7RUFDRSxVQUFBO0VBQ0EsaUJBQUE7QUNGRiIsImZpbGUiOiJzcmMvYXBwL2FkZC1zY29yZS1jYXJkL2FkZC1zY29yZS1jYXJkLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnRleHQtdW5kZXJsaW5le1xyXG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XHJcbn1cclxuXHJcbi5maWVsZHtcclxuICAgIG1hcmdpbi1sZWZ0OiAyJTtcclxufVxyXG5cclxuI3RhYmxlQWN0aW9uc3tcclxuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uZm9ybS1ncm91cHtcclxuICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XHJcbn1cclxuXHJcbi5leGFtcGxlLWhlYWRlcnMtYWxpZ24gLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLXRpdGxlLFxyXG4uZXhhbXBsZS1oZWFkZXJzLWFsaWduIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1kZXNjcmlwdGlvbiB7XHJcbiAgZmxleC1iYXNpczogMDtcclxufVxyXG5cclxuLmV4YW1wbGUtaGVhZGVycy1hbGlnbiAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItZGVzY3JpcHRpb24ge1xyXG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG59XHJcblxyXG4uZXhhbXBsZS1oZWFkZXJzLWFsaWduIC5tYXQtZm9ybS1maWVsZCArIC5tYXQtZm9ybS1maWVsZCB7XHJcbiAgbWFyZ2luLWxlZnQ6IDhweDtcclxufVxyXG5cclxuLm1hdC1hY3Rpb24tcm93e1xyXG5wYWRkaW5nOiAwcHggIWltcG9ydGFudDtcclxufVxyXG5cclxubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJ7XHJcbiAgICBoZWlnaHQ6NDhweCAhaW1wb3J0YW50O1xyXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XHJcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgbGlnaHRncmV5O1xyXG59XHJcblxyXG4ucC10LTIwe1xyXG4gIHBhZGRpbmctdG9wOiAyMHB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbm1hdC1wYW5lbC10aXRsZXtcclxuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbn1cclxuXHJcbnRoIHtcclxuICBjb2xvcjogd2hpdGU7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQ3NDc0NztcclxufVxyXG5cclxuLnRhcmdldC13aWR0aHtcclxuICB3aWR0aDogNzVweDtcclxufVxyXG5cclxuLmYtYntcclxuICBmb250LXdlaWdodDogYm9sZDtcclxufVxyXG5cclxuLnAtMHtcclxuICBwYWRkaW5nOiAwcHggIWltcG9ydGFudDtcclxufVxyXG5cclxuLm0tMHtcclxuICBtYXJnaW46IDBweCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4ubWluLXdpZHRoLTMwMHtcclxuICBtaW4td2lkdGg6IDMwMHB4ICFpbXBvcnRhbnQ7XHJcbiAgd2lkdGg6IDQ1MHB4ICFpbXBvcnRhbnQ7XHJcbiAgbWF4LXdpZHRoOiA0NTBweCAhaW1wb3J0YW50O1xyXG4gIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcclxufVxyXG5cclxuLm1pbi13aWR0aHtcclxuICBtaW4td2lkdGg6IDEzMHB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi53LTUwe1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICBtaW4td2lkdGg6IDUwcHggIWltcG9ydGFudDtcclxufVxyXG5cclxuLnctMTAwe1xyXG4gIHdpZHRoOiAxMDAlO1xyXG59XHJcblxyXG4ubS0ye1xyXG4gIG1hcmdpbjogMiU7XHJcbn1cclxuXHJcbi5idG4tZGVmYXVsdHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTZlOGViICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5iZy1yZWR7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogcmVkO1xyXG4gIC8vY29sb3I6IHdoaXRlO1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICBwYWRkaW5nLXRvcDogMjBweDtcclxufVxyXG5cclxuLmJnLXllbGxvd3tcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB5ZWxsb3c7XHJcbiAgLy9jb2xvcjogd2hpdGU7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIHBhZGRpbmctdG9wOiAyMHB4O1xyXG59XHJcblxyXG4uYmctZ3JlZW57XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47XHJcbiAvLyBjb2xvcjogd2hpdGU7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIHBhZGRpbmctdG9wOiAyMHB4O1xyXG59XHJcblxyXG4udy04MHtcclxuICBtaW4td2lkdGg6IDgwcHg7XHJcbn1cclxuXHJcbi53LTEzMHtcclxuICBtaW4td2lkdGg6IDEzMHB4O1xyXG59XHJcblxyXG4ud2FybmluZ01zZyB7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIGNvbG9yOiByZWQ7XHJcbn1cclxuXHJcbi5wLXItMHtcclxuICBwYWRkaW5nLXJpZ2h0OiA1cHggIWltcG9ydGFudDtcclxufVxyXG5cclxuLm1pbi13aWR0aC0xMDB7XHJcbiAgbWluLXdpZHRoOiAxMDBweCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4ubWluLXdpZHRoLTUwMHtcclxuICBtaW4td2lkdGg6IDUwMHB4ICFpbXBvcnRhbnQ7XHJcbiAgd2lkdGg6IDc1MHB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5oZWFkY29se1xyXG4gIHBvc2l0aW9uOiBzdGlja3k7XHJcbiAgICBsZWZ0OiAwcHg7XHJcbiAgICAvKiBoZWlnaHQ6IDQ4cHg7ICovXHJcbiAgICB6LWluZGV4OiAxXHJcbn1cclxuXHJcbi5oZWFkY29sMXtcclxuICBwb3NpdGlvbjogc3RpY2t5O1xyXG4gICAgbGVmdDogMTMwcHg7XHJcbiAgICAvKiBoZWlnaHQ6IDQ4cHg7ICovXHJcbiAgICB6LWluZGV4OiAxXHJcbn1cclxuXHJcbi5ib2R5Y29se1xyXG4gIHBvc2l0aW9uOiBzdGlja3k7XHJcbiAgICBsZWZ0OiAwcHg7XHJcbiAgICB6LWluZGV4OiAxO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRncmV5O1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxufVxyXG5cclxuLmJvZHljb2wxe1xyXG4gIHBvc2l0aW9uOiBzdGlja3k7XHJcbiAgICBsZWZ0OiAxMzBweDtcclxuICAgIHotaW5kZXg6IDE7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGdyZXk7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG59XHJcblxyXG4udi1te1xyXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbn1cclxuXHJcbi5xdWFydGVyLW1lc3NhZ2V7XHJcbiAgY29sb3I6IHJlZCA7XHJcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbn1cclxuIiwiLnRleHQtdW5kZXJsaW5lIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG5cbi5maWVsZCB7XG4gIG1hcmdpbi1sZWZ0OiAyJTtcbn1cblxuI3RhYmxlQWN0aW9ucyB7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydCAhaW1wb3J0YW50O1xufVxuXG4uZm9ybS1ncm91cCB7XG4gIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG59XG5cbi5leGFtcGxlLWhlYWRlcnMtYWxpZ24gLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLXRpdGxlLFxuLmV4YW1wbGUtaGVhZGVycy1hbGlnbiAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItZGVzY3JpcHRpb24ge1xuICBmbGV4LWJhc2lzOiAwO1xufVxuXG4uZXhhbXBsZS1oZWFkZXJzLWFsaWduIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1kZXNjcmlwdGlvbiB7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLmV4YW1wbGUtaGVhZGVycy1hbGlnbiAubWF0LWZvcm0tZmllbGQgKyAubWF0LWZvcm0tZmllbGQge1xuICBtYXJnaW4tbGVmdDogOHB4O1xufVxuXG4ubWF0LWFjdGlvbi1yb3cge1xuICBwYWRkaW5nOiAwcHggIWltcG9ydGFudDtcbn1cblxubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXIge1xuICBoZWlnaHQ6IDQ4cHggIWltcG9ydGFudDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBsaWdodGdyZXk7XG59XG5cbi5wLXQtMjAge1xuICBwYWRkaW5nLXRvcDogMjBweCAhaW1wb3J0YW50O1xufVxuXG5tYXQtcGFuZWwtdGl0bGUge1xuICBmb250LXdlaWdodDogNjAwO1xufVxuXG50aCB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQ3NDc0Nztcbn1cblxuLnRhcmdldC13aWR0aCB7XG4gIHdpZHRoOiA3NXB4O1xufVxuXG4uZi1iIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi5wLTAge1xuICBwYWRkaW5nOiAwcHggIWltcG9ydGFudDtcbn1cblxuLm0tMCB7XG4gIG1hcmdpbjogMHB4ICFpbXBvcnRhbnQ7XG59XG5cbi5taW4td2lkdGgtMzAwIHtcbiAgbWluLXdpZHRoOiAzMDBweCAhaW1wb3J0YW50O1xuICB3aWR0aDogNDUwcHggIWltcG9ydGFudDtcbiAgbWF4LXdpZHRoOiA0NTBweCAhaW1wb3J0YW50O1xuICB3b3JkLWJyZWFrOiBicmVhay1hbGw7XG59XG5cbi5taW4td2lkdGgge1xuICBtaW4td2lkdGg6IDEzMHB4ICFpbXBvcnRhbnQ7XG59XG5cbi53LTUwIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtaW4td2lkdGg6IDUwcHggIWltcG9ydGFudDtcbn1cblxuLnctMTAwIHtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5tLTIge1xuICBtYXJnaW46IDIlO1xufVxuXG4uYnRuLWRlZmF1bHQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTZlOGViICFpbXBvcnRhbnQ7XG59XG5cbi5iZy1yZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcGFkZGluZy10b3A6IDIwcHg7XG59XG5cbi5iZy15ZWxsb3cge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB5ZWxsb3c7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcGFkZGluZy10b3A6IDIwcHg7XG59XG5cbi5iZy1ncmVlbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IGdyZWVuO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHBhZGRpbmctdG9wOiAyMHB4O1xufVxuXG4udy04MCB7XG4gIG1pbi13aWR0aDogODBweDtcbn1cblxuLnctMTMwIHtcbiAgbWluLXdpZHRoOiAxMzBweDtcbn1cblxuLndhcm5pbmdNc2cge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGNvbG9yOiByZWQ7XG59XG5cbi5wLXItMCB7XG4gIHBhZGRpbmctcmlnaHQ6IDVweCAhaW1wb3J0YW50O1xufVxuXG4ubWluLXdpZHRoLTEwMCB7XG4gIG1pbi13aWR0aDogMTAwcHggIWltcG9ydGFudDtcbn1cblxuLm1pbi13aWR0aC01MDAge1xuICBtaW4td2lkdGg6IDUwMHB4ICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiA3NTBweCAhaW1wb3J0YW50O1xufVxuXG4uaGVhZGNvbCB7XG4gIHBvc2l0aW9uOiBzdGlja3k7XG4gIGxlZnQ6IDBweDtcbiAgLyogaGVpZ2h0OiA0OHB4OyAqL1xuICB6LWluZGV4OiAxO1xufVxuXG4uaGVhZGNvbDEge1xuICBwb3NpdGlvbjogc3RpY2t5O1xuICBsZWZ0OiAxMzBweDtcbiAgLyogaGVpZ2h0OiA0OHB4OyAqL1xuICB6LWluZGV4OiAxO1xufVxuXG4uYm9keWNvbCB7XG4gIHBvc2l0aW9uOiBzdGlja3k7XG4gIGxlZnQ6IDBweDtcbiAgei1pbmRleDogMTtcbiAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRncmV5O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi5ib2R5Y29sMSB7XG4gIHBvc2l0aW9uOiBzdGlja3k7XG4gIGxlZnQ6IDEzMHB4O1xuICB6LWluZGV4OiAxO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGdyZXk7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLnYtbSB7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi5xdWFydGVyLW1lc3NhZ2Uge1xuICBjb2xvcjogcmVkO1xuICBmb250LXdlaWdodDogYm9sZDtcbn0iXX0= */\"","import { Component, OnInit } from '@angular/core';\r\nimport { MatDialog } from '@angular/material';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { BsDatepickerConfig } from 'ngx-bootstrap/datepicker';\r\nimport { LocalStorageService } from 'ngx-webstorage';\r\nimport { ScoreCard, ScoreCardTypeEnum } from '../performance-score-card/performance-score-card.model';\r\nimport { PerformanceScoreCardService } from '../performance-score-card/performance-score-card.service';\r\nimport { QuarterService } from '../services/quarter.service';\r\nimport { Frequency, PerformanceScoreCard, PSCMetricDetails, ScoreCardMaster } from './add-score-card.model';\r\nimport { ValidationDialogComponent } from './validation-dialog';\r\nimport { ResponseDialogComponent } from './response-dialog';\r\n\r\n@Component({\r\n selector: 'app-add-score-card',\r\n templateUrl: './add-score-card.component.html',\r\n styleUrls: ['./add-score-card.component.scss']\r\n})\r\nexport class AddScoreCardComponent implements OnInit {\r\n isViewScoreCard: boolean = true;\r\n companyId: number;\r\n quarterList: any = [];\r\n currentUser: string;\r\n selectedQuarterId: number;\r\n quarterMonths: string;\r\n scoreCard: ScoreCard;\r\n teamName: string;\r\n selectedYear: Date;\r\n step: number = 0;\r\n selectedMetrics: Array<PSCMetricDetails> = [];\r\n YearPickerConfig: Partial<BsDatepickerConfig>;\r\n maxDate: Date;\r\n minDate: Date;\r\n errorMessages: string[] = [];\r\n frequencies: string[] = [Frequency.Monthly, Frequency.Weekly];\r\n scoreCardMaster: ScoreCardMaster;\r\n pscMetricDetails: Array<PSCMetricDetails> = [];\r\n performanceScoreCard: PerformanceScoreCard;\r\n scoreCardMasterId: number;\r\n quarterName: string;\r\n selectedYearName: Number;\r\n scoreCardMasterList: ScoreCardMaster[];\r\n WeekDateList = [];\r\n toBeDeletedMetrics: number[] = [];\r\n quarters: any;\r\n targetSymbolsList: string[] = ['<', '<=', '>', '>=', '==', 'Yes', 'No'];\r\n scoreCardPreview: boolean = false;\r\n quarterDetails = [];\r\n\r\n constructor(private storage: LocalStorageService,\r\n private scoreCardService: PerformanceScoreCardService,\r\n private quarterService: QuarterService,\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n public dialog: MatDialog) {\r\n this.YearPickerConfig = Object.assign({},\r\n { containerClass: 'theme-dark-blue', showWeekNumbers: false, dateInputFormat: 'YYYY' });\r\n this.currentUser = this.storage.retrieve('user');\r\n this.scoreCardService.scoreCard.subscribe(resp => {\r\n if (!resp) {\r\n this.router.navigate(['performance-score-card']);\r\n return;\r\n }\r\n this.scoreCard = resp;\r\n this.currentUser = this.storage.retrieve('user');\r\n });\r\n }\r\n\r\n\r\n ngOnInit(): void {\r\n this.companyId = this.storage.retrieve('companyID');\r\n this.maxDate = new Date();\r\n this.minDate = new Date(\"01/01/2020\");\r\n this.scoreCardMasterId = Number(this.route.snapshot.paramMap.get('id'));\r\n this.step = Number(this.route.snapshot.paramMap.get('stepId'));\r\n if (this.scoreCard.TeamName) {\r\n this.teamName = this.scoreCard.TeamName;\r\n }\r\n this.scoreCardService.GetPerformanceScoreCardDetails(this.companyId, this.scoreCard.DepartmentId, this.scoreCard.TeamId, this.scoreCardMasterId).subscribe(resp => {\r\n this.scoreCardMasterList = resp.Data;\r\n this.pscMetricDetails = resp.AdditionalData.PSCDetails;\r\n if (this.scoreCard.ScoreCardType === ScoreCardTypeEnum.Department) {\r\n this.scoreCardMasterList = this.scoreCardMasterList.filter(ent => ent.ScoreCardType === ScoreCardTypeEnum.Department);\r\n }\r\n if (this.scoreCard.ScoreCardType === ScoreCardTypeEnum.Team) {\r\n this.scoreCardMasterList = this.scoreCardMasterList.filter(ent => ent.TeamID === this.scoreCard.TeamId);\r\n this.pscMetricDetails = this.pscMetricDetails.filter(ent => ent.TeamID === this.scoreCard.TeamId);\r\n }\r\n this.quarterDetails = resp.AdditionalData.QuarterDetails;\r\n this.getQuarters(resp.AdditionalData.QuarterDetails);\r\n if (this.scoreCardMasterList.length > 0) {\r\n this.selectedMetrics = this.pscMetricDetails.filter(ent => ent.IsSelected === true);\r\n }\r\n if (this.selectedMetrics.length == 0) {\r\n this.pscMetricDetails.forEach(ele => {\r\n ele.IsSelected = false;\r\n ele.UOM = ele.Frequency = null;\r\n ele.GreenTargetSymbol = ele.YellowTargetSymbol = ele.RedTargetSymbol = null;\r\n ele.GreenMinimum = ele.GreenMaximum = ele.YellowMinimum = ele.YellowMaximum = null;\r\n ele.RedMinimum = ele.RedMaximum = null;\r\n ele.Week1 = ele.Week2 = ele.Week3 = ele.Week4 = ele.Week5 = ele.Week6 = null;\r\n ele.Week7 = ele.Week8 = ele.Week9 = ele.Week10 = ele.Week11 = ele.Week12 = ele.Week13 = ele.Week14 = null;\r\n });\r\n }\r\n if (this.scoreCardMasterId != 0) {\r\n this.scoreCardMaster = this.scoreCardMasterList.find(ele => ele.Id === this.scoreCardMasterId);\r\n this.selectedQuarterId = this.scoreCardMaster ? this.scoreCardMaster.QuarterId : 0;\r\n this.selectedYear = this.scoreCardMaster ? new Date(\"01/01/\" + this.scoreCardMaster.Year) : null;\r\n this.quarterName = this.quarterList.find(ent => ent.QuarterId == this.selectedQuarterId).QuarterName;\r\n this.selectedYearName = this.selectedYear.getFullYear();\r\n var months = this.quarters.find(ent => ent.QuarterId === this.selectedQuarterId).QuarterMonths;\r\n this.WeekDateList = this.quarterService.getWeekMonths(months, Number(this.selectedYearName), this.quarters[0].QuarterWeekDay, this.quarters[0].QuarterWeekDate);\r\n }\r\n this.processData();\r\n });\r\n }\r\n\r\n getQuarters(quarterDetails): void {\r\n if (quarterDetails.length == 0) {\r\n return;\r\n }\r\n var selectedMonthId = this.quarterService.getMonths().find(val => val.MonthName == quarterDetails[0].MonthName).MonthId;\r\n this.quarters = this.quarterService.generateQuarters(selectedMonthId, this.companyId, this.currentUser, quarterDetails[0].QuarterWeekDay, quarterDetails[0].QuarterWeekDate);\r\n this.quarters.forEach(val => {\r\n this.quarterList.push(\r\n {\r\n QuarterId: val.QuarterId,\r\n QuarterName: val.QuarterName,\r\n // QuarterName: val.QuarterName + \"(\" + this.getQuarterMonths(val.QuarterMonths) + \")\",\r\n QuarterMonths: this.getQuarterMonths(val.QuarterMonths)\r\n }\r\n )\r\n });\r\n }\r\n\r\n getQuarterMonths(quarters): string {\r\n var months = [];\r\n quarters.forEach(val => {\r\n months.push(val.MonthName);\r\n });\r\n return months.join(',');\r\n }\r\n\r\n targetChange(metric): void {\r\n if (!metric.GreenTargetSymbol || metric.GreenTargetSymbol == 'null') {\r\n metric.GreenTargetSymbol = null;\r\n } else {\r\n metric.GreenMaximum = null;\r\n if (metric.GreenTargetSymbol === 'Yes')\r\n metric.GreenMinimum = 2;\r\n else if (metric.GreenTargetSymbol === 'No')\r\n metric.GreenMinimum = 1;\r\n }\r\n if (!metric.YellowTargetSymbol || metric.YellowTargetSymbol == 'null') {\r\n metric.YellowTargetSymbol = null;\r\n } else {\r\n metric.YellowMaximum = null;\r\n if (metric.YellowTargetSymbol === 'Yes')\r\n metric.YellowMinimum = 2;\r\n else if (metric.YellowTargetSymbol === 'No')\r\n metric.YellowMinimum = 1;\r\n }\r\n if (!metric.RedTargetSymbol || metric.RedTargetSymbol == 'null') {\r\n metric.RedTargetSymbol = null;\r\n } else {\r\n metric.RedMaximum = null;\r\n if (metric.RedTargetSymbol === 'Yes')\r\n metric.RedMinimum = 2;\r\n else if (metric.RedTargetSymbol === 'No')\r\n metric.RedMinimum = 1;\r\n }\r\n }\r\n\r\n\r\n getMetrics(): void {\r\n this.errorMessages = [];\r\n if (!this.selectedQuarterId) {\r\n this.errorMessages.push('Please select Quarter');\r\n }\r\n if (!this.selectedYear) {\r\n this.errorMessages.push('Please select Year');\r\n }\r\n\r\n if (this.scoreCardMasterId === 0 && this.selectedYear && this.selectedQuarterId) {\r\n if (this.scoreCardMasterList.findIndex(ent => ent.Year === this.selectedYear.getFullYear() && ent.QuarterId === this.selectedQuarterId) > -1) {\r\n this.errorMessages.push('Score card already exist for selected quarter and year');\r\n }\r\n }\r\n\r\n if (this.errorMessages.length != 0) {\r\n this.dialog.open(ValidationDialogComponent, {\r\n data: {\r\n errorMessages: this.errorMessages\r\n }\r\n });\r\n return;\r\n }\r\n\r\n if (this.scoreCardMasterId == 0) {\r\n this.quarterName = this.quarterList.find(ent => ent.QuarterId == this.selectedQuarterId).QuarterName;\r\n this.selectedYearName = this.selectedYear.getFullYear();\r\n var months = this.quarters.find(ent => ent.QuarterId === this.selectedQuarterId).QuarterMonths;\r\n this.WeekDateList = this.quarterService.getWeekMonths(months, Number(this.selectedYearName), this.quarters[0].QuarterWeekDay, this.quarters[0].QuarterWeekDate);\r\n }\r\n this.step++;\r\n }\r\n\r\n //step 2\r\n getSelectedMetrics(): void {\r\n this.errorMessages = [];\r\n if (this.selectedMetrics.length === 0) {\r\n this.errorMessages.push('Please select atleast one Metric');\r\n }\r\n\r\n if (this.errorMessages.length != 0) {\r\n this.dialog.open(ValidationDialogComponent, {\r\n data: {\r\n errorMessages: this.errorMessages\r\n }\r\n });\r\n return;\r\n }\r\n this.processData();\r\n this.step++;\r\n }\r\n\r\n //step 3\r\n generateWeeks(): void {\r\n this.errorMessages = [];\r\n\r\n // var selectedTarget = this.selectedMetrics.filter(ent => !ent.GreenMinimum || !ent.GreenMaximum\r\n // || !ent.YellowMinimum || !ent.YellowMaximum ||\r\n // !ent.RedMinimum || !ent.RedMaximum);\r\n\r\n // if (selectedTarget.length > 0) {\r\n // this.errorMessages.push('Please enter Targets');\r\n // }\r\n var selectedFrequency = this.selectedMetrics.filter(ent => !ent.Frequency || ent.Frequency == \"null\");\r\n if (selectedFrequency.length > 0) {\r\n this.errorMessages.push('Please select Frequency');\r\n }\r\n\r\n var selectedUOM = this.selectedMetrics.filter(ent => !ent.UOM || !ent.UOM.trim());\r\n if (selectedUOM.length > 0) {\r\n this.errorMessages.push('Please enter UOM');\r\n }\r\n\r\n if (this.errorMessages.length != 0) {\r\n this.dialog.open(ValidationDialogComponent, {\r\n data: {\r\n errorMessages: this.errorMessages\r\n }\r\n });\r\n return;\r\n }\r\n this.step++;\r\n }\r\n\r\n //step 4\r\n generateScoreCard(): void {\r\n this.scoreCardPreview = true;\r\n this.saveScoreCardDetails(false);\r\n this.step++;\r\n }\r\n\r\n saveScoreCardDetails(showDialog = true): void {\r\n if (this.scoreCardMasterId == 0) {\r\n this.scoreCardMaster = {\r\n Id: 0,\r\n CompanyID: this.companyId,\r\n ScoreCardType: this.scoreCard.ScoreCardType,\r\n DepartmentID: this.scoreCard.DepartmentId,\r\n TeamID: this.scoreCard.TeamId,\r\n QuarterId: this.selectedQuarterId,\r\n Year: Number(this.selectedYear.getFullYear()),\r\n ScoreCardName: this.getScoreCardName(),\r\n CreatedBy: this.currentUser,\r\n UpdatedBy: this.currentUser,\r\n QuarterName: '',\r\n CompanyName: '',\r\n DepartmentName: '',\r\n TeamName: ''\r\n }\r\n }\r\n this.performanceScoreCard = { scoreCardMaster: this.scoreCardMaster, pscMetricDetails: this.selectedMetrics, metricIds: this.toBeDeletedMetrics };\r\n this.scoreCardService.SavePerformanceScoreCardDetails(this.performanceScoreCard).subscribe(resp => {\r\n if (resp.Data) {\r\n this.scoreCardMaster.Id = resp.Data.ScoreCardMaster.Id;\r\n this.scoreCardMasterId = resp.Data.ScoreCardMaster.Id;\r\n this.selectedMetrics = [...resp.Data.pscMetricDetails];\r\n this.selectedMetrics.forEach(ele => {\r\n this.pscMetricDetails.find(ele1 => ele.PointerID === ele1.PointerID).Id = ele.Id;\r\n });\r\n if (showDialog) {\r\n this.dialog.open(ResponseDialogComponent, {\r\n data: {\r\n message: 'Save successful'\r\n }\r\n });\r\n }\r\n }\r\n });\r\n }\r\n\r\n metricChange(metric): void {\r\n if (metric.IsSelected) {\r\n this.selectedMetrics.push(metric);\r\n }\r\n else {\r\n this.selectedMetrics = this.selectedMetrics.filter(ent => ent.PointerID != metric.PointerID);\r\n if (metric.Id != 0) {\r\n this.toBeDeletedMetrics.push(metric.Id);\r\n }\r\n }\r\n }\r\n\r\n //validations\r\n setTargets(metric): void {\r\n // if (metric.GreenMinimum == null || Number(metric.GreenMaximum) < Number(metric.GreenMinimum)) {\r\n // metric.GreenMaximum = null;\r\n // }\r\n // if (metric.YellowMinimum == null || Number(metric.YellowMaximum) < Number(metric.YellowMinimum)) {\r\n // metric.YellowMaximum = null;\r\n // }\r\n // if (metric.RedMinimum == null || Number(metric.RedMaximum) < Number(metric.RedMinimum)) {\r\n // metric.RedMaximum = null;\r\n // }\r\n }\r\n\r\n setStep(index: number): void {\r\n this.step = index;\r\n }\r\n\r\n nextStep(): void {\r\n this.step++;\r\n }\r\n\r\n prevStep(): void {\r\n this.step--;\r\n }\r\n\r\n //step 0\r\n goToQuarterSelection(): void {\r\n this.selectedYearName = this.quarterName = undefined;\r\n this.step--;\r\n }\r\n\r\n //step 1\r\n goToMetricList() {\r\n this.selectedMetrics = [...this.selectedMetrics];\r\n this.step--;\r\n }\r\n\r\n goToGeneratedWeeks() {\r\n this.scoreCardPreview = false;\r\n this.step--;\r\n }\r\n\r\n //private methods\r\n private getScoreCardName(): string {\r\n if (this.scoreCard.ScoreCardType === ScoreCardTypeEnum.Department) {\r\n return `${this.scoreCard.DepartmentName}_${this.quarterList.find(ent => ent.QuarterId === this.selectedQuarterId).QuarterName}_${this.selectedYear.getFullYear()}`;\r\n }\r\n else {\r\n return `${this.scoreCard.DepartmentName}_${this.scoreCard.TeamName}_${this.quarterList.find(ent => ent.QuarterId === this.selectedQuarterId).QuarterName}_${this.selectedYear.getFullYear()}`;\r\n }\r\n }\r\n\r\n private processData(): void {\r\n const goalSeen = {};\r\n this.selectedMetrics = this.selectedMetrics.sort((a, b) => {\r\n return a.GoalName.localeCompare(b.GoalName);\r\n }).map(x => {\r\n const goalSpan = goalSeen[x.GoalName] ? 0 :\r\n this.selectedMetrics.filter(y => y.GoalName === x.GoalName).length;\r\n goalSeen[x.GoalName] = true;\r\n return { ...x, goalSpan };\r\n });\r\n }\r\n\r\n}\r\n\r\n","export enum Frequency {\r\n SelectFrequency = \"Select Frequency\",\r\n Monthly = \"Monthly\",\r\n Weekly = \"Weekly\"\r\n}\r\n\r\nexport interface PerformanceScoreCard {\r\n scoreCardMaster: ScoreCardMaster;\r\n pscMetricDetails: Array<PSCMetricDetails>;\r\n metricIds: number[];\r\n}\r\n\r\nexport interface ScoreCardMaster {\r\n Id: number;\r\n CompanyID: number;\r\n ScoreCardType: string;\r\n DepartmentID: number;\r\n TeamID: number;\r\n QuarterId: number;\r\n Year: number;\r\n ScoreCardName: string;\r\n CreatedBy: string;\r\n UpdatedBy: string;\r\n QuarterName: string;\r\n CompanyName: string;\r\n DepartmentName: string;\r\n TeamName: string;\r\n}\r\n\r\nexport interface PSCMetricDetails {\r\n Id: number;\r\n PSCMasterId: number;\r\n PointerID: number;\r\n GoalID: number;\r\n GoalName: string;\r\n Description: string;\r\n TeamID: number;\r\n DepartmentID: number;\r\n CompanyID: number;\r\n GreenMinimum: number;\r\n GreenMaximum: number;\r\n YellowMinimum: number;\r\n YellowMaximum: number;\r\n RedMinimum: number;\r\n RedMaximum: number;\r\n Frequency: string;\r\n UOM: string;\r\n IsSelected: boolean;\r\n Week1: string;\r\n Week2: string;\r\n Week3: string;\r\n Week4: string;\r\n Week5: string;\r\n Week6: string;\r\n Week7: string;\r\n Week8: string;\r\n Week9: string;\r\n Week10: string;\r\n Week11: string;\r\n Week12: string;\r\n Week13: string;\r\n Week14: string;\r\n goalSpan: number;\r\n GreenTargetSymbol: string;\r\n YellowTargetSymbol: string;\r\n RedTargetSymbol: string;\r\n}\r\n","import { Component, Inject, OnInit } from \"@angular/core\";\r\nimport { MAT_DIALOG_DATA } from '@angular/material';\r\n\r\n@Component({\r\n selector: 'response-dialog',\r\n templateUrl: 'response-dialog.html',\r\n})\r\nexport class ResponseDialogComponent implements OnInit {\r\n\r\n message: string;\r\n\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA) public data: any\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.message = this.data.message;\r\n }\r\n}","import { Component, Inject, OnInit } from \"@angular/core\";\r\nimport { MAT_DIALOG_DATA } from '@angular/material';\r\n\r\n@Component({\r\n selector: 'validation-dialog',\r\n templateUrl: 'validation-dialog.html',\r\n})\r\nexport class ValidationDialogComponent implements OnInit {\r\n\r\n errorMessages: any = [];\r\n\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA) public data: any\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.errorMessages = this.data.errorMessages;\r\n }\r\n}","import { Component, OnInit } from '@angular/core';\nimport { DorseyService } from '../dorsey.service';\nimport { LocalStorageService } from 'ngx-webstorage';\n\n@Component({\n selector: 'app-alerts',\n templateUrl: './alerts.component.html',\n})\nexport class AlertsComponent implements OnInit {\n\n currentUser: string;\n CompanyID: string;\n empID: string;\n MenuPermissions: any;\n menuData: any;\n menuID: string;\n menuName: string;\n loginCompanyName: any;\n userTeamID: any;\n pointerTypeStatus = false;\n pointerTypeStatusMetric = false;\n PointerTypeID: string;\n alertValue: any;\n alertMetric: any;\n dataSelf: string;\n alertData: any;\n alertMetricData: any;\n saved = true;\n metricSaved = true;\n RowMetric: any;\n AlertRowID: any;\n alertStatus: number;\n alertMetricStatus: number;\n msg: any;\n error = false;\n mError = false;\n constructor(private dorseyService: DorseyService, public storage: LocalStorageService) {\n this.currentUser = this.storage.retrieve('user');\n this.menuData = this.storage.retrieve('menuData');\n this.empID = this.storage.retrieve('EmployeeID');\n this.MenuPermissions = this.storage.retrieve('MenuPermissions');\n this.loginCompanyName = this.storage.retrieve('loginCompanyName');\n this.userTeamID = this.storage.retrieve(\"TeamID\");\n }\n\n ngOnInit() {\n this.CompanyID = this.storage.retrieve('companyID');\n this.GetAlertValues();\n this.GetMetricValues();\n let tempdata = this.menuData;\n this.menuData = tempdata.filter(x => x.MenuName.toString() === 'Alerts');\n if (this.menuData.length > 0) {\n this.menuName = this.menuData[0][\"MenuName\"];\n this.menuID = this.menuData[0][\"MenuID\"];\n }\n }\n\n ToggleType(event) {\n this.pointerTypeStatus = event.checked;\n if (this.pointerTypeStatus === true) {\n this.PointerTypeID = '1';\n this.alertStatus = 1;\n this.saved = false;\n }\n if (this.pointerTypeStatus === false) {\n this.alertStatus = 0;\n this.saved = true;\n }\n }\n\n MetricToggleType(event) {\n this.pointerTypeStatusMetric = event.checked;\n if (this.pointerTypeStatusMetric === true) {\n this.alertMetricStatus = 1;\n this.PointerTypeID = '2';\n this.metricSaved = false;\n }\n if (this.pointerTypeStatusMetric === false) {\n this.alertMetricStatus = 0;\n this.metricSaved = true;\n }\n }\n\n saveAlertValue() {\n this.GetAlertValues();\n if (this.alertValue === '' || this.alertValue === undefined || this.alertValue === 0) {\n this.alertValue = '';\n this.dataSelf = \"Please enter mandatory fields\";\n this.error = true;\n return;\n }\n if (this.alertStatus === undefined) {\n if (this.alertData.length > 0) {\n let alertFilter = this.alertData.filter(x => x.RowID === this.AlertRowID);\n if (alertFilter.length > 0) {\n\n if (alertFilter[0].AlertStatus === true) {\n this.alertStatus = 1;\n }\n else {\n this.alertStatus = 0;\n }\n }\n }\n }\n const json = {\n CompanyID: this.CompanyID,\n PointerTypeID: 1,\n AlertValue: this.alertValue,\n UpdatedBy: this.currentUser,\n RowID: this.AlertRowID,\n AlertStatus: this.alertStatus,\n CreatedBy: this.currentUser\n };\n if (this.AlertRowID !== '' && this.AlertRowID !== undefined) {\n if (this.alertData !== undefined) {\n\n this.dorseyService.SaveAlertValue(json).subscribe(data => {\n if (data['_body'].toString() === 'true') {\n this.dataSelf = 'Updated successfully';\n this.error = false;\n this.GetAlertValues();\n } else {\n\n }\n });\n }\n\n }\n\n else {\n\n this.dorseyService.SaveAlertValue(json).subscribe(data => {\n if (data['_body'].toString() === 'true') {\n this.dataSelf = 'Saved successfully';\n this.error = false;\n\n this.GetAlertValues();\n } else {\n }\n });\n }\n\n }\n\n saveMetricAlertValue() {\n if (this.alertMetric === '' || this.alertMetric === undefined || this.alertMetric === 0) {\n this.alertMetric = '';\n this.msg = \"Please enter mandatory fields\";\n this.mError = true;\n return;\n }\n if (this.alertMetricStatus === undefined) {\n if (this.alertMetricData.length > 0) {\n let metricFilter = this.alertMetricData.filter(x => x.RowID === this.RowMetric);\n if (metricFilter.length > 0) {\n\n if (metricFilter[0].AlertStatus === true) {\n this.alertMetricStatus = 1;\n }\n else {\n this.alertMetricStatus = 0;\n }\n }\n }\n }\n const json = {\n CompanyID: this.CompanyID,\n PointerTypeID: 2,\n AlertValue: this.alertMetric,\n UpdatedBy: this.currentUser,\n RowID: this.RowMetric,\n AlertStatus: this.alertMetricStatus,\n CreatedBy: this.currentUser\n };\n if (this.RowMetric !== '' && this.RowMetric !== undefined) {\n if (this.alertData !== undefined) {\n\n this.dorseyService.SaveAlertValue(json).subscribe(data => {\n if (data['_body'].toString() === 'true') {\n this.msg = 'Updated successfully';\n this.mError = false;\n this.GetMetricValues();\n } else {\n\n }\n });\n }\n } else {\n\n this.dorseyService.SaveAlertValue(json).subscribe(data => {\n if (data['_body'].toString() === 'true') {\n this.msg = 'Saved successfully'\n this.mError = false;\n\n } else {\n\n }\n this.ngOnInit();\n });\n }\n\n }\n\n GetAlertValues() {\n this.dorseyService.GetAlertValue(this.CompanyID, 1).subscribe(subData => {\n subData = JSON.parse(subData['_body']);\n this.alertData = subData;\n for (let i = 0; i < this.alertData.length; i++) {\n this.saved = false;\n this.pointerTypeStatus = true;\n this.alertValue = this.alertData[i].AlertValue;\n this.AlertRowID = this.alertData[i].RowID;\n this.pointerTypeStatus = this.alertData[i].AlertStatus;\n if (this.pointerTypeStatus === true) {\n this.saved = false;\n } else {\n this.saved = true;\n }\n }\n });\n }\n\n GetMetricValues() {\n this.dorseyService.GetAlertValue(this.CompanyID, 2).subscribe(subData => {\n subData = JSON.parse(subData['_body']);\n this.alertMetricData = subData;\n for (let i = 0; i < this.alertMetricData.length; i++) {\n this.metricSaved = false;\n this.pointerTypeStatusMetric = true;\n this.alertMetric = this.alertMetricData[i].AlertValue;\n this.RowMetric = this.alertMetricData[i].RowID;\n this.pointerTypeStatusMetric = this.alertMetricData[i].AlertStatus;\n if (this.pointerTypeStatusMetric === true) {\n this.metricSaved = false;\n } else {\n this.metricSaved = true;\n }\n }\n });\n }\n\n Validate(event: any) {\n if (\n // Allow: Delete, Backspace, Tab, Escape, Enter\n [46, 8, 9, 27, 13].indexOf(event.keyCode) !== -1 ||\n (event.keyCode === 65 && event.ctrlKey === true) || // Allow: Ctrl+A\n (event.keyCode === 67 && event.ctrlKey === true) || // Allow: Ctrl+C\n (event.keyCode === 86 && event.ctrlKey === true) || // Allow: Ctrl+V\n (event.keyCode === 88 && event.ctrlKey === true) || // Allow: Ctrl+X\n (event.keyCode === 65 && event.metaKey === true) || // Cmd+A (Mac)\n (event.keyCode === 67 && event.metaKey === true) || // Cmd+C (Mac)\n (event.keyCode === 86 && event.metaKey === true) || // Cmd+V (Mac)\n (event.keyCode === 88 && event.metaKey === true) || // Cmd+X (Mac)\n (event.keyCode >= 35 && event.keyCode <= 39) // Home, End, Left, Right\n ) {\n return;\n }\n\n if ((event.shiftKey || (event.keyCode < 48 || event.keyCode > 57)) && (event.keyCode < 96 || event.keyCode > 105)) {\n event.preventDefault();\n }\n\n\n\n }\n\n val(event) {\n if (this.alertValue.toString().trim() === '0') {\n this.alertValue = '';\n }\n if (this.alertMetric.toString().trim() === '0') {\n this.alertMetric = '';\n }\n }\n\n}\n","import { NgModule, OnInit } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\nimport {BrowserAnimationsModule} from '@angular/platform-browser/animations';\n\nconst routes: Routes = [];\n\n@NgModule({\n imports: [RouterModule.forRoot(routes)],\n exports: [RouterModule]\n})\nexport class AppRoutingModule {\n\n\n}\n\n\n \n\n \n","module.exports = \"/* app drawer breakpoint */\\n.mat-sidenav {\\n width: 360px;\\n}\\n.mat-sidenav-container {\\n background-color: white !important;\\n height: 100vh;\\n}\\n.mat-sidenav-container .mat-sidenav-content {\\n display: flex;\\n flex-direction: column;\\n}\\n.sidenav-toolbar {\\n height: 64px;\\n display: flex;\\n flex-direction: row;\\n}\\n@media (max-width: 600px) {\\n .sidenav-toolbar {\\n height: 56px;\\n }\\n}\\n.mat-nav-list {\\n padding-top: 0;\\n}\\n@media (max-width: 600px) {\\n .fixed-topnav {\\n position: fixed;\\n top: 0;\\n left: 0;\\n z-index: 2;\\n width: 100% !important;\\n }\\n\\n .mat-drawer-container,\\n.mat-drawer {\\n padding-top: 56px;\\n }\\n}\\n.menu-list-item.mat-list-item .mat-list-item-content {\\n flex: 1 1 100%;\\n}\\n.version-info {\\n font-size: 8pt;\\n padding: 8px;\\n align-self: flex-end;\\n}\\nh1 {\\n color: #333;\\n font-family: arial, sans-serif;\\n margin: 1em auto;\\n width: 80%;\\n}\\n.tabordion {\\n color: #333;\\n display: block;\\n font-family: arial, sans-serif;\\n margin: auto;\\n position: relative;\\n width: 80%;\\n}\\n.tabordion input[name=sections] {\\n left: -9999px;\\n position: absolute;\\n top: -9999px;\\n}\\n.tabordion section {\\n display: block;\\n}\\n.tabordion section label {\\n background: #ccc;\\n border: 1px solid #fff;\\n cursor: pointer;\\n display: block;\\n font-size: 1.2em;\\n font-weight: bold;\\n padding: 15px 20px;\\n position: relative;\\n width: 180px;\\n z-index: 100;\\n}\\n.tabordion section article {\\n display: none;\\n left: 230px;\\n min-width: 300px;\\n padding: 0 0 0 21px;\\n position: absolute;\\n top: 0;\\n}\\n.tabordion section article:after {\\n background-color: #ccc;\\n bottom: 0;\\n content: \\\"\\\";\\n display: block;\\n left: -229px;\\n position: absolute;\\n top: 0;\\n width: 220px;\\n z-index: 1;\\n}\\n.tabordion input[name=sections]:checked + label {\\n font-size: 16px;\\n}\\n.tabordion input[name=sections]:checked ~ article {\\n display: block;\\n font-size: 16px;\\n background: #eee;\\n color: #000;\\n}\\n@media (max-width: 533px) {\\n h1 {\\n width: 100%;\\n }\\n\\n .tabordion {\\n width: 100%;\\n }\\n\\n .tabordion section label {\\n font-size: 1em;\\n width: 160px;\\n }\\n\\n .tabordion section article {\\n left: 200px;\\n min-width: 270px;\\n }\\n\\n .tabordion section article:after {\\n background-color: #ccc;\\n bottom: 0;\\n content: \\\"\\\";\\n display: block;\\n left: -199px;\\n position: absolute;\\n top: 0;\\n width: 200px;\\n }\\n}\\n@media print {\\n .donotprintthis {\\n display: none;\\n }\\n}\\n@media print {\\n @page {\\n size: auto;\\n margin: 0mm;\\n }\\n a[href]:after {\\n content: none !important;\\n }\\n}\\n@media print {\\n #Header, #Footer {\\n display: none !important;\\n }\\n}\\n@media screen {\\n .donotprintthis {\\n display: block;\\n }\\n}\\n.active {\\n background-color: lightseagreen;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvRjpcXE5pa2lsIFdvcmtcXFByb2plY3RzXFxEb3JzZXlcXEhpZXJhcmNoeSBTb3VyY2UgQ29kZVxcV29ya2luZ1xcZG9yc2V5R3JvdXAvc3JjXFxhcHBcXGFwcC5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvYXBwLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdnQiwwQkFBQTtBQXlCaEI7RUFDRSxZQUFBO0FDMUJGO0FENEJBO0VBQ0Usa0NBQUE7RUFDQSxhQUFBO0FDekJGO0FEMkJFO0VBQ0UsYUFBQTtFQUNBLHNCQUFBO0FDekJKO0FENEJBO0VBQ0UsWUFBQTtFQUVBLGFBQUE7RUFDQSxtQkFBQTtBQzFCRjtBRDRCRTtFQU5GO0lBT0ksWUFBQTtFQ3pCRjtBQUNGO0FEMkJBO0VBQ0UsY0FBQTtBQ3hCRjtBRFhFO0VBc0NBO0lBQ0UsZUFBQTtJQUNBLE1BQUE7SUFDQSxPQUFBO0lBQ0EsVUFBQTtJQUNBLHNCQUFBO0VDdkJGOztFRDBCQTs7SUFFRSxpQkFBQTtFQ3ZCRjtBQUNGO0FEMEJFO0VBQ0UsY0FBQTtBQ3hCSjtBRDJCQTtFQUNFLGNBQUE7RUFDQSxZQUFBO0VBQ0Esb0JBQUE7QUN4QkY7QUQwQkE7RUFDSSxXQUFBO0VBQ0EsOEJBQUE7RUFDQSxnQkFBQTtFQUNBLFVBQUE7QUN2Qko7QUQwQkU7RUFDRSxXQUFBO0VBQ0EsY0FBQTtFQUNBLDhCQUFBO0VBQ0EsWUFBQTtFQUNBLGtCQUFBO0VBQ0EsVUFBQTtBQ3ZCSjtBRDBCRTtFQUNFLGFBQUE7RUFDQSxrQkFBQTtFQUNBLFlBQUE7QUN2Qko7QUQwQkU7RUFDRSxjQUFBO0FDdkJKO0FEMEJFO0VBQ0UsZ0JBQUE7RUFDQSxzQkFBQTtFQUNBLGVBQUE7RUFDQSxjQUFBO0VBQ0EsZ0JBQUE7RUFDQSxpQkFBQTtFQUNBLGtCQUFBO0VBQ0Esa0JBQUE7RUFDQSxZQUFBO0VBQ0EsWUFBQTtBQ3ZCSjtBRDBCRTtFQUNFLGFBQUE7RUFDQSxXQUFBO0VBQ0EsZ0JBQUE7RUFDQSxtQkFBQTtFQUNBLGtCQUFBO0VBQ0EsTUFBQTtBQ3ZCSjtBRDBCRTtFQUNFLHNCQUFBO0VBQ0EsU0FBQTtFQUNBLFdBQUE7RUFDQSxjQUFBO0VBQ0EsWUFBQTtFQUNBLGtCQUFBO0VBQ0EsTUFBQTtFQUNBLFlBQUE7RUFDQSxVQUFBO0FDdkJKO0FEMEJFO0VBRUUsZUFBQTtBQ3hCSjtBRDJCRTtFQUNFLGNBQUE7RUFDQSxlQUFBO0VBQWtCLGdCQUFBO0VBQ2xCLFdBQUE7QUN2Qko7QUQyQkU7RUFFRTtJQUNFLFdBQUE7RUN6Qko7O0VENEJFO0lBQ0UsV0FBQTtFQ3pCSjs7RUQ0QkU7SUFDRSxjQUFBO0lBQ0EsWUFBQTtFQ3pCSjs7RUQ0QkM7SUFDRyxXQUFBO0lBQ0EsZ0JBQUE7RUN6Qko7O0VENEJFO0lBQ0Usc0JBQUE7SUFDQSxTQUFBO0lBQ0EsV0FBQTtJQUNBLGNBQUE7SUFDQSxZQUFBO0lBQ0Esa0JBQUE7SUFDQSxNQUFBO0lBQ0EsWUFBQTtFQ3pCSjtBQUNGO0FEK0JHO0VBRUE7SUFFSSxhQUFBO0VDL0JMO0FBQ0Y7QURpQ0E7RUFDRztJQUFRLFVBQUE7SUFBYSxXQUFBO0VDN0J0QjtFRDhCQztJQUNJLHdCQUFBO0VDNUJMO0FBQ0Y7QUQ4QkE7RUFDRztJQUFtQix3QkFBQTtFQzNCcEI7QUFDRjtBRDRCQTtFQUVHO0lBRUksY0FBQTtFQzVCTDtBQUNGO0FEOEJBO0VBQ0UsK0JBQUE7QUM1QkYiLCJmaWxlIjoic3JjL2FwcC9hcHAuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBCcmVha3BvaW50c1xyXG4kaGFuZHNldDogMzYwcHg7XHJcbiRsYXJnZS1oYW5kc2V0OiA0ODBweDtcclxuJHRhYmxldDogNjQwcHg7IC8qIGFwcCBkcmF3ZXIgYnJlYWtwb2ludCAqL1xyXG4kbGFyZ2UtdGFibGV0OiA4NDBweDtcclxuJGRlc2t0b3A6IDk2MHB4O1xyXG4kbGFyZ2UtZGVza3RvcDogMTI4MHB4O1xyXG4keC1sYXJnZS1kZXNrdG9wOiAxNDQwcHg7XHJcbiR4eC1sYXJnZS1kZXNrdG9wOiAxOTIwcHg7XHJcblxyXG4vLyBnZW5lcmF0ZSBtaW4td2lkdGggYnJlYWtwb2ludFxyXG5AbWl4aW4gYnJlYWtwb2ludCgkcG9pbnQpIHtcclxuICBAbWVkaWEgKG1pbi13aWR0aDogJHBvaW50KSB7IEBjb250ZW50IDsgfVxyXG59XHJcbi8vIGdlbmVyYXRlIG1heC13aWR0aCBicmVha3BvaW50ICh1c2Ugc3BhcmluZ2x5KVxyXG5AbWl4aW4gYnJlYWtwb2ludC1tYXgoJHBvaW50KSB7XHJcbiAgQG1lZGlhIChtYXgtd2lkdGg6ICRwb2ludCkgeyBAY29udGVudCA7IH1cclxufVxyXG4vLyBnZW5lcmF0ZSBtaW4taGVpZ2h0IGJyZWFrcG9pbnRcclxuQG1peGluIGhlaWdodC1icmVha3BvaW50KCRwb2ludCkge1xyXG4gIEBtZWRpYSAobWluLWhlaWdodDogJHBvaW50KSB7IEBjb250ZW50IDsgfVxyXG59XHJcbi8vIGdlbmVyYXRlIG1heC1oZWlnaHQgYnJlYWtwb2ludCAodXNlIHNwYXJpbmdseSlcclxuQG1peGluIGhlaWdodC1icmVha3BvaW50LW1heCgkcG9pbnQpIHtcclxuICBAbWVkaWEgKG1pbi1oZWlnaHQ6ICRwb2ludCkgeyBAY29udGVudCA7IH1cclxufVxyXG5cclxuXHJcbi5tYXQtc2lkZW5hdiB7XHJcbiAgd2lkdGg6IDM2MHB4O1xyXG59XHJcbi5tYXQtc2lkZW5hdi1jb250YWluZXIge1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XHJcbiAgaGVpZ2h0OiAxMDB2aDtcclxuXHJcbiAgLm1hdC1zaWRlbmF2LWNvbnRlbnQge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgfVxyXG59XHJcbi5zaWRlbmF2LXRvb2xiYXIge1xyXG4gIGhlaWdodDogNjRweDtcclxuLy8gICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGFwcC1wcmltYXJ5KTtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcblxyXG4gIEBtZWRpYSAobWF4LXdpZHRoOiA2MDBweCkge1xyXG4gICAgaGVpZ2h0OiA1NnB4O1xyXG4gIH1cclxufVxyXG4ubWF0LW5hdi1saXN0IHtcclxuICBwYWRkaW5nLXRvcDogMDtcclxufVxyXG5AaW5jbHVkZSBicmVha3BvaW50LW1heCg2MDBweCkge1xyXG4gIC5maXhlZC10b3BuYXYge1xyXG4gICAgcG9zaXRpb246IGZpeGVkO1xyXG4gICAgdG9wOiAwO1xyXG4gICAgbGVmdDogMDtcclxuICAgIHotaW5kZXg6IDI7XHJcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLm1hdC1kcmF3ZXItY29udGFpbmVyLFxyXG4gIC5tYXQtZHJhd2VyIHtcclxuICAgIHBhZGRpbmctdG9wOiA1NnB4O1xyXG4gIH1cclxufVxyXG4ubWVudS1saXN0LWl0ZW0ubWF0LWxpc3QtaXRlbSB7XHJcbiAgLm1hdC1saXN0LWl0ZW0tY29udGVudCB7XHJcbiAgICBmbGV4OiAxIDEgMTAwJTtcclxuICB9XHJcbn1cclxuLnZlcnNpb24taW5mbyB7XHJcbiAgZm9udC1zaXplOiA4cHQ7XHJcbiAgcGFkZGluZzogOHB4O1xyXG4gIGFsaWduLXNlbGY6IGZsZXgtZW5kO1xyXG59XHJcbmgxIHtcclxuICAgIGNvbG9yOiAjMzMzO1xyXG4gICAgZm9udC1mYW1pbHk6IGFyaWFsLCBzYW5zLXNlcmlmO1xyXG4gICAgbWFyZ2luOiAxZW0gYXV0bztcclxuICAgIHdpZHRoOiA4MCU7XHJcbiAgfVxyXG4gIFxyXG4gIC50YWJvcmRpb24ge1xyXG4gICAgY29sb3I6ICMzMzM7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIGZvbnQtZmFtaWx5OiBhcmlhbCwgc2Fucy1zZXJpZjtcclxuICAgIG1hcmdpbjogYXV0bztcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIHdpZHRoOiA4MCU7XHJcbiAgfVxyXG4gIFxyXG4gIC50YWJvcmRpb24gaW5wdXRbbmFtZT1cInNlY3Rpb25zXCJdIHtcclxuICAgIGxlZnQ6IC05OTk5cHg7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6IC05OTk5cHg7XHJcbiAgfVxyXG4gIFxyXG4gIC50YWJvcmRpb24gc2VjdGlvbiB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICB9XHJcbiAgXHJcbiAgLnRhYm9yZGlvbiBzZWN0aW9uIGxhYmVsIHtcclxuICAgIGJhY2tncm91bmQ6ICNjY2M7XHJcbiAgICBib3JkZXI6MXB4IHNvbGlkICNmZmY7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIGZvbnQtc2l6ZTogMS4yZW07XHJcbiAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgIHBhZGRpbmc6IDE1cHggMjBweDtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIHdpZHRoOiAxODBweDtcclxuICAgIHotaW5kZXg6MTAwO1xyXG4gIH1cclxuICBcclxuICAudGFib3JkaW9uIHNlY3Rpb24gYXJ0aWNsZSB7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgbGVmdDogMjMwcHg7XHJcbiAgICBtaW4td2lkdGg6IDMwMHB4O1xyXG4gICAgcGFkZGluZzogMCAwIDAgMjFweDtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgIFxyXG4gICAgdG9wOiAwO1xyXG4gIH1cclxuICBcclxuICAudGFib3JkaW9uIHNlY3Rpb24gYXJ0aWNsZTphZnRlciB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2NjO1xyXG4gICAgYm90dG9tOiAwO1xyXG4gICAgY29udGVudDogXCJcIjtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgbGVmdDotMjI5cHg7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6IDA7XHJcbiAgICB3aWR0aDogMjIwcHg7XHJcbiAgICB6LWluZGV4OjE7XHJcbiAgfVxyXG4gIFxyXG4gIC50YWJvcmRpb24gaW5wdXRbbmFtZT1cInNlY3Rpb25zXCJdOmNoZWNrZWQgKyBsYWJlbCB7IFxyXG4gXHJcbiAgICBmb250LXNpemU6MTZweDtcclxuICB9XHJcbiAgXHJcbiAgLnRhYm9yZGlvbiBpbnB1dFtuYW1lPVwic2VjdGlvbnNcIl06Y2hlY2tlZCB+IGFydGljbGUge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBmb250LXNpemU6MTZweDsgICBiYWNrZ3JvdW5kOiAjZWVlO1xyXG4gICAgY29sb3I6ICMwMDA7XHJcbiAgfVxyXG4gIFxyXG4gIFxyXG4gIEBtZWRpYSAobWF4LXdpZHRoOiA1MzNweCkge1xyXG4gICAgXHJcbiAgICBoMSB7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgfVxyXG4gIFxyXG4gICAgLnRhYm9yZGlvbiB7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICAudGFib3JkaW9uIHNlY3Rpb24gbGFiZWwge1xyXG4gICAgICBmb250LXNpemU6IDFlbTtcclxuICAgICAgd2lkdGg6IDE2MHB4O1xyXG4gICAgfSAgXHJcbiAgXHJcbiAgIC50YWJvcmRpb24gc2VjdGlvbiBhcnRpY2xlIHtcclxuICAgICAgbGVmdDogMjAwcHg7XHJcbiAgICAgIG1pbi13aWR0aDogMjcwcHg7XHJcbiAgICB9IFxyXG4gICAgXHJcbiAgICAudGFib3JkaW9uIHNlY3Rpb24gYXJ0aWNsZTphZnRlciB7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNjY2M7XHJcbiAgICAgIGJvdHRvbTogMDtcclxuICAgICAgY29udGVudDogXCJcIjtcclxuICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgIGxlZnQ6LTE5OXB4O1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgIHRvcDogMDtcclxuICAgICAgd2lkdGg6IDIwMHB4O1xyXG4gIFxyXG4gICAgfSAgXHJcbiAgICBcclxuICB9XHJcbiAgXHJcbiAgXHJcbiAgIEBtZWRpYSBwcmludFxyXG57XHJcbiAgIC5kb25vdHByaW50dGhpc1xyXG4gICB7XHJcbiAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICB9XHJcbn1cclxuQG1lZGlhIHByaW50IHtcclxuICAgQHBhZ2UgeyBzaXplOiBhdXRvOyAgbWFyZ2luOiAwbW07IH1cclxuICAgYVtocmVmXTphZnRlciB7XHJcbiAgICAgICBjb250ZW50OiBub25lICFpbXBvcnRhbnQ7XHJcbiAgIH1cclxufVxyXG5AbWVkaWEgcHJpbnQge1xyXG4gICAjSGVhZGVyLCAjRm9vdGVyIHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XHJcbn1cclxuQG1lZGlhIHNjcmVlblxyXG57XHJcbiAgIC5kb25vdHByaW50dGhpc1xyXG4gICB7XHJcbiAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgfVxyXG59XHJcbi5hY3RpdmV7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRzZWFncmVlbjtcclxuICAvLyBjb2xvcjogYmxhY2s7XHJcbn0iLCIvKiBhcHAgZHJhd2VyIGJyZWFrcG9pbnQgKi9cbi5tYXQtc2lkZW5hdiB7XG4gIHdpZHRoOiAzNjBweDtcbn1cblxuLm1hdC1zaWRlbmF2LWNvbnRhaW5lciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogMTAwdmg7XG59XG4ubWF0LXNpZGVuYXYtY29udGFpbmVyIC5tYXQtc2lkZW5hdi1jb250ZW50IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cblxuLnNpZGVuYXYtdG9vbGJhciB7XG4gIGhlaWdodDogNjRweDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA2MDBweCkge1xuICAuc2lkZW5hdi10b29sYmFyIHtcbiAgICBoZWlnaHQ6IDU2cHg7XG4gIH1cbn1cblxuLm1hdC1uYXYtbGlzdCB7XG4gIHBhZGRpbmctdG9wOiAwO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNjAwcHgpIHtcbiAgLmZpeGVkLXRvcG5hdiB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHotaW5kZXg6IDI7XG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tYXQtZHJhd2VyLWNvbnRhaW5lcixcbi5tYXQtZHJhd2VyIHtcbiAgICBwYWRkaW5nLXRvcDogNTZweDtcbiAgfVxufVxuLm1lbnUtbGlzdC1pdGVtLm1hdC1saXN0LWl0ZW0gLm1hdC1saXN0LWl0ZW0tY29udGVudCB7XG4gIGZsZXg6IDEgMSAxMDAlO1xufVxuXG4udmVyc2lvbi1pbmZvIHtcbiAgZm9udC1zaXplOiA4cHQ7XG4gIHBhZGRpbmc6IDhweDtcbiAgYWxpZ24tc2VsZjogZmxleC1lbmQ7XG59XG5cbmgxIHtcbiAgY29sb3I6ICMzMzM7XG4gIGZvbnQtZmFtaWx5OiBhcmlhbCwgc2Fucy1zZXJpZjtcbiAgbWFyZ2luOiAxZW0gYXV0bztcbiAgd2lkdGg6IDgwJTtcbn1cblxuLnRhYm9yZGlvbiB7XG4gIGNvbG9yOiAjMzMzO1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1mYW1pbHk6IGFyaWFsLCBzYW5zLXNlcmlmO1xuICBtYXJnaW46IGF1dG87XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDgwJTtcbn1cblxuLnRhYm9yZGlvbiBpbnB1dFtuYW1lPXNlY3Rpb25zXSB7XG4gIGxlZnQ6IC05OTk5cHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAtOTk5OXB4O1xufVxuXG4udGFib3JkaW9uIHNlY3Rpb24ge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLnRhYm9yZGlvbiBzZWN0aW9uIGxhYmVsIHtcbiAgYmFja2dyb3VuZDogI2NjYztcbiAgYm9yZGVyOiAxcHggc29saWQgI2ZmZjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zaXplOiAxLjJlbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHBhZGRpbmc6IDE1cHggMjBweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMTgwcHg7XG4gIHotaW5kZXg6IDEwMDtcbn1cblxuLnRhYm9yZGlvbiBzZWN0aW9uIGFydGljbGUge1xuICBkaXNwbGF5OiBub25lO1xuICBsZWZ0OiAyMzBweDtcbiAgbWluLXdpZHRoOiAzMDBweDtcbiAgcGFkZGluZzogMCAwIDAgMjFweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG59XG5cbi50YWJvcmRpb24gc2VjdGlvbiBhcnRpY2xlOmFmdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NjYztcbiAgYm90dG9tOiAwO1xuICBjb250ZW50OiBcIlwiO1xuICBkaXNwbGF5OiBibG9jaztcbiAgbGVmdDogLTIyOXB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgd2lkdGg6IDIyMHB4O1xuICB6LWluZGV4OiAxO1xufVxuXG4udGFib3JkaW9uIGlucHV0W25hbWU9c2VjdGlvbnNdOmNoZWNrZWQgKyBsYWJlbCB7XG4gIGZvbnQtc2l6ZTogMTZweDtcbn1cblxuLnRhYm9yZGlvbiBpbnB1dFtuYW1lPXNlY3Rpb25zXTpjaGVja2VkIH4gYXJ0aWNsZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6IDE2cHg7XG4gIGJhY2tncm91bmQ6ICNlZWU7XG4gIGNvbG9yOiAjMDAwO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNTMzcHgpIHtcbiAgaDEge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG5cbiAgLnRhYm9yZGlvbiB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cblxuICAudGFib3JkaW9uIHNlY3Rpb24gbGFiZWwge1xuICAgIGZvbnQtc2l6ZTogMWVtO1xuICAgIHdpZHRoOiAxNjBweDtcbiAgfVxuXG4gIC50YWJvcmRpb24gc2VjdGlvbiBhcnRpY2xlIHtcbiAgICBsZWZ0OiAyMDBweDtcbiAgICBtaW4td2lkdGg6IDI3MHB4O1xuICB9XG5cbiAgLnRhYm9yZGlvbiBzZWN0aW9uIGFydGljbGU6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNjY2M7XG4gICAgYm90dG9tOiAwO1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbGVmdDogLTE5OXB4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgd2lkdGg6IDIwMHB4O1xuICB9XG59XG5AbWVkaWEgcHJpbnQge1xuICAuZG9ub3RwcmludHRoaXMge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbkBtZWRpYSBwcmludCB7XG4gIEBwYWdlIHtcbiAgICBzaXplOiBhdXRvO1xuICAgIG1hcmdpbjogMG1tO1xuICB9XG4gIGFbaHJlZl06YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIHByaW50IHtcbiAgI0hlYWRlciwgI0Zvb3RlciB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgc2NyZWVuIHtcbiAgLmRvbm90cHJpbnR0aGlzIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxufVxuLmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0c2VhZ3JlZW47XG59Il19 */\"","import { Component, OnInit } from '@angular/core';\nimport { Router, ActivatedRoute, Params } from \"@angular/router\";\nimport { LocalStorageService } from 'ngx-webstorage';\n\n@Component({\n selector: 'app-root',\n templateUrl: './app.component.html',\n styleUrls: ['./app.component.scss'],\n // providers:[LocalStorageService]\n})\nexport class AppComponent implements OnInit {\n menuOpen = false;\n title = 'dorseyGroup';\n menuOpenStatus = true;\n count = 0;\n authenticated = false;\n companyID = \"\";\n EmployeeID = \"\";\n\n constructor(private router: Router, private routerActive: ActivatedRoute, private storage: LocalStorageService) {\n // ,\n }\n ngOnInit() {\n this.companyID = this.storage.retrieve('companyID');\n this.EmployeeID = this.storage.retrieve('EmployeeID');\n }\n\n onClick(event) {\n if (this.count === 0) {\n this.menuOpen = true;\n this.menuOpenStatus = false;\n this.count++;\n } else {\n this.menuOpen = false;\n this.menuOpenStatus = true;\n this.count = 0;\n }\n\n }\n\n\n}\n","import { BrowserModule } from '@angular/platform-browser';\r\nimport { NgModule } from '@angular/core';\r\nimport { HttpModule } from '@angular/http';\r\nimport { CompanyComponent, CompanyDialogComponent } from './company/company.component'\r\nimport { AppRoutingModule } from './app-routing.module';\r\nimport { AppComponent } from './app.component';\r\nimport { Routes, RouterModule } from '@angular/router';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { NgxPrintModule } from 'ngx-print';\r\n\r\nimport {\r\n MatTabsModule, MatIconModule, MatMenuModule, MatFormFieldModule, MatTableModule,\r\n MatDialogModule, MatInputModule, MatOptionModule, MatSelectModule,\r\n MatRadioModule, MatDatepickerModule, MatNativeDateModule, MatButtonModule,\r\n MatSlideToggleModule, MatPaginatorModule, MatTooltipModule, MatCheckboxModule,\r\n MatExpansionModule, MatListModule, MatSidenavModule, MatSliderModule, MatCardModule\r\n} from '@angular/material';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { ProcessComponent, ProcessDialogComponent } from './process/process.component';\r\nimport { ActivityComponent, ActivityDialogComponent } from './activity/activity.component';\r\nimport { TeamsComponent, TeamsDialogComponent } from './teams/teams.component';\r\nimport { EmployeeComponent, EmployeeDialogComponent } from './employee/employee.component';\r\nimport { FlexLayoutModule } from '@angular/flex-layout';\r\nimport { PointerComponent, PointerDialogComponent, PointerDialogComponent2 } from './pointer/pointer.component';\r\nimport { ProcessMapComponent, ProcessMapDialogComponent, ProcessMapDialogComponent2 } from './process-map/process-map.component';\r\nimport { CaseComponent, CaseDialogComponent } from './case/case.component';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { MetricComponent, MetricDialogComponent } from './metric/metric.component';\r\nimport { ProjectComponent, ProjectDialogComponent } from './project/project.component';\r\nimport { NgxPaginationModule } from 'ngx-pagination';\r\nimport { BsDatepickerModule } from 'ngx-bootstrap/datepicker';\r\nimport { SortPipe } from './sort.pipe';\r\n\r\n// import from '@angular/router';\r\nimport { LocationStrategy, HashLocationStrategy } from '@angular/common';\r\nimport { ReportCategoryComponent, DialogComponent } from './report-category/report-category.component';\r\nimport { ReportProcessComponent, ReportProcessDialogComponent } from './report-process/report-process.component';\r\nimport { ReportProjectComponent, ReportProjectDialogComponent } from './report-project/report-project.component';\r\nimport { ReportMetricProcessComponent, ReportMetricDialogComponent } from './report-metric-process/report-metric-process.component';\r\nimport { FusionChartsModule } from \"angular-fusioncharts\";\r\nimport { ChartsModule } from 'ng2-charts';\r\n// Import FusionCharts library and chart modules\r\nimport * as FusionCharts from \"fusioncharts\";\r\nimport * as Charts from \"fusioncharts/fusioncharts.charts\";\r\n\r\nimport * as FusionTheme from \"fusioncharts/themes/fusioncharts.theme.fusion\";\r\nimport { FrustrationReportsComponent } from './frustration-reports/frustration-reports.component';\r\nimport { ProjectsNoactionsComponent } from './projects-noactions/projects-noactions.component';\r\nimport { OtherFrustrationComponent } from './other-frustration/other-frustration.component';\r\nimport { FrustrationCommentsComponent } from './frustration-comments/frustration-comments.component';\r\nimport { NometricProcessComponent } from './nometric-process/nometric-process.component';\r\nimport { ReportsComponent } from './reports/reports.component';\r\nimport { DashboardComponent } from './dashboard/dashboard.component';\r\nimport { LoginComponent, LoginMetricDialogComponent } from './login/login.component';\r\nimport { RolesComponent, RolePermissionsDiaglogComponent } from './roles/roles.component';\r\nimport { NgxWebstorageModule } from 'ngx-webstorage';\r\nimport { HipriorityComponent } from './hipriority/hipriority.component';\r\nimport { FrustrationstypeComponent, FrustTypeDialogComponent } from './frustrationstype/frustrationstype.component';\r\nimport { ReportHipriorityComponent, ReportSeverityDialogComponent } from './report-hipriority/report-hipriority.component';\r\n\r\nimport { AlertsComponent } from './alerts/alerts.component';\r\nimport { MetricdataComponent } from './metricdata/metricdata.component';\r\nimport { MetricDataDialogComponent } from './metricdata/metricdata.component';\r\nimport { LayoutModule } from '@angular/cdk/layout';\r\nimport { HttpClient, HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';\r\nimport { LongPress } from '../app/long-press';\r\nimport { UsermanualComponent } from './usermanual/usermanual.component';\r\nimport { PdfViewerModule } from 'ng2-pdf-viewer';\r\nimport { DepartmentDialogComponent, DepartmentsComponent } from './departments/departments.component';\r\nimport { GoalDialogComponent, GoalsComponent } from './goals/goals.component';\r\nimport { PerformanceScoreCardComponent, PerformanceScoreCardDialogComponent } from './performance-score-card/performance-score-card.component';\r\nimport { QuarterComponent } from './quarter/quarter.component';\r\nimport { MessageDialogComponent } from './common/dialog';\r\nimport { AddScoreCardComponent } from './add-score-card/add-score-card.component';\r\nimport { ValidationDialogComponent } from './add-score-card/validation-dialog';\r\nimport { ViewScoreCardComponent } from './view-score-card/view-score-card.component';\r\nimport { ResponseDialogComponent } from './add-score-card/response-dialog';\r\nimport { ReportActivityIssuesComponent } from './report-activity-issues/report-activity-issues.component';\r\nimport { UserPermisionsComponent } from './user-permisions/user-permisions.component';\r\nimport { OrganizationComponent, OrganizationDialogComponent } from './organization/organization.component';\r\nimport { SubCompanyComponent } from './sub-company/sub-company.component';\r\nimport { NumberDirective } from './common/directives/numbers-only.directive';\r\nimport { MsalInterceptor, MsalModule } from '@azure/msal-angular';\r\nimport { AzureDetails } from './login/azure-details.model';\r\nimport { MsalUserService } from './login/msal-user.service';\r\n// Pass the fusioncharts library and chart modules\r\nFusionChartsModule.fcRoot(FusionCharts, Charts, FusionTheme);\r\n\r\nconst appRoutes: Routes = [\r\n { path: 'appcomponent', component: AppComponent },\r\n { path: 'entity', component: CompanyComponent },\r\n { path: 'process', component: ProcessComponent },\r\n { path: 'activity', component: ActivityComponent },\r\n { path: 'pointer', component: PointerComponent },\r\n { path: 'employee', component: EmployeeComponent },\r\n { path: 'team', component: TeamsComponent },\r\n { path: 'processMap', component: ProcessMapComponent },\r\n { path: 'case', component: CaseComponent },\r\n { path: 'metric', component: MetricComponent },\r\n { path: 'project', component: ProjectComponent },\r\n { path: 'report', component: ReportCategoryComponent },\r\n { path: 'reportProcess', component: ReportProcessComponent },\r\n { path: 'reportProject', component: ReportProjectComponent },\r\n { path: 'reportMetric', component: ReportMetricProcessComponent },\r\n { path: 'reportFrustration', component: FrustrationReportsComponent },\r\n { path: 'noactionProject', component: ProjectsNoactionsComponent },\r\n { path: 'otherFrustration', component: OtherFrustrationComponent },\r\n { path: 'frustrationComments', component: FrustrationCommentsComponent },\r\n { path: 'nometricProcess', component: NometricProcessComponent },\r\n //{ path: 'dashboard', component: DashboardComponent },\r\n { path: 'dashboard/:TeamID', component: DashboardComponent },\r\n { path: 'reports', component: ReportsComponent },\r\n { path: 'roles', component: RolesComponent },\r\n { path: 'frustrationsType', component: FrustrationstypeComponent },\r\n { path: 'alerts', component: AlertsComponent },\r\n { path: 'metricData', component: MetricdataComponent },\r\n { path: 'userManual', component: UsermanualComponent },\r\n { path: 'departments', component: DepartmentsComponent },\r\n { path: 'goals', component: GoalsComponent },\r\n { path: 'quarter', component: QuarterComponent },\r\n { path: 'performance-score-card', component: PerformanceScoreCardComponent },\r\n { path: 'add-score-card/:id/:stepId', component: AddScoreCardComponent },\r\n { path: 'organization', component: OrganizationComponent },\r\n { path: 'sub-company', component: SubCompanyComponent }\r\n\r\n];\r\n\r\nexport const protectedResourceMap: any = \r\n [ \r\n [AzureDetails.scopeUri] \r\n ];\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n AppComponent,\r\n ProcessComponent,\r\n ActivityComponent,\r\n TeamsComponent,\r\n EmployeeComponent,\r\n CompanyComponent,\r\n CompanyDialogComponent,\r\n ProcessDialogComponent,\r\n EmployeeDialogComponent,\r\n ActivityDialogComponent,\r\n TeamsDialogComponent,\r\n PointerComponent,\r\n PointerDialogComponent,\r\n PointerDialogComponent2,\r\n ProcessMapComponent,\r\n ProcessMapDialogComponent,\r\n ProcessMapDialogComponent2,\r\n CaseComponent,\r\n CaseDialogComponent,\r\n MetricComponent, MetricDialogComponent, ProjectComponent,\r\n ProjectComponent, ProjectDialogComponent,\r\n SortPipe,\r\n ReportCategoryComponent,\r\n DialogComponent,\r\n ReportProcessComponent,\r\n ReportProjectComponent,\r\n ReportProcessDialogComponent,\r\n ReportProjectDialogComponent,\r\n ReportMetricProcessComponent,\r\n ReportMetricDialogComponent,\r\n FrustrationReportsComponent,\r\n ProjectsNoactionsComponent,\r\n OtherFrustrationComponent,\r\n FrustrationCommentsComponent,\r\n NometricProcessComponent,\r\n DashboardComponent,\r\n ReportsComponent,\r\n LoginComponent,\r\n LoginMetricDialogComponent,\r\n UserPermisionsComponent,\r\n RolesComponent,\r\n RolePermissionsDiaglogComponent,\r\n HipriorityComponent,\r\n LoginMetricDialogComponent,\r\n FrustrationstypeComponent,\r\n FrustTypeDialogComponent,\r\n ReportHipriorityComponent,\r\n ReportSeverityDialogComponent, AlertsComponent,\r\n MetricdataComponent,\r\n MetricDataDialogComponent,\r\n LongPress,\r\n UsermanualComponent,\r\n DepartmentsComponent,\r\n DepartmentDialogComponent,\r\n GoalsComponent,\r\n GoalDialogComponent,\r\n PerformanceScoreCardComponent,\r\n QuarterComponent,\r\n MessageDialogComponent,\r\n AddScoreCardComponent,\r\n ValidationDialogComponent,\r\n ViewScoreCardComponent,\r\n ResponseDialogComponent,\r\n ReportActivityIssuesComponent,\r\n OrganizationComponent,\r\n OrganizationDialogComponent,\r\n SubCompanyComponent,\r\n PerformanceScoreCardDialogComponent,\r\n NumberDirective\r\n ],\r\n imports: [\r\n MsalModule.forRoot({ \r\n clientID: AzureDetails.ClientId, \r\n authority: 'https://login.microsoftonline.com/' + AzureDetails.TenantId, \r\n protectedResourceMap: protectedResourceMap, \r\n redirectUri: AzureDetails.RedirectURL \r\n }),\r\n BsDatepickerModule.forRoot(),\r\n BrowserModule,\r\n AppRoutingModule,\r\n HttpModule,\r\n RouterModule.forRoot(appRoutes), HttpModule,\r\n PdfViewerModule,\r\n MatTabsModule, BrowserAnimationsModule, MatIconModule, MatMenuModule,\r\n FormsModule, ReactiveFormsModule, MatFormFieldModule, MatDialogModule,\r\n MatInputModule, FlexLayoutModule, MatSelectModule, MatOptionModule,\r\n MatRadioModule, MatDatepickerModule, MatNativeDateModule, MatButtonModule, MatSlideToggleModule,\r\n MatTableModule, MatPaginatorModule, DragDropModule, MatTooltipModule, MatCheckboxModule, MatExpansionModule,\r\n NgxPaginationModule, FusionChartsModule, ChartsModule, NgxWebstorageModule.forRoot(),\r\n MatListModule, NgxPrintModule, MatSidenavModule, LayoutModule, HttpClientModule,\r\n MatSliderModule, MatCardModule\r\n ],\r\n providers: [{ provide: LocationStrategy, useClass: HashLocationStrategy }, \r\n HttpClient,\r\n MsalUserService,\r\n { \r\n provide: HTTP_INTERCEPTORS, useClass: MsalInterceptor, multi: true \r\n }],\r\n bootstrap: [LoginComponent],\r\n entryComponents: [\r\n CompanyDialogComponent,\r\n ProcessDialogComponent,\r\n EmployeeDialogComponent,\r\n ActivityDialogComponent,\r\n TeamsDialogComponent,\r\n PointerDialogComponent,\r\n PointerDialogComponent2,\r\n ProcessMapDialogComponent,\r\n ProcessMapDialogComponent2,\r\n CaseDialogComponent,\r\n MetricDialogComponent,\r\n ProjectDialogComponent,\r\n DialogComponent,\r\n ReportProcessDialogComponent,\r\n ReportProjectDialogComponent,\r\n ReportMetricDialogComponent,\r\n RolePermissionsDiaglogComponent,\r\n LoginMetricDialogComponent,\r\n FrustTypeDialogComponent,\r\n ReportSeverityDialogComponent,\r\n MetricDataDialogComponent,\r\n DepartmentDialogComponent,\r\n GoalDialogComponent,\r\n MessageDialogComponent,\r\n ValidationDialogComponent,\r\n ResponseDialogComponent,\r\n OrganizationDialogComponent,\r\n PerformanceScoreCardDialogComponent\r\n ]\r\n})\r\nexport class AppModule { }\r\n","import { Component, OnInit, Inject, ViewChild, ElementRef } from '@angular/core';\nimport { DorseyService } from '../dorsey.service';\nimport { Http } from '@angular/http';\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { FormControl } from '@angular/forms';\nimport { DatePipe } from '@angular/common'\nimport { Observable } from 'rxjs';\nimport { LocalStorageService } from 'ngx-webstorage';\nimport { CdkDragDrop, moveItemInArray, transferArrayItem } from '@angular/cdk/drag-drop';\nimport { EmployeeLoginLevel } from '../common/models/login-level.model';\nimport { copyRight } from '../copyRight.model';\n@Component({\n selector: 'app-pointer',\n templateUrl: './case.component.html',\n //styleUrls: ['./case.component.scss'],\n providers: [DorseyService, DatePipe]\n})\nexport class CaseComponent implements OnInit {\n employeeDetails: any;\n Comments: string;\n condition = false;\n status = false;\n employeeData: any;\n processData: any;\n activityData: any;\n pointerTypeData: any;\n frustrationtypeData: any;\n departmentData: any;\n teamData: any;\n severityData: any;\n statusData: any;\n CaseID: string;\n EmployeeID: string;\n ProcessID: string;\n ActivityID: string;\n PointerTypeID: string;\n FrustrationTypeID: string;\n DepartmentID: string;\n TeamID: string;\n StatusID: string;\n SeverityID: string;\n Subject: string;\n Description: string;\n PointerID: string;\n pointerData: any;\n tempActivity = [];\n tempTeam = [];\n SLAViolation: string;\n\n tempFrustrationType = []\n\n tempPointer: any;\n newPointer = false;\n caseData: any;\n newData = [];\n workingData = [];\n escalatedData = [];\n closingData = [];\n NewheaderText: string;\n workingHeader: string;\n Esculatedheader: string;\n Closedheader: string;\n searchtext: string = '';\n kenvanView = [];\n kenvan = {};\n weeks = [];\n connectedTo = [];\n tableFormat = false;\n kenbanFormat = false;\n displayAs: string;\n currentPage: number;\n pageIndex: number;\n endIndex: number;\n startIndex: number;\n ifRowSelected = false;\n\n p: number;\n rowsOnPage = 10;\n total: number;\n rowsOnPageSet = [];\n rowCount: any;\n dynamicRows = 10;\n isDesc: boolean = false;\n column = \"\";\n direction: number;\n arrow = true;\n\n checklist = [];\n selectedRows = [];\n checkEnable = false;\n checkAll = false;\n ProjectID: string;\n projectData: any;\n ErrorMessage: string;\n casePaging = false;\n saveFilter = [];\n CompanyID: string;\n isDisable = false;\n disableSearch = false;\n disableKenban = false;\n currentUser: string;\n Date = new Date();\n menuName: string;\n menuID: string;\n menuData: any;\n MenuPermissions: any;\n showProject = true;\n enableProject = false;\n userTeamID: string;\n loginCompanyName: any;\n TeamName: string;\n empID: any;\n errorMsg: any;\n projectAvailable = true;\n subActivityStatus = false;\n ParentID: any;\n SubActivityID: string;\n tempSubActivity = [];\n UserID: any;\n userRoleAssignmentData: any;\n rolesData: any;\n EmpROleID: any;\n updatedBy: any;\n @ViewChild('button', { static: false }) button: ElementRef;\n longPress = 'first state';\n longPressing = 0;\n isLongPressed = false;\n ifLongPress = true;\n updatedDate = new Date();\n constructor(private http: Http, private dorseyService: DorseyService, public dialog: MatDialog, private storage: LocalStorageService, private datepipe: DatePipe) {\n this.CompanyID = this.storage.retrieve('companyID');\n this.empID = this.storage.retrieve('EmployeeID');\n this.userTeamID = this.storage.retrieve('TeamID');\n this.currentUser = this.storage.retrieve('user');\n this.menuData = this.storage.retrieve('menuData');\n this.MenuPermissions = this.storage.retrieve('MenuPermissions');\n this.loginCompanyName = this.storage.retrieve('loginCompanyName');\n this.UserID = this.storage.retrieve('UserID');\n this.EmpROleID = this.storage.retrieve('EmpRoleID');\n this.employeeDetails = this.storage.retrieve('employeeDetails');\n this.GetStatus();\n\n }\n\n ngOnInit() {\n this.GetTeam();\n this.menuData = this.menuData.filter(x => x.MenuName.toString().toLowerCase() === 'frustrations');\n if (this.menuData.length > 0) {\n this.menuName = this.menuData[0][\"MenuName\"];\n this.menuID = this.menuData[0][\"MenuID\"];\n }\n this.tableFormat = true;\n this.GetProcess();\n this.GetActivity();\n this.GetEmployee();\n this.GetDepartment();\n this.GetPointerType();\n this.GetSeverity();\n this.GetPointer();\n this.GetProjects();\n this.GetFrustrationType();\n this.GetCase();\n\n\n this.displayAs = \"Table\";\n }\n\n\n\n onLongPressing() {\n this.longPressing += 1;\n if (this.longPressing > 20) {\n this.ifLongPress = false;\n } else {\n this.ifLongPress = true;\n }\n }\n onMouseUp() {\n this.longPressing = 0;\n this.ifLongPress = true;\n }\n\n onDblClick() {\n this.ifLongPress = false;\n }\n\n getPageNum() {\n this.currentPage = this.p;\n if (this.currentPage !== this.pageIndex) {\n this.checkAll = false;\n }\n }\n\n CheckAll(event) {\n if (this.projectData.length == 0) {\n this.projectAvailable = false;\n this.errorMsg = 'No project available.';\n setTimeout(() => {\n this.projectAvailable = true;\n }, 5000);\n\n }\n this.selectedRows = this.selectedRows;\n if (event.checked) {\n this.checkEnable = true;\n this.enableProject = true;\n } else {\n this.checkEnable = false;\n this.checkAll = false;\n }\n this.pageIndex = this.p;\n\n let totalRows = this.caseData.length;\n let RowsPerPage = this.rowsOnPage;\n\n if (this.pageIndex > 1) {\n this.startIndex = (this.pageIndex - 1) * RowsPerPage;\n this.endIndex = this.startIndex + RowsPerPage;\n\n } else {\n this.startIndex = 0;\n this.endIndex = this.rowsOnPage;\n }\n\n try {\n for (let i = this.startIndex; i < this.endIndex; i++) {\n\n if (this.checkAll) {\n if (!this.checklist[i]) {\n this.checklist[i] = event.checked;\n this.change(this.caseData[i], event, i);\n }\n } else {\n this.checklist[i] = event.checked;\n this.change(this.caseData[i], event, i);\n }\n }\n } catch (error) { }\n }\n\n checkListCount() {\n for (let i = 0; i < this.caseData.length; i++) {\n if (this.checklist[i]) {\n this.enableProject = true;\n break;\n } else {\n this.enableProject = false;\n }\n }\n\n }\n\n sort(property) {\n this.arrow = !this.arrow;\n this.isDesc = !this.isDesc; //change the direction\n this.column = property;\n this.direction = this.isDesc ? 1 : -1;\n }\n\n\n change(element, event, i) {\n if (this.projectData.length === 0) {\n this.projectAvailable = false;\n this.errorMsg = 'No project available.';\n setTimeout(() => {\n this.projectAvailable = true;\n\n }, 10000);\n\n }\n element.check = event.checked;\n if (!event.checked) {\n\n this.checkAll = false;\n const index = this.selectedRows.indexOf(element);\n this.selectedRows.splice(index, 1);\n if (this.selectedRows.length === 0) {\n this.enableProject = false;\n }\n else {\n this.enableProject = true;\n }\n\n } else {\n this.enableProject = true;\n this.selectedRows.push(element);\n this.checkEnable = true;\n\n }\n if (this.selectedRows.length === 0) {\n this.checkEnable = false;\n }\n\n }\n\n exportAsXLSX() {\n let allData = JSON.parse(JSON.stringify(this.caseData));\n\n for (let i = 0; i < allData.length; i++) {\n allData[i][\" Team \"] = allData[i].TeamName;\n allData[i].Process = allData[i].ProcessName;\n allData[i][\" Severity \"] = allData[i].SeverityName;\n allData[i][\" Type \"] = allData[i].FrustrationsTypeName;\n allData[i][\" Frustration\"] = allData[i].Subject;\n allData[i].Status = allData[i].StatusName;\n allData[i].Project = allData[i].ProjectName;\n allData[i][\" Description\"] = allData[i].Description;\n allData[i][\"Date Opened\"] = this.datepipe.transform(allData[i].PointerDate, 'MM/dd/yyyy');\n\n\n delete (allData[i].TeamName);\n\n delete (allData[i].SeverityName);\n delete (allData[i].FrustrationsTypeName);\n delete (allData[i].Subject);\n delete (allData[i].Description);\n delete (allData[i].check);\n delete (allData[i].CompanyID);\n delete (allData[i].CasesID);\n delete (allData[i].PointerID);\n delete (allData[i].ProcessName);\n delete (allData[i].ActivityName);\n delete (allData[i].UpdatedBy);\n delete (allData[i].UpdatedDate);\n\n delete (allData[i].StatusName);\n delete (allData[i].SeverityName);\n delete (allData[i].ProjectName);\n delete (allData[i].PointerDate);\n\n delete (allData[i].SLAViloation);\n delete (allData[i].CreatedBy);\n delete (allData[i].CreatedDate);\n delete (this.caseData[i].SLAViloation);\n delete (allData[i].Comment);\n delete (allData[i].ActivityID);\n delete (allData[i].PointerTypeID);\n\n delete (allData[i].EmployeeID);\n delete (allData[i].Type);\n delete (allData[i].StatusID);\n delete (allData[i].ProcessID);\n delete (allData[i].DepartmentID);\n delete (allData[i].TeamID);\n\n delete (allData[i].FrustrationsTypeID);\n delete (allData[i].PointerCreatedBy);\n delete (allData[i].ProjectID);\n delete (allData[i].SeverityID);\n\n\n }\n\n this.dorseyService.generateExcel(allData, this.loginCompanyName + '_frustration' + \"_\" + (new Date().getMonth() + 1) + '-' + new Date().getDate() + '-' + new Date().getFullYear(), 'Frustration', \"Company: \" + this.loginCompanyName, '', \"Frustration Report\", copyRight, 'FFFFFF00', 'FF0000FF');\n }\n table() {\n this.tableFormat = true;\n this.kenbanFormat = false;\n this.displayAs = \"Table\";\n }\n kenban() {\n this.checkAll = false;\n this.selectedRows = [];\n this.checklist = [];\n this.enableProject = false;\n this.kenbanFormat = true;\n this.tableFormat = false;\n this.displayAs = \"Status view\";\n this.weeks = [];\n this.kenvan = [];\n this.kenvanView = [];\n this.GetCase();\n }\n GetCase() {\n\n this.dorseyService.GetCase(this.CompanyID).subscribe(subData => {\n subData = JSON.parse(subData['_body']);\n this.caseData = subData;\n\n let tempCaseData = this.caseData;\n if (this.caseData.length === 0) {\n this.casePaging = false;\n this.isDisable = true;\n this.disableSearch = true;\n this.disableKenban = true;\n }\n else {\n this.saveFilter = JSON.parse(JSON.stringify(this.caseData));\n this.casePaging = true;\n this.isDisable = false;\n this.disableSearch = false;\n this.disableKenban = false;\n\n // if (this.userTeamID != '0' && this.userTeamID !== null && this.CompanyID !== '0') {\n // this.caseData = tempCaseData.filter(x => x.TeamID.toString() === this.userTeamID.toString() && x.CompanyID === this.CompanyID);\n // }\n // else {\n // ``\n // this.caseData = tempCaseData.filter(x => x.CompanyID === this.CompanyID);\n // }\n\n if (this.employeeDetails) {\n if (this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Department) {\n this.caseData = this.caseData.filter(entity1 => this.teamData.some(entity2 => entity1.TeamID == entity2.TeamID));\n }\n else if (this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Team) {\n this.caseData = this.caseData.filter(ent => ent.TeamID == this.employeeDetails.TeamID)\n }\n else {\n let data = this.caseData.filter(x => x.CompanyID === this.CompanyID);\n this.caseData = data;\n }\n }\n\n\n this.dynamicRows = 10;\n this.rowsOnPageSet = [];\n\n if (this.caseData.length === 0) {\n this.casePaging = false;\n this.isDisable = true;\n this.disableSearch = true;\n }\n else {\n this.saveFilter = JSON.parse(JSON.stringify(this.caseData));\n this.rowCount = this.caseData.length;\n this.getCasePagination(this.rowCount)\n\n this.casePaging = true;\n this.isDisable = false;\n this.disableSearch = false;\n\n }\n\n\n }\n\n for (let k = 0; k < this.statusData.length; k++) {\n this.kenvanView = [];\n this.kenvan = [];\n\n // this.statusData=this.statusData.filter(x=>x.StatusID!=5);\n\n for (let j = 0; j < this.caseData.length; j++) {\n\n if (this.statusData[k].StatusID === this.caseData[j].StatusID) {\n\n this.kenvanView.push(this.caseData[j]);\n }\n }\n this.kenvan['id'] = this.statusData[k].StatusName;\n this.kenvan['weeklist'] = this.kenvanView;\n this.weeks.push({\n 'id': this.statusData[k].StatusName,\n 'weeklist': this.kenvanView,\n 'statusID': this.statusData[k].StatusID,\n 'count': this.kenvanView.length\n });\n }\n for (let week of this.weeks) {\n this.connectedTo.push(week.id);\n };\n this.ifEmployeeLogin();\n });\n\n\n }\n getCasePagination(rowCountNo) {\n\n while (this.dynamicRows < rowCountNo) {\n this.rowsOnPageSet.push(this.dynamicRows);\n this.dynamicRows = this.dynamicRows + 10;\n }\n if (!this.rowsOnPageSet.includes(rowCountNo)) this.rowsOnPageSet.push(rowCountNo);\n if (this.rowsOnPageSet.length === 1) {\n if (this.rowsOnPageSet[0] <= 10)\n this.rowsOnPage = this.rowsOnPageSet[0];\n }\n }\n ifEmployeeLogin() {\n if (this.userTeamID != '0' && this.userTeamID != null) {\n let tempProcessData = this.caseData.filter(x => x.TeamID == this.userTeamID);\n if (tempProcessData.length == 0) {\n this.isDisable = true;\n this.disableSearch = true;\n }\n }\n }\n Searchtext() {\n this.caseData = this.saveFilter;\n\n let tempCase = this.caseData.filter(\n (item) => {\n return (\n (item.ProcessName !== null && item.ProcessName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1)\n || (item.Subject !== null && item.Subject.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1)\n || (item.Description !== null && item.Description.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1)\n || (item.StatusName !== null && item.StatusName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1)\n || (item.ProjectName !== null && item.ProjectName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1)\n || (item.TeamName !== null && item.TeamName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1)\n || (item.SeverityName !== null && item.SeverityName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1)\n || (item.FrustrationsTypeName !== null && item.FrustrationsTypeName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1)\n || (item.PointerDate !== null && item.PointerDate.indexOf(this.searchtext) > -1))\n }\n\n );\n this.caseData = tempCase;\n if (this.caseData.length == 0) {\n // this.GetActivity();\n this.isDisable = true;\n this.disableKenban = true;\n this.ErrorMessage = '';\n this.checkEnable = false;\n } else {\n this.isDisable = false;\n }\n if (this.searchtext === '') {\n this.weeks = [];\n this.kenvanView = [];\n this.kenvan = [];\n this.caseData = this.saveFilter;\n this.dynamicRows = 10;\n this.rowsOnPageSet = [];\n this.rowCount = this.caseData.length;\n while (this.dynamicRows < this.rowCount) {\n this.rowsOnPageSet.push(this.dynamicRows);\n this.dynamicRows = this.dynamicRows + 10;\n }\n if (!this.rowsOnPageSet.includes(this.rowCount))\n this.rowsOnPageSet.push(this.rowCount);\n if (this.rowsOnPageSet) {\n\n this.rowsOnPage = this.rowsOnPageSet[0];\n }\n this.isDisable = false;\n this.disableKenban = false;\n\n } else {\n this.rowCount = tempCase.length;\n this.dynamicRows = 10;\n this.rowsOnPageSet = [];\n while (this.dynamicRows < this.rowCount) {\n this.rowsOnPageSet.push(this.dynamicRows);\n this.dynamicRows = this.dynamicRows + 10;\n }\n if (!this.rowsOnPageSet.includes(this.rowCount)) {\n this.rowsOnPageSet.push(this.rowCount);\n if (this.rowsOnPageSet)\n this.rowsOnPage = this.rowsOnPageSet[0];\n }\n\n if (this.rowsOnPageSet.length === 1) {\n if (this.rowsOnPageSet[0] <= 10)\n this.rowsOnPage = this.rowsOnPageSet[0];\n }\n }\n }\n\n drop(event: CdkDragDrop<string[]>, statusID: string) {\n if (event.previousContainer === event.container) {\n moveItemInArray(event.container.data, event.previousIndex, event.currentIndex);\n\n } else {\n transferArrayItem(event.previousContainer.data,\n event.container.data,\n event.previousIndex,\n event.currentIndex);\n this.SavePointer(event.container.data, statusID);\n\n }\n // this.GetCase();\n }\n\n SavePointer(dataSave: any, statusID: string) {\n if (dataSave[0].ProjectID === undefined || dataSave[0].ProjectID === '') {\n dataSave[0].ProjectID = \"0\";\n\n }\n if (dataSave.length > 0) {\n\n const pointerJson = {\n CompanyID: this.CompanyID,\n PointerID: dataSave[0].PointerID,\n EmployeeID: dataSave[0].EmployeeID,\n ProessID: dataSave[0].ProcessID,\n ActivityID: dataSave[0].ActivityID,\n PointerTypeID: dataSave[0].PointerTypeID,\n FrustrationsTypeID: dataSave[0].FrustrationsTypeID,\n DepartmentID: dataSave[0].DepartmentID,\n TeamID: dataSave[0].TeamID,\n SeverityID: dataSave[0].SeverityID,\n StatusID: statusID,\n Subject: dataSave[0].Subject,\n Description: dataSave[0].Description,\n CreatedBy: this.currentUser,\n UpdatedBy: this.currentUser,\n ProjectID: dataSave[0].ProjectID,\n };\n\n this.dorseyService.SavePointer(pointerJson, 'No').subscribe(data => {\n if (data['_body'].toString() === 'true') {\n this.weeks = [];\n this.kenvanView = [];\n this.kenvan = [];\n this.GetCase();\n }\n });\n this.weeks = [];\n this.kenvan = [];\n this.kenvanView = [];\n this.GetPointer();\n this.GetCase();\n\n }\n }\n GetPointer() {\n this.dorseyService.GetPointer(this.CompanyID).subscribe(subData => {\n\n subData = JSON.parse(subData['_body']);\n this.pointerData = subData;\n });\n }\n GetEmployee() {\n this.dorseyService.GetEmployee(this.CompanyID).subscribe(subData => {\n\n subData = JSON.parse(subData['_body']);\n this.employeeData = subData;\n });\n }\n GetFrustrationType() {\n this.dorseyService.GetFrustrationType(\"1\", this.CompanyID).subscribe(subData => {\n\n subData = JSON.parse(subData['_body']);\n this.frustrationtypeData = subData;\n });\n }\n GetDepartment() {\n this.dorseyService.GetDepartment().subscribe(subData => {\n subData = JSON.parse(subData['_body']);\n this.departmentData = subData;\n });\n }\n GetProjects() {\n this.dorseyService.GetProjects(this.CompanyID).subscribe(subData => {\n subData = JSON.parse(subData['_body']);\n this.projectData = subData;\n\n });\n }\n GetPointerType() {\n this.dorseyService.GetPointerType().subscribe(subData => {\n subData = JSON.parse(subData['_body']);\n this.pointerTypeData = subData;\n });\n }\n GetStatus() {\n this.dorseyService.GetStatus().subscribe(subData => {\n subData = JSON.parse(subData['_body']);\n this.statusData = subData;\n });\n }\n GetSeverity() {\n this.dorseyService.GetSeverity().subscribe(subData => {\n subData = JSON.parse(subData['_body']);\n this.severityData = subData;\n });\n }\n\n GetTeam() {\n this.dorseyService.GetTeam(this.CompanyID).subscribe(subData => {\n subData = JSON.parse(subData['_body']);\n this.teamData = subData;\n if (this.employeeDetails) {\n if (this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Department) {\n this.teamData = this.teamData.filter(ent => ent.DepartmentID == this.employeeDetails.DepartmentID)\n }\n else if (this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Team) {\n this.teamData = this.teamData.filter(ent => ent.DepartmentID == this.employeeDetails.DepartmentID && ent.TeamID == this.employeeDetails.TeamID)\n this.TeamName = this.teamData[0].TeamName;\n }\n else {\n this.teamData = subData;\n }\n }\n\n });\n }\n GetActivity() {\n this.dorseyService.GetActivity(this.CompanyID).subscribe(subData => {\n subData = JSON.parse(subData['_body']);\n this.activityData = subData;\n });\n }\n GetProcess() {\n this.dorseyService.GetProcess(this.CompanyID).subscribe(subData => {\n subData = JSON.parse(subData['_body']);\n this.processData = subData;\n let processTemp = this.processData;\n this.processData = processTemp.filter(x => x.TeamID !== 0);\n\n if (this.userTeamID != \"0\" && this.CompanyID != \"0\" && this.userTeamID !== null) {\n\n let data = this.processData.filter(x => x.TeamID === this.userTeamID);\n this.processData = data;\n this.TeamID = data[0].TeamID;\n }\n });\n }\n\n\n dialogCall(msg: string) {\n\n const dialogRef = this.dialog.open(CaseDialogComponent, {\n panelClass: 'custom-dialog-container',\n data: msg + 'æææ' + false,\n });\n dialogRef.componentInstance.currentUser = this.currentUser;\n dialogRef.componentInstance.processData = this.processData;\n dialogRef.componentInstance.activityData = this.activityData;\n dialogRef.componentInstance.departmentData = this.departmentData;\n dialogRef.componentInstance.severityData = this.severityData;\n dialogRef.componentInstance.statusData = this.statusData;\n dialogRef.componentInstance.employeeData = this.employeeData;\n dialogRef.componentInstance.tempActivity = this.tempActivity;\n dialogRef.componentInstance.tempFrustrationType = this.tempFrustrationType;\n dialogRef.componentInstance.teamData = this.teamData;\n dialogRef.componentInstance.CompanyID = this.CompanyID;\n\n if (msg === 'edit') {\n this.status = true;\n let tempProcessData = this.processData.filter(x => x.TeamID === this.TeamID);\n dialogRef.componentInstance.processData = tempProcessData;\n dialogRef.componentInstance.EmployeeID = this.EmployeeID;\n dialogRef.componentInstance.ProcessID = this.ProcessID;\n dialogRef.componentInstance.ActivityID = this.ActivityID;\n dialogRef.componentInstance.PointerID = this.PointerID;\n dialogRef.componentInstance.DepartmentID = this.DepartmentID;\n dialogRef.componentInstance.TeamID = this.TeamID;\n dialogRef.componentInstance.StatusID = this.StatusID;\n dialogRef.componentInstance.SeverityID = this.SeverityID;\n dialogRef.componentInstance.Subject = this.Subject;\n dialogRef.componentInstance.Description = this.Description;\n dialogRef.componentInstance.CaseID = this.CaseID;\n dialogRef.componentInstance.SLAViolation = this.SLAViolation;\n dialogRef.componentInstance.Comments = this.Comments;\n\n dialogRef.componentInstance.FrustrationTypeID = this.FrustrationTypeID;\n dialogRef.componentInstance.PointerTypeID = this.PointerTypeID;\n dialogRef.componentInstance.ProjectID = this.ProjectID;\n dialogRef.componentInstance.subActivityStatus = this.subActivityStatus;\n dialogRef.componentInstance.SubActivityID = this.SubActivityID;\n dialogRef.componentInstance.updatedBy = this.updatedBy;\n dialogRef.componentInstance.updatedDate = this.updatedDate;\n\n //dialogRef.componentInstance.tempActivity=this.tempActivity;\n // dialogRef.componentInstance.tempFrustrationType=this.tempFrustrationType;\n\n\n }\n\n if (msg === 'assign') {\n dialogRef.componentInstance.ProjectID = this.ProjectID;\n dialogRef.componentInstance.projectData = this.projectData;\n dialogRef.componentInstance.checklist = this.checklist;\n dialogRef.componentInstance.selectedRows = this.selectedRows;\n dialogRef.componentInstance.checkAll = this.checkAll;\n dialogRef.componentInstance.checkEnable = this.checkEnable;\n\n }\n if (msg === 'new') {\n this.searchtext = '';\n this.weeks = [];\n this.kenvan = [];\n this.kenvanView = [];\n this.GetCase();\n }\n dialogRef.afterClosed().subscribe(result => {\n this.subActivityStatus = false;\n this.tempActivity = [];\n this.tempTeam = [];\n this.tempFrustrationType = [];\n this.checkEnable = false;\n this.weeks = [];\n this.kenvan = [];\n this.kenvanView = [];\n if (this.searchtext !== '') {\n this.Searchtext();\n }\n else {\n this.weeks = [];\n this.kenvan = [];\n this.kenvanView = [];\n this.GetCase();\n }\n\n if (msg == 'Assigned successfully' && this.searchtext !== '') {\n\n this.Searchtext();\n }\n\n if (result.toString() === 'true') {\n\n let statusMsg = '';\n if (msg === 'new') {\n statusMsg = 'Saved successfully';\n\n }\n else {\n\n statusMsg = 'Updated successfully';\n\n this.checkEnable = false;\n }\n this.dynamicRows = 10;\n this.rowsOnPageSet = [];\n this.GetPointer();\n this.weeks = [];\n this.kenvan = [];\n this.kenvanView = [];\n this.GetCase();\n const dialogRefsub = this.dialog.open(CaseDialogComponent, {\n panelClass: 'custom-dialog-container',\n data: statusMsg + 'æææ' + false,\n // width: '30%'\n });\n\n\n setTimeout(() => {\n this.GetPointer();\n this.GetCase();\n }, 500);\n\n dialogRefsub.afterClosed().subscribe(result1 => {\n this.subActivityStatus = false;\n this.tempActivity = [];\n this.tempTeam = [];\n this.tempFrustrationType = [];\n this.weeks = [];\n this.kenvan = [];\n this.kenvanView = [];\n\n if (this.searchtext !== '') {\n this.Searchtext();\n }\n else {\n\n this.GetPointer();\n this.GetCase();\n }\n\n //this.GetPointer();\n // this.Searchtext();\n // this.GetCase();\n });\n\n\n\n }\n\n });\n }\n\n\n\n GetTempActivity(ProcessID: string) {\n for (let i = 0; i < this.activityData.length; i++) {\n if (this.activityData[i].ProcessID === ProcessID && this.activityData[i].ParentID == 0) {\n this.tempActivity.push(this.activityData[i]);\n }\n }\n }\n\n\n GetTempFrastrations(PointerTypeID: string) {\n for (let i = 0; i < this.frustrationtypeData.length; i++) {\n if (this.frustrationtypeData[i].PointerTypeID === PointerTypeID) {\n this.tempFrustrationType.push(this.frustrationtypeData[i]);\n }\n }\n }\n\n GetTempTeam(ProcessID: string) {\n for (let i = 0; i < this.teamData.length; i++) {\n if (this.teamData[i].ProcessID === ProcessID) {\n this.tempTeam.push(this.teamData[i]);\n }\n }\n }\n\n EditCase(element, text) {\n this.ParentID = 0;\n this.GetTempActivity(element.ProcessID);\n this.CaseID = element.CasesID;\n this.PointerID = element.PointerID;\n this.SLAViolation = element.SLAViloation;\n this.Comments = element.Comment;\n this.updatedBy = element.UpdatedBy;\n this.updatedDate = element.UpdatedDate;\n this.tempPointer = this.pointerData.filter(c => c.PointerID != undefined && c.PointerID === this.PointerID);\n if (this.tempPointer.length > 0) {\n if (this.tempPointer[0].ProjectID === undefined || this.tempPointer[0].ProjectID === '') {\n this.tempPointer[0].ProjectID = \"0\";\n }\n this.FrustrationTypeID = this.tempPointer[0].FrustrationsTypeID;\n this.Subject = this.tempPointer[0].Subject;\n this.Description = this.tempPointer[0].Description;\n this.DepartmentID = this.tempPointer[0].DepartmentID;\n this.TeamID = this.tempPointer[0].TeamID;\n this.ProcessID = this.tempPointer[0].ProcessID;\n\n this.PointerTypeID = this.tempPointer[0].PointerTypeID;\n this.EmployeeID = this.tempPointer[0].EmployeeID;\n this.SeverityID = this.tempPointer[0].SeverityID;\n this.StatusID = this.tempPointer[0].StatusID;\n this.ProjectID = this.tempPointer[0].ProjectID;\n if (this.tempPointer[0].ActivityID === 0) {\n this.tempPointer[0].ActivityID = \"0\";\n }\n this.GetTempFrastrations(this.PointerTypeID);\n this.ActivityID = this.tempPointer[0].ActivityID;\n }\n\n for (let i = 0; i < this.activityData.length; i++) {\n if (element.ActivityID === this.activityData[i].ActivityID) {\n this.ParentID = this.activityData[i].ParentID;\n\n }\n\n }\n\n if (!this.ParentID || this.ParentID.toString() === '0') {\n this.ActivityID = element.ActivityID;\n this.subActivityStatus = false;\n } else {\n this.subActivityStatus = true;\n this.SubActivityID = element.ActivityID;\n this.ActivityID = this.ParentID;\n }\n\n this.dialogCall('edit');\n }\n project(event) {\n this.ProjectID = event.value;\n }\n\n\n Addproject(msg: string) {\n this.updatePointer(msg);\n }\n updatePointer(msg: string) {\n let data = this.projectData.filter(x => x.ProjectID === this.ProjectID);\n if (data.length > 0) {\n this.StatusID = data[0].ProjectStatusID;\n }\n\n\n if (msg === 'assign') {\n {\n if (!this.ProjectID && this.ProjectID != '0') {\n this.ErrorMessage = 'Please select Project';\n return;\n }\n else {\n this.ErrorMessage = '';\n this.enableProject = false;\n }\n\n\n if (this.ProjectID.toString() === '0') {\n this.StatusID = this.selectedRows[0].StatusID;\n }\n\n\n const json = {\n ProjectID: this.ProjectID,\n CompanyID: this.CompanyID,\n pointerData: this.selectedRows,\n UpdatedBy: this.currentUser\n\n };\n this.dorseyService.UpdatePointerProject(json, 'No', this.StatusID).subscribe(data => {\n if (data.ok) {\n this.condition = true;\n this.dialogCall('Assigned successfully');\n this.GetStatus();\n this.weeks = [];\n this.kenvan = [];\n this.kenvanView = [];\n this.GetCase();\n this.GetProjects();\n this.checkAll = false;\n this.selectedRows = [];\n this.ProjectID = \"\";\n }\n\n\n });\n }\n\n }\n }\n\n\n ifMaxRow() {\n\n if (this.rowsOnPage == this.caseData.length) {\n this.rowsOnPage = this.rowsOnPage - 1;\n }\n }\n\n DeleteCase(element) {\n this.CaseID = element.CasesID;\n this.PointerID = element.PointerID;\n const dialogRef = this.dialog.open(CaseDialogComponent, {\n panelClass: 'custom-dialog-container',\n data: 'Are you sure you want to delete frustration: ' + element.Subject + '?æææ' + true,\n // width: '40%'\n });\n // this.condition = true;\n\n dialogRef.afterClosed().subscribe(result => {\n if (result) {\n /// this.condition = true;\n this.dorseyService.DeleteCase(this.CaseID, this.PointerID).subscribe(data => {\n\n if (data.ok) {\n this.ifMaxRow();\n this.condition = false;\n this.dialogCall('Deleted successfully');\n }\n this.dynamicRows = 10;\n this.rowsOnPageSet = [];\n this.GetCase();\n });\n }\n });\n }\n\n GetTempSubActivity(ActivityID) {\n this.tempSubActivity = [];\n // this.SubActivityID=ActivityID;\n for (let i = 0; i < this.activityData.length; i++) {\n if (this.activityData[i].ParentID === ActivityID) {\n this.tempSubActivity.push(this.activityData[i]);\n }\n }\n }\n\n}\n@Component({\n selector: 'app-dialog',\n templateUrl: 'dialog.html',\n // styleUrls: ['dialog.css'],\n providers: [DorseyService, DatePipe],\n})\nexport class CaseDialogComponent {\n SLAViolation: string;\n currentUser: string\n condition = false;\n status = false;\n employeeData: any;\n processData: any;\n activityData: any;\n pointerTypeData: any;\n frustrationtypeData: any;\n departmentData: any;\n CaseID: string;\n teamData: any;\n severityData: any;\n statusData: any;\n dataSelf = '';\n EmployeeID: string;\n ProcessID: string;\n ActivityID: string;\n PointerTypeID: string;\n FrustrationTypeID: string;\n DepartmentID: string;\n TeamID: string;\n StatusID: string;\n SeverityID: string;\n Subject: string;\n Description: string;\n PointerID: string;\n tempActivity = [];\n tempTeam = [];\n tempFrustrationType = [];\n Comments: string;\n processCtrl = new FormControl();\n\n filteredProcess: Observable<any[]>\n\n checklist = [];\n selectedRows = [];\n checkEnable = false;\n checkAll = false;\n projectData: any;\n ProjectID: string;\n pointerData: any;\n CompanyID: string;\n subActivityStatus = false;\n SubActivityID: string;\n tempSubActivity = [];\n conditionActivity = '';\n updatedBy: any;\n updatedDate = new Date();\n btnDisabled = false;\n\n constructor(\n public dialogRef: MatDialogRef<CaseDialogComponent>,\n @Inject(MAT_DIALOG_DATA) public data: any, public dorseyService: DorseyService, private datepipe: DatePipe) {\n // dialogRef.disableClose=true;\n this.data = this.data.split('æææ');\n if (this.data[1] === 'true') {\n this.condition = true;\n } else if (this.data[1] === 'false') {\n this.condition = false;\n }\n else {\n if (this.data[1] === '') {\n this.conditionActivity = 'process';\n } else {\n this.conditionActivity = 'activity';\n }\n\n }\n this.data = this.data[0];\n }\n\n ngOnInit() {\n if (this.SubActivityID) {\n this.GetTempSubActivity(this.ActivityID);\n }\n }\n\n onYesClick() {\n this.dialogRef.close(true);\n }\n onNoClick(): void {\n this.dialogRef.close();\n }\n AddCase() {\n this.btnDisabled = true;\n\n setTimeout(() => {\n this.btnDisabled = false;\n }, 1000);\n let count = 0;\n const Editcount = 0;\n\n if (this.SeverityID === undefined || this.Subject == undefined || this.StatusID === undefined ||\n this.SeverityID === '' || this.StatusID === '' || this.Subject.trim() === '') {\n this.dataSelf = 'Please enter mandatory(*) fields';\n if (this.data === 'new') {\n\n }\n count++;\n }\n\n if (count === 0 && Editcount === 0) {\n this.dataSelf = '';\n if (this.data === 'new') {\n\n this.Saving(this.data);\n } else {\n this.Saving(this.data);\n }\n } else {\n\n }\n\n\n\n }\n\n\n\n GetPointer() {\n this.dorseyService.GetPointer(this.CompanyID).subscribe(subData => {\n\n subData = JSON.parse(subData['_body']);\n this.pointerData = subData;\n });\n }\n\n\n Saving(msg: string) {\n\n if (this.subActivityStatus) {\n this.ActivityID = this.SubActivityID;\n }\n if (this.subActivityStatus) {\n if (this.ActivityID === '' || this.SubActivityID === '') {\n this.dataSelf = 'Please enter mandatory(*) fields';\n return;\n }\n\n }\n\n const json = {\n PointerID: this.PointerID,\n CaseID: this.CaseID,\n SLAViloation: this.SLAViolation,\n Comment: this.Comments,\n UpdatedBy: this.currentUser\n };\n\n if (msg === 'edit') {\n this.dorseyService.SaveCase(json).subscribe(data => {\n if (data['_body'].toString() === 'true') {\n this.dialogRef.close(true);\n const pointerJson = {\n CompanyID: this.CompanyID,\n PointerID: this.PointerID,\n EmployeeID: \"0\",\n ProessID: this.ProcessID,\n ActivityID: this.ActivityID,\n PointerTypeID: this.PointerTypeID,\n FrustrationsTypeID: this.FrustrationTypeID,\n DepartmentID: \"0\",\n TeamID: this.TeamID,\n SeverityID: this.SeverityID,\n StatusID: this.StatusID,\n Subject: this.Subject,\n Description: this.Description,\n ProjectID: this.ProjectID,\n CreatedBy: this.currentUser,\n UpdatedBy: this.currentUser\n };\n\n\n this.dorseyService.SavePointer(pointerJson, 'No').subscribe(data => {\n if (data['_body'].toString() === 'true') {\n\n this.dialogRef.close(true);\n } else {\n this.dataSelf = 'Save failed';\n }\n });\n }\n });\n }\n\n }\n\n\n Clear() {\n this.dialogRef.close(false);\n }\n employee(event) {\n this.EmployeeID = event.value;\n }\n process(event) {\n this.ProcessID = event.value;\n for (let i = 0; i < this.processData.length; i++) {\n if (this.processData[i].ProcessID === this.ProcessID) {\n this.TeamID = this.processData[i].TeamID;\n }\n }\n this.tempActivity = [];\n this.tempSubActivity = [];\n this.tempTeam = [];\n this.ActivityID = '';\n\n if (this.subActivityStatus) {\n this.SubActivityID = '';\n this.ActivityID = '';\n }\n this.GetTempActivity();\n this.GetTempFrastrations();\n //this.GetTempTeam();\n }\n GetTempActivity() {\n for (let i = 0; i < this.activityData.length; i++) {\n\n if (this.activityData[i].ProcessID === this.ProcessID && this.activityData[i].ParentID === 0) {\n this.tempActivity.push(this.activityData[i]);\n }\n }\n }\n activity(event) {\n this.tempSubActivity = [];\n this.ActivityID = event.value;\n this.SubActivityID = '';\n this.GetTempSubActivity(this.ActivityID);\n }\n frustrationType(event) {\n this.FrustrationTypeID = event.value\n }\n GetTempFrastrations() {\n for (let i = 0; i < this.frustrationtypeData.length; i++) {\n if (this.frustrationtypeData[i].PointerTypeID === this.PointerTypeID) {\n this.tempFrustrationType.push(this.frustrationtypeData[i]);\n }\n }\n }\n\n department(event) {\n this.DepartmentID = event.value;\n }\n\n team(event) {\n this.TeamID = event.value;\n }\n\n severity(event) {\n this.SeverityID = event.value;\n }\n\n statusChange(event) {\n this.StatusID = event.value;\n }\n\n subactivity(event) {\n this.SubActivityID = event.value;\n }\n\n GetTempSubActivity(ActivityID) {\n this.tempSubActivity = [];\n for (let i = 0; i < this.activityData.length; i++) {\n if (this.activityData[i].ParentID === ActivityID) {\n this.tempSubActivity.push(this.activityData[i]);\n }\n }\n }\n\n}\n","import { Component } from \"@angular/core\";\r\n\r\n@Component({\r\n selector: 'message-dialog',\r\n templateUrl: 'dialog.html',\r\n})\r\nexport class MessageDialogComponent {\r\n}","import { Directive, ElementRef, HostListener, Input } from '@angular/core';\r\nimport { NgControl } from '@angular/forms';\r\n\r\n@Directive({\r\n selector: 'input[numbersOnly]'\r\n})\r\nexport class NumberDirective {\r\n\r\n constructor(private _el: ElementRef) { }\r\n\r\n @HostListener('input', ['$event']) onInputChange(event: any) {\r\n const initalValue = this._el.nativeElement.value;\r\n this._el.nativeElement.value = initalValue.replace(/[^0-9]*/g, '');\r\n if (initalValue !== this._el.nativeElement.value) {\r\n event.stopPropagation();\r\n }\r\n }\r\n}\r\n","export enum EmployeeLoginLevel {\r\n Company = 'Company',\r\n Department = 'Department',\r\n Team = 'Team'\r\n}","module.exports = \".mt-20 {\\n margin-top: 20px;\\n}\\n\\n.btn-margin {\\n margin-top: 9px;\\n margin-left: 2px;\\n}\\n\\n.btn-default {\\n background-color: #e6e8eb !important;\\n color: black;\\n}\\n\\n.orgDetails {\\n width: 100%;\\n display: flex;\\n margin: 10px;\\n flex-direction: row;\\n}\\n\\n.highlight {\\n background-color: lightblue;\\n}\\n\\n.p-t-10 {\\n padding-top: 10px;\\n}\\n\\ntable {\\n width: 100%;\\n font-size: smaller;\\n}\\n\\nth, td {\\n text-align: center;\\n font-size: smaller;\\n}\\n\\nth {\\n color: white;\\n background-color: #474747;\\n height: 35px;\\n font-size: 13px;\\n}\\n\\ntd {\\n height: 35px;\\n font-size: 13px;\\n}\\n\\ntable {\\n border-collapse: collapse;\\n}\\n\\ntable, th, td {\\n border: 1px solid #e1e1e1;\\n overflow: hidden;\\n word-wrap: break-word;\\n}\\n\\ntable.fixed {\\n table-layout: fixed;\\n}\\n\\ntable.fixed td {\\n overflow: hidden;\\n}\\n\\n.highlight td {\\n background: #C0C0C0;\\n}\\n\\n.rightArrow {\\n font-size: 5px;\\n}\\n\\n.fontLabel {\\n font-size: 18px;\\n}\\n\\n.warningMsg {\\n text-align: center;\\n color: red;\\n}\\n\\n.fa-arrow-down, .fa-arrow-up {\\n font-size: 10px;\\n}\\n\\n.Addcolor {\\n color: #ef5350 !important;\\n cursor: pointer !important;\\n}\\n\\n.removeColor {\\n color: #ccc !important;\\n cursor: none !important;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcGFueS9GOlxcTmlraWwgV29ya1xcUHJvamVjdHNcXERvcnNleVxcSGllcmFyY2h5IFNvdXJjZSBDb2RlXFxXb3JraW5nXFxkb3JzZXlHcm91cC9zcmNcXGFwcFxcY29tcGFueVxcY29tcGFueS5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvY29tcGFueS9jb21wYW55LmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0ksZ0JBQUE7QUNDSjs7QURFQTtFQUNJLGVBQUE7RUFDQSxnQkFBQTtBQ0NKOztBREVBO0VBQ0ksb0NBQUE7RUFDQSxZQUFBO0FDQ0o7O0FERUE7RUFDSSxXQUFBO0VBQ0EsYUFBQTtFQUNBLFlBQUE7RUFDQSxtQkFBQTtBQ0NKOztBREVBO0VBQ0ksMkJBQUE7QUNDSjs7QURFQTtFQUNJLGlCQUFBO0FDQ0o7O0FERUE7RUFDSSxXQUFBO0VBQ0Esa0JBQUE7QUNDSjs7QURDQTtFQUNJLGtCQUFBO0VBQ0Esa0JBQUE7QUNFSjs7QURDQTtFQUNDLFlBQUE7RUFDRCx5QkFBQTtFQUNBLFlBQUE7RUFDQyxlQUFBO0FDRUQ7O0FEQUE7RUFDSSxZQUFBO0VBQ0MsZUFBQTtBQ0dMOztBRERBO0VBQ0kseUJBQUE7QUNJSjs7QURGQTtFQUNJLHlCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxxQkFBQTtBQ0tKOztBREhBO0VBQWMsbUJBQUE7QUNPZDs7QUROQTtFQUFpQixnQkFBQTtBQ1VqQjs7QURUQTtFQUFlLG1CQUFBO0FDYWY7O0FEUkM7RUFDRyxjQUFBO0FDV0o7O0FEVEE7RUFDSSxlQUFBO0FDWUo7O0FEVkE7RUFDSSxrQkFBQTtFQUFtQixVQUFBO0FDY3ZCOztBRFpBO0VBQ0ksZUFBQTtBQ2VKOztBRGJBO0VBQ0kseUJBQUE7RUFDQSwwQkFBQTtBQ2dCSjs7QURkQztFQUNHLHNCQUFBO0VBQ0EsdUJBQUE7QUNpQkoiLCJmaWxlIjoic3JjL2FwcC9jb21wYW55L2NvbXBhbnkuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIubXQtMjB7XHJcbiAgICBtYXJnaW4tdG9wOiAyMHB4O1xyXG59XHJcblxyXG4uYnRuLW1hcmdpbntcclxuICAgIG1hcmdpbi10b3A6IDlweDtcclxuICAgIG1hcmdpbi1sZWZ0OiAycHg7XHJcbn1cclxuXHJcbi5idG4tZGVmYXVsdHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICNlNmU4ZWIgIWltcG9ydGFudDtcclxuICAgIGNvbG9yOiBibGFjaztcclxuICB9XHJcblxyXG4ub3JnRGV0YWlsc3tcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIG1hcmdpbjogMTBweDtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcbn1cclxuXHJcbi5oaWdobGlnaHR7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGJsdWU7XHJcbn1cclxuXHJcbi5wLXQtMTB7XHJcbiAgICBwYWRkaW5nLXRvcDogMTBweDtcclxufVxyXG5cclxudGFibGUge1xyXG4gICAgd2lkdGg6MTAwJTtcclxuICAgIGZvbnQtc2l6ZTogc21hbGxlcjtcclxufVxyXG50aCx0ZHtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIGZvbnQtc2l6ZTogc21hbGxlcjtcclxufVxyXG5cclxudGgge1xyXG4gY29sb3I6d2hpdGU7ICAgICBcclxuYmFja2dyb3VuZC1jb2xvcjogXHQjNDc0NzQ3O1xyXG5oZWlnaHQ6IDM1cHg7XHJcbiBmb250LXNpemU6IDEzcHg7XHJcbn1cclxudGQge1xyXG4gICAgaGVpZ2h0OiAzNXB4O1xyXG4gICAgIGZvbnQtc2l6ZTogMTNweDtcclxufVxyXG50YWJsZSB7XHJcbiAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xyXG59XHJcbnRhYmxlLCB0aCwgdGQge1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgI2UxZTFlMTtcclxuICAgIG92ZXJmbG93OmhpZGRlbjtcclxuICAgIHdvcmQtd3JhcDpicmVhay13b3JkO1xyXG59XHJcbnRhYmxlLmZpeGVkIHsgdGFibGUtbGF5b3V0OmZpeGVkOyB9XHJcbnRhYmxlLmZpeGVkIHRkIHsgb3ZlcmZsb3c6IGhpZGRlbjsgfVxyXG4uaGlnaGxpZ2h0IHRkIHtiYWNrZ3JvdW5kOiAjQzBDMEMwO31cclxuXHJcbi8vICAuZmF7XHJcbiAgLy8gIGZvbnQtc2l6ZTogMThweDsgXHJcbi8vICB9XHJcbiAucmlnaHRBcnJvd3tcclxuICAgIGZvbnQtc2l6ZTogNXB4OyBcclxuIH1cclxuLmZvbnRMYWJlbHtcclxuICAgIGZvbnQtc2l6ZTogMThweDsgXHJcbn1cclxuLndhcm5pbmdNc2cge1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO2NvbG9yOiByZWQ7XHJcbn1cclxuLmZhLWFycm93LWRvd24sIC5mYS1hcnJvdy11cHtcclxuICAgIGZvbnQtc2l6ZTogMTBweFxyXG59XHJcbi5BZGRjb2xvciB7XHJcbiAgICBjb2xvcjogI2VmNTM1MCAhaW1wb3J0YW50IDtcclxuICAgIGN1cnNvcjogcG9pbnRlciAhaW1wb3J0YW50IDsgIFxyXG4gfVxyXG4gLnJlbW92ZUNvbG9yIHtcclxuICAgIGNvbG9yOiAjY2NjICFpbXBvcnRhbnQgO1xyXG4gICAgY3Vyc29yOiBub25lICFpbXBvcnRhbnQgO1xyXG4gfVxyXG5cclxuICIsIi5tdC0yMCB7XG4gIG1hcmdpbi10b3A6IDIwcHg7XG59XG5cbi5idG4tbWFyZ2luIHtcbiAgbWFyZ2luLXRvcDogOXB4O1xuICBtYXJnaW4tbGVmdDogMnB4O1xufVxuXG4uYnRuLWRlZmF1bHQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTZlOGViICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBibGFjaztcbn1cblxuLm9yZ0RldGFpbHMge1xuICB3aWR0aDogMTAwJTtcbiAgZGlzcGxheTogZmxleDtcbiAgbWFyZ2luOiAxMHB4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xufVxuXG4uaGlnaGxpZ2h0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRibHVlO1xufVxuXG4ucC10LTEwIHtcbiAgcGFkZGluZy10b3A6IDEwcHg7XG59XG5cbnRhYmxlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGZvbnQtc2l6ZTogc21hbGxlcjtcbn1cblxudGgsIHRkIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LXNpemU6IHNtYWxsZXI7XG59XG5cbnRoIHtcbiAgY29sb3I6IHdoaXRlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDc0NzQ3O1xuICBoZWlnaHQ6IDM1cHg7XG4gIGZvbnQtc2l6ZTogMTNweDtcbn1cblxudGQge1xuICBoZWlnaHQ6IDM1cHg7XG4gIGZvbnQtc2l6ZTogMTNweDtcbn1cblxudGFibGUge1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xufVxuXG50YWJsZSwgdGgsIHRkIHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2UxZTFlMTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgd29yZC13cmFwOiBicmVhay13b3JkO1xufVxuXG50YWJsZS5maXhlZCB7XG4gIHRhYmxlLWxheW91dDogZml4ZWQ7XG59XG5cbnRhYmxlLmZpeGVkIHRkIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLmhpZ2hsaWdodCB0ZCB7XG4gIGJhY2tncm91bmQ6ICNDMEMwQzA7XG59XG5cbi5yaWdodEFycm93IHtcbiAgZm9udC1zaXplOiA1cHg7XG59XG5cbi5mb250TGFiZWwge1xuICBmb250LXNpemU6IDE4cHg7XG59XG5cbi53YXJuaW5nTXNnIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjb2xvcjogcmVkO1xufVxuXG4uZmEtYXJyb3ctZG93biwgLmZhLWFycm93LXVwIHtcbiAgZm9udC1zaXplOiAxMHB4O1xufVxuXG4uQWRkY29sb3Ige1xuICBjb2xvcjogI2VmNTM1MCAhaW1wb3J0YW50O1xuICBjdXJzb3I6IHBvaW50ZXIgIWltcG9ydGFudDtcbn1cblxuLnJlbW92ZUNvbG9yIHtcbiAgY29sb3I6ICNjY2MgIWltcG9ydGFudDtcbiAgY3Vyc29yOiBub25lICFpbXBvcnRhbnQ7XG59Il19 */\"","import { Component, OnInit, ViewChild, Inject } from '@angular/core';\nimport { DorseyService } from '../dorsey.service';\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { MatPaginator } from '@angular/material/paginator';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { LocalStorageService } from 'ngx-webstorage';\nimport { LoginComponent } from '../login/login.component';\nimport { OrganizationService } from '../services/organization.service'\nimport { CompanyDetails, OrganizationLicenseDetails } from './company.model';\nimport { CompanyService } from '../services/company.service';\nimport { MatSlideToggleChange, ThemePalette } from '@angular/material';\nimport { ValidationDialogComponent } from '../add-score-card/validation-dialog';\nimport { LocationStrategy } from '@angular/common';\nimport { copyRight } from '../copyRight.model';\n\n@Component({\n selector: 'app-company',\n templateUrl: './company.component.html',\n styleUrls: ['./company.component.scss'],\n providers: [DorseyService],\n\n})\n\nexport class CompanyComponent implements OnInit {\n isMainEntity: boolean;\n EnableSubCompanies: boolean = false;\n NoOfSubCompanies: number;\n EnableScoreCard: boolean = false;\n parentID: number;\n oldCompanyName: string = '';\n companDetails: CompanyDetails;\n companyData: Array<CompanyDetails> = [];\n companyName: string = '';\n dataSelf = '';\n CompanyID: string;\n condition: boolean;\n searchtext: string = '';\n // p: number = 1;\n // rowsOnPage = 10;\n // rowsOnPageSet = [];\n // rowCount: any;\n // dynamicRows = 10;\n isDesc: boolean = false;\n column = '';\n direction: number;\n arrow = true;\n userVisible = false;\n // companyPaging = false;\n displayedColumns: string[] = ['position', 'name'];\n dataSource = new MatTableDataSource();\n saveFilter: Array<CompanyDetails> = [];\n UserName: string;\n Password: string;\n isDisable = false;\n isSearchDisable = false;\n userData: any;\n userRoleData: any;\n UserID: string;\n currentUser: string;\n MenuPermissions: any;\n emailUnique: any;\n menuData: any;\n menuID: string;\n menuName: string;\n FirstName: string;\n LastName: string;\n adminUname = '';\n adminPwd = '';\n adminEmail: string;\n adminPassword: string;\n teamData: any;\n loginUsername: any;\n adminUserName = '';\n organizationId: number;\n userRoleName: string;\n organizationDetails: any;\n showSubEntities: boolean = false;\n parentCompanyId: number;\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\n rolesData: any;\n isSuperAdmin: boolean = false;\n subEntityLevel: number = 0;\n currentRow: number;\n errorMessages: string[] = [];\n entityName: string;\n color: ThemePalette = 'primary';\n isCompanyLogin: boolean;\n isSubCompanyLogin: boolean;\n companiesCountForOrganization: number;\n licenseDetails: OrganizationLicenseDetails;\n\n constructor(private dorseyService: DorseyService,\n public dialog: MatDialog,\n private location: LocationStrategy,\n private storage: LocalStorageService,\n private login: LoginComponent,\n private organizationService: OrganizationService,\n private companyService: CompanyService) {\n this.currentUser = this.storage.retrieve('user');\n this.menuData = this.storage.retrieve('menuData');\n this.MenuPermissions = this.storage.retrieve('MenuPermissions');\n this.adminUserName = this.storage.retrieve('adminUname');\n this.adminEmail = this.storage.retrieve('username');\n this.adminPassword = this.storage.retrieve('password');\n this.loginUsername = this.storage.retrieve('loginUsername');\n this.isCompanyLogin = this.storage.retrieve(\"isCompanyLogin\");\n this.organizationDetails = this.storage.retrieve(\"OrganizationDetails\");\n this.CompanyID = this.storage.retrieve(\"companyID\");\n this.organizationId = this.organizationDetails.OrganizationId;\n this.isSubCompanyLogin = this.storage.retrieve(\"isSubCompanyLogin\");\n this.isSuperAdmin = this.organizationDetails.IsSuperAdmin;\n\n history.pushState(null, null, window.location.href);\n this.location.onPopState(() => {\n history.pushState(null, null, window.location.href);\n });\n }\n\n ngOnInit(): void {\n this.getCompaniesCountByOrganizationId();\n this.GetUsers();\n this.GetMenuMaster();\n this.GetTeam();\n if (this.menuData) {\n let tempdata = this.menuData;\n this.menuData = tempdata.find(x => x.MenuName.toString().toLowerCase() === 'company');\n if (this.menuData) {\n this.menuName = this.menuData[\"MenuName\"];\n this.menuID = this.menuData[\"MenuID\"];\n }\n }\n this.dataSource.paginator = this.paginator;\n if (this.isCompanyLogin) {\n this.getCompanyDetailsByCompanyId(Number(this.CompanyID));\n }\n else if (this.organizationId) {\n this.getCompanyDetailsByOrganizationId(this.organizationId);\n }\n\n }\n\n GetTeam() {\n if (this.CompanyID) {\n this.dorseyService.GetTeam(this.CompanyID).subscribe(subData => {\n subData = JSON.parse(subData['_body']);\n this.teamData = subData;\n\n });\n }\n }\n\n GetMenuMaster() {\n this.dorseyService.GetMenuMaster().subscribe(subData => {\n subData = JSON.parse(subData['_body']);\n this.menuData = subData;\n });\n }\n\n getCompanyDetailsByCompanyId(companyId: number): void {\n this.organizationService.getCompanyDetailsByCompanyId(companyId, this.organizationId).subscribe(resp => {\n this.companyData = resp.Data;\n // this.rowsOnPageSet = [];\n // this.dynamicRows = 10;\n if (this.companyData.length === 0) {\n // this.companyPaging = false;\n this.isDisable = true;\n this.isSearchDisable = true;\n }\n else {\n this.saveFilter = JSON.parse(JSON.stringify(this.companyData));\n // // this.companyPaging = true;\n this.isDisable = false;\n this.isSearchDisable = false;\n // this.rowCount = this.companyData.length;\n // this.dataSource = new MatTableDataSource(this.companyData);\n // while (this.dynamicRows < this.rowCount) {\n // this.rowsOnPageSet.push(this.dynamicRows);\n // this.dynamicRows = this.dynamicRows + 10;\n // }\n // if (!this.rowsOnPageSet.includes(this.rowCount))\n // this.rowsOnPageSet.push(this.rowCount);\n // if (this.rowsOnPageSet.length === 1) {\n // if (this.rowsOnPageSet[0] <= 10)\n // this.rowsOnPage = this.rowsOnPageSet[0];\n // }\n }\n });\n }\n\n getCompanyDetailsByOrganizationId(organizationId: number): void {\n this.organizationService.getCompanyDetailsByOrganizationId(organizationId).subscribe(resp => {\n this.companyData = resp.Data;\n // this.rowsOnPageSet = [];\n // this.dynamicRows = 10;\n if (this.companyData.length === 0) {\n // this.companyPaging = false;\n this.isDisable = true;\n this.isSearchDisable = true;\n }\n else {\n this.saveFilter = JSON.parse(JSON.stringify(this.companyData));\n // this.companyPaging = true;\n this.isDisable = false;\n this.isSearchDisable = false;\n // this.rowCount = this.companyData.length;\n // this.dataSource = new MatTableDataSource(this.companyData);\n // while (this.dynamicRows < this.rowCount) {\n // this.rowsOnPageSet.push(this.dynamicRows);\n // this.dynamicRows = this.dynamicRows + 10;\n // }\n // if (!this.rowsOnPageSet.includes(this.rowCount))\n // this.rowsOnPageSet.push(this.rowCount);\n // if (this.rowsOnPageSet.length === 1) {\n // if (this.rowsOnPageSet[0] <= 10)\n // this.rowsOnPage = this.rowsOnPageSet[0];\n // }\n }\n });\n }\n\n GetUsers() {\n this.dorseyService.GetUsersList().subscribe(users => {\n this.userData = JSON.parse(users['_body']);\n });\n }\n\n GetUserRoleAssignment() {\n this.dorseyService.GetUserRoleAssignment().subscribe(userRoles => {\n this.userRoleData = JSON.parse(userRoles['_body']);\n });\n }\n\n Searchtext() {\n this.companyData = this.saveFilter;\n let tempCompany = this.companyData.filter(\n (item) => {\n return (\n (item.CompanyName !== null && item.CompanyName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n (item.Email !== null && item.Email.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n (item.Phone1 !== null && item.Phone1.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1)\n );\n }\n\n );\n this.companyData = tempCompany;\n if (this.companyData.length == 0) {\n this.isDisable = true;\n } else {\n this.isDisable = false;\n }\n if (this.searchtext === '') {\n this.companyData = this.saveFilter;\n // this.dynamicRows = 10;\n // this.rowsOnPageSet = [];\n // this.rowCount = this.companyData.length;\n // while (this.dynamicRows < this.rowCount) {\n // this.rowsOnPageSet.push(this.dynamicRows);\n // this.dynamicRows = this.dynamicRows + 10;\n // }\n // if (!this.rowsOnPageSet.includes(this.rowCount))\n // this.rowsOnPageSet.push(this.rowCount);\n // if (this.rowsOnPageSet) {\n\n // this.rowsOnPage = this.rowsOnPageSet[0];\n // }\n this.isDisable = false;\n }\n //else {\n\n // this.rowCount = tempCompany.length;\n // this.dynamicRows = 10;\n // this.rowsOnPageSet = [];\n // while (this.dynamicRows < this.rowCount) {\n // this.rowsOnPageSet.push(this.dynamicRows);\n // this.dynamicRows = this.dynamicRows + 10;\n // }\n // if (!this.rowsOnPageSet.includes(this.rowCount)) {\n // this.rowsOnPageSet.push(this.rowCount);\n // if (this.rowsOnPageSet)\n // this.rowsOnPage = this.rowsOnPageSet[0];\n // }\n\n // if (this.rowsOnPageSet.length === 1) {\n // if (this.rowsOnPageSet[0] <= 10)\n // this.rowsOnPage = this.rowsOnPageSet[0];\n // }\n //}\n }\n\n exportAsXLSX() {\n let allData = JSON.parse(JSON.stringify(this.companyData));\n for (let i = 0; i < allData.length; i++) {\n allData[i].Company = allData[i].CompanyName;\n allData[i][\"Email \"] = allData[i].Email;\n allData[i].Phone = allData[i].Phone1;\n delete (allData[i].CompanyName);\n delete (allData[i].Phone1);\n delete (allData[i].Address1);\n delete (allData[i].Email);\n delete (allData[i].Address2);\n delete (allData[i].Country);\n delete (allData[i].CIty);\n delete (allData[i].State);\n delete (allData[i].Pincode);\n delete (allData[i].Phone1);\n delete (allData[i].Phone2);\n delete (allData[i].ParentID);\n delete (allData[i].CompanyID);\n delete (allData[i].UpdatedBy);\n delete (allData[i].UpdatedDate);\n delete (allData[i].CreatedBy);\n delete (allData[i].CreatedDate);\n delete (allData[i].IsActive);\n }\n this.dorseyService.generateExcel(allData, 'entity' + \"_\" + (new Date().getMonth() + 1) + '-' + new Date().getDate() + '-' + new Date().getFullYear(), 'Company', \"Company: \" + this.loginUsername, '', \"Company Report\", copyRight, 'FFFFFF00', 'FF0000FF');\n }\n\n enableScoreCardChange(event: MatSlideToggleChange, row): void {\n var msg = row.EnableScoreCard ? 'enable' : 'disable';\n const dialogRef = this.dialog.open(CompanyDialogComponent, {\n panelClass: 'custom-dialog-container',\n data: 'Are you sure you want to ' + msg + ' score card for this entity: ' + row.CompanyName + '?æææ' + true,\n });\n dialogRef.afterClosed().subscribe(result => {\n this.companDetails = row;\n if (result) {\n this.companDetails.EnableScoreCard = event.checked;\n this.companyService.UpdateEnableScoreCard(this.companDetails).subscribe(resp => {\n if (resp.Data) {\n this.condition = false;\n this.dialogCall('Updated successfully');\n }\n });\n }\n else {\n this.companDetails.EnableScoreCard = !this.companDetails.EnableScoreCard;\n }\n });\n }\n\n getCompaniesCountByOrganizationId(): void {\n this.organizationService.getCompaniesCountByOrganizationId(this.organizationId).subscribe(resp => {\n this.licenseDetails = resp.Data[0];\n this.organizationService.totalLicenses.next(this.licenseDetails.NotUsedLicenses);\n this.organizationService.totalLicenses$ = this.organizationService.totalLicenses.asObservable();\n });\n }\n\n OpenCompany(): void {\n this.searchtext = '';\n this.errorMessages = [];\n this.organizationService.getCompaniesCountByOrganizationId(this.organizationId).subscribe(resp => {\n this.licenseDetails = resp.Data[0];\n\n if (this.licenseDetails.NotUsedLicenses <= 0) {\n this.errorMessages.push('Cannot create new entity as there are no licenses');\n this.dialog.open(ValidationDialogComponent, {\n data: {\n errorMessages: this.errorMessages\n }\n });\n return;\n }\n this.licenseDetails.NotUsedLicenses = this.licenseDetails.NotUsedLicenses - 1;\n this.organizationService.totalLicenses.next(this.licenseDetails.NotUsedLicenses);\n this.organizationService.totalLicenses$ = this.organizationService.totalLicenses.asObservable();\n this.companDetails = {\n CompanyID: 0,\n CompanyName: '',\n ParentID: null,\n Address1: '',\n Address2: '',\n Country: '',\n State: '',\n City: '',\n Pincode: '',\n Email: '',\n Phone1: '',\n Phone2: '',\n EnableScoreCard: false,\n EnableSubCompanies: false,\n NoOfSubCompanies: 0,\n OrganizationID: this.organizationId,\n UserID: 0,\n UserName: '',\n Password: '',\n FirstName: '',\n LastName: '',\n EmployeeID: 0,\n CreatedBy: this.currentUser,\n UpdatedBy: this.currentUser,\n RowID: 0,\n RoleID: 0\n }\n this.dialogCall('new');\n });\n\n }\n\n sort(property) {\n this.arrow = !this.arrow;\n this.isDesc = !this.isDesc; //change the direction\n this.column = property;\n this.direction = this.isDesc ? 1 : -1;\n }\n\n getSubCompaniesCountByCompanyId(companyId: number): void {\n if (companyId) {\n\n }\n }\n\n entityLicenses: number;\n subCompanyCount: number;\n remainingEntityLicenses: number;\n viewSubEntities(element): void {\n this.currentRow = element.CompanyID;\n this.parentCompanyId = element.CompanyID;\n this.subEntityLevel = this.subEntityLevel + 1;\n this.companyService.getSubCompaniesCountByCompanyId(element.CompanyID).subscribe(resp => {\n this.companyService.getSubCompanyDetailsByCompanyId(element.CompanyID).subscribe(resp1 => {\n var subEntitiesAlreadyAssigned = 0;\n if (resp1.Data) {\n resp1.Data.forEach(ent => {\n subEntitiesAlreadyAssigned = subEntitiesAlreadyAssigned + ent.NoOfSubCompanies;\n });\n }\n this.subCompanyCount = resp.Data + subEntitiesAlreadyAssigned;\n this.entityLicenses = element.NoOfSubCompanies;\n this.remainingEntityLicenses = this.entityLicenses - this.subCompanyCount;\n if (this.subEntityLevel > 1) {\n this.showSubEntities = false;\n this.entityName = '';\n setTimeout(() => {\n this.showSubEntities = true;\n this.entityName = element.CompanyName;\n }, 200);\n } else {\n this.showSubEntities = true;\n this.entityName = element.CompanyName;\n }\n });\n });\n }\n\n Navigate(element) {\n this.login.GetTeam(element.CompanyID);\n this.dorseyService.GetUsersList().subscribe(users => {\n this.userData = JSON.parse(users['_body']);\n let tempUser = this.userData.filter(x => x.CompanyID.toString() === element.CompanyID.toString() && x.EmployeeID.toString() === '0');\n this.login.GetUserRoleAssignment();\n this.storage.store(\"adminEmail\", this.adminEmail);\n this.storage.store(\"adminPassword\", this.adminPassword);\n this.storage.store(\"adminUserName\", this.adminUserName);\n this.storage.store(\"userData\", this.userData);\n this.storage.store(\"companyNavigate\", true);\n var loginLevel = this.storage.retrieve(\"loginLevel\");\n if (loginLevel) {\n this.storage.store(\"loginLevel\", loginLevel);\n }\n if (tempUser.length > 0) {\n this.login.LoginWithCompany(tempUser[0].UserName, tempUser[0].Password, true);\n }\n });\n }\n\n dialogCall(msg: string) {\n this.GetUsers();\n const dialogRef = this.dialog.open(CompanyDialogComponent, {\n panelClass: 'custom-dialog-container',\n data: msg + 'æææ' + false,\n });\n dialogRef.componentInstance.companyData = this.companyData;\n dialogRef.componentInstance.companyDetails = this.companDetails;\n dialogRef.componentInstance.userListData = this.userData;\n dialogRef.componentInstance.currentUser = this.currentUser;\n dialogRef.componentInstance.isSuperAdmin = this.isSuperAdmin;\n dialogRef.componentInstance.entityLicenses = this.entityLicenses;\n dialogRef.componentInstance.licenseDetails = this.licenseDetails;\n\n if (msg == 'new') {\n this.searchtext = '';\n this.getCompanyDetailsByOrganizationId(this.organizationId);\n }\n if (msg === 'edit') {\n this.searchtext = '';\n }\n dialogRef.afterClosed().subscribe(result => {\n if (this.searchtext !== '' && this.searchtext !== undefined) {\n this.Searchtext();\n\n }\n else {\n this.getCompanyDetailsByOrganizationId(this.organizationId);\n }\n if (result && result.toString() === 'true') {\n let statusMsg = '';\n if (msg === 'new') {\n statusMsg = 'Saved successfully';\n }\n else {\n statusMsg = 'Updated successfully';\n }\n // this.dynamicRows = 10;\n const dialogRefsub = this.dialog.open(CompanyDialogComponent, {\n panelClass: 'custom-dialog-container',\n data: statusMsg + 'æææ' + false,\n });\n setTimeout(() => {\n this.getCompanyDetailsByOrganizationId(this.organizationId);\n this.GetUsers();\n }, 500);\n\n\n dialogRefsub.afterClosed().subscribe(result1 => {\n\n this.getCompaniesCountByOrganizationId();\n if (this.searchtext !== '') {\n this.Searchtext();\n }\n else {\n this.getCompanyDetailsByOrganizationId(this.organizationId);\n this.GetUsers();\n }\n });\n } else {\n this.getCompaniesCountByOrganizationId();\n }\n });\n }\n\n EditCompany(companyRow) {\n this.companDetails = companyRow;\n this.entityLicenses = this.companDetails.NoOfSubCompanies;\n this.storage.store('CName', this.companDetails.CompanyName);\n this.dialogCall('edit');\n }\n\n // ifMaxRow() {\n // if (this.rowsOnPage == this.companyData.length) {\n // this.rowsOnPage = this.rowsOnPage - 1;\n // }\n // }\n\n DeleteCompany(element) {\n this.CompanyID = element.CompanyID;\n this.companyService.getSubCompaniesCountByCompanyId(element.CompanyID).subscribe(resp => {\n if (resp.Data > 0) {\n this.dialogCall(\"Delete Failed. This entity has sub entities\");\n return;\n } else {\n const dialogRef = this.dialog.open(CompanyDialogComponent, {\n panelClass: 'custom-dialog-container',\n data: 'Are you sure you want to delete entity: ' + element.CompanyName + '?æææ' + true,\n });\n dialogRef.afterClosed().subscribe(result => {\n if (result) {\n this.companyService.deleteCompany(Number(this.CompanyID)).subscribe(resp => {\n if (resp.Data) {\n // this.ifMaxRow();\n this.condition = false;\n this.dialogCall('Deleted successfully');\n this.showSubEntities = false;\n }\n // this.dynamicRows = 10;\n // this.rowsOnPageSet = [];\n this.getCompanyDetailsByOrganizationId(this.organizationId);\n });\n }\n });\n }\n });\n }\n}\n\n@Component({\n selector: 'app-dialog',\n templateUrl: 'dialog.html',\n providers: [DorseyService],\n})\nexport class CompanyDialogComponent {\n public breakpoint: number; // Breakpoint observer code\n saveClick = false;\n CompanyID: number;\n dataSelf = '';\n condition: boolean;\n addCompany: string;\n companyData: Array<CompanyDetails> = [];\n companyDetails: CompanyDetails;\n currentUser: string;\n userListData: any;\n userdata: any;\n oldCompanyName: string;\n btnDisabled = false;\n organizationID: number;\n parentID: number;\n isSuperAdmin: boolean;\n companiesCountForOrganization: number;\n licenseDetails: OrganizationLicenseDetails;\n organizationDetails: any;\n errorMessages: string[] = [];\n entityLicenses: number;\n remainingEntityLicenses: number;\n subEntityLicenses: number;\n existingLicenses: number;\n subCompanyCount: number = 0;\n constructor(\n public dialogRef: MatDialogRef<CompanyDialogComponent>,\n @Inject(MAT_DIALOG_DATA) public data: any,\n public dorseyService: DorseyService,\n private storage: LocalStorageService,\n private organizationService: OrganizationService,\n private companyService: CompanyService,\n public dialog: MatDialog) {\n this.data = this.data.split('æææ');\n if (this.data[1] === 'true') {\n this.condition = true;\n } else {\n this.condition = false;\n }\n this.data = this.data[0];\n this.organizationDetails = this.storage.retrieve(\"OrganizationDetails\");\n }\n\n ngOnInit() {\n this.companyData = JSON.parse(JSON.stringify(this.companyData));\n if (this.data === 'new') {\n this.companyDetails.ParentID = this.CompanyID;\n }\n this.breakpoint = window.innerWidth <= 1000 ? 1 : 3;\n this.btnDisabled = this.isSuperAdmin ? true : false;\n if (this.data !== 'new') {\n this.getSubCompaniesCountByCompanyId();\n this.getCompaniesCountByOrganizationId();\n }\n }\n\n getCompaniesCountByOrganizationId(): void {\n this.organizationService.getCompaniesCountByOrganizationId(this.organizationDetails.OrganizationId).subscribe(resp => {\n this.licenseDetails = resp.Data[0];\n this.organizationService.totalLicenses.next(this.licenseDetails.NotUsedLicenses);\n this.organizationService.totalLicenses$ = this.organizationService.totalLicenses.asObservable();\n });\n }\n\n getSubCompaniesCountByCompanyId(): void {\n if (this.companyDetails) {\n this.companyService.getSubCompaniesCountByCompanyId(this.companyDetails.CompanyID).subscribe(resp => {\n this.subCompanyCount = resp.Data;\n });\n }\n }\n\n vaidateCompany(): void {\n\n\n this.btnDisabled = true;\n setTimeout(() => {\n this.btnDisabled = false;\n }, 1000);\n if (!this.companyDetails.FirstName.trim() ||\n !this.companyDetails.LastName.trim() ||\n !this.companyDetails.CompanyName.trim() ||\n !this.companyDetails.Address1.trim() ||\n !this.companyDetails.UserName.trim() ||\n !this.companyDetails.Country.trim() ||\n !this.companyDetails.State.trim() ||\n !this.companyDetails.City.trim() ||\n !this.companyDetails.Pincode ||\n !this.companyDetails.Phone1 ||\n !this.companyDetails.Password ||\n !this.companyDetails.Email ||\n (this.companyDetails.EnableSubCompanies &&\n this.companyDetails.NoOfSubCompanies === 0\n )) {\n this.dataSelf = 'Please enter mandatory(*) fields';\n return;\n }\n else {\n var mailformat = /^\\w+([\\.-]?\\w+)*@\\w+([\\.-]?\\w+)*(\\.\\w{2,3})+$/;\n if (!this.companyDetails.Email.match(mailformat)) {\n this.dataSelf = 'Please enter valid email';\n this.saveClick = false;\n return;\n }\n }\n //for main entity license validation\n if (this.licenseDetails && (!this.companyDetails.ParentID || this.companyDetails.ParentID === 0)) {\n if (this.data === 'new') {\n if (this.companyDetails.NoOfSubCompanies > this.licenseDetails.NotUsedLicenses) {\n this.dataSelf = 'Cannot provide sub entities as there are no Licenses';\n return;\n }\n this.dorseyService.GetUsersList().subscribe(users => {\n this.userListData = JSON.parse(users['_body']);\n this.saveCompany(this.data);\n });\n } else {\n this.companyService.getSubCompanyDetailsByCompanyId(this.companyDetails.CompanyID).subscribe(resp => {\n var subEntitiesAlreadyAssigned = 0;\n if (resp.Data) {\n resp.Data.forEach(ent => {\n subEntitiesAlreadyAssigned = subEntitiesAlreadyAssigned + ent.NoOfSubCompanies;\n });\n }\n var totalL = this.entityLicenses + this.licenseDetails.NotUsedLicenses;\n if (this.subCompanyCount + subEntitiesAlreadyAssigned > this.companyDetails.NoOfSubCompanies) {\n this.dataSelf = 'No. of sub entities cannot be less than already created sub entities';\n return;\n }\n else if (this.companyDetails.NoOfSubCompanies > totalL) {\n this.dataSelf = 'Cannot provide sub entities as there are no Licenses';\n return;\n }\n this.dorseyService.GetUsersList().subscribe(users => {\n this.userListData = JSON.parse(users['_body']);\n this.saveCompany(this.data);\n });\n });\n }\n } else { //for sub entity license validation\n\n if (this.data !== 'new') {\n this.companyService.getSubCompanyDetailsByCompanyId(this.companyDetails.CompanyID).subscribe(resp => {\n var subEntitiesAlreadyAssigned = 0;\n if (resp.Data) {\n resp.Data.forEach(ent => {\n subEntitiesAlreadyAssigned = subEntitiesAlreadyAssigned + ent.NoOfSubCompanies;\n });\n }\n\n if (this.subCompanyCount + subEntitiesAlreadyAssigned > this.companyDetails.NoOfSubCompanies) {\n this.dataSelf = 'No. of sub entities cannot be less than already created sub entities';\n return;\n } else if (this.companyDetails.NoOfSubCompanies > this.remainingEntityLicenses) {\n this.dataSelf = 'Cannot provide sub entities as there are no Licenses';\n return;\n }\n this.dorseyService.GetUsersList().subscribe(users => {\n this.userListData = JSON.parse(users['_body']);\n this.saveCompany(this.data);\n });\n });\n } else {\n if (this.companyDetails.NoOfSubCompanies > this.remainingEntityLicenses) {\n this.dataSelf = 'Cannot provide sub entities as there are no Licenses';\n return;\n }\n this.dorseyService.GetUsersList().subscribe(users => {\n this.userListData = JSON.parse(users['_body']);\n this.saveCompany(this.data);\n });\n }\n }\n }\n\n enableSubCompanies(event: MatSlideToggleChange, element: CompanyDetails): void {\n\n // if (element.EnableSubCompanies == false && this.subCompanyCount > 0) {\n // this.errorMessages.push('Cannot disable Sub Entites as there are already sub entites created for the entity: ' + element.CompanyName);\n // }\n // if (this.errorMessages.length != 0) {\n // this.dialog.open(ValidationDialogComponent, {\n // data: {\n // errorMessages: this.errorMessages\n // }\n // });\n // element.EnableSubCompanies = !event.checked;\n // this.companyDetails.EnableSubCompanies = !event.checked;\n // console.log(this.companyDetails)\n // return;\n // } else {\n // element.NoOfSubCompanies = element.EnableSubCompanies ? element.NoOfSubCompanies : 0;\n // }\n\n element.NoOfSubCompanies = element.EnableSubCompanies ? element.NoOfSubCompanies : 0;\n }\n\n saveCompany(msg: string) {\n if (this.companyDetails.Pincode.length < 5) {\n this.dataSelf = \"Zip code should be 5 digits\";\n this.saveClick = false;\n setTimeout(() => {\n this.dataSelf = \"\";\n }, 2000);\n return;\n }\n if (this.companyDetails.CompanyID) {\n this.companyDetails.UpdatedBy = this.currentUser;\n }\n if (msg === 'new') {\n if (this.companyData && this.companyData.find(ent => ent.CompanyName.toLowerCase().trim() == this.companyDetails.CompanyName.toLowerCase().trim())) {\n this.dataSelf = 'Entity name already exist';\n return;\n }\n if (this.userListData && this.userListData.find(ent => ent.UserName.toLowerCase().trim() == this.companyDetails.UserName.toLowerCase().trim())) {\n this.dataSelf = 'UserName already exist';\n return;\n }\n this.companyService.saveCompany(this.companyDetails).subscribe(resp => {\n if (resp.Data) {\n this.dataSelf = 'Saved successfully';\n setTimeout(() => {\n this.dataSelf = '';\n this.dorseyService.GetUsersList().subscribe(users => {\n this.userListData = JSON.parse(users['_body']);\n });\n }, 2000);\n this.dialogRef.close(true);\n } else {\n this.dataSelf = 'Save failed';\n }\n })\n } else {\n if (this.companyDetails.CompanyName.toLowerCase().trim() !== this.storage.retrieve('CName').toLowerCase().trim()) {\n var data = this.companyData.filter(ent => ent.CompanyName.toLowerCase().trim() != this.storage.retrieve('CName').toLowerCase().trim());\n if (data.find(ent => ent.CompanyName.toLowerCase().trim() == this.companyDetails.CompanyName.toLowerCase().trim())) {\n this.dataSelf = 'Entity name already exist';\n return;\n }\n }\n\n if (this.companyDetails.UserName !== this.storage.retrieve('Uname')) {\n this.userListData = this.userListData.filter(ent => ent.UserID !== this.companyDetails.UserID);\n if (this.userListData && this.userListData.find(ent => ent.UserName.toLowerCase().trim() == this.companyDetails.UserName.toLowerCase().trim())) {\n this.dataSelf = 'UserName already exist';\n return;\n }\n }\n this.companyService.saveCompany(this.companyDetails).subscribe(resp => {\n if (resp.Data === true) {\n this.organizationService.getCompaniesCountByOrganizationId(this.organizationDetails.OrganizationId).subscribe(resp => {\n this.licenseDetails = resp.Data[0];\n this.organizationService.totalLicenses.next(this.licenseDetails.NotUsedLicenses);\n this.organizationService.totalLicenses$ = this.organizationService.totalLicenses.asObservable();\n });\n this.dialogRef.close(true);\n } else {\n this.dataSelf = 'Updated successfully';\n }\n this.getCompaniesCountByOrganizationId();\n });\n }\n }\n\n clear(): void {\n this.dialogRef.close(false);\n }\n\n onResize(event) {\n this.breakpoint = (event.target.innerWidth <= 1000) ? 1 : 3;\n }\n onYesClick() {\n this.dialogRef.close(true);\n }\n onNoClick(): void {\n this.dialogRef.close();\n }\n\n keyPress(event: any) {\n const pattern = /[0-9\\+\\-\\ ]/;\n\n let inputChar = String.fromCharCode(event.charCode);\n if (event.keyCode != 8 && !pattern.test(inputChar)) {\n event.preventDefault();\n }\n }\n\n isAlpha(evt) {\n var keyCode = (evt.which) ? evt.which : evt.keyCode\n if ((keyCode < 65 || keyCode > 90) && (keyCode < 97 || keyCode > 123) && keyCode != 32)\n return false;\n return true;\n }\n\n validatePhone(event: any) {\n if ((event.key) == \"Backspace\" || event.key == \"ArrowLeft\" || event.key == \"ArrowRight\") {\n return;\n } else {\n const regexpattern = '^[0-9]\\d*$';\n if (!event.key.match(regexpattern)) {\n event.preventDefault();\n }\n }\n\n }\n\n validateEmail(event: any) {\n var re = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n if (!this.companyDetails.Email) {\n if (event.keyCode == 32) {\n event.preventDefault();\n }\n }\n }\n\n validate() {\n this.dataSelf = '';\n if (this.storage.retrieve('CName'))\n if (this.companyDetails.CompanyName.toLowerCase().trim() !== this.storage.retrieve('CName').toLowerCase().trim()) {\n var data = this.companyData.filter(ent => ent.CompanyName.toLowerCase().trim() != this.storage.retrieve('CName').toLowerCase().trim());\n if (data.find(ent => ent.CompanyName.toLowerCase().trim() == this.companyDetails.CompanyName.toLowerCase().trim())) {\n this.dataSelf = 'Entity name already exist';\n return;\n }\n }\n }\n\n valZero() {\n var re = /^(?=.*\\d)(?=.*[1-9]).{1,16}$/;\n if (this.companyDetails.Phone1 !== '') {\n if (!this.companyDetails.Phone1.match(re)) {\n this.dataSelf = \"Phone number invalid\";\n this.saveClick = false;\n this.companyDetails.Phone1 = \"\";\n\n setTimeout(() => {\n this.dataSelf = \"\";\n }, 2000);\n }\n }\n if (this.companyDetails.Phone2 !== '') {\n if (!this.companyDetails.Phone2.match(re)) {\n this.dataSelf = \"Phone number invalid\";\n this.saveClick = false;\n this.companyDetails.Phone2 = \"\";\n setTimeout(() => {\n this.dataSelf = \"\";\n }, 2000);\n }\n }\n }\n}\n","export const copyRight = \"© 2022 The Dorsey Group, All rights reserved.\";","module.exports = \".dbHead {\\n display: flex;\\n justify-content: space-between;\\n margin-bottom: 10px;\\n}\\n\\n.card-body {\\n padding-left: 0;\\n}\\n\\n.squareInActvty {\\n padding: 0px;\\n background-color: #3775b5;\\n color: papayawhip;\\n text-align: center;\\n cursor: pointer;\\n border: 2px solid white;\\n border-radius: 5px;\\n font-size: 12px;\\n word-break: break-word;\\n min-height: 70px;\\n width: 100px;\\n box-shadow: 3px 3px 3px white;\\n font-family: unset;\\n font-size: 33px;\\n}\\n\\n.shadow {\\n box-shadow: 3px 3px 3px black;\\n background-color: white;\\n}\\n\\n/***************************For Mobile View*********************/\\n\\n@media (max-width: 576px) {\\n .dbHead {\\n display: flex;\\n flex-direction: column;\\n }\\n\\n .dbActions {\\n order: 1;\\n width: 100%;\\n }\\n\\n .dbActions button {\\n width: 96%;\\n margin: 0 2% 2% 2%;\\n }\\n\\n .dbName {\\n order: 2;\\n width: 100%;\\n }\\n}\\n\\n/***************************END For Mobile View*********************/\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvZGFzaGJvYXJkL0Y6XFxOaWtpbCBXb3JrXFxQcm9qZWN0c1xcRG9yc2V5XFxIaWVyYXJjaHkgU291cmNlIENvZGVcXFdvcmtpbmdcXGRvcnNleUdyb3VwL3NyY1xcYXBwXFxkYXNoYm9hcmRcXGRhc2hib2FyZC5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvZGFzaGJvYXJkL2Rhc2hib2FyZC5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLGFBQUE7RUFDQSw4QkFBQTtFQUNBLG1CQUFBO0FDQ0Y7O0FERUE7RUFDRSxlQUFBO0FDQ0Y7O0FERUE7RUFDSSxZQUFBO0VBQ0EseUJBQUE7RUFDQSxpQkFBQTtFQUNBLGtCQUFBO0VBQ0EsZUFBQTtFQUNBLHVCQUFBO0VBQ0Esa0JBQUE7RUFDQSxlQUFBO0VBQ0Esc0JBQUE7RUFDQSxnQkFBQTtFQUNBLFlBQUE7RUFDQSw2QkFBQTtFQUNBLGtCQUFBO0VBQ0EsZUFBQTtBQ0NKOztBRENFO0VBQ0UsNkJBQUE7RUFFQSx1QkFBQTtBQ0NKOztBRGlCQSxnRUFBQTs7QUFFQTtFQUNFO0lBRUUsYUFBQTtJQUNBLHNCQUFBO0VDaEJGOztFRG1CQTtJQUNFLFFBQUE7SUFDQSxXQUFBO0VDaEJGOztFRG9CQTtJQUNFLFVBQUE7SUFDQSxrQkFBQTtFQ2pCRjs7RURvQkE7SUFDRSxRQUFBO0lBQ0EsV0FBQTtFQ2pCRjtBQUNGOztBRG1CQSxvRUFBQSIsImZpbGUiOiJzcmMvYXBwL2Rhc2hib2FyZC9kYXNoYm9hcmQuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuZGJIZWFke1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XHJcbn1cclxuXHJcbi5jYXJkLWJvZHl7XHJcbiAgcGFkZGluZy1sZWZ0OiAwO1xyXG59XHJcblxyXG4uc3F1YXJlSW5BY3R2dHkge1xyXG4gICAgcGFkZGluZzogMHB4O1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzM3NzViNTtcclxuICAgIGNvbG9yOiBwYXBheWF3aGlwO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgYm9yZGVyOiAycHggc29saWQgd2hpdGU7XHJcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XHJcbiAgICBmb250LXNpemU6IDEycHg7XHJcbiAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xyXG4gICAgbWluLWhlaWdodDogNzBweDtcclxuICAgIHdpZHRoOiAxMDBweDtcclxuICAgIGJveC1zaGFkb3c6IDNweCAzcHggM3B4IHdoaXRlO1xyXG4gICAgZm9udC1mYW1pbHk6IHVuc2V0O1xyXG4gICAgZm9udC1zaXplOiAzM3B4O1xyXG4gIH1cclxuICAuc2hhZG93IHtcclxuICAgIGJveC1zaGFkb3c6IDNweCAzcHggM3B4IGJsYWNrO1xyXG4gICAgLy8gYm9yZGVyOiAycHggc29saWQgIzA5MWEzZTtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xyXG5cclxuICAgIC8vIHBhZGRpbmc6IDBweDtcclxuICAgIC8vIGJhY2tncm91bmQtY29sb3I6ICN3aGl0ZTtcclxuICAgIC8vIGNvbG9yOiBwYXBheWF3aGlwO1xyXG4gICAgLy8gdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgLy8gY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgLy8gYm9yZGVyOiAycHggc29saWQgIzA5MWEzZTtcclxuICAgIC8vIGJvcmRlci1yYWRpdXM6IDVweDtcclxuICAgIC8vIGZvbnQtc2l6ZTogMTJweDtcclxuICAgIC8vIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XHJcbiAgXHJcbiAgICAvLyBib3gtc2hhZG93OiAzcHggM3B4IDNweCAjMDkxYTNlO1xyXG4gICAgLy8gZm9udC1mYW1pbHk6IHVuc2V0O1xyXG4gICAgLy8gZm9udC1zaXplOiAzM3B4O1xyXG4gIFxyXG4gfVxyXG4gXHJcbi8qKioqKioqKioqKioqKioqKioqKioqKioqKipGb3IgTW9iaWxlIFZpZXcqKioqKioqKioqKioqKioqKioqKiovXHJcblxyXG5AbWVkaWEgKG1heC13aWR0aDo1NzZweCl7XHJcbiAgLmRiSGVhZHtcclxuICAgIFxyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgfVxyXG5cclxuICAuZGJBY3Rpb25ze1xyXG4gICAgb3JkZXI6IDE7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIFxyXG4gIH1cclxuXHJcbiAgLmRiQWN0aW9ucyBidXR0b257XHJcbiAgICB3aWR0aDogOTYlO1xyXG4gICAgbWFyZ2luOiAwIDIlIDIlIDIlO1xyXG4gIH1cclxuXHJcbiAgLmRiTmFtZXtcclxuICAgIG9yZGVyOiAyO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgfVxyXG59XHJcbi8qKioqKioqKioqKioqKioqKioqKioqKioqKipFTkQgRm9yIE1vYmlsZSBWaWV3KioqKioqKioqKioqKioqKioqKioqL1xyXG4iLCIuZGJIZWFkIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xufVxuXG4uY2FyZC1ib2R5IHtcbiAgcGFkZGluZy1sZWZ0OiAwO1xufVxuXG4uc3F1YXJlSW5BY3R2dHkge1xuICBwYWRkaW5nOiAwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzNzc1YjU7XG4gIGNvbG9yOiBwYXBheWF3aGlwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYm9yZGVyOiAycHggc29saWQgd2hpdGU7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xuICBtaW4taGVpZ2h0OiA3MHB4O1xuICB3aWR0aDogMTAwcHg7XG4gIGJveC1zaGFkb3c6IDNweCAzcHggM3B4IHdoaXRlO1xuICBmb250LWZhbWlseTogdW5zZXQ7XG4gIGZvbnQtc2l6ZTogMzNweDtcbn1cblxuLnNoYWRvdyB7XG4gIGJveC1zaGFkb3c6IDNweCAzcHggM3B4IGJsYWNrO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKkZvciBNb2JpbGUgVmlldyoqKioqKioqKioqKioqKioqKioqKi9cbkBtZWRpYSAobWF4LXdpZHRoOiA1NzZweCkge1xuICAuZGJIZWFkIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIH1cblxuICAuZGJBY3Rpb25zIHtcbiAgICBvcmRlcjogMTtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuXG4gIC5kYkFjdGlvbnMgYnV0dG9uIHtcbiAgICB3aWR0aDogOTYlO1xuICAgIG1hcmdpbjogMCAyJSAyJSAyJTtcbiAgfVxuXG4gIC5kYk5hbWUge1xuICAgIG9yZGVyOiAyO1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqRU5EIEZvciBNb2JpbGUgVmlldyoqKioqKioqKioqKioqKioqKioqKi8iXX0= */\"","import { Component, OnInit } from '@angular/core';\nimport { DorseyService } from '../dorsey.service';\nimport { LocalStorageService } from 'ngx-webstorage';\nimport { Router, ActivatedRoute } from '@angular/router';\n\n@Component({\n selector: 'app-dashboard',\n templateUrl: './dashboard.component.html',\n styleUrls: ['./dashboard.component.scss']\n})\nexport class DashboardComponent implements OnInit {\n totalFrustations = [];\n totalFCount: any;\n processData = [];\n dashBoardJson = [];\n dashboard = false;\n dashboardMetric = false;\n dashboardProcess = false;\n dashboardProject = false;\n\n dashboardCat = false;\n dashboardMe = false;\n dashboardPr = false;\n dashboardPro = false;\n CompanyID: string;\n\n dashboardSeverity = false;\n id: any;\n\n dashboardTeam: any;\n dashboardTeamCat: any;\n dashboardTeamPr: any;\n dashboardTeamSeverity: any;\n dashboardTeamPro: any;\n teamData: any\n\n dashboardSev = false;\n constructor(private dorsey: DorseyService, private storage: LocalStorageService, private route: ActivatedRoute,\n private router: Router) {\n this.id = this.route.snapshot.paramMap.get('TeamID');\n this.dashboardTeam = this.id;\n this.dashboardTeamCat = this.id;\n this.dashboardTeamPr = this.id;\n this.dashboardTeamSeverity = this.id;\n this.dashboardTeamPro = this.id;\n\n\n this.storage.store(\"id\", this.id);\n\n }\n\n ngOnInit() {\n this.CompanyID = this.storage.retrieve('companyID');\n this.dorsey.GetPointer(this.CompanyID)\n .subscribe((pointer) => {\n this.totalFrustations = (JSON.parse(pointer['_body']));\n let frustrations;\n if (this.id !== 0) {\n frustrations = this.totalFrustations.filter(x => x.PointerTypeID === 1 && x.TeamID.toString() === this.id.toString());\n\n }\n else {\n frustrations = this.totalFrustations.filter(x => x.PointerTypeID === 1)\n }\n\n this.totalFCount = frustrations.length;\n this.dorsey.GetProcess(this.CompanyID).subscribe(subData => {\n\n this.processData = (JSON.parse(subData['_body']));\n if (this.processData.length < 1) {\n // return;\n }\n for (let j = 0; j < this.processData.length; j++) {\n let processCount = 0; let processName = this.processData[j]['ProcessName'];\n for (let i = 0; i < frustrations.length; i++) {\n\n if (this.processData[j]['ProcessID'] === frustrations[i]['ProcessID']) {\n processCount++;\n\n }\n\n }\n let json = {\n process: processName,\n Issues: processCount\n };\n this.dashBoardJson.push(json);\n this.dashBoardJson.sort(function (obj1, obj2) {\n\n return obj2.Issues - obj1.Issues;\n });\n }\n });\n });\n }\n\n GetProcess() {\n this.dorsey.GetProcess(this.CompanyID).subscribe(subData => {\n this.processData = JSON.parse(subData['_body']);\n });\n }\n\n\n}\n","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2RlcGFydG1lbnRzL2RlcGFydG1lbnRzLmNvbXBvbmVudC5zY3NzIn0= */\"","import { Component, Inject, OnInit } from '@angular/core';\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\nimport { LocalStorageService } from 'ngx-webstorage';\nimport { DorseyService } from '../dorsey.service';\nimport { DepartmentService } from '../services/department.service';\nimport { Department } from './department.model';\nimport { EmployeeLoginLevel } from '../common/models/login-level.model';\nimport { copyRight } from '../copyRight.model';\n\n@Component({\n selector: 'app-departments',\n templateUrl: './departments.component.html',\n styleUrls: ['./departments.component.scss']\n})\nexport class DepartmentsComponent implements OnInit {\n\n companyId: number;\n p: number = 1;\n rowsOnPage = 10;\n rowsOnPageSet = [];\n rowCount: any;\n dynamicRows = 10;\n MenuPermissions: any;\n menuData: any;\n menuID: string;\n menuName: string;\n DepartmentDescription: string;\n DepartmentName: string;\n DepartmentID: number;\n currentUser: string;\n departmentData: any;\n searchtext: string;\n DepartmentList: Array<Department>;\n isDisable = false;\n disableSearch = false;\n departmentPaging = false;\n editDepartmentName: string;\n saveFilter = [];\n column = \"\";\n direction: number;\n arrow = true;\n isDesc: boolean = false;\n loginCompanyName: any;\n condition: boolean;\n teamList: any;\n employeeLoginLevel = EmployeeLoginLevel;\n employeeDetails: any;\n constructor(public dialog: MatDialog,\n public departmentService: DepartmentService,\n private dorseyService: DorseyService,\n private storage: LocalStorageService) {\n this.currentUser = this.storage.retrieve('user');\n this.menuData = this.storage.retrieve('menuData');\n this.MenuPermissions = this.storage.retrieve('MenuPermissions');\n }\n\n ngOnInit(): void {\n this.companyId = this.storage.retrieve('companyID');\n this.loginCompanyName = this.storage.retrieve('loginCompanyName');\n\n this.employeeDetails = this.storage.retrieve('employeeDetails');\n this.menuData = this.menuData.filter(x => x.MenuName.toString().toLowerCase() === 'departments');\n if (this.menuData.length > 0) {\n this.menuName = this.menuData[0][\"MenuName\"];\n this.menuID = this.menuData[0][\"MenuID\"];\n }\n this.getDepartments();\n this.getTeams();\n }\n\n getTeams(): void {\n this.dorseyService.GetTeam(this.companyId.toString()).subscribe(subData => {\n subData = JSON.parse(subData['_body']);\n this.teamList = subData;\n });\n }\n getDepartments(): void {\n // this.DepartmentList = [];\n this.departmentService.getDepartments(this.companyId).subscribe(resp => {\n this.DepartmentList = resp.Data;\n if (this.DepartmentList.length === 0) {\n this.departmentPaging = false;\n this.isDisable = true;\n this.disableSearch = true;\n }\n else {\n if (this.employeeDetails) {\n if ((this.employeeDetails.IsEmployeeLoginLevel == this.employeeLoginLevel.Department) || (this.employeeDetails.IsEmployeeLoginLevel == this.employeeLoginLevel.Team)) {\n this.DepartmentList = this.DepartmentList.filter(ent => ent.DepartmentID === this.employeeDetails.DepartmentID);\n }\n else if (this.employeeDetails.IsEmployeeLoginLevel === this.employeeLoginLevel.Company) {\n this.DepartmentList = this.DepartmentList;\n }\n }\n this.saveFilter = JSON.parse(JSON.stringify(this.DepartmentList));\n this.rowCount = this.DepartmentList.length;\n this.departmentPaging = true;\n this.isDisable = false;\n this.disableSearch = false;\n this.departmentPagination(this.rowCount);\n }\n });\n }\n /*Set Pagination for departments */\n\n departmentPagination(RowCount): void {\n this.dynamicRows = 10;\n this.rowsOnPageSet = [];\n this.rowsOnPage = 10;\n this.rowCount = RowCount;\n while (this.dynamicRows < this.rowCount) {\n this.rowsOnPageSet.push(this.dynamicRows);\n this.dynamicRows = this.dynamicRows + 10;\n }\n if (!this.rowsOnPageSet.includes(this.rowCount)) {\n this.rowsOnPageSet.push(this.rowCount);\n if (this.rowsOnPageSet.length === 1) {\n if (this.rowsOnPageSet[0] <= 10)\n this.rowsOnPage = this.rowsOnPageSet[0];\n }\n }\n }\n /*\n Search Departments data\n */\n searchText(): void {\n this.DepartmentList = this.saveFilter;\n let tempListDepartments = this.DepartmentList.filter(\n (item) => {\n return (\n (item.DepartmentName !== null && this.searchtext && item.DepartmentName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n (item.DepartmentDescription !== null && this.searchtext && item.DepartmentDescription.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1)\n );\n }\n );\n this.DepartmentList = tempListDepartments;\n if (this.DepartmentList.length == 0) {\n this.isDisable = true;\n } else {\n this.isDisable = false;\n }\n if (this.searchtext === '') {\n this.DepartmentList = this.saveFilter;\n this.rowCount = this.DepartmentList.length;\n this.isDisable = false;\n this.departmentPagination(this.rowCount);\n }\n else {\n this.rowCount = tempListDepartments.length;\n this.departmentPagination(this.rowCount);\n if (this.rowsOnPageSet.length === 1) {\n if (this.rowsOnPageSet[0] <= 10)\n this.rowsOnPage = this.rowsOnPageSet[0];\n }\n }\n }\n\n sort(property): void {\n this.arrow = !this.arrow;\n this.isDesc = !this.isDesc; //change the direction\n this.column = property;\n this.direction = this.isDesc ? 1 : -1;\n }\n\n newDepartment(): void {\n this.dialogCall('new');\n }\n\n /*\n Dialog open\n */\n dialogCall(msg: string): void {\n const dialogRef = this.dialog.open(DepartmentDialogComponent, {\n panelClass: 'custom-dialog-container',\n data: msg + 'æææ' + false,\n });\n\n dialogRef.componentInstance.currentUser = this.currentUser;\n dialogRef.componentInstance.DepartmentList = this.DepartmentList;\n dialogRef.componentInstance.companyId = this.companyId;\n if (msg === 'new') {\n this.searchtext = '';\n this.getDepartments();\n }\n if (msg === 'edit') {\n dialogRef.componentInstance.DepartmentName = this.DepartmentName;\n dialogRef.componentInstance.DepartmentDescription = this.DepartmentDescription;\n dialogRef.componentInstance.DepartmentID = this.DepartmentID;\n dialogRef.componentInstance.editDepartmentName = this.editDepartmentName;\n //dialogRef.componentInstance.inUse = this.inUse;\n }\n dialogRef.afterClosed().subscribe(result => {\n if (this.searchtext !== '' && this.searchtext !== undefined) {\n this.searchText();\n }\n else {\n this.getDepartments();\n }\n if (result.toString() === 'true') {\n let statusMsg = '';\n if (msg === 'new') {\n statusMsg = 'Saved successfully';\n }\n else {\n statusMsg = 'Updated successfully';\n }\n this.getDepartments();\n\n const dialogRefsub = this.dialog.open(DepartmentDialogComponent, {\n panelClass: 'custom-dialog-container',\n data: statusMsg + 'æææ' + false,\n // width: '30%'\n });\n setTimeout(() => {\n this.getDepartments();\n }, 500);\n dialogRefsub.afterClosed().subscribe(result1 => {\n this.dynamicRows = 10;\n if (this.searchtext !== '' && this.searchtext !== undefined) {\n this.searchText();\n }\n else {\n this.getDepartments();\n }\n });\n }\n });\n }\n\n /*\n Edit department\n */\n editDepartment(departmentRow): void {\n this.DepartmentID = departmentRow.DepartmentID;\n this.DepartmentName = departmentRow.DepartmentName;\n this.editDepartmentName = departmentRow.DepartmentName;\n this.DepartmentDescription = departmentRow.DepartmentDescription;\n this.companyId = departmentRow.CompanyID;\n this.dialogCall('edit');\n }\n\n ifMaxRow(): void {\n if (this.rowsOnPage == this.DepartmentList.length) {\n this.rowsOnPage = this.rowsOnPage - 1;\n }\n }\n\n /*\n Delete Department\n */\n deleteDepartment(departmentRow: any): void {\n this.DepartmentID = departmentRow.DepartmentID;\n const dialogRef = this.dialog.open(DepartmentDialogComponent, {\n panelClass: 'custom-dialog-container',\n data: 'Are you sure you want to delete department: ' + departmentRow.DepartmentName + '?æææ' + true,\n\n });\n dialogRef.afterClosed().subscribe(result => {\n if (result) {\n if (!this.teamList.find(ent => ent.DepartmentID == this.DepartmentID)) {\n this.departmentService.deleteDepartment(this.DepartmentID).subscribe(resp => {\n if (resp.Data) {\n this.ifMaxRow();\n this.condition = true;\n this.dialogCall('Deleted successfully');\n this.DepartmentList = [];\n this.getDepartments();\n } else {\n this.dialogCall('Delete Failed');\n }\n this.dynamicRows = 10;\n this.rowsOnPageSet = [];\n });\n } else {\n this.dialogCall(\"Delete Failed. This department is associated with Teams\");\n }\n\n }\n });\n }\n\n exportAsXLSX(): void {\n let allData = JSON.parse(JSON.stringify(this.DepartmentList));\n for (let i = 0; i < allData.length; i++) {\n allData[i][\"Department Name\"] = allData[i].DepartmentName;\n allData[i][\"Description\"] = allData[i].DepartmentDescription;\n delete (allData[i].DepartmentID);\n delete (allData[i].DepartmentName);\n delete (allData[i].DepartmentDescription);\n delete (allData[i].CreatedDate);\n delete (allData[i].CreatedBy);\n delete (allData[i].UpdatedDate);\n delete (allData[i].UpdatedBy);\n delete (allData[i].IsActive);\n delete (allData[i].CompanyID);\n }\n this.dorseyService.generateExcel(allData, this.loginCompanyName + '_Departments' + \"_\" + (new Date().getMonth() + 1) + '-' + new Date().getDate() + '-' + new Date().getFullYear(), 'Departments', \"Company: \" + this.loginCompanyName, '', \"Departments Report\", copyRight, 'FFFFFF00', 'FF0000FF');\n }\n}\n\n@Component({\n selector: 'app-dialog',\n templateUrl: 'dialog.html'\n})\nexport class DepartmentDialogComponent implements OnInit {\n condition = false;\n dataSelf: string;\n DepartmentName: string;\n DepartmentID: number;\n companyId: number;\n currentUser: string;\n DepartmentDescription: string;\n btnDisabled = false;\n DepartmentList: Array<Department>;\n editDepartmentName: string;\n constructor(\n public dialogRef: MatDialogRef<DepartmentDialogComponent>,\n @Inject(MAT_DIALOG_DATA) public data: any, public departmentService: DepartmentService) {\n this.data = this.data.split('æææ');\n if (this.data[1] === 'true') {\n this.condition = true;\n } else {\n this.condition = false;\n }\n this.data = this.data[0];\n }\n\n ngOnInit(): void {\n }\n\n onYesClick(): void {\n this.dialogRef.close(true);\n }\n\n onNoClick(): void {\n this.dialogRef.close();\n }\n\n validateDepartment(): void {\n this.dataSelf = '';\n if (!this.DepartmentName.trim()) {\n this.dataSelf = 'Please enter mandatory(*) fields';\n return;\n }\n this.saveDepartment(this.data);\n }\n\n saveDepartment(msg: string): void {\n const entity = {\n DepartmentName: this.DepartmentName,\n CreatedBy: this.currentUser,\n DepartmentID: this.DepartmentID,\n CompanyID: this.companyId,\n UpdatedBy: this.currentUser,\n DepartmentDescription: this.DepartmentDescription\n };\n if (msg === 'new') {\n\n if (this.DepartmentList.find(ent => ent.DepartmentName.toLowerCase().trim() == this.DepartmentName.toLowerCase().trim())) {\n this.dataSelf = \"Department name already exists\";\n return;\n }\n this.departmentService.saveDepartment(entity).subscribe(resp => {\n if (resp.Data === true) {\n this.dataSelf = 'Saved successfully';\n this.DepartmentName = '';\n this.DepartmentDescription = '';\n this.DepartmentList.push(entity);\n setTimeout(() => {\n this.dataSelf = '';\n }, 2000);\n } else {\n this.dataSelf = 'Save failed';\n }\n });\n } else {\n if (this.editDepartmentName != this.DepartmentName)\n if (this.DepartmentList.find(ent => ent.DepartmentName.toLowerCase().trim() == this.DepartmentName.toLowerCase().trim())) {\n this.dataSelf = \"Department name already exists\";\n return;\n }\n this.departmentService.saveDepartment(entity).subscribe(resp => {\n if (resp.Data === true) {\n this.dialogRef.close(true);\n } else {\n this.dataSelf = 'Updated successfully';\n }\n });\n }\n }\n\n\n Clear() {\n this.dialogRef.close(false);\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { Http, Headers, URLSearchParams } from '@angular/http';\nimport * as FileSaver from 'file-saver';\nimport * as XLSX from 'xlsx';\nimport { Workbook } from 'exceljs';\nimport * as fs from 'file-saver';\nimport { environment } from 'src/environments/environment';\nconst EXCEL_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8';\nconst EXCEL_EXTENSION = '.rsxlsx';\n@Injectable({\n providedIn: 'root'\n})\nexport class DorseyService {\n teamData: any;\n tempData: any;\n TeamName: any;\n private httpUrl: string = environment.API_URL;\n // httpUrl = 'https://www.tdgdm.com/DorseyAPI/api/' ;\n // httpUrl='http://42.104.96.36:6005/api/';\n // httpUrl = 'http://localhost:52718/api/';\n // httpUrl='http://192.168.1.20:8005/api/';\n // httpUrl='http://192.168.1.20:6005/api/';\n\n constructor(private http: Http) {\n\n }\n\n public generateExcelForScoreCard(allData, filename, sheetname, title, title1, title2, copyRight, headerForeColor?, headerBgColor?) {\n const header = [];\n var data = [];\n if (allData.length > 0) {\n var columnsIn = allData[0];\n for (var key in columnsIn) {\n header.push(key);\n }\n for (let i = 0; i < allData.length; i++) {\n var columnsIn = allData[i];\n var innerData = [];\n for (var val in columnsIn) {\n innerData.push(allData[i][val] != undefined ? allData[i][val] : '');\n }\n data.push(innerData);\n }\n }\n let workbook = new Workbook();\n let worksheet = workbook.addWorksheet(sheetname);\n if (title != '') {\n let titleRow = worksheet.addRow([title]);\n if (title1 != '') {\n let titleRow1 = worksheet.addRow([title1]);\n titleRow1.font = { name: 'Calibri', family: 4, size: 16, underline: 'double', bold: true }\n }\n let titleRow2 = worksheet.addRow([title2]);\n titleRow.font = { name: 'Calibri', family: 4, size: 16, underline: 'double', bold: true }\n titleRow2.font = { name: 'Calibri', family: 4, size: 16, underline: 'double', bold: true }\n worksheet.addRow([]);\n worksheet.addRow([]);\n }\n let headerRow = worksheet.addRow(header);\n headerRow.eachCell((cell, number) => {\n cell.fill = {\n type: 'pattern',\n pattern: 'solid',\n fgColor: { argb: headerForeColor },\n bgColor: { argb: headerBgColor }\n }\n cell.border = { top: { style: 'thin' }, left: { style: 'thin' }, bottom: { style: 'thin' }, right: { style: 'thin' } }\n })\n // for (let i = 0; i < allData.length; i++) {\n // let row = worksheet.addRow(data[i]);\n // row.eachCell((cell, number) => {\n // cell.border = { top: { style: 'thin' }, left: { style: 'thin' }, bottom: { style: 'thin' }, right: { style: 'thin' } }\n // cell.alignment = { horizontal: \"left\", wrapText: true };\n // var cellBgColor = this.myStyleWeek(data[i], i);\n // console.log(\"Background color: \", cellBgColor);\n // cell.fill = {\n // type: 'pattern',\n // pattern: 'solid',\n // fgColor: { argb: 'black' },\n // bgColor: { argb: cellBgColor['background-color'] }\n // }\n // })\n // for (let i = 1; i <= row.cellCount; i++) {\n // worksheet.getColumn(i).width = 35;\n // }\n // }\n\n data.forEach(d => {\n let row = worksheet.addRow(d);\n row.eachCell((cell, number) => {\n cell.border = { top: { style: 'thin' }, left: { style: 'thin' }, bottom: { style: 'thin' }, right: { style: 'thin' } }\n cell.alignment = { horizontal: \"left\", wrapText: true };\n cell.fill = {\n type: 'pattern',\n pattern: 'solid',\n fgColor: { argb: headerForeColor },\n bgColor: { argb: headerBgColor }\n }\n })\n for (let i = 1; i <= row.cellCount; i++) {\n worksheet.getColumn(i).width = 35;\n }\n });\n\n worksheet.addRow([]);\n let copyrt = worksheet.addRow([copyRight]);\n copyrt.font = { name: 'Calibri', family: 4, size: 10, bold: false }\n\n workbook.xlsx.writeBuffer().then((data) => {\n let blob = new Blob([data], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });\n fs.saveAs(blob, filename + '.xlsx');\n })\n\n }\n\n\n public generateExcel(allData, filename, sheetname, title, title1, title2, copyRight, headerForeColor?, headerBgColor?) {\n const header = [];\n const data = [];\n if (allData.length > 0) {\n var columnsIn = allData[0];\n for (var key in columnsIn) {\n header.push(key);\n }\n for (let i = 0; i < allData.length; i++) {\n var columnsIn = allData[i];\n var innerData = [];\n for (var val in columnsIn) {\n innerData.push(allData[i][val] != undefined ? allData[i][val] : '');\n }\n data.push(innerData);\n }\n }\n\n let workbook = new Workbook();\n let worksheet = workbook.addWorksheet(sheetname);\n if (title != '') {\n let titleRow = worksheet.addRow([title]);\n if (title1 != '') {\n let titleRow1 = worksheet.addRow([title1]);\n titleRow1.font = { name: 'Calibri', family: 4, size: 16, underline: 'double', bold: true }\n }\n\n let titleRow2 = worksheet.addRow([title2]);\n titleRow.font = { name: 'Calibri', family: 4, size: 16, underline: 'double', bold: true }\n\n titleRow2.font = { name: 'Calibri', family: 4, size: 16, underline: 'double', bold: true }\n\n\n worksheet.addRow([]);\n worksheet.addRow([]);\n\n }\n\n let headerRow = worksheet.addRow(header);\n\n headerRow.eachCell((cell, number) => {\n cell.fill = {\n type: 'pattern',\n pattern: 'solid',\n fgColor: { argb: headerForeColor },\n bgColor: { argb: headerBgColor }\n // fgColor: { argb: 'FFFFFF00' },\n // bgColor: { argb: 'FF0000FF' }\n }\n cell.border = { top: { style: 'thin' }, left: { style: 'thin' }, bottom: { style: 'thin' }, right: { style: 'thin' } }\n })\n\n data.forEach(d => {\n let row = worksheet.addRow(d);\n row.eachCell((cell, number) => {\n cell.border = { top: { style: 'thin' }, left: { style: 'thin' }, bottom: { style: 'thin' }, right: { style: 'thin' } }\n cell.alignment = { horizontal: \"left\", wrapText: true };\n })\n for (let i = 1; i <= row.cellCount; i++) {\n worksheet.getColumn(i).width = 35;\n }\n });\n\n worksheet.addRow([]);\n let copyrt = worksheet.addRow([copyRight]);\n copyrt.font = { name: 'Calibri', family: 4, size: 10, bold: false }\n\n workbook.xlsx.writeBuffer().then((data) => {\n let blob = new Blob([data], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });\n fs.saveAs(blob, filename + '.xlsx');\n })\n\n }\n\n\n public generateReportExcel(allData1, allData, image, filename, sheetname, title, title1, title2, copyRight, headerForeColor?, headerBgColor?) {\n const header = [];\n const data = [];\n if (allData.length > 0) {\n var columnsIn = allData[0];\n for (var key in columnsIn) {\n header.push(key);\n }\n for (let i = 0; i < allData.length; i++) {\n var columnsIn = allData[i];\n var innerData = [];\n for (var val in columnsIn) {\n innerData.push(allData[i][val] != undefined ? allData[i][val] : '');\n }\n data.push(innerData);\n }\n }\n\n const header1 = [];\n\n var innerData1 = [];\n const data1 = [];\n if (allData1.length > 0) {\n // var columnsIn = allData1[0];\n // console.log(columnsIn);\n // for (var key in columnsIn) {\n // console.log(columnsIn[key]);\n // header1.push(key);\n // }\n let total = 0;\n for (let i = 0; i < allData1.length; i++) {\n total = total + allData1[i].value;\n }\n header1.push('Total');\n innerData1.push(total);\n for (let i = 0; i < allData1.length; i++) {\n var columnsIn = allData1[i];\n\n var valuesData = [];\n // for (var val in columnsIn) {\n\n header1.push(allData1[i].label);\n innerData1.push(allData1[i].value);\n //innerData.push(allData1[i].label != undefined ? allData1[i].label : '');\n // valuesData.push(allData1[i].value != undefined ? allData1[i].value : '');\n // }\n // data1.push(innerData1);\n // data1.push(valuesData);\n }\n\n }\n\n let workbook = new Workbook();\n let worksheet = workbook.addWorksheet(sheetname);\n if (title != '') {\n let titleRow = worksheet.addRow([title]);\n if (title1 != '') {\n let titleRow1 = worksheet.addRow([title1]);\n titleRow1.font = { name: 'Calibri', family: 4, size: 16, underline: 'double', bold: true }\n }\n\n let titleRow2 = worksheet.addRow([title2]);\n titleRow.font = { name: 'Calibri', family: 4, size: 16, underline: 'double', bold: true }\n\n titleRow2.font = { name: 'Calibri', family: 4, size: 16, underline: 'double', bold: true }\n\n\n worksheet.addRow([]);\n worksheet.addRow([]);\n\n }\n\n\n\n let headeRow1COlor = '000000';\n\n\n let headerRow1 = worksheet.addRow(header1);\n let headerRow2 = worksheet.addRow(innerData1);\n worksheet.addRow([]);\n worksheet.addRow([]);\n let logo = workbook.addImage({\n base64: image,\n extension: 'png',\n });\n\n worksheet.addImage(logo, 'B10:D20');\n worksheet.addRow([]);\n worksheet.addRow([]);\n worksheet.addRow([]);\n worksheet.addRow([]);\n worksheet.addRow([]);\n worksheet.addRow([]);\n worksheet.addRow([]);\n worksheet.addRow([]);\n worksheet.addRow([]);\n worksheet.addRow([]);\n worksheet.addRow([]);\n worksheet.addRow([]);\n worksheet.addRow([]);\n worksheet.mergeCells('A10:F24');\n\n let headerRow = worksheet.addRow(header);\n\n headerRow1.eachCell((cell, number) => {\n cell.fill = {\n type: 'pattern',\n pattern: 'solid',\n fgColor: { argb: headerForeColor },\n bgColor: { argb: headerBgColor },\n\n // fgColor: { argb: 'FFFFFF00' },\n // bgColor: { argb: 'FF0000FF' }\n }\n cell.alignment = { vertical: \"middle\", horizontal: \"center\", wrapText: true };\n cell.border = { top: { style: 'thin' }, left: { style: 'thin' }, bottom: { style: 'thin' }, right: { style: 'thin' } }\n })\n\n headerRow2.eachCell((cell, number) => {\n cell.fill = {\n type: 'pattern',\n pattern: 'solid',\n fgColor: { argb: headerForeColor },\n bgColor: { argb: headerBgColor }\n // fgColor: { argb: 'FFFFFF00' },\n // bgColor: { argb: 'FF0000FF' }\n }\n cell.alignment = { vertical: \"middle\", horizontal: \"center\" };\n cell.border = { top: { style: 'thin' }, left: { style: 'thin' }, bottom: { style: 'thin' }, right: { style: 'thin' } }\n })\n\n\n headerRow.eachCell((cell, number) => {\n cell.fill = {\n type: 'pattern',\n pattern: 'solid',\n fgColor: { argb: headerForeColor },\n bgColor: { argb: headerBgColor }\n // fgColor: { argb: 'FFFFFF00' },\n // bgColor: { argb: 'FF0000FF' }\n }\n cell.border = { top: { style: 'thin' }, left: { style: 'thin' }, bottom: { style: 'thin' }, right: { style: 'thin' } }\n })\n\n data.forEach(d => {\n let row = worksheet.addRow(d);\n row.eachCell((cell, number) => {\n\n cell.border = { top: { style: 'thin' }, left: { style: 'thin' }, bottom: { style: 'thin' }, right: { style: 'thin' } }\n // cell.alignment = { wrapText: true };\n cell.alignment = { horizontal: \"left\", wrapText: true };\n\n })\n if (row.cellCount > allData1.length) {\n for (let i = 1; i <= row.cellCount; i++) {\n worksheet.getColumn(i).width = 35;\n }\n } else {\n for (let i = 1; i <= allData1.length; i++) {\n worksheet.getColumn(i).width = 35;\n }\n }\n\n });\n data1.forEach(d => {\n let row1 = worksheet.addRow(d);\n row1.eachCell((cell, number) => {\n cell.border = { top: { style: 'thin' }, left: { style: 'thin' }, bottom: { style: 'thin' }, right: { style: 'thin' } }\n cell.alignment = { wrapText: true };\n\n })\n for (let i = 1; i <= row1.cellCount; i++) {\n worksheet.getColumn(i).width = 35;\n }\n });\n\n\n worksheet.addRow([]);\n let copyrt = worksheet.addRow([copyRight]);\n copyrt.font = { name: 'Calibri', family: 4, size: 10, bold: false }\n\n workbook.xlsx.writeBuffer().then((data) => {\n let blob = new Blob([data], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });\n fs.saveAs(blob, filename + '.xlsx');\n })\n\n }\n\n public exportAsExcelFile(json: any[], excelFileName: string): void {\n const title = 'Car Sell Report';\n\n const worksheet: XLSX.WorkSheet = XLSX.utils.json_to_sheet(json);\n // this.wrapAndCenterCell(worksheet.A1);\n let jsonsheet = {};\n jsonsheet[excelFileName] = worksheet;\n const titile = \"Swathi\";\n const workbook: XLSX.WorkBook = { Sheets: jsonsheet, SheetNames: [excelFileName] };\n\n this.wrapAndCenterCell(worksheet.A1);\n\n // if(!worksheet.A1.c) worksheet.A1.c = [];\n // worksheet.A1.c.push({w:\"SheetJS\", t:\"I'm a little comment, short and stout!\"});\n // worksheet['A2'].l = { Target:\"#E2\" }; /* link to cell E2 */\n // console.log(worksheet);\n // if(!workbook.Props) workbook.Props = {};\n // workbook.Props.Title = \"Insert Title Here\";\n // let headerRow = worksheet.addRow(\"Swathi\");\n // // Cell Style : Fill and Border\n // headerRow.eachCell((cell, number) => {\n // cell.fill = {\n // type: 'pattern',\n // pattern: 'solid',\n // fgColor: { argb: 'FFFFFF00' },\n // bgColor: { argb: 'FF0000FF' }\n // }\n // cell.border = { top: { style: 'thin' }, left: { style: 'thin' }, bottom: { style: 'thin' }, right: { style: 'thin' } }\n // })\n //worksheet.getColumn(3).width = 15;\n const excelBuffer: any = XLSX.write(workbook, { bookType: 'xlsx', type: 'array' });\n // const excelBuffer: any = XLSX.write(workbook, { bookType: 'xlsx', type: 'buffer' });\n this.saveAsExcelFile(excelBuffer, excelFileName);\n }\n\n private wrapAndCenterCell(cell: XLSX.CellObject) {\n const wrapAndCenterCellStyle = { font: { bold: true } };\n this.setCellStyle(cell, wrapAndCenterCellStyle);\n }\n\n private setCellStyle(cell, style: {}) {\n cell.s = style;\n\n\n }\n\n // private wrapAndCenterCell(cell: XLSX.CellObject) {\n // const wrapAndCenterCellStyle = { alignment: { wrapText: true, vertical: 'center', horizontal: 'center',italic:true } };\n // this.setCellStyle(cell, wrapAndCenterCellStyle);\n // }\n\n // private setCellStyle(cell: XLSX.CellObject, style: {}) {\n // cell.s = style;\n\n // console.log(style);\n // }\n\n private saveAsExcelFile(buffer: any, fileName: string): void {\n const data: Blob = new Blob([buffer], {\n type: EXCEL_TYPE\n });\n FileSaver.saveAs(data, fileName + \"_\" + (new Date().getMonth() + 1) + '-' + new Date().getDate() + '-' + new Date().getFullYear() + EXCEL_EXTENSION);\n }\n\n public GetCompanyData() {\n const Weburl = this.httpUrl + 'Dorsey/GetCompanyDetails';\n return this.FetchData(Weburl);\n }\n\n FetchData(Weburl: string) {\n const params = new URLSearchParams();\n return this.http.get(Weburl, { search: params });\n }\n // posting the data to the respected Weburl\n // PostData(Weburl: string) {\n // const headers = new Headers();\n // headers.append('Content-Type', 'application/x-www-form-urlencoded');\n // return this.http.post(Weburl, {}, { headers: headers });\n // }\n PostData(Weburl: string, body: any) {\n const headers = new Headers();\n headers.append('Content-Type', 'application/x-www-form-urlencoded');\n return this.http.post(Weburl, JSON.stringify(body), { headers: headers });\n }\n SaveCompany(body: any) {\n const Weburl = this.httpUrl + 'Dorsey/SaveCompany';\n return this.PostData(Weburl, body);\n }\n\n Export(body: any, fileName: string, companyName: string, pageName: string) {\n const Weburl = this.httpUrl + 'Dorsey/ExportAsExcel?FileName=' + fileName + '&CompnayName=' + companyName + '&pageName=' + pageName;\n return this.PostData(Weburl, body);\n }\n\n DownloadPdfFile(fileName: string, filePath: string) {\n const Weburl = this.httpUrl + 'Dorsey/DownloadPdfFile?fileName=' + fileName + '&filePath=' + filePath;\n return this.FetchData(Weburl);\n }\n\n\n\n public DeleteCompany(companyID: string) {\n const Weburl = this.httpUrl + 'Dorsey/DeleteCompany?CompanyID=' + companyID;\n return this.FetchData(Weburl);\n }\n\n SaveProcess(body: any, Isversionize: string) {\n const Weburl = this.httpUrl + 'Dorsey/SaveProcess?isVersioning=' + Isversionize;\n return this.PostData(Weburl, body);\n }\n // http://localhost:56083/api/Sample/GetSample\n public GetProcess(CompanyID: string) {\n const Weburl = this.httpUrl + 'Dorsey/GetProcess?CompanyID=' + CompanyID;\n return this.FetchData(Weburl);\n }\n\n public DeleteProcess(processID: string, CompanyID: string, TeamID: number, squence: number) {\n const Weburl = this.httpUrl + 'Dorsey/DeleteProcess?ProcessID=' + processID + '&CompanyID=' + CompanyID + '&TeamID=' + TeamID + '&squence=' + squence;\n return this.FetchData(Weburl);\n }\n\n // public DeleteProcess(processID: string) {\n // const Weburl = this.httpUrl + 'Dorsey/DeleteProcess?ProcessID=' + processID;\n // return this.FetchData(Weburl);\n // }\n SaveEmployee(body: any) {\n const Weburl = this.httpUrl + 'Dorsey/SaveEmployee';\n return this.PostData(Weburl, body);\n }\n\n public GetEmployee(CompanyID: string) {\n const Weburl = this.httpUrl + 'Dorsey/GetEmployee?CompanyID=' + CompanyID;\n return this.FetchData(Weburl);\n }\n public GetCompanyRoleID(CompanyID: string) {\n const Weburl = this.httpUrl + 'Dorsey/GetCompanyRole?CompanyID=' + CompanyID;\n return this.FetchData(Weburl);\n }\n\n public DeleteEmployee(EmployeeID: string) {\n const Weburl = this.httpUrl + 'Dorsey/DeleteEmployee?EmployeeID=' + EmployeeID;\n return this.FetchData(Weburl);\n }\n\n public GetRoles(companyID) {\n const Weburl = this.httpUrl + 'Dorsey/GetRoles?companyID=' + companyID;\n return this.FetchData(Weburl);\n }\n\n public GetDesignation() {\n const Weburl = this.httpUrl + 'Dorsey/GetDesignation';\n return this.FetchData(Weburl);\n }\n\n public GetDepartment() {\n const Weburl = this.httpUrl + 'Dorsey/GetDepartment';\n return this.FetchData(Weburl);\n }\n\n SaveActivity(body: any, Isversionize: string) {\n const Weburl = this.httpUrl + 'Dorsey/SaveActivity?isVersioning=' + Isversionize;\n return this.PostData(Weburl, body);\n }\n\n public GetActivity(CompanyID: string) {\n const Weburl = this.httpUrl + 'Dorsey/GetActivity?CompanyID=' + CompanyID;\n return this.FetchData(Weburl);\n }\n public DeleteActivity(ActivityID: string, CompanyID: string, TeamID: number, squence: number, ProcessID: string, ParentID: number) {\n const Weburl = this.httpUrl + 'Dorsey/DeleteActivity?ActivityID=' + ActivityID + '&CompanyID=' + CompanyID + '&TeamID=' + TeamID + '&squence=' + squence + '&ProcessID=' + ProcessID + '&ParentID=' + ParentID;\n return this.FetchData(Weburl);\n }\n\n public GetActivityType() {\n const Weburl = this.httpUrl + 'Dorsey/GetActivityType';\n return this.FetchData(Weburl);\n }\n\n SaveTeam(body: any) {\n const Weburl = this.httpUrl + 'Dorsey/SaveTeam';\n return this.PostData(Weburl, body);\n }\n\n public GetTeam(CompanyID: string) {\n if (CompanyID) {\n const Weburl = this.httpUrl + 'Dorsey/GetTeam?CompanyID=' + CompanyID;\n return this.FetchData(Weburl);\n }\n }\n public DeleteTeam(TeamID: string) {\n const Weburl = this.httpUrl + 'Dorsey/DeleteTeam?TeamID=' + TeamID;\n return this.FetchData(Weburl);\n }\n public GetPointerType() {\n const Weburl = this.httpUrl + 'Dorsey/GetPointerType';\n return this.FetchData(Weburl);\n }\n public GetFrustrationType(PointerTypeID, CompanyID) {\n const Weburl = this.httpUrl + 'Dorsey/GetFrustrationType?PointerTypeID=' + PointerTypeID + '&CompanyID=' + CompanyID;\n return this.FetchData(Weburl);\n }\n public GetStatus() {\n const Weburl = this.httpUrl + 'Dorsey/GetStatus';\n return this.FetchData(Weburl);\n }\n public GetProjectStatus() {\n const Weburl = this.httpUrl + 'Dorsey/GetProjectStatus';\n return this.FetchData(Weburl);\n }\n public GetSeverity() {\n const Weburl = this.httpUrl + 'Dorsey/GetSeverity';\n return this.FetchData(Weburl);\n }\n public GetFrustration(ProjectID, CompanyID) {\n const Weburl = this.httpUrl + 'Dorsey/GetFrustration?ProjectID=' + ProjectID + '&CompanyID=' + CompanyID;\n return this.FetchData(Weburl);\n }\n\n\n SavePointer(body: any, Isversionize: string) {\n const Weburl = this.httpUrl + 'Dorsey/Savepointer?isVersioning=' + Isversionize;\n return this.PostData(Weburl, body);\n }\n\n public GetPointer(CompanyID: string) {\n const Weburl = this.httpUrl + 'Dorsey/GetPointer?CompanyID=' + CompanyID;\n return this.FetchData(Weburl);\n }\n public DeletePointer(PointerID: string) {\n const Weburl = this.httpUrl + 'Dorsey/DeletePointer?PointerID=' + PointerID;\n return this.FetchData(Weburl);\n }\n SaveCase(body: any) {\n const Weburl = this.httpUrl + 'Dorsey/SaveCase';\n return this.PostData(Weburl, body);\n }\n public GetCase(CompanyID: string) {\n const Weburl = this.httpUrl + 'Dorsey/GetCase?CompanyID=' + CompanyID;\n return this.FetchData(Weburl);\n }\n public GetCaseData(processID: number, activityID: number, PointerTypeID: number, versionID: number, tableName, tableType) {\n const Weburl = this.httpUrl + 'Dorsey/GetCaseData?processID=' + processID + '&activityID=' +\n activityID + '&PointerTypeID=' + PointerTypeID + '&versionID=' + versionID + '&tableName=' + tableName + '&tableType=' + tableType;\n return this.FetchData(Weburl);\n }\n\n public GetVersions(companyID: number, TeamID: number) {\n //, TeamID\n // + '&TeamID='+ TeamID\n const Weburl = this.httpUrl + 'Dorsey/GetVersions?CompanyID=' + companyID + '&TeamID=' + TeamID;\n return this.FetchData(Weburl);\n }\n\n public GetSelectedVersionData(versionID: number, companyID: number, teamId, verTable: String) {\n const Weburl = this.httpUrl + 'Dorsey/GetSelectedVersionData?versionID=' + versionID + \"&companyID=\" + companyID + \"&TeamID=\" + teamId + \"&VerTableName=\" + verTable;\n return this.FetchData(Weburl);\n }\n public GetSelectedVersionPointerData(versionID: number, companyID: number, teamId, tableName: string) {\n const Weburl = this.httpUrl + 'Dorsey/GetSelectedVersionPointerData?versionID=' + versionID + '&companyID=' + companyID + \"&TeamID=\" + teamId + '&tableName=' + tableName;\n return this.FetchData(Weburl);\n }\n\n public GetSelectedVersionActivityData(versionID: number, companyID: number, teamId, tableName: string) {\n const Weburl = this.httpUrl + 'Dorsey/GetSelectedVersionActivityData?versionID=' + versionID + '&companyID=' + companyID + \"&TeamID=\" + teamId + '&tableName=' + tableName;\n return this.FetchData(Weburl);\n }\n SaveProjects(body: any) {\n const Weburl = this.httpUrl + 'Dorsey/SaveProject';\n return this.PostData(Weburl, body);\n }\n public GetProjects(CompanyID: string) {\n const Weburl = this.httpUrl + 'Dorsey/GetProjects?CompanyID=' + CompanyID;\n return this.FetchData(Weburl);\n }\n public DeleteProjects(ProjectID: string) {\n const Weburl = this.httpUrl + 'Dorsey/DeleteProjects?ProjectID=' + ProjectID;\n return this.FetchData(Weburl);\n }\n UpdatePointerProject(body: any, Isversionize: string, statusID: string) {\n const Weburl = this.httpUrl + 'Dorsey/UpdatePointerProject?isVersioning=' + Isversionize + '&statusID=' + statusID;\n return this.PostData(Weburl, body);\n }\n\n public GetFrustNoProcess(CompanyID: string) {\n const Weburl = this.httpUrl + 'Dorsey/NoFrustProcesses?CompanyID=' + CompanyID;\n return this.FetchData(Weburl);\n }\n\n public GetNoActionProjects(CompanyID: string) {\n const Weburl = this.httpUrl + 'Dorsey/NoActionProject?CompanyID=' + CompanyID;\n return this.FetchData(Weburl);\n }\n\n public GetFrustrationWithOther(CompanyID: string) {\n const Weburl = this.httpUrl + 'Dorsey/GetFrustrationWithOther?CompanyID=' + CompanyID;\n return this.FetchData(Weburl);\n }\n\n public GetCommentsOnFrustration(CompanyID: string) {\n const Weburl = this.httpUrl + 'Dorsey/GetCommentsOnFrustration?CompanyID=' + CompanyID;\n return this.FetchData(Weburl);\n }\n\n public GetNoMetricProcess(CompanyID: string) {\n const Weburl = this.httpUrl + 'Dorsey/NoMetricProcesses?CompanyID=' + CompanyID;\n return this.FetchData(Weburl);\n }\n\n public GetUsersList() {\n const Weburl = this.httpUrl + 'Dorsey/GetUsers';\n return this.FetchData(Weburl);\n }\n public GetReport() {\n const Weburl = this.httpUrl + 'Dorsey/GetReport';\n return this.FetchData(Weburl);\n }\n public GetUserRoleAssignment() {\n const Weburl = this.httpUrl + 'Dorsey/GetUserRoleAssignment';\n return this.FetchData(Weburl);\n }\n public GetKeyProcessTeam() {\n const Weburl = this.httpUrl + 'Dorsey/GetKeyProcessTeam';\n return this.FetchData(Weburl);\n }\n public GetActivitiesTeam() {\n const Weburl = this.httpUrl + 'Dorsey/GetActivitiesTeam';\n return this.FetchData(Weburl);\n }\n SaveUser(body: any) {\n const Weburl = this.httpUrl + 'Dorsey/SaveUser';\n return this.PostData(Weburl, body);\n }\n ChangePassword(body: any) {\n const Weburl = this.httpUrl + 'Dorsey/ChangePassword';\n return this.PostData(Weburl, body);\n }\n SaveRole(body: any) {\n const Weburl = this.httpUrl + 'Dorsey/SaveRole';\n return this.PostData(Weburl, body);\n }\n public GetSelectedRolesData(companyID: string, TeamID: string, VerTableName: string) {\n const Weburl = this.httpUrl + 'Dorsey/GetSelectedRolesData?companyID=' + companyID + \"&TeamID=\" + TeamID + \"&VerTableName=\" + VerTableName;\n return this.FetchData(Weburl);\n }\n\n public GetSelectedRolesActivityData(companyID: string, TeamID: string, VerTableName: string) {\n const Weburl = this.httpUrl + 'Dorsey/GetSelectedRolesActivityData?companyID=' + companyID + \"&teamID=\" + TeamID + \"&tableName=\" + VerTableName;\n return this.FetchData(Weburl);\n }\n public GetMenuMaster() {\n const Weburl = this.httpUrl + 'Dorsey/GetMenuMaster';\n return this.FetchData(Weburl);\n }\n\n public DeleteRole(RowID: string) {\n const Weburl = this.httpUrl + 'Dorsey/DeleteRole?RowID=' + RowID;\n return this.FetchData(Weburl);\n }\n SaveTypes(body: any, Isversionize: string) {\n const Weburl = this.httpUrl + 'Dorsey/SaveTypes?isVersioning=' + Isversionize;\n return this.PostData(Weburl, body);\n }\n\n public DeleteType(FrustrationTypeID: string) {\n const Weburl = this.httpUrl + 'Dorsey/DeleteType?FrustrationsTypeID=' + FrustrationTypeID;\n return this.FetchData(Weburl);\n }\n\n public GetActivityIssues(CompanyID: string) {\n const Weburl = this.httpUrl + 'Dorsey/GetActivityIssues?CompanyID=' + CompanyID;\n return this.FetchData(Weburl);\n }\n\n public DeleteCase(CasesID: string, PointerID: string) {\n const Weburl = this.httpUrl + 'Dorsey/DeleteCase?CasesID=' + CasesID + '&PointerID=' + PointerID;\n return this.FetchData(Weburl);\n }\n\n SaveAlertValue(body: any) {\n const Weburl = this.httpUrl + 'Dorsey/SaveAlertValues';\n return this.PostData(Weburl, body);\n }\n\n public GetAlertValue(companyID: string, pointerID: Number) {\n const Weburl = this.httpUrl + 'Dorsey/GetAlertValue?companyID=' + companyID + '&pointerTypeID=' + pointerID;\n return this.FetchData(Weburl);\n }\n\n public GetKpiMain(CompanyID) {\n const Weburl = this.httpUrl + 'Dorsey/GetKpiMain?CompanyID=' + CompanyID;\n return this.FetchData(Weburl);\n }\n\n public GetKpiSub(CompanyID) {\n const Weburl = this.httpUrl + 'Dorsey/GetKpiSub?CompanyID=' + CompanyID;\n return this.FetchData(Weburl);\n }\n SaveMetricData(body: any, Isversionize: string) {\n const Weburl = this.httpUrl + 'Dorsey/SaveMetricData?isVersioning=' + Isversionize;\n return this.PostData(Weburl, body);\n }\n public DeleteMetricData(MainCategoryID: string, RowID: string) {\n const Weburl = this.httpUrl + 'Dorsey/DeleteMetricData?MainCategoryID=' + MainCategoryID + '&RowID=' + RowID;\n return this.FetchData(Weburl);\n }\n\n public GenerateRandomPasswrd(body: any) {\n const Weburl = this.httpUrl + 'Dorsey/GenerateRandomPasswrd?fullData=' + body;\n return this.PostData(Weburl, body);\n }\n\n updateEnableScoreCard(body: any) {\n const Weburl = this.httpUrl + 'Dorsey/UpdateEnableScoreCard';\n return this.PostData(Weburl, body);\n }\n}\n","import { Component, OnInit, Inject } from '@angular/core';\nimport { DorseyService } from '../dorsey.service';\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { MatDatepickerInputEvent, MatRadioChange, MatRadioButton } from '@angular/material';\nimport { FormControl } from '@angular/forms';\nimport { DatePipe } from '@angular/common';\nimport { LocalStorageService } from 'ngx-webstorage';\nimport { EmployeeLoginLevel } from '../common/models/login-level.model';\nimport { DepartmentService } from '../services/department.service';\nimport { Department } from '../departments/department.model';\nimport { copyRight } from '../copyRight.model';\n\n@Component({\n selector: 'app-employee',\n templateUrl: './employee.component.html',\n providers: [DorseyService]\n})\nexport class EmployeeComponent implements OnInit {\n tempEmpDataFilter: any;\n teamData: any;\n employeeData: any;\n condition = false;\n EmployeeID: string;\n rolesData: any;\n companyData: any;\n roleID: string;\n designationID: string;\n departmentId: number;\n companyID: string;\n companyName: string;\n EmployeeName: string;\n Gender: string;\n DOB: string;\n DOJ: string;\n Email: string;\n Phone: string;\n status = false;\n employeeLoginLevel: string = null;\n employeeDetails: any;\n date = new FormControl(new Date());\n serializedDate = new FormControl((new Date()).toISOString());\n serializedDate1 = new FormControl((new Date()).toISOString());\n p: number = 1;\n rowsOnPage = 10;\n rowsOnPageSet = [];\n rowCount: any;\n dynamicRows = 10;\n isDesc: boolean = false;\n column = \"\";\n direction: number;\n arrow = true;\n searchtext: string;\n employeePaging = false;\n saveFilter = [];\n TeamID: string;\n userVisible = false;\n UserName: string;\n Password: string;\n isDisable = false;\n disableSearch = false;\n userData: any;\n UserID: string;\n Designation: string;\n currentUser: string;\n MenuPermissions: any;\n menuData: any;\n menuID: string;\n menuName: string;\n userRoleAssign: any;\n companyRole: any;\n CompanyRoleID: string;\n loginEmployeeID: string;\n FirstName: string;\n LastName: string;\n userTeamID: any;\n loginCompanyName: any;\n TeamAdminRoleID: string;\n TeamMemberRoleID: string;\n TeamMemberRoleName: string;\n EmpRoleID: string;\n EmpTeamName: string;\n EmpCompanyID: any;\n UserIDEMp: any;\n userRoleAssignmentData: any;\n rolesDataUser: any;\n isTeamAssigned: boolean = false;\n\n constructor(private dorseyService: DorseyService,\n public dialog: MatDialog,\n private departmentService: DepartmentService,\n private storage: LocalStorageService) {\n this.currentUser = this.storage.retrieve('user');\n this.EmpCompanyID = this.storage.retrieve('companyID');\n this.userTeamID = this.storage.retrieve('TeamID');\n this.menuData = this.storage.retrieve('menuData');\n this.MenuPermissions = this.storage.retrieve('MenuPermissions');\n this.loginEmployeeID = this.storage.retrieve('EmployeeID');\n this.loginCompanyName = this.storage.retrieve('loginCompanyName');\n this.TeamAdminRoleID = this.storage.retrieve('TeamAdminRoleID');\n this.TeamMemberRoleID = this.storage.retrieve('TeamMemberRoleID');\n this.TeamMemberRoleName = this.storage.retrieve('TeamMemberRoleName');\n this.EmpRoleID = this.storage.retrieve('EmpRoleID');\n this.UserIDEMp = this.storage.retrieve('UserID');\n this.employeeDetails = this.storage.retrieve('employeeDetails');\n this.companyID = this.storage.retrieve('companyID');\n }\n\n ngOnInit() {\n this.GetUserRoleAssignment();\n if (this.loginEmployeeID.toString() !== '0') {\n this.EmployeeID = this.loginEmployeeID;\n }\n else {\n //this.EmployeeID = \"0\";\n this.EmployeeID = this.loginEmployeeID = \"0\";\n }\n let tempdata = this.menuData;\n this.menuData = tempdata.filter(x => x.MenuName.toString().toLowerCase() === 'employee');\n if (this.menuData.length > 0) {\n this.menuName = this.menuData[0][\"MenuName\"];\n this.menuID = this.menuData[0][\"MenuID\"];\n }\n this.GetUserROleAssignment();\n this.GetUsers();\n this.GetEmployee();\n this.GetRoles();\n this.GetCompanyDetails();\n this.GetTeam();\n this.sort('EmployeeName');\n }\n\n OpenEmployee() {\n this.FirstName = \"\";\n this.LastName = \"\";\n this.roleID = '';\n this.Designation = '';\n this.UserName = '';\n this.Password = '';\n this.employeeLoginLevel = '';\n this.companyID = this.storage.retrieve('companyID');\n this.dialogCall('new');\n }\n\n GetCompanyDetails() {\n this.dorseyService.GetCompanyData().subscribe(subData => {\n subData = JSON.parse(subData['_body']);\n this.companyData = subData;\n });\n }\n\n GetUserRoleAssignment() {\n this.dorseyService.GetUserRoleAssignment().subscribe(userRoles => {\n this.userRoleAssignmentData = JSON.parse(userRoles['_body']);\n this.dorseyService.GetRoles(this.companyID).subscribe(users => {\n this.rolesDataUser = JSON.parse(users['_body']);\n if (this.loginEmployeeID.toString() !== '0') {\n let roles = this.userRoleAssignmentData.filter(x => x.UserID === this.UserIDEMp);\n if (roles.length > 0) {\n this.EmpRoleID = roles[0].RoleID;\n let roleData = this.rolesDataUser.filter(x => x.RoleID === this.EmpRoleID);\n if (roleData.length > 0) {\n this.MenuPermissions = JSON.parse(roleData[0].MenuJson);\n }\n\n }\n }\n });\n });\n }\n\n GetTeam() {\n this.dorseyService.GetTeam(this.companyID).subscribe(subData => {\n subData = JSON.parse(subData['_body']);\n this.teamData = subData;\n let tempData = this.teamData.filter(x => x.TeamID === this.userTeamID);\n if (tempData.length > 0)\n this.EmpTeamName = tempData[0].TeamName;\n\n if (this.EmployeeID.toString() !== \"0\" && this.userTeamID.toString() !== \"0\") {\n let data = this.teamData.filter(x => x.TeamID === this.userTeamID);\n this.teamData = data;\n this.TeamID = data[0].TeamID;\n //this.isTeamAssigned = this.employeeDetails.IsEmployeeLoginLevel = EmployeeLoginLevel.Team ? true : false;\n this.TeamID ? this.isTeamAssigned = true : this.isTeamAssigned = false\n } else {\n this.TeamID = '0';\n this.teamData = subData;\n }\n });\n }\n\n Searchtext() {\n this.employeeData = this.saveFilter;\n let tempEmployee = this.employeeData.filter(\n (item) => {\n return (\n (item.CompanyName !== null && this.searchtext && item.CompanyName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n (item.IsEmployeeLoginLevel !== null && this.searchtext && item.IsEmployeeLoginLevel.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n (item.EmployeeName !== null && this.searchtext && item.EmployeeName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n (item.EmailID !== null && this.searchtext && item.EmailID.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n (item.TeamName !== null && this.searchtext && item.TeamName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n (item.DepartmentName !== null && this.searchtext && item.DepartmentName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n (item.RoleName !== null && this.searchtext && item.RoleName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1)\n );\n }\n\n );\n this.employeeData = tempEmployee;\n if (this.employeeData.length == 0) {\n this.isDisable = true;\n } else {\n this.isDisable = false;\n }\n if (this.searchtext === '') {\n this.employeeData = this.saveFilter;\n this.dynamicRows = 10;\n this.rowsOnPageSet = [];\n this.rowCount = this.employeeData.length;\n while (this.dynamicRows < this.rowCount) {\n this.rowsOnPageSet.push(this.dynamicRows);\n this.dynamicRows = this.dynamicRows + 10;\n }\n if (!this.rowsOnPageSet.includes(this.rowCount))\n this.rowsOnPageSet.push(this.rowCount);\n if (this.rowsOnPageSet) {\n\n this.rowsOnPage = this.rowsOnPageSet[0];\n }\n this.isDisable = false;\n } else {\n this.rowCount = tempEmployee.length;\n this.dynamicRows = 10;\n this.rowsOnPageSet = [];\n while (this.dynamicRows < this.rowCount) {\n this.rowsOnPageSet.push(this.dynamicRows);\n this.dynamicRows = this.dynamicRows + 10;\n }\n if (!this.rowsOnPageSet.includes(this.rowCount))\n this.rowsOnPageSet.push(this.rowCount);\n this.rowsOnPage = this.rowsOnPageSet[0];\n if (this.rowsOnPageSet.length === 1) {\n if (this.rowsOnPageSet[0] <= 10)\n this.rowsOnPage = this.rowsOnPageSet[0];\n }\n }\n }\n\n GetEmployee() {\n this.dorseyService.GetEmployee(this.companyID).subscribe(subData => {\n subData = JSON.parse(subData['_body']);\n this.employeeData = subData;\n if (this.userTeamID === null || this.userTeamID === undefined) {\n this.userTeamID = \"0\";\n }\n if (this.employeeData.length === 0) {\n this.employeePaging = false;\n this.isDisable = true;\n this.disableSearch = true;\n }\n else {\n this.employeePaging = true;\n this.isDisable = false;\n this.disableSearch = false;\n //if (this.userTeamID.toString() !== \"0\" && this.userTeamID !== null && this.companyID.toString() !== \"0\") {\n if (this.employeeDetails) {\n if (this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Department) {\n this.employeeData = [...this.employeeData.filter(x => x.DepartmentID === this.employeeDetails.DepartmentID)];\n }\n else if (this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Team) {\n this.employeeData = [...this.employeeData.filter(x => x.TeamID === this.employeeDetails.TeamID)];\n }\n }\n // let dtaa = this.employeeData.filter(x => x.TeamID === this.userTeamID && x.CompanyID === this.companyID);\n // this.employeeData = dtaa;\n //}\n // else {\n // let dtaa = this.employeeData.filter(x => x.CompanyID === this.companyID);\n // this.employeeData = dtaa;\n // }\n this.saveFilter = JSON.parse(JSON.stringify(this.employeeData));\n this.rowsOnPageSet = [];\n this.dynamicRows = 10;\n this.rowCount = this.employeeData.length;\n while (this.dynamicRows < this.rowCount) {\n this.rowsOnPageSet.push(this.dynamicRows);\n this.dynamicRows = this.dynamicRows + 10;\n }\n if (!this.rowsOnPageSet.includes(this.rowCount)) this.rowsOnPageSet.push(this.rowCount);\n if (this.rowsOnPageSet.length === 1) {\n if (this.rowsOnPageSet[0] <= 10)\n this.rowsOnPage = this.rowsOnPageSet[0];\n }\n }\n });\n }\n\n exportAsXLSX() {\n let allData = JSON.parse(JSON.stringify(this.employeeData));\n for (let i = 0; i < allData.length; i++) {\n allData[i].Employee = allData[i].EmployeeName;\n allData[i][\" Email \"] = allData[i].EmailID;\n allData[i][\"Employee Level\"] = allData[i].IsEmployeeLoginLevel;\n allData[i][\"Department\"] = allData[i].DepartmentName;\n allData[i].Team = allData[i].TeamName;\n allData[i].Role = allData[i].RoleName;\n\n delete (allData[i].DepartmentName);\n delete (allData[i].IsEmployeeLoginLevel);\n delete (allData[i].UpdatedDate3);\n delete (allData[i].UpdatedBy3);\n delete (allData[i].CompanyID3);\n delete (allData[i].IsActive3);\n delete (allData[i].CreatedDate3);\n delete (allData[i].CreatedBy3);\n delete (allData[i].RowID);\n delete (allData[i].RoleID1);\n delete (allData[i].RoleName1);\n delete (allData[i].RoleDescription);\n delete (allData[i].PermissionJson);\n delete (allData[i].MenuJson);\n delete (allData[i].TeamID1);\n delete (allData[i].ProcessID);\n delete (allData[i].TeamName1);\n delete (allData[i].CompanyID2);\n delete (allData[i].IsActive2);\n delete (allData[i].CreatedDate2);\n delete (allData[i].CreatedBy2);\n delete (allData[i].UpdatedDate2);\n delete (allData[i].UpdatedBy2);\n delete (allData[i].TeamDescription);\n delete (allData[i].TeamName);\n delete (allData[i].RoleName);\n delete (allData[i].CompanyName);\n delete (allData[i].EmployeeName);\n delete (allData[i].Gender);\n delete (allData[i].EmailID);\n delete (allData[i].DateOfBirth);\n delete (allData[i].DateOfJoin);\n delete (allData[i].CompanyName);\n delete (allData[i].EmployeeName);\n delete (allData[i].Email);\n delete (allData[i].TeamID);\n delete (allData[i].DesignationID);\n delete (allData[i].RoleID);\n delete (allData[i].DepartmentID);\n delete (allData[i].CreatedBy);\n delete (allData[i].CreatedDate);\n delete (allData[i].UpdatedBy);\n delete (allData[i].UpdatedDate);\n delete (allData[i].ParentID);\n delete (allData[i].CompanyOwner);\n delete (allData[i].Description);\n delete (allData[i].AnnualRevenue);\n delete (allData[i].EmployeeID);\n delete (allData[i].IsActive);\n delete (allData[i].CompanyID1);\n delete (allData[i].CompanyNumber);\n delete (allData[i].CompanyCurrency);\n delete (allData[i].CompanySource);\n delete (allData[i].Active);\n delete (allData[i].CustomerPriority);\n delete (allData[i].Industry);\n delete (allData[i].NAICSCode);\n delete (allData[i].NAICSDescription);\n delete (allData[i].NumberOfLocations);\n delete (allData[i].OperatingHours);\n delete (allData[i].Ownership);\n delete (allData[i].ParentCompany);\n delete (allData[i].SICCode);\n delete (allData[i].SICCode);\n delete (allData[i].SICDescription);\n delete (allData[i].D_U_N_SNumber);\n delete (allData[i].Address1);\n delete (allData[i].Address2);\n delete (allData[i].Phone);\n delete (allData[i].CIty);\n delete (allData[i].Pincode);\n delete (allData[i].State);\n delete (allData[i].Country);\n delete (allData[i].Phone1);\n delete (allData[i].Phone2);\n delete (allData[i].Fax);\n delete (allData[i].Website);\n delete (allData[i].YearStarted);\n delete (allData[i].IsActive1);\n delete (allData[i].CreatedDate1);\n delete (allData[i].CreatedBy1);\n delete (allData[i].UpdatedDate1);\n delete (allData[i].UpdatedBy1);\n delete (allData[i].CompanyName1);\n delete (allData[i].CompanyID);\n }\n\n this.dorseyService.generateExcel(allData, this.loginCompanyName + '_employee' + \"_\" + (new Date().getMonth() + 1) + '-' + new Date().getDate() + '-' + new Date().getFullYear(), 'Employee', \"Company: \" + this.loginCompanyName, '', \"Employee Report\", copyRight, 'FFFFFF00', 'FF0000FF');\n }\n\n sort(property) {\n this.arrow = !this.arrow;\n this.isDesc = !this.isDesc; //change the direction \n this.column = property;\n this.direction = this.isDesc ? 1 : -1;\n }\n\n GetRoles() {\n this.dorseyService.GetRoles(this.companyID).subscribe(subData => {\n subData = JSON.parse(subData['_body']);\n this.rolesData = subData;\n let temproles = this.rolesData;\n this.departmentService.getUsersByCompanyId(Number(this.companyID)).subscribe(resp => {\n this.userData = resp.Data;\n let data = [...this.userData];\n this.companyRole = data;\n if (data.length > 0) {\n this.dorseyService.GetUserRoleAssignment().subscribe(subData => {\n subData = JSON.parse(subData['_body']);\n this.userRoleAssign = subData;\n let assignROle = this.userRoleAssign.filter(x => x.UserID === data[0].UserID);\n if (assignROle.length > 0) {\n let roles = temproles.filter(x => x.RoleID != assignROle[0].RoleID);\n this.rolesData = roles;\n if (this.loginEmployeeID.toString() !== \"0\" && (this.employeeDetails && this.employeeDetails.IsEmployeeLoginLevel != EmployeeLoginLevel.Company)) {\n let adminRole = roles.filter(x => x.RoleID !== this.TeamAdminRoleID);\n this.rolesData = adminRole;\n this.rolesData = adminRole.filter(x => x.RoleID !== this.EmpRoleID);\n }\n }\n });\n }\n });\n });\n }\n\n GetUserROleAssignment() {\n this.dorseyService.GetUserRoleAssignment().subscribe(subData => {\n subData = JSON.parse(subData['_body']);\n this.userRoleAssign = subData;\n });\n }\n\n // GetDesignation() {\n // this.dorseyService.GetDesignation().subscribe(subData => {\n // subData = JSON.parse(subData['_body']);\n // this.designationData = subData;\n // });\n // }\n\n // GetDepartment() {\n // this.dorseyService.GetDepartment().subscribe(subData => {\n // subData = JSON.parse(subData['_body']);\n // this.departmentData = subData;\n // });\n // }\n\n dialogCall(msg: string) {\n this.GetRoles();\n const dialogRef = this.dialog.open(EmployeeDialogComponent, {\n panelClass: 'custom-dialog-container',\n data: msg + 'æææ' + false,\n });\n\n dialogRef.componentInstance.EmployeeID = this.loginEmployeeID;\n dialogRef.componentInstance.loginEmployeeID = this.loginEmployeeID;\n dialogRef.componentInstance.currentUser = this.currentUser;\n dialogRef.componentInstance.userVisible = this.userVisible;\n dialogRef.componentInstance.roleID = this.roleID;\n dialogRef.componentInstance.Designation = this.Designation;\n dialogRef.componentInstance.companyRole = this.companyRole;\n dialogRef.componentInstance.userData = this.userData;\n dialogRef.componentInstance.userRoleAssign = this.userRoleAssign;\n dialogRef.componentInstance.companyRole = this.companyRole;\n dialogRef.componentInstance.selectedLoginLevel = this.employeeLoginLevel;\n if (msg === 'user') {\n this.userVisible = true;\n dialogRef.componentInstance.companyID = this.companyID;\n dialogRef.componentInstance.EmployeeName = this.EmployeeName;\n dialogRef.componentInstance.Email = this.Email;\n dialogRef.componentInstance.Phone = this.Phone;\n dialogRef.componentInstance.UserName = this.UserName;\n dialogRef.componentInstance.Password = this.Password;\n dialogRef.componentInstance.EmployeeID = this.EmployeeID;\n }\n if (msg === 'new') {\n this.userVisible = false;\n this.searchtext = '';\n this.GetEmployee();\n }\n dialogRef.componentInstance.companyData = this.companyData;\n dialogRef.componentInstance.rolesData = this.rolesData;\n //dialogRef.componentInstance.designationData = this.designationData;\n //dialogRef.componentInstance.departmentData = this.departmentData;\n dialogRef.componentInstance.companyID = this.companyID;\n dialogRef.componentInstance.TeamID = this.TeamID;\n dialogRef.componentInstance.DOB = null;\n dialogRef.componentInstance.isTeamAssigned = this.isTeamAssigned;\n dialogRef.componentInstance.DOJ = null;\n dialogRef.componentInstance.teamData = this.teamData;\n dialogRef.componentInstance.selectedLoginLevel = this.employeeLoginLevel;\n\n if (msg === 'edit') {\n this.userVisible = false;\n this.status = true;\n dialogRef.componentInstance.TeamID = this.TeamID;\n dialogRef.componentInstance.FirstName = this.FirstName;\n dialogRef.componentInstance.LastName = this.LastName;\n dialogRef.componentInstance.Password = this.Password;\n dialogRef.componentInstance.UserName = this.UserName;\n dialogRef.componentInstance.UserID = this.UserID;\n dialogRef.componentInstance.companyName = this.companyName;\n dialogRef.componentInstance.EmployeeName = this.EmployeeName;\n dialogRef.componentInstance.Phone = this.Phone;\n dialogRef.componentInstance.Gender = this.Gender;\n dialogRef.componentInstance.roleID = this.roleID;\n dialogRef.componentInstance.designationID = this.designationID;\n dialogRef.componentInstance.departmentId = this.departmentId;\n dialogRef.componentInstance.Email = this.Email;\n dialogRef.componentInstance.selectedLoginLevel = this.employeeLoginLevel;\n // this.departmentService.getTeamsByDepartmentId(Number(this.companyID), this.departmentId).subscribe(resp => {\n // dialogRef.componentInstance.teamList = resp.Data;\n // });\n\n if (this.DOB)\n dialogRef.componentInstance.DOB = new Date(this.DOB);\n else dialogRef.componentInstance.DOB = null;\n if (this.DOJ)\n dialogRef.componentInstance.DOJ = new Date(this.DOJ);\n else dialogRef.componentInstance.DOJ = null;\n dialogRef.componentInstance.EmployeeID = this.EmployeeID;\n dialogRef.componentInstance.companyID = this.companyID;\n }\n\n dialogRef.afterClosed().subscribe(result => {\n if (this.searchtext !== '' && this.searchtext !== undefined) {\n this.Searchtext();\n }\n else {\n\n this.GetEmployee();\n }\n if (result && result.toString() === 'true') {\n let statusMsg = '';\n if (msg === 'new') {\n statusMsg = 'Saved successfully';\n } else {\n statusMsg = 'Updated successfully';\n }\n\n this.dynamicRows = 10;\n this.rowsOnPageSet = [];\n const dialogRefsub = this.dialog.open(EmployeeDialogComponent, {\n panelClass: 'custom-dialog-container',\n data: statusMsg + 'æææ' + false,\n });\n\n setTimeout(() => {\n this.GetEmployee();\n this.GetUsers();\n }, 500);\n dialogRefsub.afterClosed().subscribe(result1 => {\n this.employeeData = [];\n if (this.searchtext !== '' && this.searchtext !== undefined) {\n this.Searchtext();\n }\n else {\n this.GetEmployee();\n this.GetUsers();\n }\n });\n }\n });\n }\n\n GetUsers() {\n this.departmentService.getUsersByCompanyId(Number(this.companyID)).subscribe(resp => {\n this.userData = resp.Data;\n });\n }\n\n AddUser(element) {\n this.EmployeeID = \"\";\n this.UserID = \"\";\n this.UserName = \"\";\n this.Password = \"\";\n this.EmployeeID = element.EmployeeID;\n this.companyID = element.CompanyID;\n this.companyName = element.EmployeeName;\n this.Email = element.EmailID;\n this.Phone = element.Phone;\n this.roleID = element.RoleID;\n this.userVisible = true;\n let filterUser = this.userData.filter(x => x.EmployeeID === this.EmployeeID);\n if (filterUser.length > 0 && filterUser.length === 1) {\n this.UserID = filterUser[0].UserID;\n this.UserName = filterUser[0].UserName;\n this.Password = filterUser[0].Password;\n } else {\n this.UserName = \"\";\n this.Password = \"\";\n }\n this.dialogCall('user');\n\n }\n EditEmployee(data) {\n this.EmployeeID = data.EmployeeID;\n this.companyName = data.CompanyID;\n this.roleID = data.RoleID;\n this.designationID = data.DesignationID;\n this.departmentId = data.DepartmentID;\n this.Phone = data.Phone;\n this.Email = data.EmailID;\n this.EmployeeName = data.EmployeeName;\n this.companyID = data.CompanyID;\n this.TeamID = data.TeamID;\n this.Designation = data.DesignationID;\n this.employeeLoginLevel = data.IsEmployeeLoginLevel;\n let tempUsers = this.userData.filter(x => x.CompanyID === this.companyID && x.EmployeeID === this.EmployeeID && x.Email === this.Email);\n if (tempUsers.length > 0 && tempUsers.length === 1) {\n this.UserName = tempUsers[0].UserName;\n this.FirstName = tempUsers[0].FirstName;\n this.LastName = tempUsers[0].LastName;\n this.Password = tempUsers[0].Password;\n this.UserID = tempUsers[0].UserID;\n }\n else {\n this.FirstName = '';\n this.LastName = '';\n this.Password = '';\n this.UserID = '';\n }\n this.storage.store(\"Uname\", this.UserName);\n this.dialogCall('edit');\n }\n\n ifMaxRow() {\n if (this.rowsOnPage == this.employeeData.length) {\n this.rowsOnPage = this.rowsOnPage - 1;\n }\n }\n\n DeleteEmployee(element) {\n this.EmployeeID = element.EmployeeID;\n const dialogRef = this.dialog.open(EmployeeDialogComponent, {\n data: 'Are you sure you want to delete employee: ' + element.CompanyName + '?æææ' + true,\n });\n dialogRef.afterClosed().subscribe(result => {\n if (result) {\n this.dorseyService.DeleteEmployee(this.EmployeeID).subscribe(data => {\n if (data.ok) {\n this.ifMaxRow();\n this.condition = false;\n this.dialogCall('Deleted successfully');\n }\n this.dynamicRows = 10;\n this.rowsOnPageSet = [];\n this.GetEmployee();\n });\n }\n });\n }\n}\n\n@Component({\n selector: 'app-dialog',\n templateUrl: 'dialog.html',\n // styleUrls: ['dialog.css'],\n providers: [DorseyService, DatePipe],\n})\nexport class EmployeeDialogComponent implements OnInit {\n companyRole: any;\n userRoleAssign: any;\n UserName: string;\n Password: string;\n userVisible = false;\n companyName: string;\n roleID: string;\n designationID: string;\n companyID: string;\n EmployeeName: string;\n teamData: any;\n Gender: string;\n DOB = new Date();\n DOJ = new Date();\n Email: string;\n currentUser: string;\n Phone: string;\n EmployeeID: string;\n TeamID: string;\n dataSelf = '';\n condition: boolean;\n addCompany: string;\n companyData: any;\n rolesData: any;\n //designationData: any;\n //departmentData: any;\n startDate = new Date();\n validDate = new Date();\n minDate = new Date();\n UserID: string;\n Designation: string;\n loginEmployeeID: string;\n userData: any;\n FirstName: string;\n LastName: string;\n userListData: any;\n isTeamAssigned: boolean;\n btnDisabled = false;\n employeeLoginLevelList: string[] = [EmployeeLoginLevel.Company, EmployeeLoginLevel.Department, EmployeeLoginLevel.Team];\n selectedLoginLevel: string = null;\n departmentList: Array<Department> = [];\n departmentId: number = 0;\n employeeLoginLevel = EmployeeLoginLevel;\n teamList: Array<any> = [];\n employeeDetails: any;\n\n constructor(\n public dialogRef: MatDialogRef<EmployeeDialogComponent>,\n @Inject(MAT_DIALOG_DATA) public data: any,\n public dorseyService: DorseyService,\n private departmentService: DepartmentService,\n private datepipe: DatePipe,\n private storage: LocalStorageService) {\n this.employeeDetails = this.storage.retrieve('employeeDetails');\n this.data = this.data.split('æææ');\n if (this.data[1] === 'true') {\n this.condition = true;\n } else {\n this.condition = false;\n }\n this.data = this.data[0];\n if (this.data == 'msg') {\n this.DOB = null;\n this.DOJ = null;\n }\n }\n\n ngOnInit() {\n this.GetUserListData();\n if (this.companyID) {\n this.departmentService.getDepartments(Number(this.companyID)).subscribe(resp => {\n if (resp.Data.length > 0) {\n this.getTeamsByDepartmentId();\n this.departmentList = resp.Data;\n if (this.employeeDetails) {\n //this.isTeamAssigned = this.employeeDetails.IsEmployeeLoginLevel = EmployeeLoginLevel.Team ? true : false;\n if (this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Department) {\n this.departmentList = this.departmentList.filter(x => x.DepartmentID === this.employeeDetails.DepartmentID);\n this.employeeLoginLevelList = [EmployeeLoginLevel.Team];\n }\n else if (this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Team) {\n this.teamList = this.teamList.filter(x => x.TeamID === this.employeeDetails.TeamID);\n this.employeeLoginLevelList = [EmployeeLoginLevel.Team];\n }\n else {\n this.employeeLoginLevelList = [EmployeeLoginLevel.Department, EmployeeLoginLevel.Team];\n\n\n }\n }\n }\n });\n }\n }\n\n loginLevelChange(): void {\n if (this.data === 'new') {\n this.TeamID = \"0\";\n this.departmentId = 0;\n }\n if (this.selectedLoginLevel == EmployeeLoginLevel.Company) {\n this.departmentId = 0;\n this.TeamID = '0';\n }\n else if (this.selectedLoginLevel == EmployeeLoginLevel.Department) {\n this.TeamID = '0';\n }\n }\n\n departmentChange(): void {\n this.getTeamsByDepartmentId();\n }\n\n getTeamsByDepartmentId(): void {\n if (this.departmentId && this.companyID) {\n this.departmentService.getTeamsByDepartmentId(Number(this.companyID), this.departmentId).subscribe(resp => {\n if (resp.Data.length > 0) {\n this.teamList = resp.Data;\n }\n });\n }\n }\n\n onYesClick() {\n this.dialogRef.close(true);\n }\n onNoClick(): void {\n this.dialogRef.close();\n }\n\n SaveUser() {\n let count = 0;\n const Editcount = 0;\n if (this.UserName === undefined || this.Password === undefined || this.UserName.trim() === '' || this.Password.trim() === '') {\n this.dataSelf = 'Please enter mandatory(*) fields';\n if (this.data === 'new') {\n\n }\n count++;\n }\n\n if (count === 0 && Editcount === 0) {\n this.dataSelf = '';\n if (this.data === 'new') {\n\n\n this.SavingUserDetails(this.data);\n } else {\n this.SavingUserDetails(this.data);\n }\n }\n }\n\n\n SavingUserDetails(msg: string) {\n const json = {\n CompanyID: this.companyID,\n RoleID: this.roleID,\n roleCreatedBy: this.currentUser,\n name: this.EmployeeName,\n email: this.Email,\n phone1: this.Phone,\n UserName: this.UserName,\n Password: this.Password,\n EmployeeID: this.EmployeeID,\n userCreatedBy: this.currentUser,\n UserID: this.UserID\n }\n\n\n if (msg === 'new') {\n this.dorseyService.SaveUser(json).subscribe(data => {\n\n if (data['_body'].toString() !== '0') {\n\n this.dialogRef.close(true);\n } else {\n this.dataSelf = 'Save failed';\n }\n\n });\n } else {\n\n this.dorseyService.SaveUser(json).subscribe(data => {\n\n if (data['_body'].toString() !== '0') {\n\n this.dialogRef.close(true);\n } else {\n this.dataSelf = 'Updated successfully';\n }\n });\n }\n\n }\n\n AddEmployee() {\n this.btnDisabled = true;\n setTimeout(() => {\n this.btnDisabled = false;\n }, 1000);\n let count = 0;\n const Editcount = 0;\n if (this.FirstName == undefined ||\n this.LastName === undefined ||\n this.Password === undefined ||\n this.roleID === undefined ||\n !this.selectedLoginLevel ||\n this.Email === undefined ||\n this.UserName === undefined ||\n this.roleID === '' ||\n this.FirstName.trim() === '' ||\n this.LastName.trim() === '' ||\n this.Password.trim() === '' ||\n this.Email.trim() === '' ||\n this.UserName.trim() === '') {\n this.dataSelf = 'Please enter mandatory(*) fields';\n count++;\n }\n if (this.selectedLoginLevel === this.employeeLoginLevel.Department && !this.departmentId) {\n this.dataSelf = 'Please enter mandatory(*) fields';\n return;\n }\n\n if (this.selectedLoginLevel === this.employeeLoginLevel.Team && (this.TeamID === \"0\" || !this.TeamID)) {\n this.dataSelf = 'Please enter mandatory(*) fields';\n return;\n }\n if (this.Email) {\n var mailformat = /^\\w+([\\.-]?\\w+)*@\\w+([\\.-]?\\w+)*(\\.\\w{2,3})+$/;\n if (!this.Email.match(mailformat)) {\n this.dataSelf = 'Please enter vaild email';\n return;\n }\n }\n\n if (count === 0 && Editcount === 0) {\n this.dataSelf = '';\n if (this.data === 'new') {\n this.Saving(this.data);\n } else {\n this.Saving(this.data);\n }\n }\n }\n\n GetUserListData() {\n this.dorseyService.GetUsersList().subscribe(subData => {\n subData = JSON.parse(subData['_body']);\n this.userListData = subData;\n });\n }\n\n Saving(msg: string) {\n if (!this.TeamID) {\n this.TeamID = \"0\";\n }\n if (msg === 'new') {\n this.UserID = '';\n this.EmployeeID = '';\n }\n const json = {\n EmployeeName: this.FirstName + \" \" + this.LastName,\n CompanyID: this.companyID,\n EmailID: this.Email,\n DesignationID: this.Designation,\n RoleID: this.roleID,\n DepartmentID: this.departmentId,\n Phone: this.Phone,\n CreatedBy: this.currentUser,\n EmployeeID: this.EmployeeID,\n UpdatedBy: this.currentUser,\n TeamID: this.TeamID,\n UserName: this.UserName,\n Password: this.Password,\n FirstName: this.FirstName,\n LastName: this.LastName,\n userCreatedBy: this.currentUser,\n roleCreatedBy: this.currentUser,\n UserID: this.UserID,\n EmployeeLoginLevel: this.selectedLoginLevel\n };\n\n\n if (msg === 'new') {\n this.UserID = '';\n this.EmployeeID = '';\n let checkUser = this.userListData.filter(x => x.UserName.toString().toLowerCase().trim() === this.UserName.toString().toLowerCase().trim());\n if (checkUser.length > 0) {\n this.dataSelf = \"Username already exist\";\n return;\n }\n this.dorseyService.SaveEmployee(json).subscribe(data => {\n if (data['_body'].toString() === 'true') {\n this.dialogRef.close(true);\n } else {\n this.dataSelf = 'Save failed';\n }\n });\n } else {\n if (this.UserName !== this.storage.retrieve('Uname')) {\n let checkUser = this.userListData.filter(x => x.UserName.toString().toLowerCase().trim() === this.UserName.toString().toLowerCase().trim());\n if (checkUser.length > 0) {\n this.dataSelf = \"Username already exist\";\n return;\n }\n }\n this.dorseyService.SaveEmployee(json).subscribe(data => {\n if (data['_body'].toString() === 'true') {\n this.dialogRef.close(true);\n } else {\n this.dataSelf = 'Updated successfully';\n\n }\n });\n }\n }\n\n Clear() {\n this.dialogRef.close(false);\n }\n company(event) {\n this.companyID = event.value;\n }\n\n role(event) {\n this.roleID = event.value;\n }\n\n designation(event) {\n this.designationID = event.value;\n }\n\n doj(type: string, event: MatDatepickerInputEvent<Date>) {\n const date = event.value;\n this.DOJ = date;\n let latest_date = this.datepipe.transform(this.DOJ, 'MM/dd/yyyy');\n this.DOJ = new Date(latest_date);\n }\n\n dob(type: string, event: MatDatepickerInputEvent<Date>) {\n const date = event.value;\n this.DOB = date;\n let latest_date = this.datepipe.transform(this.DOB, 'MM/dd/yyyy');\n this.DOB = new Date(latest_date);\n var year = this.DOB.getFullYear();\n var month = this.DOB.getMonth();\n var day = this.DOB.getDate();\n this.startDate = new Date(year, month, day + 1);\n this.minDate = this.startDate;\n }\n\n IsAlpha(evt) {\n var keyCode = (evt.which) ? evt.which : evt.keyCode;\n if ((keyCode < 65 || keyCode > 90) && (keyCode < 97 || keyCode > 123) && keyCode != 32)\n return false;\n return true;\n }\n\n ValidatePh(event: any) {\n if (\n // Allow: Delete, Backspace, Tab, Escape, Enter\n [46, 8, 9, 27, 13].indexOf(event.keyCode) !== -1 ||\n (event.keyCode === 65 && event.ctrlKey === true) || // Allow: Ctrl+A\n (event.keyCode === 67 && event.ctrlKey === true) || // Allow: Ctrl+C\n (event.keyCode === 86 && event.ctrlKey === true) || // Allow: Ctrl+V\n (event.keyCode === 88 && event.ctrlKey === true) || // Allow: Ctrl+X\n (event.keyCode === 65 && event.metaKey === true) || // Cmd+A (Mac)\n (event.keyCode === 67 && event.metaKey === true) || // Cmd+C (Mac)\n (event.keyCode === 86 && event.metaKey === true) || // Cmd+V (Mac)\n (event.keyCode === 88 && event.metaKey === true) || // Cmd+X (Mac)\n (event.keyCode >= 35 && event.keyCode <= 39) // Home, End, Left, Right\n ) {\n return;\n }\n\n if ((event.shiftKey || (event.keyCode < 48 || event.keyCode > 57)) && (event.keyCode < 96 || event.keyCode > 105)) {\n event.preventDefault();\n }\n }\n\n ValidateEmail(event: any) {\n var re = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n if (this.Email === undefined || this.Email === \"\") {\n if (event.keyCode == 32) {\n event.preventDefault();\n }\n }\n }\n\n onChange(mrChange: MatRadioChange) {\n let mrButton: MatRadioButton = mrChange.source;\n }\n\n\n team(event) {\n this.TeamID = event.value;\n }\n\n UniqueEmail(event: any) {\n this.dorseyService.GetUsersList().subscribe(subData => {\n // tslint:disable-next-line:no-string-literal\n subData = JSON.parse(subData['_body']);\n this.userListData = subData;\n });\n let checkUser = this.userListData.filter(x => x.UserName.toString().toLowerCase().trim() === this.UserName.toString().toLowerCase().trim());\n if (checkUser.length > 0) {\n this.dataSelf = \"Username already exist\";\n this.Email = \"\";\n setTimeout(() => {\n this.dataSelf = '';\n }, 2000);\n }\n }\n\n valZero() {\n var re = /^(?=.*\\d)(?=.*[1-9]).{1,16}$/;\n if (this.Phone) {\n if (!this.Phone.match(re)) {\n this.dataSelf = \"Phone number invalid\";\n this.Phone = \"\";\n setTimeout(() => {\n this.dataSelf = \"\";\n }, 2000);\n }\n }\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { DorseyService } from '../dorsey.service';\n\nimport { LocalStorageService } from 'ngx-webstorage';\nimport { EmployeeLoginLevel } from '../common/models/login-level.model';\nimport { copyRight } from '../copyRight.model';\n\n@Component({\n selector: 'app-frustration-comments',\n templateUrl: './frustration-comments.component.html',\n})\nexport class FrustrationCommentsComponent implements OnInit {\n copyRight: string = copyRight;\n employeeDetails: any;\n commentData: any;\n searchtext: string;\n isDesc: boolean = false;\n column = \"\";\n direction: number;\n arrow = true;\n p: number = 1;\n rowsOnPage = 10;\n rowsOnPageSet = [];\n rowCount: any;\n dynamicRows = 10;\n processPaging = false;\n description = \"\";\n descriptionList = [];\n mainData = [];\n saveFilter = [];\n CompanyID: string;\n isDisable = false;\n disableSearch = false;\n wrng: string;\n teamData: any;\n TeamID: any;\n filterData: any;\n companyName: string;\n headerDate = new Date();\n tempTeam = [];\n TeamName: string;\n EmployeeID: string;\n employeeData: any;\n copyDate: number;\n constructor(private dorseyService: DorseyService, private storage: LocalStorageService) { }\n\n ngOnInit() {\n this.CompanyID = this.storage.retrieve('companyID');\n this.companyName = this.storage.retrieve('LoginCompanyName');\n this.TeamID = this.storage.retrieve('TeamID');\n this.EmployeeID = this.storage.retrieve('EmployeeID');\n this.employeeDetails = this.storage.retrieve('employeeDetails');\n this.GetCommentsOnFrustration();\n this.GetTeam();\n if (this.employeeDetails) {\n this.EmployeeID = this.employeeDetails.EmployeeID;\n this.TeamID = this.employeeDetails.TeamID;\n }\n else {\n this.EmployeeID = '0';\n this.TeamID = 0;\n }\n this.copyDate = (new Date()).getFullYear();\n }\n\n GetSelectedReport(event) {\n this.searchtext = '';\n this.TeamID = event.value;\n let teamd = this.teamData.filter(x => x.TeamID === this.TeamID)\n if (teamd.length > 0) {\n this.TeamName = teamd[0].TeamName;\n }\n this.ConstructReport();\n }\n\n GetTeam() {\n this.TeamName = '';\n this.dorseyService.GetTeam(this.CompanyID).subscribe(subData => {\n subData = JSON.parse(subData['_body']);\n this.dorseyService.GetCommentsOnFrustration(this.CompanyID).subscribe(subDat1 => {\n subDat1 = JSON.parse(subDat1['_body']);\n this.commentData = subDat1;\n this.teamData = subData;\n if (this.employeeDetails) {\n if (this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Department) {\n this.teamData = this.teamData.filter(ent => ent.DepartmentID === this.employeeDetails.DepartmentID);\n }\n else if (this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Team) {\n this.teamData = this.teamData.filter(ent => ent.DepartmentID === this.employeeDetails.DepartmentID && ent.TeamID == this.employeeDetails.TeamID);\n this.TeamID = this.teamData[0].TeamID;\n this.TeamName = this.teamData[0].TeamName;\n }\n }\n if (this.TeamID == 0) {\n this.teamData = this.teamData.filter(entity1 => this.commentData.find(entity2 => entity1.TeamID == entity2.TeamID));\n }\n if (this.teamData.length > 0 && !this.TeamID) { this.teamData.splice(0, 0, { TeamID: 0, TeamName: 'Aggregate Report' }); }\n this.ConstructReport();\n });\n });\n }\n\n ConstructReport() {\n this.mainData = [];\n if (this.TeamID == 0)\n this.filterData = this.commentData.filter(entity1 => this.teamData.find(entity2 => entity1.TeamID == entity2.TeamID));\n else {\n this.filterData = this.commentData.filter(entity1 => entity1.TeamID == this.TeamID);\n }\n if (this.filterData) {\n for (let i = 0; i < this.filterData.length; i++) {\n this.description = '';\n this.descriptionList = [];\n if (this.filterData[i].Comment !== null) {\n\n this.description = this.filterData[i].Comment.split(\",\");\n if (this.description.toString().trim() != '') {\n for (let j = 0; j < this.description.length; j++) {\n\n if (this.description[j].toString().trim() !== '') {\n this.descriptionList.push(this.description[j]);\n }\n }\n }\n }\n if (this.descriptionList.toString() !== '') {\n\n this.mainData.push({\n 'comment': this.descriptionList,\n 'name': this.filterData[i].FrustrationsTypeName,\n 'TeamID': this.filterData[i].TeamID,\n 'TeamName': this.filterData[i].TeamName\n });\n }\n }\n }\n else {\n this.processPaging = false;\n this.isDisable = true;\n this.disableSearch = true;\n this.wrng = \"No data available\";\n return;\n }\n this.saveFilter = this.mainData;\n if (this.mainData.length === 0) {\n this.processPaging = false;\n this.isDisable = true;\n this.disableSearch = true;\n this.wrng = \"No data available\";\n }\n else {\n this.rowCount = this.mainData.length;\n this.processPaging = true;\n this.isDisable = false;\n this.disableSearch = false;\n this.dynamicRows = 10;\n this.rowsOnPageSet = [];\n while (this.dynamicRows < this.rowCount) {\n this.rowsOnPageSet.push(this.dynamicRows);\n this.dynamicRows = this.dynamicRows + 10;\n }\n if (!this.rowsOnPageSet.includes(this.rowCount)) this.rowsOnPageSet.push(this.rowCount);\n if (this.rowsOnPageSet.length > 0) {\n if (this.rowsOnPageSet[0] <= 10)\n this.rowsOnPage = this.rowsOnPageSet[0];\n }\n }\n }\n\n GetCommentsOnFrustration() {\n this.mainData = [];\n this.descriptionList = [];\n this.dorseyService.GetCommentsOnFrustration(this.CompanyID).subscribe(subData => {\n subData = JSON.parse(subData['_body']);\n this.commentData = subData;\n });\n }\n\n\n Searchtext() {\n this.mainData = JSON.parse(JSON.stringify(this.saveFilter));\n let tempComment = this.mainData.filter(\n (item) => {\n return (\n (item.name != null && item.name.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n (item.TeamName != null && item.TeamName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n (item.comment != null && (item.comment.filter(\n (da) => {\n return (\n da != null && da.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1\n )\n }\n )\n )\n ).length\n )\n });\n this.mainData = tempComment;\n if (this.mainData.length == 0) {\n this.wrng = \"No data available\";\n this.isDisable = true;\n return;\n } else {\n this.isDisable = false;\n }\n if (this.searchtext === '') {\n this.mainData = this.saveFilter;\n this.dynamicRows = 10;\n this.rowsOnPageSet = [];\n this.rowCount = this.mainData.length;\n while (this.dynamicRows < this.rowCount) {\n this.rowsOnPageSet.push(this.dynamicRows);\n this.dynamicRows = this.dynamicRows + 10;\n }\n if (!this.rowsOnPageSet.includes(this.rowCount))\n this.rowsOnPageSet.push(this.rowCount);\n if (this.rowsOnPageSet) {\n\n this.rowsOnPage = this.rowsOnPageSet[0];\n }\n this.isDisable = false;\n } else {\n this.rowCount = tempComment.length;\n this.dynamicRows = 10;\n this.rowsOnPageSet = [];\n while (this.dynamicRows < this.rowCount) {\n this.rowsOnPageSet.push(this.dynamicRows);\n this.dynamicRows = this.dynamicRows + 10;\n }\n if (!this.rowsOnPageSet.includes(this.rowCount)) {\n this.rowsOnPageSet.push(this.rowCount);\n if (this.rowsOnPageSet)\n this.rowsOnPage = this.rowsOnPageSet[0];\n }\n\n if (this.rowsOnPageSet.length === 1) {\n if (this.rowsOnPageSet[0] <= 10)\n this.rowsOnPage = this.rowsOnPageSet[0];\n }\n }\n }\n\n\n sort(property) {\n this.arrow = !this.arrow;\n this.isDesc = !this.isDesc; //change the direction \n this.column = property;\n this.direction = this.isDesc ? 1 : -1;\n }\n exportAsXLSX() {\n let allData = JSON.parse(JSON.stringify(this.mainData));\n for (let i = 0; i < allData.length; i++) {\n allData[i][\" No. \"] = i + 1;\n allData[i].Team = allData[i].TeamName;\n allData[i].Frustration = allData[i].name;\n let comment = '';\n let Data = allData[i].comment;\n for (let i = 0; i < Data.length; i++) {\n comment = comment + Data[i] + '\\n';\n }\n allData[i].Comment = comment;\n delete allData[i].name;\n delete allData[i].comment;\n delete allData[i].TeamName;\n delete allData[i].TeamID;\n }\n let name: any;\n if (this.TeamName) {\n name = this.TeamName;\n }\n else {\n name = \"Aggregate Report\";\n }\n this.dorseyService.generateExcel(allData, this.companyName + '_Comments on frustrations' + \"_\" + (new Date().getMonth() + 1) + '-' + new Date().getDate() + '-' + new Date().getFullYear(), 'Comments on frustrations', \"Company: \" + this.companyName, \"Team: \" + name, \"Comments on frustrations Report\", copyRight, 'FFFFFF00', 'FF0000FF');\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { DorseyService } from '../dorsey.service';\nimport { LocalStorageService } from 'ngx-webstorage';\nimport { EmployeeLoginLevel } from '../common/models/login-level.model';\nimport { copyRight } from '../copyRight.model';\n\n@Component({\n selector: 'app-frustration-reports',\n templateUrl: './frustration-reports.component.html',\n // styleUrls: ['./frustration-reports.component.scss']\n})\nexport class FrustrationReportsComponent implements OnInit {\n copyRight: string = copyRight;\n FrustNoProcessData: any\n searchtext: string;\n isDesc: boolean = false;\n column = \"\";\n direction: number;\n arrow = true;\n p: number = 1;\n rowsOnPage = 10;\n rowsOnPageSet = [];\n rowCount: any;\n dynamicRows = 10;\n processPaging = false;\n saveFilter = [];\n CompanyID: string;\n isDisable = false;\n disableSearch = false;\n UserTeamID: string;\n teamData: any;\n TeamID: any;\n filterData = [];\n EmployeeID: string;\n pointerData: any;\n tempTeam = [];\n TeamName: string;\n companyName: string;\n headerDate = new Date();\n employeeData: any;\n copyDate: number;\n employeeDetails: any;\n constructor(public dorseyService: DorseyService, private storage: LocalStorageService) {\n this.EmployeeID = this.storage.retrieve('EmployeeID');\n this.companyName = this.storage.retrieve('LoginCompanyName');\n this.employeeDetails = this.storage.retrieve('employeeDetails');\n if (this.EmployeeID.toString() === \"0\") {\n\n }\n else {\n this.TeamID = this.storage.retrieve('TeamID');\n }\n }\n\n ngOnInit() {\n this.TeamID = this.storage.retrieve('TeamID');\n this.CompanyID = this.storage.retrieve('companyID');\n this.GetFrustNoProcess();\n this.GetTeam();\n this.copyDate = (new Date()).getFullYear();\n if (this.employeeDetails) {\n this.EmployeeID = this.employeeDetails.EmployeeID;\n this.TeamID = this.employeeDetails.TeamID;\n }\n else {\n this.EmployeeID = '0';\n this.TeamID = 0;\n }\n }\n\n GetSelectedReport(event) {\n this.searchtext = '';\n this.TeamID = event.value;\n let teamd = this.teamData.filter(x => x.TeamID === this.TeamID)\n if (teamd.length > 0) {\n this.TeamName = teamd[0].TeamName;\n }\n this.ConstructReport();\n }\n\n GetTeam() {\n\n this.TeamName = '';\n this.dorseyService.GetTeam(this.CompanyID).subscribe(subData => {\n subData = JSON.parse(subData['_body']);\n\n this.dorseyService.GetFrustNoProcess(this.CompanyID).subscribe(subDat1 => {\n subDat1 = JSON.parse(subDat1['_body']);\n this.FrustNoProcessData = subDat1;\n this.teamData = subData;\n\n if (this.employeeDetails) {\n if (this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Department) {\n this.teamData = this.teamData.filter(ent => ent.DepartmentID === this.employeeDetails.DepartmentID);\n\n }\n else if (this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Team) {\n this.teamData = this.teamData.filter(ent => ent.DepartmentID === this.employeeDetails.DepartmentID && ent.TeamID == this.employeeDetails.TeamID);\n this.TeamID = this.teamData[0].TeamID;\n this.TeamName = this.teamData[0].TeamName;\n }\n }\n if (this.TeamID == 0) {\n this.teamData = this.teamData.filter(entity1 => this.FrustNoProcessData.find(entity2 => entity1.TeamID == entity2.TeamID));\n }\n if (this.teamData.length > 0 && !this.TeamID) { this.teamData.splice(0, 0, { TeamID: 0, TeamName: 'Aggregate Report' }); }\n this.ConstructReport();\n });\n });\n }\n ConstructReport() {\n\n this.filterData = [];\n this.dorseyService.GetFrustNoProcess(this.CompanyID).subscribe(subData => {\n subData = JSON.parse(subData['_body']);\n this.FrustNoProcessData = subData;\n if (this.TeamID == 0)\n this.filterData = this.FrustNoProcessData.filter(entity1 => this.teamData.find(entity2 => entity1.TeamID == entity2.TeamID));\n else {\n this.filterData = this.FrustNoProcessData.filter(entity1 => entity1.TeamID == this.TeamID);\n }\n\n if (this.filterData.length === 0) {\n this.processPaging = false;\n this.isDisable = true;\n this.disableSearch = true;\n }\n else {\n this.processPaging = true;\n this.isDisable = false;\n this.disableSearch = false;\n this.dynamicRows = 10;\n this.rowsOnPageSet = [];\n this.saveFilter = JSON.parse(JSON.stringify(this.filterData));\n\n this.rowCount = this.filterData.length;\n while (this.dynamicRows < this.rowCount) {\n this.rowsOnPageSet.push(this.dynamicRows);\n this.dynamicRows = this.dynamicRows + 10;\n }\n if (!this.rowsOnPageSet.includes(this.rowCount))\n this.rowsOnPageSet.push(this.rowCount);\n if (this.rowsOnPageSet.length > 0) {\n if (this.rowsOnPageSet[0] <= 10)\n this.rowsOnPage = this.rowsOnPageSet[0];\n }\n }\n });\n }\n GetFrustNoProcess() {\n\n this.dorseyService.GetFrustNoProcess(this.CompanyID).subscribe(subData => {\n subData = JSON.parse(subData['_body']);\n this.FrustNoProcessData = subData;\n\n });\n }\n\n Searchtext() {\n this.filterData = this.saveFilter;\n let tempFrustrationProcess = this.filterData.filter(\n (item) => {\n return (\n (item.ProcessName !== null && item.ProcessName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n (item.CompanyName !== null && item.CompanyName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n (item.ProcessDescription !== null && item.ProcessDescription.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n (item.TeamName !== null && item.TeamName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1)\n );\n }\n\n );\n this.filterData = tempFrustrationProcess;\n if (this.filterData.length == 0) {\n // this.GetActivity();\n this.isDisable = true;\n } else {\n this.isDisable = false;\n }\n if (this.searchtext === '') {\n //this.GetFrustNoProcess();\n this.filterData = this.saveFilter;\n this.dynamicRows = 10;\n this.rowsOnPageSet = [];\n this.rowCount = this.filterData.length;\n while (this.dynamicRows < this.rowCount) {\n this.rowsOnPageSet.push(this.dynamicRows);\n this.dynamicRows = this.dynamicRows + 10;\n }\n if (!this.rowsOnPageSet.includes(this.rowCount))\n this.rowsOnPageSet.push(this.rowCount);\n if (this.rowsOnPageSet) {\n\n this.rowsOnPage = this.rowsOnPageSet[0];\n }\n this.isDisable = false;\n } else {\n\n this.rowCount = tempFrustrationProcess.length;\n this.dynamicRows = 10;\n this.rowsOnPageSet = [];\n while (this.dynamicRows < this.rowCount) {\n this.rowsOnPageSet.push(this.dynamicRows);\n this.dynamicRows = this.dynamicRows + 10;\n }\n if (!this.rowsOnPageSet.includes(this.rowCount)) {\n this.rowsOnPageSet.push(this.rowCount);\n if (this.rowsOnPageSet)\n this.rowsOnPage = this.rowsOnPageSet[0];\n }\n\n if (this.rowsOnPageSet.length === 1) {\n if (this.rowsOnPageSet[0] <= 10)\n this.rowsOnPage = this.rowsOnPageSet[0];\n }\n }\n }\n\n\n exportAsXLSX() {\n let allData = JSON.parse(JSON.stringify(this.filterData));\n\n for (let i = 0; i < allData.length; i++) {\n allData[i][\" No. \"] = i + 1;\n allData[i].Company = allData[i].CompanyName;\n allData[i].Team = allData[i].TeamName;\n allData[i].Process = allData[i].ProcessName;\n allData[i].Description = allData[i].ProcessDescription;\n\n delete (allData[i].ProcessID);\n delete (allData[i].CompanyName);\n delete (allData[i].ProcessName);\n delete (allData[i].ActivityName);\n delete (allData[i].ProcessDescription);\n delete (allData[i].TeamName);\n delete (allData[i].TeamID);\n\n\n }\n let name: any;\n if (this.TeamName) {\n name = this.TeamName;\n }\n else {\n name = \"Aggregate Report\";\n }\n\n\n this.dorseyService.generateExcel(allData, this.companyName + '_Process with no frustrations' + \"_\" + (new Date().getMonth() + 1) + '-' + new Date().getDate() + '-' + new Date().getFullYear(), 'Process with no frustrations', \"Company: \" + this.companyName, \"Team: \" + name, \"Process with no frustrations Report\", copyRight, 'FFFFFF00', 'FF0000FF');\n }\n\n sort(property) {\n this.arrow = !this.arrow;\n this.isDesc = !this.isDesc; //change the direction \n this.column = property;\n this.direction = this.isDesc ? 1 : -1;\n }\n\n\n}\n","import { Component, OnInit, Inject } from '@angular/core';\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { DorseyService } from '../dorsey.service';\nimport { LocalStorageService } from 'ngx-webstorage';\nimport { copyRight } from '../copyRight.model';\n\n@Component({\n selector: 'app-frustrationstype',\n templateUrl: './frustrationstype.component.html',\n})\nexport class FrustrationstypeComponent implements OnInit {\n FrustrationsDescription: string;\n frustTypeData: any;\n isDisable = false;\n disableSearch = false;\n frustPaging = false;\n p: number = 1;\n rowsOnPage = 10;\n rowsOnPageSet = [];\n rowCount: any;\n dynamicRows = 10;\n isDesc: boolean = false;\n searchtext: string = '';\n saveFilter = [];\n FrustrationsTypeName: any;\n FrustrationsTypeID: any;\n condition = false;\n currentUser: string;\n CompanyID: string;\n pointerData: any;\n dataSelf: string;\n column = \"\";\n direction: number;\n arrow = true;\n menuData: any;\n menuID: string;\n menuName: string;\n empID: string;\n MenuPermissions: any;\n loginCompanyName: any;\n userTeamID: any;\n TeamName: string;\n teamData: any;\n userRoleAssignmentData: any;\n rolesData: any;\n UserID: any;\n EmpROleID: any;\n inUse = false;\n constructor(private dorseyService: DorseyService, public dialog: MatDialog, public storage: LocalStorageService) {\n this.currentUser = this.storage.retrieve('user');\n this.menuData = this.storage.retrieve('menuData');\n this.empID = this.storage.retrieve('EmployeeID');\n this.MenuPermissions = this.storage.retrieve('MenuPermissions');\n this.loginCompanyName = this.storage.retrieve('loginCompanyName');\n this.userTeamID = this.storage.retrieve(\"TeamID\");\n this.UserID = this.storage.retrieve('UserID');\n this.EmpROleID = this.storage.retrieve('EmpRoleID');\n\n }\n\n ngOnInit() {\n this.CompanyID = this.storage.retrieve('companyID');\n this.GetFrustrationType();\n this.GetUserRoleAssignment();\n let tempdata = this.menuData;\n this.menuData = tempdata.filter(x => x.MenuName.toString() === 'FrustrationsType');\n if (this.menuData.length > 0) {\n this.menuName = this.menuData[0][\"MenuName\"];\n this.menuID = this.menuData[0][\"MenuID\"];\n }\n this.getTeam();\n\n }\n GetUserRoleAssignment() {\n this.dorseyService.GetUserRoleAssignment().subscribe(userRoles => {\n this.userRoleAssignmentData = JSON.parse(userRoles['_body']);\n this.dorseyService.GetRoles(this.CompanyID).subscribe(users => {\n this.rolesData = JSON.parse(users['_body']);\n if (this.empID.toString() !== '0') {\n let roles = this.userRoleAssignmentData.filter(x => x.UserID === this.UserID);\n if (roles.length > 0) {\n this.EmpROleID = roles[0].RoleID;\n let roleData = this.rolesData.filter(x => x.RoleID === this.EmpROleID);\n if (roleData.length > 0) {\n this.MenuPermissions = JSON.parse(roleData[0].MenuJson);\n }\n\n }\n }\n });\n });\n }\n\n sort(property) {\n this.arrow = !this.arrow;\n this.isDesc = !this.isDesc; //change the direction\n this.column = property;\n this.direction = this.isDesc ? 1 : -1;\n }\n\n GetFrustrationType() {\n this.frustTypeData = [];\n this.dorseyService.GetFrustrationType(\"1\", this.CompanyID).subscribe(subData => {\n subData = JSON.parse(subData['_body']);\n this.frustTypeData = subData;\n this.rowCount = this.frustTypeData.length;\n if (this.frustTypeData.length === 0) {\n this.frustPaging = false;\n this.isDisable = true;\n this.disableSearch = true;\n }\n else {\n this.saveFilter = JSON.parse(JSON.stringify(this.frustTypeData));\n this.frustPaging = true;\n this.isDisable = false;\n this.disableSearch = false;\n\n this.dynamicRows = 10;\n this.rowsOnPageSet = [];\n\n while (this.dynamicRows < this.rowCount) {\n this.rowsOnPageSet.push(this.dynamicRows);\n this.dynamicRows = this.dynamicRows + 10;\n }\n if (!this.rowsOnPageSet.includes(this.rowCount))\n this.rowsOnPageSet.push(this.rowCount);\n if (this.rowsOnPageSet.length === 1) {\n if (this.rowsOnPageSet[0] <= 10)\n this.rowsOnPage = this.rowsOnPageSet[0];\n }\n }\n });\n\n\n }\n\n Searchtext() {\n this.frustTypeData = this.saveFilter;\n let tempFrustType = this.frustTypeData.filter(\n (item) => {\n return (\n (item.FrustrationsTypeName !== null && item.FrustrationsTypeName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n (item.FrustrationsDescription !== null && item.FrustrationsDescription.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1)\n\n );\n }\n );\n this.frustTypeData = tempFrustType;\n if (this.frustTypeData.length == 0) {\n this.isDisable = true;\n } else {\n this.isDisable = false;\n }\n if (this.searchtext === '') {\n this.frustTypeData = this.saveFilter;\n this.dynamicRows = 10;\n this.rowsOnPageSet = [];\n this.rowCount = this.frustTypeData.length;\n while (this.dynamicRows < this.rowCount) {\n this.rowsOnPageSet.push(this.dynamicRows);\n this.dynamicRows = this.dynamicRows + 10;\n }\n if (!this.rowsOnPageSet.includes(this.rowCount))\n this.rowsOnPageSet.push(this.rowCount);\n if (this.rowsOnPageSet) {\n\n this.rowsOnPage = this.rowsOnPageSet[0];\n }\n this.isDisable = false;\n } else {\n\n this.rowCount = tempFrustType.length;\n this.dynamicRows = 10;\n this.rowsOnPageSet = [];\n while (this.dynamicRows < this.rowCount) {\n this.rowsOnPageSet.push(this.dynamicRows);\n this.dynamicRows = this.dynamicRows + 10;\n }\n if (!this.rowsOnPageSet.includes(this.rowCount)) {\n this.rowsOnPageSet.push(this.rowCount);\n if (this.rowsOnPageSet)\n this.rowsOnPage = this.rowsOnPageSet[0];\n }\n\n if (this.rowsOnPageSet.length === 1) {\n if (this.rowsOnPageSet[0] <= 10)\n this.rowsOnPage = this.rowsOnPageSet[0];\n }\n }\n }\n\n\n\n exportAsXLSX() {\n let allData = JSON.parse(JSON.stringify(this.frustTypeData));\n for (let i = 0; i < allData.length; i++) {\n allData[i][\"Frustration Types\"] = allData[i].FrustrationsTypeName;\n allData[i][\"Description\"] = allData[i].FrustrationsDescription;\n delete (allData[i].FrustrationsTypeID);\n delete (allData[i].FrustrationsTypeName\n );\n delete (allData[i].FrustrationsDescription);\n delete (allData[i].CreatedDate);\n\n delete (allData[i].CreatedBy);\n delete (allData[i].UpdatedDate);\n delete (allData[i].UpdatedBy);\n delete (allData[i].IsActive);\n\n delete (allData[i].Process);\n delete (allData[i].PointerTypeID);\n delete (allData[i].CompanyID);\n delete (allData[i].VersionID);\n }\n\n this.dorseyService.generateExcel(allData, this.loginCompanyName + '_frustration Types' + \"_\" + (new Date().getMonth() + 1) + '-' + new Date().getDate() + '-' + new Date().getFullYear(), 'Frustration Types', \"Company: \" + this.loginCompanyName, '', \"Frustration Types Report\", copyRight, 'FFFFFF00', 'FF0000FF');\n }\n\n getTeam() {\n this.TeamName = '';\n this.dorseyService.GetTeam(this.CompanyID).subscribe(subData => {\n subData = JSON.parse(subData['_body']);\n this.teamData = subData;\n let tempData = this.teamData.filter(x => x.TeamID === this.userTeamID);\n if (tempData.length > 0) {\n this.TeamName = tempData[0].TeamName;\n }\n });\n }\n\n OpenFrustType() {\n this.dialogCall('new');\n }\n\n dialogCall(msg: string) {\n const dialogRef = this.dialog.open(FrustTypeDialogComponent, {\n panelClass: 'custom-dialog-container',\n data: msg + 'æææ' + false,\n });\n dialogRef.componentInstance.currentUser = this.currentUser;\n dialogRef.componentInstance.frustTypeData = this.frustTypeData;\n dialogRef.componentInstance.CompanyID = this.CompanyID;\n if (msg === 'new') {\n this.searchtext = '';\n this.GetFrustrationType();\n }\n if (msg === 'edit') {\n\n dialogRef.componentInstance.FrustrationsTypeName = this.FrustrationsTypeName;\n dialogRef.componentInstance.FrustrationsTypeID = this.FrustrationsTypeID;\n dialogRef.componentInstance.FrustrationsDescription = this.FrustrationsDescription;\n dialogRef.componentInstance.inUse = this.inUse;\n\n }\n\n dialogRef.afterClosed().subscribe(result => {\n\n if (this.searchtext !== '' && this.searchtext !== undefined) {\n this.Searchtext();\n }\n else {\n this.GetFrustrationType();\n }\n\n if (result.toString() === 'true') {\n\n let statusMsg = '';\n if (msg === 'new') {\n statusMsg = 'Saved successfully';\n }\n else {\n\n statusMsg = 'Updated successfully';\n }\n this.GetFrustrationType();\n\n const dialogRefsub = this.dialog.open(FrustTypeDialogComponent, {\n panelClass: 'custom-dialog-container',\n data: statusMsg + 'æææ' + false,\n // width: '30%'\n });\n\n setTimeout(() => {\n this.GetFrustrationType();\n }, 500);\n dialogRefsub.afterClosed().subscribe(result1 => {\n this.dynamicRows = 10;\n // this.rowsOnPageSet=[];\n\n if (this.searchtext !== '') {\n this.Searchtext();\n }\n else {\n this.GetFrustrationType();\n }\n\n\n });\n\n\n\n }\n\n });\n }\n\n EditFrustType(element) {\n\n this.FrustrationsTypeID = element.FrustrationsTypeID;\n\n this.FrustrationsTypeName = element.FrustrationsTypeName;\n this.storage.store('FTName', this.FrustrationsTypeName);\n this.FrustrationsDescription = element.FrustrationsDescription;\n\n this.GetPointer();\n let issueCount = 0;\n setTimeout(() => {\n\n for (let i = 0; i < this.pointerData.length; i++) {\n\n if (this.FrustrationsTypeID == this.pointerData[i].FrustrationsTypeID) {\n issueCount++;\n }\n }\n if (!issueCount) {\n this.inUse = false;\n this.dialogCall('edit');\n\n } else {\n this.inUse = true;\n this.dialogCall(\"edit\");\n }\n }, 500);\n //this.dialogCall('edit');\n }\n\n GetPointer() {\n this.pointerData = [];\n this.dorseyService.GetPointer(this.CompanyID).subscribe(subData => {\n subData = JSON.parse(subData['_body']);\n this.pointerData = subData;\n });\n }\n\n ifMaxRow() {\n\n if (this.rowsOnPage == this.frustTypeData.length) {\n this.rowsOnPage = this.rowsOnPage - 1;\n }\n }\n\n DeleteFrustType(element) {\n this.FrustrationsTypeID = element.FrustrationsTypeID;\n this.GetPointer();\n let issueCount = 0;\n setTimeout(() => {\n\n for (let i = 0; i < this.pointerData.length; i++) {\n\n if (this.FrustrationsTypeID == this.pointerData[i].FrustrationsTypeID) {\n issueCount++;\n }\n }\n\n if (issueCount) {\n this.dialogCall(\"This frustration type is in use\");\n }\n else {\n\n\n const dialogRef = this.dialog.open(FrustTypeDialogComponent, {\n panelClass: 'custom-dialog-container',\n data: 'Are you sure you want to delete frustration type: ' + element.FrustrationsTypeName + '?æææ' + true,\n // width: '40%'\n });\n // this.condition = true;\n\n dialogRef.afterClosed().subscribe(result => {\n if (result) {\n\n /// this.condition = true;\n\n if (!issueCount) {\n this.dorseyService.DeleteType(this.FrustrationsTypeID).subscribe(data => {\n\n if (data.ok) {\n this.ifMaxRow();\n this.condition = true;\n this.dialogCall('Deleted successfully');\n this.frustTypeData = [];\n this.GetFrustrationType();\n }\n this.dynamicRows = 10;\n this.rowsOnPageSet = [];\n\n\n });\n } else {\n //this.dialogCall(\"This frustration type is in use\");\n }\n\n\n\n }\n });\n }\n }, 1000);\n\n }\n\n}\n\n\n@Component({\n selector: 'app-dialog',\n templateUrl: 'dialog.html',\n // styleUrls: ['dialog.css'],\n providers: [DorseyService]\n})\nexport class FrustTypeDialogComponent implements OnInit {\n FrustrationsDescription: string;\n condition = false;\n dataSelf: string;\n FrustrationsTypeName: string;\n FrustrationsTypeID: string;\n frustTypeData: any;\n CompanyID: string;\n currentUser: string;\n TeamDescription: string;\n processIDs = [];\n inUse: boolean;\n btnDisabled = false;\n constructor(\n public dialogRef: MatDialogRef<FrustTypeDialogComponent>,\n @Inject(MAT_DIALOG_DATA) public data: any, public dorseyService: DorseyService, private storage: LocalStorageService) {\n // dialogRef.disableClose=true;\n this.data = this.data.split('æææ');\n if (this.data[1] === 'true') {\n this.condition = true;\n } else {\n this.condition = false;\n }\n this.data = this.data[0];\n }\n ngOnInit() {\n\n\n\n }\n onYesClick() {\n this.dialogRef.close(true);\n }\n onNoClick(): void {\n this.dialogRef.close();\n }\n process(event) {\n this.processIDs = event.value;\n }\n AddFrustType() {\n this.btnDisabled = true;\n\n setTimeout(() => {\n this.btnDisabled = false;\n }, 1000);\n let count = 0;\n const Editcount = 0;\n\n if (this.FrustrationsTypeName == undefined ||\n this.FrustrationsTypeName.trim() === '') {\n this.dataSelf = 'Please enter mandatory(*) fields';\n if (this.data === 'new') {\n }\n count++;\n }\n\n if (count === 0 && Editcount === 0) {\n this.dataSelf = '';\n if (this.data === 'new') {\n this.Saving(this.data);\n } else {\n this.Saving(this.data);\n }\n } else {\n }\n }\n\n\n GetFrustrationType() {\n this.frustTypeData = [];\n this.dorseyService.GetFrustrationType(\"1\", this.CompanyID).subscribe(subData => {\n subData = JSON.parse(subData['_body']);\n this.frustTypeData = subData;\n\n });\n }\n Saving(msg: string) {\n\n\n\n const json = {\n\n FrustrationsTypeName: this.FrustrationsTypeName,\n CreatedBy: this.currentUser,\n FrustrationsTypeID: this.FrustrationsTypeID,\n CompanyID: this.CompanyID,\n PointerTypeID: 1,\n FrustrationsDescription: this.FrustrationsDescription\n\n };\n if (msg === 'new') {\n\n for (let i = 0; i < this.frustTypeData.length; i++) {\n if (this.FrustrationsTypeName.toLowerCase().trim() === this.frustTypeData[i].FrustrationsTypeName.toLowerCase().trim()) {\n\n this.dataSelf = \"Frustration type already exists\";\n return;\n setTimeout(() => {\n this.dataSelf = '';\n return;\n }, 2000);\n //this.companyName = \"\";\n }\n }\n\n this.dorseyService.SaveTypes(json, 'No').subscribe(data => {\n\n\n\n if (data['_body'].toString() === 'true') {\n this.dataSelf = 'Saved successfully';\n this.GetFrustrationType();\n //this.dialogRef.close(true);\n this.FrustrationsTypeName = '';\n setTimeout(() => {\n this.dataSelf = '';\n }, 2000);\n } else {\n this.dataSelf = 'Save failed';\n }\n\n });\n } else {\n\n for (let i = 0; i < this.frustTypeData.length; i++) {\n if (this.FrustrationsTypeName.toLowerCase().trim() === this.frustTypeData[i].FrustrationsTypeName.toLowerCase().trim() && this.FrustrationsTypeName.toLowerCase().trim() !== this.storage.retrieve('FTName').toLowerCase().trim()) {\n\n this.dataSelf = \"Frustration type already exists\";\n return;\n setTimeout(() => {\n this.dataSelf = '';\n return;\n }, 2000);\n //this.companyName = \"\";\n }\n }\n\n this.dorseyService.SaveTypes(json, 'No').subscribe(data => {\n if (data['_body'].toString() === 'true') {\n this.dialogRef.close(true);\n } else {\n this.dataSelf = 'Updated successfully';\n }\n });\n }\n }\n Clear() {\n this.dialogRef.close(false);\n }\n}\n","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2dvYWxzL2dvYWxzLmNvbXBvbmVudC5zY3NzIn0= */\"","import { Component, Inject, OnInit } from '@angular/core';\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { GoalService } from '../services/goal.service';\nimport { DorseyService } from '../dorsey.service';\nimport { LocalStorageService } from 'ngx-webstorage';\nimport { copyRight } from '../copyRight.model';\n\n@Component({\n selector: 'app-goals',\n templateUrl: './goals.component.html',\n styleUrls: ['./goals.component.scss']\n})\nexport class GoalsComponent implements OnInit {\n\n GoalsList: any;\n TempGoalsList: any;\n GoalName: string;\n GoalDescription: string;\n GoalID: any;\n isDisable = false;\n disableSearch = false;\n GoalPaging = false;\n p: number = 1;\n rowsOnPage = 10;\n rowsOnPageSet = [];\n rowCount: any;\n dynamicRows = 10;\n isDesc: boolean = false;\n searchtext: string;\n saveFilter = [];\n condition = false;\n currentUser: string;\n CompanyID: string;\n dataSelf: string;\n column = \"\";\n direction: number;\n arrow = true;\n menuData: any;\n menuID: string;\n menuName: string;\n editGoalName: string;\n empID: string;\n MenuPermissions: any;\n loginCompanyName: any;\n userTeamID: any;\n TeamName: string;\n teamData: any;\n userRoleAssignmentData: any;\n rolesData: any;\n UserID: any;\n EmpROleID: any;\n inUse = false;\n metricData: any;\n constructor(private dorseyService: DorseyService,\n public dialog: MatDialog,\n public storage: LocalStorageService,\n private goalService: GoalService) {\n this.currentUser = this.storage.retrieve('user');\n this.menuData = this.storage.retrieve('menuData');\n this.empID = this.storage.retrieve('EmployeeID');\n this.MenuPermissions = this.storage.retrieve('MenuPermissions');\n this.loginCompanyName = this.storage.retrieve('loginCompanyName');\n this.userTeamID = this.storage.retrieve(\"TeamID\");\n this.UserID = this.storage.retrieve('UserID');\n this.EmpROleID = this.storage.retrieve('EmpRoleID');\n }\n\n ngOnInit(): void {\n this.CompanyID = this.storage.retrieve('companyID');\n this.menuData = this.menuData.filter(x => x.MenuName.toString() === 'Goals');\n if (this.menuData.length > 0) {\n this.menuName = this.menuData[0][\"MenuName\"];\n this.menuID = this.menuData[0][\"MenuID\"];\n }\n this.getGoals();\n this.getMetrics();\n }\n\n getMetrics(): void {\n this.dorseyService.GetPointer(this.CompanyID).subscribe(subData => {\n subData = JSON.parse(subData['_body']);\n this.metricData = subData;\n this.metricData = this.metricData.filter(x => x.PointerTypeID != null && x.PointerTypeID.toString() === \"2\");\n });\n }\n\n sort(property) {\n this.arrow = !this.arrow;\n this.isDesc = !this.isDesc; //change the direction\n this.column = property;\n this.direction = this.isDesc ? 1 : -1;\n }\n /*\n New Goal Modal open\n */\n NewGoal() {\n this.dialogCall('new');\n }\n /*\nRetriving Company Goals\n*/\n getGoals(): void {\n this.rowsOnPage = 10;\n this.goalService.getGoals(parseInt(this.CompanyID)).subscribe(resp => {\n this.GoalsList = resp.Data;\n this.TempGoalsList = this.GoalsList;\n this.rowCount = this.GoalsList.length;\n if (this.GoalsList.length === 0) {\n this.GoalPaging = false;\n this.isDisable = true;\n this.disableSearch = true;\n }\n else {\n this.saveFilter = this.GoalsList;\n this.GoalPaging = true;\n this.isDisable = false;\n this.disableSearch = false;\n this.GoalPagination(this.rowCount);\n }\n });\n\n\n }\n /*Set Pagination for goals */\n\n GoalPagination(RowCount) {\n this.dynamicRows = 10;\n this.rowsOnPageSet = [];\n this.rowsOnPage = 10;\n this.rowCount = RowCount;\n while (this.dynamicRows < this.rowCount) {\n this.rowsOnPageSet.push(this.dynamicRows);\n this.dynamicRows = this.dynamicRows + 10;\n }\n if (!this.rowsOnPageSet.includes(this.rowCount)) {\n this.rowsOnPageSet.push(this.rowCount);\n if (this.rowsOnPageSet.length === 1) {\n if (this.rowsOnPageSet[0] <= 10)\n this.rowsOnPage = this.rowsOnPageSet[0];\n }\n }\n }\n /*\n Search Goals data\n */\n\n searchText() {\n this.GoalsList = this.saveFilter;\n let tempListGoals = this.GoalsList.filter(\n (item) => {\n return (\n (item.GoalName !== null && item.GoalName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n (item.GoalDescription !== null && item.GoalDescription.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1)\n\n );\n }\n );\n this.GoalsList = tempListGoals;\n if (this.GoalsList.length == 0) {\n this.isDisable = true;\n } else {\n this.isDisable = false;\n }\n if (this.searchtext === '') {\n this.GoalsList = this.saveFilter;\n this.rowCount = this.GoalsList.length;\n this.isDisable = false;\n this.GoalPagination(this.rowCount);\n }\n else {\n this.rowCount = tempListGoals.length;\n this.GoalPagination(this.rowCount);\n if (this.rowsOnPageSet.length === 1) {\n if (this.rowsOnPageSet[0] <= 10)\n\n this.rowsOnPage = this.rowsOnPageSet[0];\n }\n }\n }\n\n /*\n Dialog open\n */\n dialogCall(msg: string) {\n const dialogRef = this.dialog.open(GoalDialogComponent, {\n panelClass: 'custom-dialog-container',\n data: msg + 'æææ' + false,\n\n });\n dialogRef.componentInstance.currentUser = this.currentUser;\n dialogRef.componentInstance.GoalsList = this.GoalsList;\n dialogRef.componentInstance.CompanyID = this.CompanyID;\n if (msg === 'new') {\n this.searchtext = '';\n this.GoalPagination(this.TempGoalsList.length);\n this.GoalsList = this.TempGoalsList;\n }\n if (msg === 'edit') {\n dialogRef.componentInstance.GoalName = this.GoalName;\n dialogRef.componentInstance.GoalDescription = this.GoalDescription;\n dialogRef.componentInstance.GoalID = this.GoalID;\n dialogRef.componentInstance.editGoalName = this.editGoalName;\n }\n\n dialogRef.afterClosed().subscribe(result => {\n if (this.searchtext !== '' && this.searchtext !== undefined) {\n this.searchText();\n }\n else {\n this.getGoals();\n }\n if (result.toString() === 'true') {\n let statusMsg = '';\n if (msg === 'new') {\n statusMsg = 'Saved successfully';\n }\n else {\n statusMsg = 'Updated successfully';\n }\n this.getGoals();\n const dialogRefsub = this.dialog.open(GoalDialogComponent, {\n panelClass: 'custom-dialog-container',\n data: statusMsg + 'æææ' + false,\n // width: '30%'\n });\n\n setTimeout(() => {\n this.getGoals();\n }, 500);\n dialogRefsub.afterClosed().subscribe(result1 => {\n this.dynamicRows = 10;\n if (this.searchtext !== '') {\n this.searchText();\n }\n else {\n this.getGoals();\n }\n });\n }\n });\n }\n\n /*\n Edit goal\n */\n EditGoal(goalRow) {\n this.GoalID = goalRow.GoalID;\n this.GoalName = goalRow.GoalName;\n this.GoalDescription = goalRow.GoalDescription;\n this.editGoalName = goalRow.GoalName;\n this.CompanyID = goalRow.CompanyID;\n this.dialogCall('edit');\n }\n\n ifMaxRow() {\n if (this.rowsOnPage == this.GoalsList.length) {\n this.rowsOnPage = this.rowsOnPage - 1;\n }\n }\n\n /*\n Delete Goal\n */\n DeleteGoal(GoalRow: any) {\n this.GoalID = GoalRow.GoalID;\n const dialogRef = this.dialog.open(GoalDialogComponent, {\n panelClass: 'custom-dialog-container',\n data: 'Are you sure you want to delete goal: ' + GoalRow.GoalName + '?æææ' + true,\n\n });\n dialogRef.afterClosed().subscribe(result => {\n if (result) {\n if (this.metricData && !this.metricData.find(ent => ent.GoalID == this.GoalID)) {\n this.goalService.deleteGoal(this.GoalID).subscribe(resp => {\n if (resp.Data == true) {\n this.ifMaxRow();\n this.condition = true;\n this.dialogCall('Deleted successfully');\n this.getGoals();\n }\n });\n } else {\n this.dialogCall(\"Delete Failed. This Goal is associated with Metrics\");\n }\n }\n });\n }\n\n exportAsXLSX() {\n let allData = JSON.parse(JSON.stringify(this.GoalsList));\n for (let i = 0; i < allData.length; i++) {\n allData[i][\"Goal Name\"] = allData[i].GoalName;\n allData[i][\"Description\"] = allData[i].GoalDescription;\n delete (allData[i].GoalID);\n delete (allData[i].GoalName);\n delete (allData[i].GoalDescription);\n delete (allData[i].CreatedDate);\n delete (allData[i].CreatedBy);\n delete (allData[i].UpdatedDate);\n delete (allData[i].UpdatedBy);\n delete (allData[i].IsActive);\n delete (allData[i].CompanyID);\n }\n\n\n this.dorseyService.generateExcel(allData, this.loginCompanyName + '_goals' + \"_\" + (new Date().getMonth() + 1) + '-' + new Date().getDate() + '-' + new Date().getFullYear(), 'Goals', \"Company: \" + this.loginCompanyName, '', \"Goals Report\", copyRight, 'FFFFFF00', 'FF0000FF');\n\n }\n}\n\n@Component({\n selector: 'app-dialog',\n templateUrl: 'dialog.html',\n})\nexport class GoalDialogComponent implements OnInit {\n GoalDescription: string;\n condition = false;\n dataSelf: string;\n GoalName: string;\n GoalID: string;\n GoalsList: any = [];\n CompanyID: string;\n currentUser: string;\n\n editGoalName: string;\n constructor(\n public dialogRef: MatDialogRef<GoalDialogComponent>,\n @Inject(MAT_DIALOG_DATA) public data: any, private goalService: GoalService, private storage: LocalStorageService) {\n this.data = this.data.split('æææ');\n if (this.data[1] === 'true') {\n this.condition = true;\n } else {\n this.condition = false;\n }\n this.data = this.data[0];\n }\n\n ngOnInit(): void {\n }\n\n onYesClick(): void {\n this.dialogRef.close(true);\n }\n\n onNoClick(): void {\n this.dialogRef.close();\n }\n\n ValidateGoal(): void {\n this.dataSelf = '';\n if (!this.GoalName.trim()) {\n this.dataSelf = 'Please enter mandatory(*) fields';\n return;\n }\n this.saveGoal(this.data);\n }\n\n saveGoal(msg: string): void {\n const entity = {\n GoalName: this.GoalName,\n CreatedBy: this.currentUser,\n GoalID: this.GoalID,\n CompanyID: this.CompanyID,\n UpdatedBy: this.currentUser,\n GoalDescription: this.GoalDescription\n };\n if (msg === 'new') {\n if (this.GoalsList.find(ent => ent.GoalName.toLowerCase().trim() === this.GoalName.toLowerCase().trim())) {\n this.dataSelf = \"Goal name already exists\";\n return;\n }\n this.goalService.saveGoal(entity).subscribe(resp => {\n if (resp.Data === true) {\n this.dataSelf = 'Saved successfully';\n this.GoalName = '';\n this.GoalDescription = '';\n setTimeout(() => {\n this.dataSelf = '';\n }, 2000);\n } else {\n this.dataSelf = 'Save failed';\n }\n });\n }\n else {\n if (this.editGoalName != this.GoalName)\n if (this.GoalsList.find(ent => ent.GoalName.toLowerCase().trim() === this.GoalName.toLowerCase().trim())) {\n this.dataSelf = \"Goal name already exists\";\n return;\n }\n this.goalService.saveGoal(entity).subscribe(resp => {\n if (resp.Data === true) {\n this.dialogRef.close(true);\n } else {\n this.dataSelf = 'Updated successfully';\n }\n });\n }\n }\n\n Clear(): void {\n this.dialogRef.close(false);\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { DorseyService } from '../dorsey.service';\nimport { LocalStorageService } from 'ngx-webstorage';\nimport { copyRight } from '../copyRight.model';\n\n@Component({\n selector: 'app-hipriority',\n templateUrl: './hipriority.component.html',\n //styleUrls: ['./hipriority.component.scss']\n})\nexport class HipriorityComponent implements OnInit {\n copyRight: string = copyRight;\n CompanyID: string;\n projectData: any;\n isDisable = false;\n disableSearch = false;\n saveFilter = [];\n rowCount: any;\n projectPaging = false;\n searchtext: string;\n p: number = 1;\n rowsOnPage = 10;\n rowsOnPageSet = [];\n dynamicRows = 10;\n companyName: string;\n headerDate = new Date();\n TeamName: string;\n copyDate: number;\n isDesc: boolean = false;\n column = \"\";\n direction: number;\n arrow = true;\n EmployeeID: string;\n TeamID: string;\n constructor(private dorsey: DorseyService, private storage: LocalStorageService) {\n this.CompanyID = this.storage.retrieve('companyID');\n this.companyName = this.storage.retrieve('LoginCompanyName');\n this.EmployeeID = this.storage.retrieve('EmployeeID');\n if (this.EmployeeID.toString() === \"0\") {\n\n }\n else {\n this.TeamID = this.storage.retrieve('TeamID');\n }\n\n }\n\n ngOnInit() {\n this.GetProjects();\n this.copyDate = (new Date()).getFullYear();\n }\n GetProjects() {\n this.dorsey.GetProjects(this.CompanyID).subscribe(data => {\n this.projectData = JSON.parse(data[\"_body\"]);\n let tempProjectsData = this.projectData;\n this.projectData = tempProjectsData.filter(x => x.StatusID === 2);\n if (this.projectData.length === 0) {\n this.projectPaging = false;\n this.isDisable = true;\n this.disableSearch = true;\n }\n else {\n this.saveFilter = JSON.parse(JSON.stringify(this.projectData));\n this.projectPaging = true;\n this.isDisable = false;\n this.disableSearch = false;\n this.rowCount = this.projectData.length;\n while (this.dynamicRows < this.rowCount) {\n this.rowsOnPageSet.push(this.dynamicRows);\n this.dynamicRows = this.dynamicRows + 10;\n }\n if (!this.rowsOnPageSet.includes(this.rowCount))\n this.rowsOnPageSet.push(this.rowCount);\n if (this.rowsOnPageSet.length === 1) {\n if (this.rowsOnPageSet[0] <= 10)\n this.rowsOnPage = this.rowsOnPageSet[0];\n }\n\n }\n });\n }\n\n sort(property) {\n this.arrow = !this.arrow;\n this.isDesc = !this.isDesc; //change the direction\n this.column = property;\n this.direction = this.isDesc ? 1 : -1;\n }\n\n Searchtext() {\n this.projectData = this.saveFilter;\n let tempProjects = this.projectData.filter(\n (item) => {\n return (\n (item.ProjectName !== null && item.ProjectName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n (item.ProjectDescription !== null && item.ProjectDescription.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n (item.ProjectStatusName !== null && item.ProjectStatusName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n (item.TeamName !== null && item.TeamName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1)\n || (item.ProjectOwner !== null && item.ProjectOwner.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1)\n );\n }\n );\n this.projectData = tempProjects;\n if (this.projectData.length == 0) {\n this.isDisable = true;\n } else {\n this.isDisable = false;\n }\n if (this.searchtext === '') {\n this.projectData = this.saveFilter;\n this.dynamicRows = 10;\n this.rowsOnPageSet = [];\n this.rowCount = this.projectData.length;\n while (this.dynamicRows < this.rowCount) {\n this.rowsOnPageSet.push(this.dynamicRows);\n this.dynamicRows = this.dynamicRows + 10;\n }\n if (!this.rowsOnPageSet.includes(this.rowCount))\n this.rowsOnPageSet.push(this.rowCount);\n if (this.rowsOnPageSet) {\n\n this.rowsOnPage = this.rowsOnPageSet[0];\n }\n this.isDisable = false;\n } else {\n this.rowCount = tempProjects.length;\n this.dynamicRows = 10;\n this.rowsOnPageSet = [];\n while (this.dynamicRows < this.rowCount) {\n this.rowsOnPageSet.push(this.dynamicRows);\n this.dynamicRows = this.dynamicRows + 10;\n }\n if (!this.rowsOnPageSet.includes(this.rowCount)) {\n this.rowsOnPageSet.push(this.rowCount);\n if (this.rowsOnPageSet)\n this.rowsOnPage = this.rowsOnPageSet[0];\n }\n\n if (this.rowsOnPageSet.length === 1) {\n if (this.rowsOnPageSet[0] <= 10)\n this.rowsOnPage = this.rowsOnPageSet[0];\n }\n }\n }\n\n\n exportAsXLSX() {\n\n let allData = JSON.parse(JSON.stringify(this.projectData));\n for (let i = 0; i < allData.length; i++) {\n allData[i][\" No. \"] = i + 1;\n allData[i].Team = allData[i].TeamName;\n allData[i].Project = allData[i].ProjectName;\n allData[i].Description = allData[i].ProjectDescription;\n allData[i].Status = allData[i].ProjectStatusName;\n allData[i]['Project Owner'] = allData[i].ProjectOwner;\n \n delete (allData[i].DepartmentID);\n delete (allData[i].ProjectName);\n delete (allData[i].ProjectStatusName);\n delete (allData[i].CompanyID);\n delete (allData[i].ProjectDescription);\n delete (allData[i].ProjectOwner);\n delete (allData[i].TeamName);\n\n delete (allData[i].ProjectID);\n delete (allData[i].StatusID);\n delete (allData[i].RowID);\n delete (allData[i].ProjectStatusID);\n\n delete (allData[i].IsActive);\n delete (allData[i].EmployeeID);\n delete (allData[i].CreatedDate);\n\n delete (allData[i].CreatedBy);\n delete (allData[i].UpdatedDate);\n delete (allData[i].UpdatedBy);\n\n delete (allData[i].StatusID1);\n delete (allData[i].IsActive1);\n delete (allData[i].CreatedDate1);\n\n delete (allData[i].CreatedBy1);\n delete (allData[i].UpdatedDate1);\n delete (allData[i].UpdatedBy1);\n delete (allData[i].ProjectStatusName1);\n delete (allData[i].ProjectDueDate);\n\n delete (allData[i].TeamID);\n delete (allData[i].TeamID1);\n delete (allData[i].ProcessID);\n delete (allData[i].CompanyID1);\n delete (allData[i].IsActive2);\n delete (allData[i].CreatedDate2);\n delete (allData[i].CreatedBy2);\n delete (allData[i].UpdatedBy2);\n delete (allData[i].UpdatedDate2);\n delete (allData[i].TeamDescription);\n delete (allData[i].TeamName1);\n }\n let team: any;\n team = '';\n /*if(this.EmployeeID.toString()==='0'){\n team='';\n }else{\n if(this.TeamID.toString()==='0'|| this.TeamID.toString()===null || this.TeamID.toString()===undefined){\n team='';\n }else{\n team= 'Team: '+this.TeamName;\n }\n }*/\n this.dorsey.generateExcel(allData, this.companyName + '_Prioritized Projects' + \"_\" + (new Date().getMonth() + 1) + '-' + new Date().getDate() + '-' + new Date().getFullYear(), 'Prioritized Projects', \"Company: \" + this.companyName, team, \"Prioritized Projects Report\", copyRight, 'FFFFFF00', 'FF0000FF');\n }\n\n}\n","export const AzureDetails = {\r\n BaseURL: \"https://login.microsoftonline.com/\",\r\n TenantId: \"9ee0e6d7-1d0a-423f-8648-15144ef85081\",\r\n ClientId: '0bf259f0-2b2f-44cf-b74c-586d432fa378',\r\n RedirectURL: \"https://sugarcreek.tdgdm.com/\",\r\n scopeUri: ['https://graph.microsoft.com/v1.0/me',['user.Read']]\r\n };\r\n\r\n\r\n","module.exports = \"\\r\\n@media only screen and (max-width: 600px) {\\r\\n #changepassword{\\r\\n width: 100%;\\r\\n }\\r\\n }\\r\\n @media (max-width: 576px)\\r\\n{\\r\\n.closechngbtn {\\r\\n color: #aaaaaa;\\r\\n float: right;\\r\\n font-size: 28px;\\r\\n font-weight: bold;\\r\\n cursor: pointer;\\r\\n margin-right: 0px;\\r\\n margin-top: -17px;\\r\\n top: 0;\\r\\n right: 0;\\r\\n}\\r\\n}\\r\\n .closechngbtn {\\r\\n color: #aaaaaa;\\r\\n float: right;\\r\\n font-size: 28px;\\r\\n font-weight: bold;\\r\\n cursor: pointer;\\r\\n margin-right: 0px;\\r\\n margin-top: -17px;\\r\\n top: 0;\\r\\n right: 0;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvbG9naW4vZGlhbG9nLmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0E7SUFDSTtRQUNJLFdBQVc7SUFDZjtFQUNGO0VBQ0E7O0FBRUY7SUFDSSxjQUFjO0lBQ2QsWUFBWTtJQUNaLGVBQWU7SUFDZixpQkFBaUI7SUFDakIsZUFBZTtJQUNmLGlCQUFpQjtJQUNqQixpQkFBaUI7SUFDakIsTUFBTTtJQUNOLFFBQVE7QUFDWjtBQUNBO0VBR0E7SUFDSSxjQUFjO0lBQ2QsWUFBWTtJQUNaLGVBQWU7SUFDZixpQkFBaUI7SUFDakIsZUFBZTtJQUNmLGlCQUFpQjtJQUNqQixpQkFBaUI7SUFDakIsTUFBTTtJQUNOLFFBQVE7QUFDWiIsImZpbGUiOiJzcmMvYXBwL2xvZ2luL2RpYWxvZy5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2MDBweCkge1xyXG4gICAgI2NoYW5nZXBhc3N3b3Jke1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgfVxyXG4gIH1cclxuICBAbWVkaWEgKG1heC13aWR0aDogNTc2cHgpXHJcbntcclxuLmNsb3NlY2huZ2J0biB7XHJcbiAgICBjb2xvcjogI2FhYWFhYTtcclxuICAgIGZsb2F0OiByaWdodDtcclxuICAgIGZvbnQtc2l6ZTogMjhweDtcclxuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgbWFyZ2luLXJpZ2h0OiAwcHg7XHJcbiAgICBtYXJnaW4tdG9wOiAtMTdweDtcclxuICAgIHRvcDogMDtcclxuICAgIHJpZ2h0OiAwO1xyXG59XHJcbn1cclxuXHJcblxyXG4uY2xvc2VjaG5nYnRuIHtcclxuICAgIGNvbG9yOiAjYWFhYWFhO1xyXG4gICAgZmxvYXQ6IHJpZ2h0O1xyXG4gICAgZm9udC1zaXplOiAyOHB4O1xyXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICBtYXJnaW4tcmlnaHQ6IDBweDtcclxuICAgIG1hcmdpbi10b3A6IC0xN3B4O1xyXG4gICAgdG9wOiAwO1xyXG4gICAgcmlnaHQ6IDA7XHJcbn1cclxuIl19 */\"","module.exports = \".mat-list {\\n padding: 0;\\n}\\n\\n#matSetup {\\n margin-bottom: 35px;\\n}\\n\\n#matPM {\\n margin-bottom: 25px;\\n}\\n\\n.setUpMenu {\\n margin: 10px 0 15px 0;\\n}\\n\\n.mainMenu {\\n margin-bottom: 15px;\\n}\\n\\n/*.subMenu{\\n margin-bottom: 2px;\\n}*/\\n\\nmat-nav-list .menuStyle {\\n height: 2.8rem;\\n line-height: 2.8rem;\\n margin-left: 10px;\\n}\\n\\nmat-nav-list .childMenu {\\n height: 2.5rem;\\n line-height: 2.5rem;\\n margin-left: 10px;\\n}\\n\\nmat-nav-list .menuStyle {\\n color: #dedede;\\n background-color: #404040;\\n font-family: \\\"Poppins\\\", sans-serif !important;\\n font-size: 18px;\\n cursor: pointer;\\n}\\n\\n.subMenu {\\n color: #dedede;\\n background-color: #2b2b2b;\\n font-family: \\\"Poppins\\\", sans-serif !important;\\n font-size: 14.3px;\\n cursor: pointer;\\n}\\n\\nmat-nav-list .menuStyle:hover,\\nmat-nav-list .childMenu:hover {\\n color: #2b2b2b !important;\\n background-color: white !important;\\n}\\n\\nmat-nav-list .liactive .liactive1 {\\n color: #2b2b2b !important;\\n background-color: white !important;\\n}\\n\\nmat-nav-list .has-module:hover,\\nmat-nav-list .has-module:focus {\\n background-color: #3775b5;\\n color: #2b2b2b !important;\\n}\\n\\nmat-nav-list .has-module .liactive {\\n margin-left: 10px;\\n}\\n\\n.muted {\\n background: #7386D5;\\n}\\n\\n.muted:hover {\\n background: #3f51b5;\\n}\\n\\n.card {\\n height: 100%;\\n text-align: center;\\n vertical-align: middle;\\n}\\n\\n/* app drawer breakpoint */\\n\\nmat-sidenav-container {\\n height: 100%;\\n width: 100%;\\n}\\n\\nmat-drawer {\\n width: 15%;\\n}\\n\\nmat-sidenav {\\n overflow: unset !important;\\n}\\n\\n.mat-drawer-inner-container, .mat-drawer-content {\\n overflow: hidden !important;\\n}\\n\\n.menuPane {\\n height: 80%;\\n overflow-y: auto;\\n scrollbar-width: thin;\\n}\\n\\n.menuPane::-webkit-scrollbar {\\n width: 8px;\\n}\\n\\n/* Track */\\n\\n.menuPane::-webkit-scrollbar-track {\\n background: white;\\n border-radius: 1px;\\n margin: 0;\\n}\\n\\n/* Handle */\\n\\n.menuPane::-webkit-scrollbar-thumb {\\n background: #888;\\n padding: 2px;\\n border-radius: 2.5px;\\n}\\n\\n/* Handle on hover */\\n\\n.menuPane::-webkit-scrollbar-thumb:hover {\\n background: black;\\n}\\n\\n.sidebar-header {\\n display: flex;\\n}\\n\\n.sidebar-header, .sidebar-header h3 {\\n position: relative;\\n}\\n\\n.sidebar-header h3 {\\n z-index: 0;\\n}\\n\\n/*.mat-drawer-backdrop.mat-drawer-shown{\\n background-color: transparent !important;\\n}*/\\n\\n#collapseBtnOnSidenav {\\n position: absolute;\\n z-index: 1;\\n}\\n\\n@media (min-width: 1200px) {\\n #collapseBtnOnSidenav {\\n display: none;\\n }\\n}\\n\\n.flexContainer {\\n display: flex;\\n height: 74px;\\n align-items: center;\\n justify-content: space-between;\\n}\\n\\n#wrapper {\\n flex: 1;\\n}\\n\\nmat-sidenav #sidebar {\\n width: 15%;\\n}\\n\\n#mainContent {\\n display: flex;\\n width: 100%;\\n flex-direction: column;\\n}\\n\\n#flexWrapper1 {\\n display: flex;\\n}\\n\\n#btnGroup1 {\\n flex: 1;\\n display: flex;\\n}\\n\\n#dmapp_Logo {\\n flex: 2;\\n}\\n\\n#logo_img {\\n padding-top: 2%;\\n width: 170px;\\n}\\n\\n#companyName {\\n flex: 1;\\n word-break: normal;\\n margin-top: 14px;\\n}\\n\\n#btnGroup2 {\\n flex: 1;\\n display: flex;\\n justify-content: flex-end;\\n}\\n\\n/************************150% Zoom**********************/\\n\\n@media (max-width: 960px) {\\n .flexContainer {\\n height: 25%;\\n }\\n}\\n\\n/***************************************/\\n\\n/*******************For Mobile view************************/\\n\\n@media (max-width: 576px) {\\n .flexContainer {\\n display: flex;\\n flex-direction: column;\\n width: 100%;\\n height: 20%;\\n align-items: center;\\n justify-content: space-between;\\n }\\n\\n #wrapper {\\n width: 100%;\\n }\\n\\n #flexWrapper1 {\\n width: 100%;\\n display: flex;\\n }\\n\\n #btnGroup1 {\\n flex: 1;\\n display: flex;\\n }\\n\\n #dmapp_Logo {\\n flex: 2.2;\\n }\\n\\n #logo_img {\\n padding-top: 2%;\\n width: 170px;\\n }\\n\\n #companyName {\\n width: 100%;\\n margin: 2% 2%;\\n text-align: center;\\n word-break: break-all;\\n }\\n\\n .btnGroup2 {\\n width: 100%;\\n }\\n}\\n\\n/*******End mobile view******/\\n\\n/*.mat-sidenav {\\n width: 360px;\\n}\\n.mat-sidenav-container {\\n background-color: white !important;\\n height: 100vh;\\n\\n .mat-sidenav-content {\\n display: flex;\\n flex-direction: column;\\n }\\n}\\n.sidenav-toolbar {\\n height: 64px;\\n// background-color: mat-color($app-primary);\\n display: flex;\\n flex-direction: row;\\n\\n @media (max-width: 600px) {\\n height: 56px;\\n }\\n}\\n.mat-nav-list {\\n padding-top: 0;\\n}*/\\n\\n@media (max-width: 600px) {\\n .fixed-topnav {\\n position: fixed;\\n top: 0;\\n left: 0;\\n z-index: 2;\\n width: 100% !important;\\n }\\n\\n .mat-drawer-container,\\n.mat-drawer {\\n padding-top: 0;\\n }\\n}\\n\\n.menu-list-item.mat-list-item .mat-list-item-content {\\n flex: 1 1 100%;\\n}\\n\\n.version-info {\\n font-size: 8pt;\\n padding: 8px;\\n align-self: flex-end;\\n}\\n\\nh1 {\\n color: #333;\\n font-family: arial, sans-serif;\\n margin: 1em auto;\\n width: 80%;\\n}\\n\\n.tabordion {\\n color: #333;\\n display: block;\\n font-family: arial, sans-serif;\\n margin: auto;\\n position: relative;\\n width: 80%;\\n}\\n\\n.tabordion input[name=sections] {\\n left: -9999px;\\n position: absolute;\\n top: -9999px;\\n}\\n\\n.tabordion section {\\n display: block;\\n}\\n\\n.tabordion section label {\\n background: #ccc;\\n border: 1px solid #fff;\\n cursor: pointer;\\n display: block;\\n font-size: 1.2em;\\n font-weight: bold;\\n padding: 15px 20px;\\n position: relative;\\n width: 180px;\\n z-index: 100;\\n}\\n\\n.tabordion section article {\\n display: none;\\n left: 230px;\\n min-width: 300px;\\n padding: 0 0 0 21px;\\n position: absolute;\\n top: 0;\\n}\\n\\n.tabordion section article:after {\\n background-color: #ccc;\\n bottom: 0;\\n content: \\\"\\\";\\n display: block;\\n left: -229px;\\n position: absolute;\\n top: 0;\\n width: 220px;\\n z-index: 1;\\n}\\n\\n.tabordion input[name=sections]:checked + label {\\n font-size: 16px;\\n}\\n\\n.tabordion input[name=sections]:checked ~ article {\\n display: block;\\n font-size: 16px;\\n background: #eee;\\n color: #000;\\n}\\n\\n@media (max-width: 533px) {\\n h1 {\\n width: 100%;\\n }\\n\\n .tabordion {\\n width: 100%;\\n }\\n\\n .tabordion section label {\\n font-size: 1em;\\n width: 160px;\\n }\\n\\n .tabordion section article {\\n left: 200px;\\n min-width: 270px;\\n }\\n\\n .tabordion section article:after {\\n background-color: #ccc;\\n bottom: 0;\\n content: \\\"\\\";\\n display: block;\\n left: -199px;\\n position: absolute;\\n top: 0;\\n width: 200px;\\n }\\n}\\n\\n@media print {\\n .donotprintthis {\\n display: none;\\n }\\n}\\n\\n@media print {\\n @page {\\n size: auto;\\n margin: 0mm;\\n }\\n a[href]:after {\\n content: none !important;\\n }\\n}\\n\\n@media print {\\n #Header, #Footer {\\n display: none !important;\\n }\\n}\\n\\n@media screen {\\n .donotprintthis {\\n display: block;\\n }\\n}\\n\\n.active {\\n background-color: lightseagreen;\\n}\\n\\na {\\n color: #dedede;\\n}\\n\\nli {\\n list-style: none;\\n}\\n\\n.panel-default > .panel-heading {\\n color: #dedede;\\n background-color: #7386D5;\\n}\\n\\n.panel-group .panel + .panel {\\n margin-top: 0px;\\n}\\n\\n.panel-group {\\n margin-top: 35px;\\n}\\n\\n.panel-collapse {\\n background-color: #2b2b2b;\\n}\\n\\n.glyphicon {\\n margin-right: 10px;\\n}\\n\\nul.list-group {\\n margin: 0px;\\n}\\n\\nul.bulletlist li {\\n list-style: disc;\\n}\\n\\nul.list-group li a {\\n display: block;\\n padding: 5px 0px 5px 15px;\\n text-decoration: none;\\n}\\n\\nul.list-group .has-module:hover {\\n background-color: #3775b5;\\n color: #2b2b2b !important;\\n}\\n\\n.liactive {\\n color: #2b2b2b !important;\\n background-color: white !important;\\n}\\n\\n.has-module {\\n background-color: #3775b5;\\n color: #2b2b2b !important;\\n}\\n\\n.panel-title a:hover,\\n.panel-title a:active,\\n.panel-title a:focus,\\n.panel-title .open a:hover,\\n.panel-title .open a:active,\\n.panel-title .open a:focus {\\n text-decoration: none;\\n color: #dedede;\\n}\\n\\n.panel-title > .small, .panel-title > .small > a, .panel-title > a, .panel-title > small, .panel-title > small > a {\\n display: block;\\n}\\n\\n@media (min-width: 768px) {\\n .navbar-collapse.collapse {\\n display: block !important;\\n height: auto !important;\\n padding-bottom: 0;\\n overflow: visible !important;\\n padding-left: 0px;\\n }\\n}\\n\\n@media (min-width: 992px) {\\n .menu-hide {\\n display: none;\\n }\\n}\\n\\n.menu-hide .panel-default > .panel-heading {\\n color: #dedede;\\n background-color: #8e8c8c;\\n}\\n\\n/********** END SIDEBAR *************/\\n\\n/********** NAVBAR TOGGLE *************/\\n\\n.navbar-toggle .icon-bar {\\n background-color: #fff;\\n}\\n\\n.navbar-toggle {\\n padding: 11px 10px;\\n margin-top: 8px;\\n margin-right: 15px;\\n margin-bottom: 8px;\\n background-color: #a32638;\\n}\\n\\n#Rowcontainer {\\n display: flex;\\n margin: 0;\\n margin-top: -10px;\\n margin-bottom: -10px;\\n padding: 0;\\n justify-content: space-between;\\n}\\n\\n#Rowheading {\\n flex: 1;\\n}\\n\\n#Rowwrapper {\\n flex: 2;\\n}\\n\\n#RowtableActions {\\n display: flex;\\n justify-content: center;\\n}\\n\\n#field, #buttonview {\\n margin: 2%;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvbG9naW4vRjpcXE5pa2lsIFdvcmtcXFByb2plY3RzXFxEb3JzZXlcXEhpZXJhcmNoeSBTb3VyY2UgQ29kZVxcV29ya2luZ1xcZG9yc2V5R3JvdXAvc3JjXFxhcHBcXGxvZ2luXFxsb2dpbi5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvbG9naW4vbG9naW4uY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxVQUFBO0FDQ0Y7O0FERUE7RUFDRSxtQkFBQTtBQ0NGOztBREVBO0VBQ0UsbUJBQUE7QUNDRjs7QURFQTtFQUNFLHFCQUFBO0FDQ0Y7O0FERUE7RUFDRSxtQkFBQTtBQ0NGOztBREVBOztFQUFBOztBQUlBO0VBQ0UsY0FBQTtFQUNBLG1CQUFBO0VBQ0EsaUJBQUE7QUNBRjs7QURHQTtFQUNFLGNBQUE7RUFDQSxtQkFBQTtFQUNBLGlCQUFBO0FDQUY7O0FES0M7RUFDQyxjQUFBO0VBQ0MseUJBQUE7RUFDQSw2Q0FBQTtFQUNBLGVBQUE7RUFDQSxlQUFBO0FDRkg7O0FET0E7RUFDRSxjQUFBO0VBQ0EseUJBQUE7RUFDQSw2Q0FBQTtFQUNBLGlCQUFBO0VBQ0EsZUFBQTtBQ0pGOztBRGVBOztFQUVFLHlCQUFBO0VBQ0Usa0NBQUE7QUNaSjs7QURlQTtFQUVFLHlCQUFBO0VBQ0Esa0NBQUE7QUNiRjs7QURnQkE7O0VBRUUseUJBQUE7RUFDRSx5QkFBQTtBQ2JKOztBRGdCQTtFQUNFLGlCQUFBO0FDYkY7O0FEa0JBO0VBRUUsbUJBQUE7QUNoQkY7O0FEbUJBO0VBRUUsbUJBQUE7QUNqQkY7O0FEb0JBO0VBQ0ksWUFBQTtFQUNBLGtCQUFBO0VBQ0Esc0JBQUE7QUNqQko7O0FEc0JnQiwwQkFBQTs7QUF3QmhCO0VBQ0UsWUFBQTtFQUNBLFdBQUE7QUMxQ0Y7O0FENkNBO0VBQ0UsVUFBQTtBQzFDRjs7QUQ2Q0E7RUFDRSwwQkFBQTtBQzFDRjs7QUQ4Q0E7RUFFRSwyQkFBQTtBQzVDRjs7QUQrQ0M7RUFDRSxX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Y0FBQTtBQ2hGVjs7QURtRkU7RUFDQTtJQUVJLHlCQUFBO0lBQ0EsdUJBQUE7SUFDQSxpQkFBQTtJQUNBLDRCQUFBO0lBQ0YsaUJBQUE7RUNqRkY7QUFDRjs7QURvRkU7RUFDQTtJQUNJLGFBQUE7RUNsRko7QUFDRjs7QURxRkU7RUFDSSxjQUFBO0VBQ0EseUJBQUE7QUNuRk47O0FEdUZFLHFDQUFBOztBQUVBLHVDQUFBOztBQUVBO0VBQ0ksc0JBQUE7QUN0Rk47O0FEd0ZFO0VBQ0ksa0JBQUE7RUFDQSxlQUFBO0VBQ0Esa0JBQUE7RUFDQSxrQkFBQTtFQUNBLHlCQUFBO0FDckZOOztBRHlGRTtFQUNFLGFBQUE7RUFDQSxTQUFBO0VBQ0EsaUJBQUE7RUFDQSxvQkFBQTtFQUNBLFVBQUE7RUFDQSw4QkFBQTtBQ3RGSjs7QUQwRkE7RUFDSSxPQUFBO0FDdkZKOztBRHlGQTtFQUNBLE9BQUE7QUN0RkE7O0FEd0ZBO0VBQ0EsYUFBQTtFQUVBLHVCQUFBO0FDdEZBOztBRDBGQTtFQUNJLFVBQUE7QUN2RkoiLCJmaWxlIjoic3JjL2FwcC9sb2dpbi9sb2dpbi5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5tYXQtbGlzdHtcclxuICBwYWRkaW5nOiAwO1xyXG59XHJcblxyXG4jbWF0U2V0dXB7XHJcbiAgbWFyZ2luLWJvdHRvbTogMzVweDtcclxufVxyXG5cclxuI21hdFBNe1xyXG4gIG1hcmdpbi1ib3R0b206IDI1cHg7XHJcbn1cclxuXHJcbi5zZXRVcE1lbnV7XHJcbiAgbWFyZ2luOiAxMHB4IDAgMTVweCAwO1xyXG59XHJcblxyXG4ubWFpbk1lbnV7XHJcbiAgbWFyZ2luLWJvdHRvbTogMTVweDtcclxufVxyXG5cclxuLyouc3ViTWVudXtcclxuICBtYXJnaW4tYm90dG9tOiAycHg7XHJcbn0qL1xyXG5cclxubWF0LW5hdi1saXN0IC5tZW51U3R5bGV7XHJcbiAgaGVpZ2h0OiAyLjhyZW07XHJcbiAgbGluZS1oZWlnaHQ6IDIuOHJlbTtcclxuICBtYXJnaW4tbGVmdDogMTBweDtcclxufVxyXG5cclxubWF0LW5hdi1saXN0IC5jaGlsZE1lbnV7XHJcbiAgaGVpZ2h0OiAyLjVyZW07XHJcbiAgbGluZS1oZWlnaHQ6IDIuNXJlbTtcclxuICBtYXJnaW4tbGVmdDogMTBweDtcclxufVxyXG5cclxuXHJcblxyXG4gbWF0LW5hdi1saXN0IC5tZW51U3R5bGV7XHJcbiAgY29sb3I6ICNkZWRlZGU7XHJcbiAgIGJhY2tncm91bmQtY29sb3I6ICM0MDQwNDA7XHJcbiAgIGZvbnQtZmFtaWx5OiBcIlBvcHBpbnNcIiwgc2Fucy1zZXJpZiAhaW1wb3J0YW50O1xyXG4gICBmb250LXNpemU6IDE4cHg7XHJcbiAgIGN1cnNvcjogcG9pbnRlcjtcclxuIH1cclxuXHJcblxyXG5cclxuLnN1Yk1lbnV7XHJcbiAgY29sb3I6ICNkZWRlZGU7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogIzJiMmIyYjtcclxuICBmb250LWZhbWlseTogXCJQb3BwaW5zXCIsIHNhbnMtc2VyaWYgIWltcG9ydGFudDtcclxuICBmb250LXNpemU6IDE0LjNweDtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcbn1cclxuXHJcbi8vIC5jaGlsZE1lbnV7XHJcbi8vICAgY29sb3I6ICNkNGQ0ZDQ7XHJcbi8vICAgYmFja2dyb3VuZC1jb2xvcjogIzQwNDA0MDtcclxuLy8gICBmb250LWZhbWlseTogXCJQb3BwaW5zXCIsIHNhbnMtc2VyaWYgIWltcG9ydGFudDtcclxuLy8gICBmb250LXNpemU6IDE0LjNweDtcclxuLy8gICBjdXJzb3I6IHBvaW50ZXI7XHJcbi8vIH1cclxuXHJcbm1hdC1uYXYtbGlzdCAubWVudVN0eWxlOmhvdmVyLFxyXG5tYXQtbmF2LWxpc3QgLmNoaWxkTWVudTpob3ZlcntcclxuICBjb2xvcjogIzJiMmIyYiAhaW1wb3J0YW50O1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGUgIWltcG9ydGFudDtcclxufVxyXG5cclxubWF0LW5hdi1saXN0IC5saWFjdGl2ZSAubGlhY3RpdmUxe1xyXG4gIFxyXG4gIGNvbG9yOiMyYjJiMmIgIWltcG9ydGFudDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xyXG59XHJcblxyXG5tYXQtbmF2LWxpc3QgLmhhcy1tb2R1bGU6aG92ZXIsXHJcbm1hdC1uYXYtbGlzdCAuaGFzLW1vZHVsZTpmb2N1c3tcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzc3NWI1O1xyXG4gICAgY29sb3I6ICMyYjJiMmIgIWltcG9ydGFudDtcclxufVxyXG5cclxubWF0LW5hdi1saXN0IC5oYXMtbW9kdWxlIC5saWFjdGl2ZXtcclxuICBtYXJnaW4tbGVmdDogMTBweDtcclxufVxyXG5cclxuXHJcblxyXG4ubXV0ZWQge1xyXG4gIFxyXG4gIGJhY2tncm91bmQ6ICM3Mzg2RDU7XHJcbn1cclxuXHJcbi5tdXRlZDpob3ZlciB7XHJcbiAgXHJcbiAgYmFja2dyb3VuZDogIzNmNTFiNTtcclxufVxyXG5cclxuLmNhcmR7XHJcbiAgICBoZWlnaHQ6MTAwJTtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7ICAgIFxyXG59XHJcbi8vIEJyZWFrcG9pbnRzXHJcbiRoYW5kc2V0OiAzNjBweDtcclxuJGxhcmdlLWhhbmRzZXQ6IDQ4MHB4O1xyXG4kdGFibGV0OiA2NDBweDsgLyogYXBwIGRyYXdlciBicmVha3BvaW50ICovXHJcbiRsYXJnZS10YWJsZXQ6IDg0MHB4O1xyXG4kZGVza3RvcDogOTYwcHg7XHJcbiRsYXJnZS1kZXNrdG9wOiAxMjgwcHg7XHJcbiR4LWxhcmdlLWRlc2t0b3A6IDE0NDBweDtcclxuJHh4LWxhcmdlLWRlc2t0b3A6IDE5MjBweDtcclxuXHJcbi8vIGdlbmVyYXRlIG1pbi13aWR0aCBicmVha3BvaW50XHJcbkBtaXhpbiBicmVha3BvaW50KCRwb2ludCkge1xyXG4gIEBtZWRpYSAobWluLXdpZHRoOiAkcG9pbnQpIHsgQGNvbnRlbnQgOyB9XHJcbn1cclxuLy8gZ2VuZXJhdGUgbWF4LXdpZHRoIGJyZWFrcG9pbnQgKHVzZSBzcGFyaW5nbHkpXHJcbkBtaXhpbiBicmVha3BvaW50LW1heCgkcG9pbnQpIHtcclxuICBAbWVkaWEgKG1heC13aWR0aDogJHBvaW50KSB7IEBjb250ZW50IDsgfVxyXG59XHJcbi8vIGdlbmVyYXRlIG1pbi1oZWlnaHQgYnJlYWtwb2ludFxyXG5AbWl4aW4gaGVpZ2h0LWJyZWFrcG9pbnQoJHBvaW50KSB7XHJcbiAgQG1lZGlhIChtaW4taGVpZ2h0OiAkcG9pbnQpIHsgQGNvbnRlbnQgOyB9XHJcbn1cclxuLy8gZ2VuZXJhdGUgbWF4LWhlaWdodCBicmVha3BvaW50ICh1c2Ugc3BhcmluZ2x5KVxyXG5AbWl4aW4gaGVpZ2h0LWJyZWFrcG9pbnQtbWF4KCRwb2ludCkge1xyXG4gIEBtZWRpYSAobWluLWhlaWdodDogJHBvaW50KSB7IEBjb250ZW50IDsgfVxyXG59XHJcblxyXG5tYXQtc2lkZW5hdi1jb250YWluZXJ7XHJcbiAgaGVpZ2h0OiAxMDAlO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG59XHJcblxyXG5tYXQtZHJhd2Vye1xyXG4gIHdpZHRoOiAxNSU7XHJcbiAgXHJcbn1cclxubWF0LXNpZGVuYXZ7XHJcbiAgb3ZlcmZsb3c6IHVuc2V0ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcblxyXG4ubWF0LWRyYXdlci1pbm5lci1jb250YWluZXIsIC5tYXQtZHJhd2VyLWNvbnRlbnR7XHJcbiAgLy8gcG9zaXRpb246IGFic29sdXRlO1xyXG4gIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcclxufVxyXG5cclxuIC5tZW51UGFuZXtcclxuICAgaGVpZ2h0OiA4MCU7XHJcbiAgIG92ZXJmbG93LXk6IGF1dG87XHJcbiAgIHNjcm9sbGJhci13aWR0aDogdGhpbjtcclxuICAgXHJcbiB9XHJcblxyXG4gIC5tZW51UGFuZTo6LXdlYmtpdC1zY3JvbGxiYXIge1xyXG4gICB3aWR0aDogOHB4O1xyXG4gfVxyXG5cclxuLyogVHJhY2sgKi9cclxuLm1lbnVQYW5lOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7XHJcbiAgYmFja2dyb3VuZDogXHQgd2hpdGU7IFxyXG4gIGJvcmRlci1yYWRpdXM6IDFweDtcclxuICBtYXJnaW46IDA7XHJcbn1cclxuIFxyXG4vKiBIYW5kbGUgKi9cclxuLm1lbnVQYW5lOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XHJcbiAgYmFja2dyb3VuZDogIzg4OCA7IFxyXG4gIHBhZGRpbmc6IDJweDtcclxuICBib3JkZXItcmFkaXVzOiAyLjVweDtcclxuICBcclxufVxyXG5cclxuLyogSGFuZGxlIG9uIGhvdmVyICovXHJcbi5tZW51UGFuZTo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIge1xyXG4gIGJhY2tncm91bmQ6IGJsYWNrOyBcclxufVxyXG5cclxuLnNpZGViYXItaGVhZGVye1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiBcclxufVxyXG5cclxuLnNpZGViYXItaGVhZGVyLCAuc2lkZWJhci1oZWFkZXIgaDN7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIFxyXG59XHJcblxyXG4uc2lkZWJhci1oZWFkZXIgaDN7XHJcbiAgei1pbmRleDogMDtcclxufVxyXG5cclxuLyoubWF0LWRyYXdlci1iYWNrZHJvcC5tYXQtZHJhd2VyLXNob3due1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XHJcbn0qL1xyXG5cclxuI2NvbGxhcHNlQnRuT25TaWRlbmF2e1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICB6LWluZGV4OiAxO1xyXG59XHJcblxyXG4gIEBtZWRpYSAobWluLXdpZHRoOjEyMDBweCl7XHJcbiAgICAjY29sbGFwc2VCdG5PblNpZGVuYXZ7XHJcbiAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgfVxyXG59XHJcblxyXG4uZmxleENvbnRhaW5lcntcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGhlaWdodDogNzRweDtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxufVxyXG5cclxuI3dyYXBwZXJ7XHJcbiAgZmxleDogMTtcclxufVxyXG5cclxubWF0LXNpZGVuYXYgI3NpZGViYXJ7XHJcbiAgd2lkdGg6IDE1JTtcclxuICBcclxufVxyXG5cclxuI21haW5Db250ZW50e1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxufVxyXG5cclxuI2ZsZXhXcmFwcGVyMXtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG59XHJcbiNidG5Hcm91cDF7XHJcbiAgLy8gd2lkdGg6IDEwJTtcclxuICBmbGV4OiAxO1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbn1cclxuXHJcbiNkbWFwcF9Mb2dve1xyXG4gIC8vIHdpZHRoOiAxMCU7XHJcbiAgZmxleDogMjtcclxufVxyXG4jbG9nb19pbWd7XHJcbiAgcGFkZGluZy10b3A6IDIlO1xyXG4gIHdpZHRoOiAxNzBweDtcclxufVxyXG5cclxuI2NvbXBhbnlOYW1le1xyXG4gIC8vIHdpZHRoOiAyNSU7XHJcbiAgZmxleDogMTtcclxuICB3b3JkLWJyZWFrOiBub3JtYWw7XHJcbiAgbWFyZ2luLXRvcDogMTRweDtcclxufVxyXG5cclxuI2J0bkdyb3VwMntcclxuICAvLyB3aWR0aDogMjUlO1xyXG4gIGZsZXg6IDE7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xyXG59XHJcblxyXG5cclxuXHJcbi8qKioqKioqKioqKioqKioqKioqKioqKioxNTAlIFpvb20qKioqKioqKioqKioqKioqKioqKioqL1xyXG5AbWVkaWEgKG1heC13aWR0aDo5NjBweCl7XHJcbiAgLmZsZXhDb250YWluZXJ7XHJcbiAgICBoZWlnaHQ6IDI1JTtcclxuICB9XHJcbn1cclxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuXHJcbi8qKioqKioqKioqKioqKioqKioqRm9yIE1vYmlsZSB2aWV3KioqKioqKioqKioqKioqKioqKioqKioqL1xyXG5AbWVkaWEobWF4LXdpZHRoOjU3NnB4KXtcclxuIFxyXG4gIC5mbGV4Q29udGFpbmVye1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGhlaWdodDogMjAlO1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICB9XHJcbiAgXHJcbiAgI3dyYXBwZXJ7XHJcbiAgIHdpZHRoOiAxMDAlO1xyXG4gIH1cclxuICBcclxuICAjZmxleFdyYXBwZXIxe1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gIH1cclxuICAjYnRuR3JvdXAxe1xyXG4gICAgLy8gd2lkdGg6IDEwJTtcclxuICAgIGZsZXg6IDE7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gIH1cclxuICBcclxuICAjZG1hcHBfTG9nb3tcclxuICAgIC8vIHdpZHRoOiAxMCU7XHJcbiAgICBmbGV4OiAyLjI7XHJcbiAgfVxyXG4gICNsb2dvX2ltZ3tcclxuICAgIHBhZGRpbmctdG9wOiAyJTtcclxuICAgIHdpZHRoOiAxNzBweDtcclxuICB9XHJcbiAgXHJcbiAgI2NvbXBhbnlOYW1le1xyXG4gICAgLy8gd2lkdGg6IDI1JTtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICBtYXJnaW46IDIlIDIlO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgd29yZC1icmVhazogYnJlYWstYWxsO1xyXG4gICBcclxuICB9XHJcbiAgXHJcbiAgLmJ0bkdyb3VwMntcclxuICAgIC8vIHdpZHRoOiAyNSU7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICB9XHJcbn1cclxuLyoqKioqKipFbmQgbW9iaWxlIHZpZXcqKioqKiovXHJcblxyXG4vKi5tYXQtc2lkZW5hdiB7XHJcbiAgd2lkdGg6IDM2MHB4O1xyXG59XHJcbi5tYXQtc2lkZW5hdi1jb250YWluZXIge1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XHJcbiAgaGVpZ2h0OiAxMDB2aDtcclxuXHJcbiAgLm1hdC1zaWRlbmF2LWNvbnRlbnQge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgfVxyXG59XHJcbi5zaWRlbmF2LXRvb2xiYXIge1xyXG4gIGhlaWdodDogNjRweDtcclxuLy8gICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGFwcC1wcmltYXJ5KTtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcblxyXG4gIEBtZWRpYSAobWF4LXdpZHRoOiA2MDBweCkge1xyXG4gICAgaGVpZ2h0OiA1NnB4O1xyXG4gIH1cclxufVxyXG4ubWF0LW5hdi1saXN0IHtcclxuICBwYWRkaW5nLXRvcDogMDtcclxufSovXHJcbkBpbmNsdWRlIGJyZWFrcG9pbnQtbWF4KDYwMHB4KSB7XHJcbiAgLmZpeGVkLXRvcG5hdiB7XHJcbiAgICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgICB0b3A6IDA7XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgei1pbmRleDogMjtcclxuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAubWF0LWRyYXdlci1jb250YWluZXIsXHJcbiAgLm1hdC1kcmF3ZXIge1xyXG4gICAgcGFkZGluZy10b3A6IDA7XHJcbiAgfVxyXG59XHJcbi5tZW51LWxpc3QtaXRlbS5tYXQtbGlzdC1pdGVtIHtcclxuICAubWF0LWxpc3QtaXRlbS1jb250ZW50IHtcclxuICAgIGZsZXg6IDEgMSAxMDAlO1xyXG4gIH1cclxufVxyXG4udmVyc2lvbi1pbmZvIHtcclxuICBmb250LXNpemU6IDhwdDtcclxuICBwYWRkaW5nOiA4cHg7XHJcbiAgYWxpZ24tc2VsZjogZmxleC1lbmQ7XHJcbn1cclxuaDEge1xyXG4gICAgY29sb3I6ICMzMzM7XHJcbiAgICBmb250LWZhbWlseTogYXJpYWwsIHNhbnMtc2VyaWY7XHJcbiAgICBtYXJnaW46IDFlbSBhdXRvO1xyXG4gICAgd2lkdGg6IDgwJTtcclxuICB9XHJcbiAgXHJcbiAgLnRhYm9yZGlvbiB7XHJcbiAgICBjb2xvcjogIzMzMztcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgZm9udC1mYW1pbHk6IGFyaWFsLCBzYW5zLXNlcmlmO1xyXG4gICAgbWFyZ2luOiBhdXRvO1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgd2lkdGg6IDgwJTtcclxuICB9XHJcbiAgXHJcbiAgLnRhYm9yZGlvbiBpbnB1dFtuYW1lPVwic2VjdGlvbnNcIl0ge1xyXG4gICAgbGVmdDogLTk5OTlweDtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogLTk5OTlweDtcclxuICB9XHJcbiAgXHJcbiAgLnRhYm9yZGlvbiBzZWN0aW9uIHtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gIH1cclxuICBcclxuICAudGFib3JkaW9uIHNlY3Rpb24gbGFiZWwge1xyXG4gICAgYmFja2dyb3VuZDogI2NjYztcclxuICAgIGJvcmRlcjoxcHggc29saWQgI2ZmZjtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgZm9udC1zaXplOiAxLjJlbTtcclxuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgcGFkZGluZzogMTVweCAyMHB4O1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgd2lkdGg6IDE4MHB4O1xyXG4gICAgei1pbmRleDoxMDA7XHJcbiAgfVxyXG4gIFxyXG4gIC50YWJvcmRpb24gc2VjdGlvbiBhcnRpY2xlIHtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICBsZWZ0OiAyMzBweDtcclxuICAgIG1pbi13aWR0aDogMzAwcHg7XHJcbiAgICBwYWRkaW5nOiAwIDAgMCAyMXB4O1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlOyAgXHJcbiAgICB0b3A6IDA7XHJcbiAgfVxyXG4gIFxyXG4gIC50YWJvcmRpb24gc2VjdGlvbiBhcnRpY2xlOmFmdGVyIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICNjY2M7XHJcbiAgICBib3R0b206IDA7XHJcbiAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBsZWZ0Oi0yMjlweDtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogMDtcclxuICAgIHdpZHRoOiAyMjBweDtcclxuICAgIHotaW5kZXg6MTtcclxuICB9XHJcbiAgXHJcbiAgLnRhYm9yZGlvbiBpbnB1dFtuYW1lPVwic2VjdGlvbnNcIl06Y2hlY2tlZCArIGxhYmVsIHsgXHJcbiBcclxuICAgIGZvbnQtc2l6ZToxNnB4O1xyXG4gIH1cclxuICBcclxuICAudGFib3JkaW9uIGlucHV0W25hbWU9XCJzZWN0aW9uc1wiXTpjaGVja2VkIH4gYXJ0aWNsZSB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIGZvbnQtc2l6ZToxNnB4OyAgIGJhY2tncm91bmQ6ICNlZWU7XHJcbiAgICBjb2xvcjogIzAwMDtcclxuICB9XHJcbiAgXHJcbiAgXHJcbiAgQG1lZGlhIChtYXgtd2lkdGg6IDUzM3B4KSB7XHJcbiAgICBcclxuICAgIGgxIHtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICB9XHJcbiAgXHJcbiAgICAudGFib3JkaW9uIHtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIC50YWJvcmRpb24gc2VjdGlvbiBsYWJlbCB7XHJcbiAgICAgIGZvbnQtc2l6ZTogMWVtO1xyXG4gICAgICB3aWR0aDogMTYwcHg7XHJcbiAgICB9ICBcclxuICBcclxuICAgLnRhYm9yZGlvbiBzZWN0aW9uIGFydGljbGUge1xyXG4gICAgICBsZWZ0OiAyMDBweDtcclxuICAgICAgbWluLXdpZHRoOiAyNzBweDtcclxuICAgIH0gXHJcbiAgICBcclxuICAgIC50YWJvcmRpb24gc2VjdGlvbiBhcnRpY2xlOmFmdGVyIHtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2NjYztcclxuICAgICAgYm90dG9tOiAwO1xyXG4gICAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgbGVmdDotMTk5cHg7XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgdG9wOiAwO1xyXG4gICAgICB3aWR0aDogMjAwcHg7XHJcbiAgXHJcbiAgICB9ICBcclxuICAgIFxyXG4gIH1cclxuICBcclxuICBcclxuICAgQG1lZGlhIHByaW50XHJcbntcclxuICAgLmRvbm90cHJpbnR0aGlzXHJcbiAgIHtcclxuICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgIH1cclxufVxyXG5AbWVkaWEgcHJpbnQge1xyXG4gICBAcGFnZSB7IHNpemU6IGF1dG87ICBtYXJnaW46IDBtbTsgfVxyXG4gICBhW2hyZWZdOmFmdGVyIHtcclxuICAgICAgIGNvbnRlbnQ6IG5vbmUgIWltcG9ydGFudDtcclxuICAgfVxyXG59XHJcbkBtZWRpYSBwcmludCB7XHJcbiAgICNIZWFkZXIsICNGb290ZXIgeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cclxufVxyXG5AbWVkaWEgc2NyZWVuXHJcbntcclxuICAgLmRvbm90cHJpbnR0aGlzXHJcbiAgIHtcclxuICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICB9XHJcbn1cclxuLmFjdGl2ZXtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodHNlYWdyZWVuO1xyXG4gIC8vIGNvbG9yOiBibGFjaztcclxufVxyXG5cclxuXHJcblxyXG5cclxuYSB7XHJcbiAgY29sb3I6I2RlZGVkZTtcclxuICB9XHJcbiAgXHJcbiAgbGkge1xyXG4gIGxpc3Qtc3R5bGU6bm9uZTtcclxuICB9IFxyXG4gIFxyXG4gIC5wYW5lbC1kZWZhdWx0Pi5wYW5lbC1oZWFkaW5nIHtcclxuICAgICAgY29sb3I6ICNkZWRlZGU7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM3Mzg2RDU7XHJcbiAgICAgIC8vIGJvcmRlci1jb2xvcjogI2RkZDtcclxuICB9XHJcbiAgXHJcbiAgLnBhbmVsLWdyb3VwIC5wYW5lbCsucGFuZWwge1xyXG4gICAgICBtYXJnaW4tdG9wOiAwcHg7XHJcbiAgfVxyXG4gIC5wYW5lbC1ncm91cCB7XHJcbiAgICBtYXJnaW4tdG9wOiAzNXB4O1xyXG4gIH1cclxuICAucGFuZWwtY29sbGFwc2Uge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjojMmIyYjJiO1xyXG4gIH1cclxuICBcclxuICAuZ2x5cGhpY29uIHsgXHJcbiAgbWFyZ2luLXJpZ2h0OjEwcHg7IFxyXG4gIH1cclxuICBcclxuICBcclxuICB1bC5saXN0LWdyb3VwIHtcclxuICAgIG1hcmdpbjowcHg7XHJcbiAgfVxyXG4gIFxyXG4gIHVsLmJ1bGxldGxpc3QgbGkge1xyXG4gICAgbGlzdC1zdHlsZTpkaXNjO1xyXG4gIH1cclxuICBcclxuICBcclxuICB1bC5saXN0LWdyb3VwICBsaSBhIHtcclxuICAgZGlzcGxheTpibG9jaztcclxuICAgcGFkZGluZzo1cHggMHB4IDVweCAxNXB4O1xyXG4gICB0ZXh0LWRlY29yYXRpb246bm9uZTtcclxuICB9XHJcbiAgXHJcbiAgdWwubGlzdC1ncm91cCAuaGFzLW1vZHVsZTpob3ZlciB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzc3NWI1IDtcclxuICAgIGNvbG9yOiMyYjJiMmIgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC8vIHVsLmxpc3QtZ3JvdXAgIGxpIGE6aG92ZXIsIHVsIGxpIGE6Zm9jdXMge1xyXG4gIC8vICBjb2xvcjojMmIyYjJiICFpbXBvcnRhbnQ7XHJcbiAgLy8gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XHJcbiAgLy8gfVxyXG5cclxuLmxpYWN0aXZle1xyXG4gIGNvbG9yOiMyYjJiMmIgIWltcG9ydGFudDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uaGFzLW1vZHVsZXtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzc3NWI1IDtcclxuICBjb2xvcjojMmIyYjJiICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcblxyXG5cclxuXHJcbiAgLnBhbmVsLXRpdGxlIGE6aG92ZXIsXHJcbiAgLnBhbmVsLXRpdGxlIGE6YWN0aXZlLFxyXG4gIC5wYW5lbC10aXRsZSBhOmZvY3VzLFxyXG4gIC5wYW5lbC10aXRsZSAub3BlbiBhOmhvdmVyLFxyXG4gIC5wYW5lbC10aXRsZSAub3BlbiBhOmFjdGl2ZSxcclxuICAucGFuZWwtdGl0bGUgLm9wZW4gYTpmb2N1c1xyXG4gICB7XHJcbiAgICB0ZXh0LWRlY29yYXRpb246bm9uZTtcclxuICAgIGNvbG9yOiNkZWRlZGU7XHJcbiAgfVxyXG4gIFxyXG4gIC5wYW5lbC10aXRsZT4uc21hbGwsIC5wYW5lbC10aXRsZT4uc21hbGw+YSwgLnBhbmVsLXRpdGxlPmEsIC5wYW5lbC10aXRsZT5zbWFsbCwgLnBhbmVsLXRpdGxlPnNtYWxsPmEge1xyXG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgfVxyXG4gIFxyXG4gIEBtZWRpYSAobWluLXdpZHRoOiA3NjhweCl7XHJcbiAgLm5hdmJhci1jb2xsYXBzZS5jb2xsYXBzZSBcclxuICAgIHtcclxuICAgICAgZGlzcGxheTogYmxvY2shaW1wb3J0YW50O1xyXG4gICAgICBoZWlnaHQ6IGF1dG8haW1wb3J0YW50O1xyXG4gICAgICBwYWRkaW5nLWJvdHRvbTogMDtcclxuICAgICAgb3ZlcmZsb3c6IHZpc2libGUhaW1wb3J0YW50O1xyXG4gICAgcGFkZGluZy1sZWZ0OjBweDsgXHJcbiAgfVxyXG4gIH1cclxuICBcclxuICBAbWVkaWEgKG1pbi13aWR0aDogOTkycHgpe1xyXG4gIC5tZW51LWhpZGUge1xyXG4gICAgICBkaXNwbGF5OiBub25lO1xyXG4gIH1cclxuICBcclxuICB9XHJcbiAgLm1lbnUtaGlkZSAucGFuZWwtZGVmYXVsdD4ucGFuZWwtaGVhZGluZyB7XHJcbiAgICAgIGNvbG9yOiAjZGVkZWRlO1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjOGU4YzhjO1xyXG4gICAgICAvLyBib3JkZXItY29sb3I6ICNkZGQ7XHJcbiAgfVxyXG4gIFxyXG4gIC8qKioqKioqKioqIEVORCBTSURFQkFSICoqKioqKioqKioqKiovXHJcbiAgXHJcbiAgLyoqKioqKioqKiogTkFWQkFSIFRPR0dMRSAqKioqKioqKioqKioqL1xyXG4gIFxyXG4gIC5uYXZiYXItdG9nZ2xlIC5pY29uLWJhciB7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XHJcbiAgfVxyXG4gIC5uYXZiYXItdG9nZ2xlIHtcclxuICAgICAgcGFkZGluZzogMTFweCAxMHB4O1xyXG4gICAgICBtYXJnaW4tdG9wOiA4cHg7XHJcbiAgICAgIG1hcmdpbi1yaWdodDogMTVweDtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogOHB4O1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYTMyNjM4O1xyXG4gICAgICAvLyBib3JkZXItcmFkaXVzOiAwcHg7XHJcbiAgfVxyXG5cclxuICAjUm93Y29udGFpbmVye1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIG1hcmdpbjogMDtcclxuICAgIG1hcmdpbi10b3A6IC0xMHB4O1xyXG4gICAgbWFyZ2luLWJvdHRvbTogLTEwcHg7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gICBcclxuXHJcbn1cclxuI1Jvd2hlYWRpbmd7XHJcbiAgICBmbGV4OiAxO1xyXG59XHJcbiNSb3d3cmFwcGVye1xyXG5mbGV4OiAyO1xyXG59XHJcbiNSb3d0YWJsZUFjdGlvbnN7XHJcbmRpc3BsYXk6IGZsZXg7XHJcblxyXG5qdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuXHJcbn1cclxuXHJcbiNmaWVsZCwgI2J1dHRvbnZpZXd7XHJcbiAgICBtYXJnaW46IDIlO1xyXG4gICAgXHJcbn1cclxuIiwiLm1hdC1saXN0IHtcbiAgcGFkZGluZzogMDtcbn1cblxuI21hdFNldHVwIHtcbiAgbWFyZ2luLWJvdHRvbTogMzVweDtcbn1cblxuI21hdFBNIHtcbiAgbWFyZ2luLWJvdHRvbTogMjVweDtcbn1cblxuLnNldFVwTWVudSB7XG4gIG1hcmdpbjogMTBweCAwIDE1cHggMDtcbn1cblxuLm1haW5NZW51IHtcbiAgbWFyZ2luLWJvdHRvbTogMTVweDtcbn1cblxuLyouc3ViTWVudXtcbiAgbWFyZ2luLWJvdHRvbTogMnB4O1xufSovXG5tYXQtbmF2LWxpc3QgLm1lbnVTdHlsZSB7XG4gIGhlaWdodDogMi44cmVtO1xuICBsaW5lLWhlaWdodDogMi44cmVtO1xuICBtYXJnaW4tbGVmdDogMTBweDtcbn1cblxubWF0LW5hdi1saXN0IC5jaGlsZE1lbnUge1xuICBoZWlnaHQ6IDIuNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDIuNXJlbTtcbiAgbWFyZ2luLWxlZnQ6IDEwcHg7XG59XG5cbm1hdC1uYXYtbGlzdCAubWVudVN0eWxlIHtcbiAgY29sb3I6ICNkZWRlZGU7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0MDQwNDA7XG4gIGZvbnQtZmFtaWx5OiBcIlBvcHBpbnNcIiwgc2Fucy1zZXJpZiAhaW1wb3J0YW50O1xuICBmb250LXNpemU6IDE4cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLnN1Yk1lbnUge1xuICBjb2xvcjogI2RlZGVkZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzJiMmIyYjtcbiAgZm9udC1mYW1pbHk6IFwiUG9wcGluc1wiLCBzYW5zLXNlcmlmICFpbXBvcnRhbnQ7XG4gIGZvbnQtc2l6ZTogMTQuM3B4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbm1hdC1uYXYtbGlzdCAubWVudVN0eWxlOmhvdmVyLFxubWF0LW5hdi1saXN0IC5jaGlsZE1lbnU6aG92ZXIge1xuICBjb2xvcjogIzJiMmIyYiAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xufVxuXG5tYXQtbmF2LWxpc3QgLmxpYWN0aXZlIC5saWFjdGl2ZTEge1xuICBjb2xvcjogIzJiMmIyYiAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xufVxuXG5tYXQtbmF2LWxpc3QgLmhhcy1tb2R1bGU6aG92ZXIsXG5tYXQtbmF2LWxpc3QgLmhhcy1tb2R1bGU6Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzc3NWI1O1xuICBjb2xvcjogIzJiMmIyYiAhaW1wb3J0YW50O1xufVxuXG5tYXQtbmF2LWxpc3QgLmhhcy1tb2R1bGUgLmxpYWN0aXZlIHtcbiAgbWFyZ2luLWxlZnQ6IDEwcHg7XG59XG5cbi5tdXRlZCB7XG4gIGJhY2tncm91bmQ6ICM3Mzg2RDU7XG59XG5cbi5tdXRlZDpob3ZlciB7XG4gIGJhY2tncm91bmQ6ICMzZjUxYjU7XG59XG5cbi5jYXJkIHtcbiAgaGVpZ2h0OiAxMDAlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi8qIGFwcCBkcmF3ZXIgYnJlYWtwb2ludCAqL1xubWF0LXNpZGVuYXYtY29udGFpbmVyIHtcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogMTAwJTtcbn1cblxubWF0LWRyYXdlciB7XG4gIHdpZHRoOiAxNSU7XG59XG5cbm1hdC1zaWRlbmF2IHtcbiAgb3ZlcmZsb3c6IHVuc2V0ICFpbXBvcnRhbnQ7XG59XG5cbi5tYXQtZHJhd2VyLWlubmVyLWNvbnRhaW5lciwgLm1hdC1kcmF3ZXItY29udGVudCB7XG4gIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcbn1cblxuLm1lbnVQYW5lIHtcbiAgaGVpZ2h0OiA4MCU7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIHNjcm9sbGJhci13aWR0aDogdGhpbjtcbn1cblxuLm1lbnVQYW5lOjotd2Via2l0LXNjcm9sbGJhciB7XG4gIHdpZHRoOiA4cHg7XG59XG5cbi8qIFRyYWNrICovXG4ubWVudVBhbmU6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIGJvcmRlci1yYWRpdXM6IDFweDtcbiAgbWFyZ2luOiAwO1xufVxuXG4vKiBIYW5kbGUgKi9cbi5tZW51UGFuZTo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICBiYWNrZ3JvdW5kOiAjODg4O1xuICBwYWRkaW5nOiAycHg7XG4gIGJvcmRlci1yYWRpdXM6IDIuNXB4O1xufVxuXG4vKiBIYW5kbGUgb24gaG92ZXIgKi9cbi5tZW51UGFuZTo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiBibGFjaztcbn1cblxuLnNpZGViYXItaGVhZGVyIHtcbiAgZGlzcGxheTogZmxleDtcbn1cblxuLnNpZGViYXItaGVhZGVyLCAuc2lkZWJhci1oZWFkZXIgaDMge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5zaWRlYmFyLWhlYWRlciBoMyB7XG4gIHotaW5kZXg6IDA7XG59XG5cbi8qLm1hdC1kcmF3ZXItYmFja2Ryb3AubWF0LWRyYXdlci1zaG93bntcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbn0qL1xuI2NvbGxhcHNlQnRuT25TaWRlbmF2IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gICNjb2xsYXBzZUJ0bk9uU2lkZW5hdiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuLmZsZXhDb250YWluZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBoZWlnaHQ6IDc0cHg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcbn1cblxuI3dyYXBwZXIge1xuICBmbGV4OiAxO1xufVxuXG5tYXQtc2lkZW5hdiAjc2lkZWJhciB7XG4gIHdpZHRoOiAxNSU7XG59XG5cbiNtYWluQ29udGVudCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHdpZHRoOiAxMDAlO1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuXG4jZmxleFdyYXBwZXIxIHtcbiAgZGlzcGxheTogZmxleDtcbn1cblxuI2J0bkdyb3VwMSB7XG4gIGZsZXg6IDE7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG5cbiNkbWFwcF9Mb2dvIHtcbiAgZmxleDogMjtcbn1cblxuI2xvZ29faW1nIHtcbiAgcGFkZGluZy10b3A6IDIlO1xuICB3aWR0aDogMTcwcHg7XG59XG5cbiNjb21wYW55TmFtZSB7XG4gIGZsZXg6IDE7XG4gIHdvcmQtYnJlYWs6IG5vcm1hbDtcbiAgbWFyZ2luLXRvcDogMTRweDtcbn1cblxuI2J0bkdyb3VwMiB7XG4gIGZsZXg6IDE7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG59XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioxNTAlIFpvb20qKioqKioqKioqKioqKioqKioqKioqL1xuQG1lZGlhIChtYXgtd2lkdGg6IDk2MHB4KSB7XG4gIC5mbGV4Q29udGFpbmVyIHtcbiAgICBoZWlnaHQ6IDI1JTtcbiAgfVxufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqRm9yIE1vYmlsZSB2aWV3KioqKioqKioqKioqKioqKioqKioqKioqL1xuQG1lZGlhIChtYXgtd2lkdGg6IDU3NnB4KSB7XG4gIC5mbGV4Q29udGFpbmVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAyMCU7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIH1cblxuICAjd3JhcHBlciB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cblxuICAjZmxleFdyYXBwZXIxIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICB9XG5cbiAgI2J0bkdyb3VwMSB7XG4gICAgZmxleDogMTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICB9XG5cbiAgI2RtYXBwX0xvZ28ge1xuICAgIGZsZXg6IDIuMjtcbiAgfVxuXG4gICNsb2dvX2ltZyB7XG4gICAgcGFkZGluZy10b3A6IDIlO1xuICAgIHdpZHRoOiAxNzBweDtcbiAgfVxuXG4gICNjb21wYW55TmFtZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luOiAyJSAyJTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgd29yZC1icmVhazogYnJlYWstYWxsO1xuICB9XG5cbiAgLmJ0bkdyb3VwMiB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cbi8qKioqKioqRW5kIG1vYmlsZSB2aWV3KioqKioqL1xuLyoubWF0LXNpZGVuYXYge1xuICB3aWR0aDogMzYwcHg7XG59XG4ubWF0LXNpZGVuYXYtY29udGFpbmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGUgIWltcG9ydGFudDtcbiAgaGVpZ2h0OiAxMDB2aDtcblxuICAubWF0LXNpZGVuYXYtY29udGVudCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB9XG59XG4uc2lkZW5hdi10b29sYmFyIHtcbiAgaGVpZ2h0OiA2NHB4O1xuLy8gICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGFwcC1wcmltYXJ5KTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICBAbWVkaWEgKG1heC13aWR0aDogNjAwcHgpIHtcbiAgICBoZWlnaHQ6IDU2cHg7XG4gIH1cbn1cbi5tYXQtbmF2LWxpc3Qge1xuICBwYWRkaW5nLXRvcDogMDtcbn0qL1xuQG1lZGlhIChtYXgtd2lkdGg6IDYwMHB4KSB7XG4gIC5maXhlZC10b3BuYXYge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB6LWluZGV4OiAyO1xuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWF0LWRyYXdlci1jb250YWluZXIsXG4ubWF0LWRyYXdlciB7XG4gICAgcGFkZGluZy10b3A6IDA7XG4gIH1cbn1cbi5tZW51LWxpc3QtaXRlbS5tYXQtbGlzdC1pdGVtIC5tYXQtbGlzdC1pdGVtLWNvbnRlbnQge1xuICBmbGV4OiAxIDEgMTAwJTtcbn1cblxuLnZlcnNpb24taW5mbyB7XG4gIGZvbnQtc2l6ZTogOHB0O1xuICBwYWRkaW5nOiA4cHg7XG4gIGFsaWduLXNlbGY6IGZsZXgtZW5kO1xufVxuXG5oMSB7XG4gIGNvbG9yOiAjMzMzO1xuICBmb250LWZhbWlseTogYXJpYWwsIHNhbnMtc2VyaWY7XG4gIG1hcmdpbjogMWVtIGF1dG87XG4gIHdpZHRoOiA4MCU7XG59XG5cbi50YWJvcmRpb24ge1xuICBjb2xvcjogIzMzMztcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtZmFtaWx5OiBhcmlhbCwgc2Fucy1zZXJpZjtcbiAgbWFyZ2luOiBhdXRvO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiA4MCU7XG59XG5cbi50YWJvcmRpb24gaW5wdXRbbmFtZT1zZWN0aW9uc10ge1xuICBsZWZ0OiAtOTk5OXB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogLTk5OTlweDtcbn1cblxuLnRhYm9yZGlvbiBzZWN0aW9uIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi50YWJvcmRpb24gc2VjdGlvbiBsYWJlbCB7XG4gIGJhY2tncm91bmQ6ICNjY2M7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNmZmY7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogMS4yZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBwYWRkaW5nOiAxNXB4IDIwcHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDE4MHB4O1xuICB6LWluZGV4OiAxMDA7XG59XG5cbi50YWJvcmRpb24gc2VjdGlvbiBhcnRpY2xlIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgbGVmdDogMjMwcHg7XG4gIG1pbi13aWR0aDogMzAwcHg7XG4gIHBhZGRpbmc6IDAgMCAwIDIxcHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xufVxuXG4udGFib3JkaW9uIHNlY3Rpb24gYXJ0aWNsZTphZnRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjY2M7XG4gIGJvdHRvbTogMDtcbiAgY29udGVudDogXCJcIjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGxlZnQ6IC0yMjlweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHdpZHRoOiAyMjBweDtcbiAgei1pbmRleDogMTtcbn1cblxuLnRhYm9yZGlvbiBpbnB1dFtuYW1lPXNlY3Rpb25zXTpjaGVja2VkICsgbGFiZWwge1xuICBmb250LXNpemU6IDE2cHg7XG59XG5cbi50YWJvcmRpb24gaW5wdXRbbmFtZT1zZWN0aW9uc106Y2hlY2tlZCB+IGFydGljbGUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zaXplOiAxNnB4O1xuICBiYWNrZ3JvdW5kOiAjZWVlO1xuICBjb2xvcjogIzAwMDtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDUzM3B4KSB7XG4gIGgxIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuXG4gIC50YWJvcmRpb24ge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG5cbiAgLnRhYm9yZGlvbiBzZWN0aW9uIGxhYmVsIHtcbiAgICBmb250LXNpemU6IDFlbTtcbiAgICB3aWR0aDogMTYwcHg7XG4gIH1cblxuICAudGFib3JkaW9uIHNlY3Rpb24gYXJ0aWNsZSB7XG4gICAgbGVmdDogMjAwcHg7XG4gICAgbWluLXdpZHRoOiAyNzBweDtcbiAgfVxuXG4gIC50YWJvcmRpb24gc2VjdGlvbiBhcnRpY2xlOmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2NjO1xuICAgIGJvdHRvbTogMDtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGxlZnQ6IC0xOTlweDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIHdpZHRoOiAyMDBweDtcbiAgfVxufVxuQG1lZGlhIHByaW50IHtcbiAgLmRvbm90cHJpbnR0aGlzIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5AbWVkaWEgcHJpbnQge1xuICBAcGFnZSB7XG4gICAgc2l6ZTogYXV0bztcbiAgICBtYXJnaW46IDBtbTtcbiAgfVxuICBhW2hyZWZdOmFmdGVyIHtcbiAgICBjb250ZW50OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSBwcmludCB7XG4gICNIZWFkZXIsICNGb290ZXIge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIHNjcmVlbiB7XG4gIC5kb25vdHByaW50dGhpcyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cbi5hY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodHNlYWdyZWVuO1xufVxuXG5hIHtcbiAgY29sb3I6ICNkZWRlZGU7XG59XG5cbmxpIHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbn1cblxuLnBhbmVsLWRlZmF1bHQgPiAucGFuZWwtaGVhZGluZyB7XG4gIGNvbG9yOiAjZGVkZWRlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzM4NkQ1O1xufVxuXG4ucGFuZWwtZ3JvdXAgLnBhbmVsICsgLnBhbmVsIHtcbiAgbWFyZ2luLXRvcDogMHB4O1xufVxuXG4ucGFuZWwtZ3JvdXAge1xuICBtYXJnaW4tdG9wOiAzNXB4O1xufVxuXG4ucGFuZWwtY29sbGFwc2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmIyYjJiO1xufVxuXG4uZ2x5cGhpY29uIHtcbiAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xufVxuXG51bC5saXN0LWdyb3VwIHtcbiAgbWFyZ2luOiAwcHg7XG59XG5cbnVsLmJ1bGxldGxpc3QgbGkge1xuICBsaXN0LXN0eWxlOiBkaXNjO1xufVxuXG51bC5saXN0LWdyb3VwIGxpIGEge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogNXB4IDBweCA1cHggMTVweDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG51bC5saXN0LWdyb3VwIC5oYXMtbW9kdWxlOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzM3NzViNTtcbiAgY29sb3I6ICMyYjJiMmIgIWltcG9ydGFudDtcbn1cblxuLmxpYWN0aXZlIHtcbiAgY29sb3I6ICMyYjJiMmIgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGUgIWltcG9ydGFudDtcbn1cblxuLmhhcy1tb2R1bGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzc3NWI1O1xuICBjb2xvcjogIzJiMmIyYiAhaW1wb3J0YW50O1xufVxuXG4ucGFuZWwtdGl0bGUgYTpob3Zlcixcbi5wYW5lbC10aXRsZSBhOmFjdGl2ZSxcbi5wYW5lbC10aXRsZSBhOmZvY3VzLFxuLnBhbmVsLXRpdGxlIC5vcGVuIGE6aG92ZXIsXG4ucGFuZWwtdGl0bGUgLm9wZW4gYTphY3RpdmUsXG4ucGFuZWwtdGl0bGUgLm9wZW4gYTpmb2N1cyB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgY29sb3I6ICNkZWRlZGU7XG59XG5cbi5wYW5lbC10aXRsZSA+IC5zbWFsbCwgLnBhbmVsLXRpdGxlID4gLnNtYWxsID4gYSwgLnBhbmVsLXRpdGxlID4gYSwgLnBhbmVsLXRpdGxlID4gc21hbGwsIC5wYW5lbC10aXRsZSA+IHNtYWxsID4gYSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLm5hdmJhci1jb2xsYXBzZS5jb2xsYXBzZSB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICBvdmVyZmxvdzogdmlzaWJsZSAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctbGVmdDogMHB4O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLm1lbnUtaGlkZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuLm1lbnUtaGlkZSAucGFuZWwtZGVmYXVsdCA+IC5wYW5lbC1oZWFkaW5nIHtcbiAgY29sb3I6ICNkZWRlZGU7XG4gIGJhY2tncm91bmQtY29sb3I6ICM4ZThjOGM7XG59XG5cbi8qKioqKioqKioqIEVORCBTSURFQkFSICoqKioqKioqKioqKiovXG4vKioqKioqKioqKiBOQVZCQVIgVE9HR0xFICoqKioqKioqKioqKiovXG4ubmF2YmFyLXRvZ2dsZSAuaWNvbi1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xufVxuXG4ubmF2YmFyLXRvZ2dsZSB7XG4gIHBhZGRpbmc6IDExcHggMTBweDtcbiAgbWFyZ2luLXRvcDogOHB4O1xuICBtYXJnaW4tcmlnaHQ6IDE1cHg7XG4gIG1hcmdpbi1ib3R0b206IDhweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2EzMjYzODtcbn1cblxuI1Jvd2NvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIG1hcmdpbjogMDtcbiAgbWFyZ2luLXRvcDogLTEwcHg7XG4gIG1hcmdpbi1ib3R0b206IC0xMHB4O1xuICBwYWRkaW5nOiAwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG59XG5cbiNSb3doZWFkaW5nIHtcbiAgZmxleDogMTtcbn1cblxuI1Jvd3dyYXBwZXIge1xuICBmbGV4OiAyO1xufVxuXG4jUm93dGFibGVBY3Rpb25zIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbiNmaWVsZCwgI2J1dHRvbnZpZXcge1xuICBtYXJnaW46IDIlO1xufSJdfQ== */\"","import { Component, OnInit, Inject } from '@angular/core';\r\nimport { DorseyService } from '../dorsey.service';\r\nimport { Router } from '@angular/router';\r\nimport { LocalStorageService } from 'ngx-webstorage';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\n\r\nimport { BreakpointObserver } from '@angular/cdk/layout';\r\nimport { OrganizationService } from '../services/organization.service';\r\nimport { copyRight } from '../copyRight.model';\r\nimport { MsalUserService } from './msal-user.service';\r\nimport { CompanyService } from '../services/company.service';\r\n\r\n@Component({\r\n selector: 'app-login',\r\n templateUrl: './login.component.html',\r\n styleUrls: ['./login.component.scss']\r\n})\r\nexport class LoginComponent implements OnInit {\r\n copyRight: string = copyRight;\r\n userName = '';\r\n password = '';\r\n warningMsg = '';\r\n usersData: any;\r\n userRoleAssignmentData: any;\r\n filtercompany = [];\r\n filterEmployee = [];\r\n //filterUserRole = [];\r\n adminDetails = [];\r\n login = false;\r\n rolesData: any;\r\n organizationDetails: any;\r\n menuData: any;\r\n MenuPermissions: any;\r\n PermissionJson: any;\r\n companyID: string;\r\n menuOpenStatus = true;\r\n count = 0;\r\n menuOpen = false;\r\n TeamID: string;\r\n employeeData: any;\r\n employeeID = 0;\r\n organizationID: number;\r\n RoleID: string;\r\n CompanyName: string = '';\r\n companyData: any;\r\n currentUser: any;\r\n GlobalAdminLogin = false;\r\n loginUsername: string;\r\n teamData: any;\r\n panelOpenState = false;\r\n step = 0;\r\n menuVisible = false;\r\n setupList = false;\r\n processList = false;\r\n projects = false;\r\n reports = false;\r\n companySetup = false;\r\n type = false;\r\n loginCompanyName: string = '';\r\n copyDate: number;\r\n opened: any;\r\n sidenavMode: any;\r\n backdrop = false;\r\n smallScrn = false;\r\n isSuperAdmin: boolean = false;\r\n companyNavigate: boolean;\r\n employeeLoginLevel: string;\r\n isScoreCardEnable: boolean = false;\r\n showAzureBtn: boolean = false;\r\n\r\n constructor(private dorsey: DorseyService,\r\n private router: Router,\r\n private storage: LocalStorageService,\r\n private organizationService: OrganizationService,\r\n private dialog: MatDialog,\r\n breakpointObserver: BreakpointObserver,\r\n private companyService: CompanyService,\r\n private msalService: MsalUserService) {\r\n const windowSize = breakpointObserver.observe([\r\n '(max-width: 1200px)'\r\n ]).subscribe(result => {\r\n if (result.matches) {\r\n this.opened = false;\r\n this.sidenavMode = \"over\";\r\n this.smallScrn = true;\r\n } else {\r\n this.opened = true;\r\n this.sidenavMode = \"side\";\r\n this.smallScrn = false;\r\n }\r\n });\r\n if (window.location.href.split('#')[1] === '/' || !window.location.href.split('#')[1]) {\r\n this.storage.store('Login', false);\r\n this.login = false;\r\n }\r\n\r\n }\r\n setStep(index: number) {\r\n this.step = index;\r\n }\r\n\r\n nextStep() {\r\n this.step++;\r\n }\r\n\r\n prevStep() {\r\n this.step--;\r\n }\r\n\r\n collapseSidenav() {\r\n if (this.opened && this.smallScrn) {\r\n this.opened = !this.opened;\r\n }\r\n }\r\n\r\n menuClick(url, obj) {\r\n var activeclasses = document.querySelectorAll('.liactive');\r\n for (let i = 0; i < activeclasses.length; i++) {\r\n activeclasses[i].setAttribute(\"class\", \"liactive1\");\r\n activeclasses[i].parentElement.setAttribute(\"class\", \"has-module1\");\r\n }\r\n obj.parentNode.setAttribute(\"class\", \"liactive\");\r\n obj.parentNode.parentNode.setAttribute(\"class\", \"has-module\");\r\n this.router.navigateByUrl(url);\r\n }\r\n\r\n ngOnInit() {\r\n \r\n if(window.location.hostname.includes('sugarcreek')){\r\n this.showAzureBtn = true;\r\n }\r\n if(sessionStorage.getItem('msal.urlHash')){\r\n var token = sessionStorage.getItem('msal.urlHash').split('#')[1].split('&')[0].split('=')[1];\r\n var azureObject = JSON.parse(atob(token.split('.')[1]));\r\n //preferred_username\r\n this.companyService.getUserDetailsByEmailId(azureObject.email).subscribe(resp => {\r\n if (resp.Data.length == 0) {\r\n this.warningMsg = \"No user found\";\r\n this.storage.clear();\r\n return;\r\n }\r\n this.userName = resp.Data[0].UserName;\r\n this.password = resp.Data[0].Password;\r\n this.storage.store('Login', true);\r\n this.loginProcess();\r\n })\r\n }else{\r\n this.loginProcess();\r\n }\r\n this.copyDate = (new Date()).getFullYear();\r\n }\r\n\r\n loginProcess(): void{\r\n if (this.storage.retrieve('Login')) {\r\n this.GetTeamLogin();\r\n this.GetUserRoleAssignment();\r\n this.GetMenuMaster();\r\n this.Login();\r\n this.MenuPermissions = this.storage.retrieve('MenuPermissions');\r\n this.companyNavigate = this.storage.retrieve('companyNavigate');\r\n this.menuData = this.storage.retrieve('menuData');\r\n this.loginUsername = this.storage.retrieve('loginUsername');\r\n this.companyID = this.storage.retrieve('companyID');\r\n this.GlobalAdminLogin = this.storage.retrieve('GlobalAdminLogin');\r\n this.CompanyName = this.storage.retrieve('CompanyName');\r\n this.organizationID = this.storage.retrieve('organizationId');\r\n this.isScoreCardEnable = this.storage.retrieve('isScoreCardEnable');\r\n this.menuVisible = this.storage.retrieve('menuVisible');\r\n if (this.GlobalAdminLogin) {\r\n this.GetUsers();\r\n this.GetUserRoleAssignment();\r\n if (this.companyID != '0') {\r\n this.dorsey.GetCompanyData().subscribe(data => {\r\n this.companyData = JSON.parse(data['_body']);\r\n let dataCompany = this.companyData.filter(x => x.CompanyID === this.companyID);\r\n if (dataCompany.length > 0) {\r\n this.CompanyName = dataCompany[0].CompanyName;\r\n }\r\n });\r\n this.storage.store('CompanyName', this.CompanyName);\r\n }\r\n }\r\n this.login = true;\r\n } else {\r\n this.GetUserRoleAssignment();\r\n this.GetMenuMaster();\r\n }\r\n }\r\n\r\n loginWithAzure(): void{\r\n this.msalService.login();\r\n }\r\n\r\n GetMenuMaster() {\r\n this.dorsey.GetMenuMaster().subscribe(subData => {\r\n subData = JSON.parse(subData['_body']);\r\n this.menuData = subData;\r\n });\r\n }\r\n\r\n GetUsers() {\r\n this.dorsey.GetUsersList().subscribe(users => {\r\n this.usersData = JSON.parse(users['_body']);\r\n });\r\n }\r\n GetUserRoleAssignment() {\r\n this.dorsey.GetUserRoleAssignment().subscribe(userRoles => {\r\n this.userRoleAssignmentData = JSON.parse(userRoles['_body']);\r\n });\r\n }\r\n\r\n GetTeamLogin() {\r\n if (this.companyID) {\r\n this.dorsey.GetTeam(this.companyID).subscribe(subData => {\r\n subData = JSON.parse(subData['_body']);\r\n this.teamData = subData;\r\n\r\n });\r\n }\r\n\r\n }\r\n\r\n GetTeam(companyID) {\r\n if (companyID) {\r\n this.dorsey.GetTeam(companyID).subscribe(subData => {\r\n subData = JSON.parse(subData['_body']);\r\n this.teamData = subData;\r\n });\r\n }\r\n }\r\n\r\n GetRoles(companyID) {\r\n if (companyID) {\r\n this.dorsey.GetRoles(companyID).subscribe(users => {\r\n this.rolesData = JSON.parse(users['_body']);\r\n });\r\n }\r\n }\r\n\r\n GetEmployee(companyID: string) {\r\n if (companyID) {\r\n this.dorsey.GetEmployee(companyID).subscribe(team => {\r\n this.employeeData = JSON.parse(team['_body']);\r\n });\r\n }\r\n }\r\n\r\n LoginWithCompany(userName, Password, cID) {\r\n this.CompanyName = '';\r\n this.companyID = cID;\r\n if (cID == 0) {\r\n this.menuVisible = true;\r\n }\r\n else {\r\n this.menuVisible = false;\r\n }\r\n let uName = this.storage.retrieve(\"adminEmail\");\r\n let Pas = this.storage.retrieve(\"adminPassword\");\r\n let UserName = this.storage.retrieve('adminUserName');\r\n this.storage.store(\"adminEmail\", uName);\r\n this.storage.store(\"adminPassword\", Pas);\r\n this.storage.store(\"adminUserName\", UserName);\r\n this.userName = userName;\r\n this.password = Password;\r\n this.GlobalAdminLogin = true;\r\n this.GetUsers();\r\n this.GetUserRoleAssignment();\r\n this.Login();\r\n\r\n }\r\n backToOrganization() {\r\n this.Login();\r\n //this.router.navigate(['/organization']);\r\n }\r\n\r\n BackToAdmin() {\r\n // this.storage.clear(\"id\");\r\n // this.storage.clear(\"TeamID\");\r\n // this.GetUsers();\r\n // this.GetUserRoleAssignment();\r\n // this.companyID = '';\r\n // this.menuVisible = true;\r\n this.CompanyName = '';\r\n this.GlobalAdminLogin = false;\r\n this.userName = this.storage.retrieve(\"loginUsername\");\r\n this.login = this.storage.retrieve(\"Login\");\r\n this.loginLevel = this.storage.retrieve(\"loginLevel\");\r\n if (this.loginLevel == 'superadmin') {\r\n this.password = this.storage.retrieve(\"admintoken\");\r\n } else if (this.loginLevel == 'organization') {\r\n this.password = this.storage.retrieve(\"orgtoken\");\r\n } else if (this.loginLevel == 'entity') {\r\n this.password = this.storage.retrieve(\"entitytoken\");\r\n }\r\n\r\n let userId = this.storage.retrieve('UserID');\r\n sessionStorage.clear();\r\n sessionStorage.removeItem(\"loginCompanyName\");\r\n sessionStorage.removeItem(\"CompanyName\");\r\n this.storage.clear();\r\n this.Login();\r\n }\r\n\r\n loginLevel: string;\r\n\r\n Login() {\r\n let parentId: number;\r\n if (this.GlobalAdminLogin) {\r\n this.usersData = this.storage.retrieve('userData');\r\n }\r\n this.dorsey.GetUsersList().subscribe(users => {\r\n this.usersData = JSON.parse(users['_body']);\r\n let data = this.storage.retrieve('UserID');\r\n\r\n if (data !== '') {\r\n let filteruser = this.usersData.filter(x => x.UserID === data);\r\n if (filteruser.length > 0) {\r\n this.currentUser = filteruser;\r\n this.storage.store('CurrentUser', this.currentUser);\r\n }\r\n }\r\n this.warningMsg = '';\r\n if (!this.userName && !this.password) {\r\n this.warningMsg = 'Please enter username and password';\r\n return;\r\n } else if (!this.userName) {\r\n this.warningMsg = 'Please enter username';\r\n return;\r\n } else if (!this.password) {\r\n this.warningMsg = 'Please enter password';\r\n return;\r\n } else if (this.userName != '' && this.password != '') {\r\n\r\n let filteruser = this.usersData.filter(x => (x.UserName.toLowerCase() === this.userName.toLowerCase() && x.Password === this.password || (x.AdminUname === this.userName && x.AdminPwd === this.password)));\r\n if (filteruser.length === 0) {\r\n this.warningMsg = 'Please enter valid credentials';\r\n return;\r\n }\r\n this.currentUser = filteruser;\r\n this.dorsey.GetCompanyRoleID(filteruser[0].CompanyID).subscribe(roleData => {\r\n let compRole = JSON.parse(roleData['_body'])[0]['RoleID'];\r\n localStorage.setItem('companyRoleID', (compRole));\r\n let userRoleName = JSON.parse(roleData['_body'])[0]['RoleName'];\r\n this.storage.store('userRoleName', userRoleName);\r\n });\r\n\r\n this.storage.store('CurrentUser', this.currentUser);\r\n if (filteruser.length > 0) {\r\n this.userName = filteruser[0].UserName;\r\n this.storage.store(\"UserID\", filteruser[0].UserID);\r\n\r\n if (this.GlobalAdminLogin) {\r\n this.loginUsername = this.storage.retrieve('loginUsername');\r\n this.companyID = filteruser[0].CompanyID;\r\n let userName = this.storage.retrieve('adminUserName');\r\n this.storage.store('user', userName);\r\n }\r\n else {\r\n this.loginUsername = filteruser[0].UserName;\r\n this.companyID = filteruser[0].CompanyID;\r\n this.storage.store('user', filteruser[0].UserName);\r\n }\r\n this.organizationID = filteruser[0].OrganizationID;\r\n this.dorsey.GetRoles(this.companyID).subscribe(users => {\r\n this.rolesData = JSON.parse(users['_body']);\r\n this.dorsey.GetUserRoleAssignment().subscribe(data => {\r\n this.userRoleAssignmentData = JSON.parse(data['_body']);\r\n this.adminDetails = this.userRoleAssignmentData.filter(x => x.UserID === filteruser[0].UserID && x.RoleID === 1);\r\n this.organizationDetails = this.userRoleAssignmentData.filter(x => x.UserID === filteruser[0].UserID && filteruser[0].CompanyID === 0 && filteruser[0].EmployeeID === 0);\r\n // this.companyLogin = this.userRoleAssignmentData.filter(x => x.UserID === filteruser[0].UserID && filteruser[0].EmployeeID === 0);\r\n this.filtercompany = this.userRoleAssignmentData.filter(x => x.UserID === filteruser[0].UserID && filteruser[0].EmployeeID === 0);\r\n if (this.adminDetails.length > 0) {\r\n if (!this.storage.retrieve('loginLevel')) {\r\n this.loginLevel = 'superadmin';\r\n this.storage.store(\"admintoken\", this.password);\r\n this.storage.store(\"loginLevel\", this.loginLevel);\r\n }\r\n this.menuVisible = true;\r\n this.storage.store('isCompanyLogin', false);\r\n this.organizationID = 0;\r\n let filterPermissons = this.rolesData.filter(x => x.RoleID === this.adminDetails[0].RoleID && x.OrganizationID == 0);\r\n this.MenuPermissions = JSON.parse(filterPermissons[0].MenuJson);\r\n this.storage.store(\"username\", this.userName);\r\n\r\n this.storage.store(\"token\", this.password);\r\n this.storage.store(\"organizationId\", this.organizationID);\r\n this.storage.store(\"adminUname\", filteruser[0].UserName);\r\n this.storage.store(\"GlobalAdminLogin\", this.GlobalAdminLogin);\r\n this.storage.store('MenuPermissions', this.MenuPermissions);\r\n this.storage.store('menuData', this.menuData);\r\n this.storage.store('companyID', filteruser[0].CompanyID);\r\n this.storage.store('loginUsername', this.loginUsername);\r\n this.storage.store('Login', true);\r\n this.isScoreCardEnable = false;\r\n this.router.navigate(['/organization'],);\r\n this.login = true;\r\n return;\r\n }\r\n else if (this.organizationDetails.length > 0) {\r\n if (!this.storage.retrieve('loginLevel')) {\r\n this.loginLevel = 'organization';\r\n this.storage.store(\"orgtoken\", this.password);\r\n this.storage.store(\"loginLevel\", this.loginLevel);\r\n }\r\n this.companyNavigate = false;\r\n this.storage.store(\"companyNavigate\", this.companyNavigate);\r\n this.isSuperAdmin = false;\r\n this.organizationID = filteruser[0].OrganizationID;\r\n this.storage.store(\"organizationId\", this.organizationID);\r\n var orgDetails;\r\n this.organizationService.getOrganizations().subscribe(resp => {\r\n let organization = resp.Data.find(ent => ent.OrganizationID === this.organizationID);\r\n orgDetails = {\r\n OrganizationId: organization.OrganizationID,\r\n IsSuperAdmin: this.isSuperAdmin,\r\n OrganizationName: organization.OrganizationName,\r\n NoOfLicenses: organization.NoOfLicenses\r\n }\r\n this.menuVisible = true;\r\n let filterPermissons = this.rolesData.filter(x => x.RoleID === this.filtercompany[0].RoleID);\r\n this.MenuPermissions = JSON.parse(filterPermissons[0].MenuJson);\r\n\r\n this.storage.store(\"username\", this.userName);\r\n this.storage.store(\"token\", this.password);\r\n this.storage.store(\"adminUname\", filteruser[0].UserName);\r\n this.storage.store(\"GlobalAdminLogin\", this.GlobalAdminLogin);\r\n this.storage.store('MenuPermissions', this.MenuPermissions);\r\n this.storage.store('menuData', this.menuData);\r\n this.storage.store('companyID', filteruser[0].CompanyID);\r\n this.storage.store('loginUsername', this.loginUsername);\r\n this.storage.store('Login', true);\r\n this.isScoreCardEnable = false;\r\n this.storage.store('OrganizationDetails', orgDetails);\r\n this.router.navigate(['/entity']);\r\n this.login = true;\r\n });\r\n return;\r\n }\r\n else if (this.filtercompany.length > 0) {\r\n if (!this.storage.retrieve('loginLevel')) {\r\n this.loginLevel = 'entity';\r\n this.storage.store(\"entitytoken\", this.password);\r\n this.storage.store(\"loginLevel\", this.loginLevel);\r\n }\r\n\r\n this.companyNavigate = this.storage.retrieve(\"companyNavigate\");\r\n let role = this.userRoleAssignmentData.filter(x => x.UserID === this.filtercompany[0].UserID)\r\n let filterPermissons = this.rolesData.filter(x => x.RoleID === role[0].RoleID);\r\n this.MenuPermissions = JSON.parse(filterPermissons[0].MenuJson);\r\n this.organizationID = filteruser[0].OrganizationID;\r\n var orgDetails;\r\n this.organizationService.getOrganizations().subscribe(resp => {\r\n let organization = resp.Data.find(ent => ent.OrganizationID === this.organizationID);\r\n orgDetails = {\r\n OrganizationId: organization.OrganizationID,\r\n IsSuperAdmin: this.isSuperAdmin,\r\n OrganizationName: organization.OrganizationName,\r\n NoOfLicenses: organization.NoOfLicenses\r\n }\r\n this.GetTeam(this.companyID);\r\n if (this.teamData !== undefined) {\r\n for (let i = 0; i < this.teamData.length; i++) {\r\n if (this.teamData[i].TeamName === 'Leadership Team' && this.teamData[i].CompanyID === filteruser[0].CompanyID) {\r\n this.storage.store('TeamIDLeader', this.teamData[i].TeamID);\r\n }\r\n }\r\n }\r\n this.companyID = filteruser[0].CompanyID;\r\n let readOnly = this.rolesData.filter(x => x.CompanyID === this.companyID && x.RoleName.toLowerCase() === \"read only\");\r\n if (readOnly.length > 0) {\r\n this.storage.store(\"ReadOnlyRoleID\", readOnly[0].RoleID);\r\n }\r\n let TeamAdmin = this.rolesData.filter(x => x.CompanyID === this.companyID && x.RoleName.toLowerCase() === \"team admin\");\r\n if (TeamAdmin.length > 0) {\r\n this.storage.store(\"TeamAdminRoleID\", TeamAdmin[0].RoleID);\r\n }\r\n\r\n let teamMember = this.rolesData.filter(x => x.CompanyID === this.companyID && x.RoleName.toLowerCase() === \"team member\");\r\n if (teamMember.length > 0) {\r\n this.storage.store(\"TeamMemberRoleID\", teamMember[0].RoleID);\r\n }\r\n if (this.companyID != '0') {\r\n this.dorsey.GetCompanyData().subscribe(data => {\r\n this.companyData = JSON.parse(data['_body']);\r\n let dataCompany = this.companyData.filter(x => x.CompanyID === this.companyID);\r\n if (dataCompany.length > 0) {\r\n this.CompanyName = dataCompany[0].CompanyName;\r\n parentId = dataCompany[0].ParentID;\r\n this.isScoreCardEnable = dataCompany[0].EnableScoreCard;\r\n }\r\n this.storage.store('CompanyName', this.CompanyName);\r\n this.storage.store('isScoreCardEnable', this.isScoreCardEnable);\r\n\r\n this.storage.store('loginCompanyName', this.CompanyName);\r\n sessionStorage.setItem('loginCompanyName', this.CompanyName);\r\n\r\n });\r\n }\r\n this.storage.store(\"GlobalAdminLogin\", this.GlobalAdminLogin);\r\n this.storage.store(\"username\", this.userName);\r\n this.storage.store(\"token\", this.password);\r\n this.RoleID = filterPermissons[0].RoleID;\r\n this.storage.store('RoleID', this.RoleID);\r\n this.storage.store('loginUsername', this.loginUsername);\r\n this.storage.store('EmpRoleID', this.RoleID);\r\n\r\n this.storage.store('companyID', filteruser[0].CompanyID);\r\n this.storage.store('EmployeeID', filteruser[0].EmployeeID);\r\n this.login = true;\r\n this.storage.store('Login', true);\r\n this.storage.store('MenuPermissions', this.MenuPermissions);\r\n this.storage.store('menuData', this.menuData);\r\n this.storage.store('isCompanyLogin', true);\r\n\r\n if (!parentId) {\r\n this.storage.store('isSubCompanyLogin', true);\r\n }\r\n\r\n this.storage.store('OrganizationDetails', orgDetails);\r\n if (!this.companyNavigate) {\r\n this.menuVisible = true;\r\n this.companyNavigate = false;\r\n this.storage.store(\"companyNavigate\", this.companyNavigate);\r\n this.router.navigateByUrl('/entity');\r\n } else {\r\n this.menuVisible = false;\r\n this.companyNavigate = true;\r\n this.storage.store(\"companyNavigate\", this.companyNavigate);\r\n this.router.navigateByUrl('/processMap');\r\n }\r\n });\r\n }\r\n else {\r\n this.menuVisible = false;\r\n this.companyNavigate = true;\r\n this.storage.store(\"menuVisible\", this.menuVisible);\r\n this.storage.store(\"companyNavigate\", this.companyNavigate);\r\n this.filterEmployee = this.userRoleAssignmentData.filter(x => x.UserID === filteruser[0].UserID && filteruser[0].EmployeeID !== 0);\r\n if (this.filterEmployee.length > 0) {\r\n let filterPermissons = this.rolesData.filter(x => x.RoleID === this.filterEmployee[0].RoleID);\r\n this.MenuPermissions = JSON.parse(filterPermissons[0].MenuJson);\r\n this.companyID = filteruser[0].CompanyID;\r\n this.dorsey.GetEmployee(filteruser[0].CompanyID).subscribe(team => {\r\n this.employeeData = JSON.parse(team['_body']);\r\n let filterEm = this.employeeData.filter(x => x.EmployeeID === filteruser[0].EmployeeID && filteruser[0].CompanyID === this.companyID);\r\n this.employeeID = filteruser[0].EmployeeID;\r\n if (filterEm.length > 0) {\r\n if (this.teamData !== undefined) {\r\n for (let i = 0; i < this.teamData.length; i++) {\r\n if (this.teamData[i].TeamID === filterEm[0].TeamID && this.teamData[i].CompanyID === filteruser[0].CompanyID) {\r\n this.storage.store('TeamIDLeader', this.teamData[i].TeamID);\r\n }\r\n else if (this.teamData[i].TeamName === 'Leadership Team' && this.teamData[i].CompanyID === filteruser[0].CompanyID) {\r\n this.storage.store('TeamIDLeader', this.teamData[i].TeamID);\r\n }\r\n }\r\n }\r\n this.storage.store('TeamID', filterEm[0].TeamID);\r\n }\r\n this.storage.store(\"employeeDetails\", filterEm[0]);\r\n this.RoleID = filterEm[0].RoleID;\r\n this.storage.store(\"GlobalAdminLogin\", this.GlobalAdminLogin);\r\n this.storage.store(\"username\", this.userName);\r\n this.storage.store(\"token\", this.password);\r\n this.storage.store('loginUsername', this.loginUsername);\r\n let readOnly = this.rolesData.filter(x => x.CompanyID === this.companyID && x.RoleName.toLowerCase() === \"read only\");\r\n if (readOnly.length > 0) {\r\n this.storage.store(\"ReadOnlyRoleID\", readOnly[0].RoleID);\r\n }\r\n let TeamAdmin = this.rolesData.filter(x => x.CompanyID === this.companyID && x.RoleName.toLowerCase() === \"team admin\");\r\n if (TeamAdmin.length > 0) {\r\n this.storage.store(\"TeamAdminRoleID\", TeamAdmin[0].RoleID);\r\n this.storage.store(\"TeamMemberRoleName\", TeamAdmin[0].RoleName);\r\n }\r\n let teamMember = this.rolesData.filter(x => x.CompanyID === this.companyID && x.RoleName.toLowerCase() === \"team member\");\r\n if (teamMember.length > 0) {\r\n this.storage.store(\"TeamMemberRoleID\", teamMember[0].RoleID);\r\n }\r\n if (this.companyID != '0') {\r\n this.dorsey.GetCompanyData().subscribe(data => {\r\n this.companyData = JSON.parse(data['_body']);\r\n let dataCompany = this.companyData.filter(x => x.CompanyID === this.companyID);\r\n if (dataCompany.length > 0) {\r\n this.CompanyName = dataCompany[0].CompanyName;\r\n parentId = dataCompany[0].ParentID;\r\n this.isScoreCardEnable = dataCompany[0].EnableScoreCard;\r\n }\r\n this.storage.store('isScoreCardEnable', this.isScoreCardEnable);\r\n this.storage.store('CompanyName', this.CompanyName);\r\n this.storage.store('loginCompanyName', this.CompanyName);\r\n sessionStorage.setItem('loginCompanyName', this.CompanyName);\r\n });\r\n }\r\n this.storage.store('RoleID', \"0\");\r\n this.storage.store('EmpRoleID', this.RoleID);\r\n this.storage.store('companyID', filteruser[0].CompanyID);\r\n this.storage.store('user', filteruser[0].UserName);\r\n this.storage.store('EmployeeID', filteruser[0].EmployeeID);\r\n this.login = true;\r\n this.storage.store('Login', true);\r\n this.storage.store('MenuPermissions', this.MenuPermissions);\r\n this.storage.store('menuData', this.menuData);\r\n this.menuVisible = false;\r\n this.router.navigateByUrl('/processMap');\r\n });\r\n }\r\n }\r\n })\r\n });\r\n }\r\n else {\r\n this.warningMsg = 'Please enter valid Credentials';\r\n }\r\n }\r\n else {\r\n this.warningMsg = 'Please enter valid Credentials';\r\n return;\r\n }\r\n });\r\n if (this.companyID != '0') {\r\n this.dorsey.GetCompanyData().subscribe(data => {\r\n this.companyData = JSON.parse(data['_body']);\r\n\r\n // let dataCompany = this.companyData.filter(x => x.CompanyID === this.companyID);\r\n // if (dataCompany.length > 0) {\r\n // this.CompanyName = dataCompany[0].CompanyName;\r\n // }\r\n\r\n this.storage.store('CompanyName', this.CompanyName);\r\n this.storage.store('loginCompanyName', this.CompanyName);\r\n sessionStorage.setItem('loginCompanyName', this.CompanyName);\r\n\r\n });\r\n }\r\n\r\n }\r\n\r\n GetCompany() {\r\n\r\n }\r\n LogOut() {\r\n this.loginUsername = \"\";\r\n this.CompanyName = \"\";\r\n this.menuVisible = false;\r\n this.userName = '';\r\n this.password = '';\r\n this.login = false;\r\n this.employeeID = 0;\r\n this.companyID = ''\r\n this.GlobalAdminLogin = false;\r\n this.storage.clear('Login');\r\n this.storage.clear('MenuPermissions');\r\n this.storage.clear('menuData');\r\n this.storage.clear('companyID');\r\n this.storage.clear('TeamID');\r\n this.storage.clear('EmpRoleID');\r\n this.storage.clear('id');\r\n this.storage.clear('userData');\r\n this.storage.clear('employeeDetails');\r\n this.storage.clear('CompanyName');\r\n this.storage.clear('ReadOnlyRoleID');\r\n this.storage.clear('TeamAdminRoleID');\r\n this.storage.clear('TeamMemberRoleName');\r\n this.storage.clear('TeamMemberRoleID');\r\n this.storage.clear('TeamIDLeader');\r\n this.storage.clear('username');\r\n this.storage.clear('token');\r\n this.storage.clear('adminEmail');\r\n this.storage.clear('adminPassoword');\r\n this.storage.clear('adminUserName');\r\n this.storage.clear('loginUsername');\r\n this.storage.clear('loginCompanyName');\r\n this.storage.clear('GlobalAdminLogin');\r\n this.storage.clear('RoleID');\r\n this.router.navigateByUrl('/');\r\n this.filterEmployee = [];\r\n this.adminDetails = [];\r\n this.filtercompany = [];\r\n this.MenuPermissions = null;\r\n sessionStorage.clear();\r\n sessionStorage.removeItem(\"loginCompanyName\");\r\n sessionStorage.removeItem(\"CompanyName\");\r\n this.storage.clear();\r\n }\r\n\r\n CheckEnter(event) {\r\n event.preventDefault();\r\n if (event.keyCode === 13) {\r\n document.getElementById('login').click();\r\n }\r\n }\r\n\r\n onClick(event) {\r\n if (this.count === 0) {\r\n this.menuOpen = true;\r\n this.menuOpenStatus = false;\r\n this.count++;\r\n } else {\r\n this.menuOpen = false;\r\n this.menuOpenStatus = true;\r\n this.count = 0;\r\n }\r\n\r\n }\r\n changePassword() {\r\n this.GetUsers();\r\n this.Login();\r\n const dialogRef = this.dialog.open(LoginMetricDialogComponent, {\r\n panelClass: 'custom-dialog-container',\r\n data: 'ChangePwd' + 'æææ' + false,\r\n });\r\n\r\n dialogRef.componentInstance.userName = this.userName;\r\n dialogRef.componentInstance.password = this.password;\r\n dialogRef.componentInstance.currentUser = this.currentUser;\r\n dialogRef.componentInstance.usersData = this.usersData;\r\n\r\n dialogRef.afterClosed().subscribe(res => {\r\n if (res) {\r\n const dialogRefchid = this.dialog.open(LoginMetricDialogComponent, {\r\n data: 'Updated succesfully' + 'æææ' + false,\r\n });\r\n dialogRefchid.afterClosed().subscribe(data => {\r\n this.GetUsers();\r\n });\r\n }\r\n });\r\n }\r\n}\r\n\r\n@Component({\r\n selector: 'app-dialog',\r\n templateUrl: 'dialog.html',\r\n styleUrls: ['dialog.css'],\r\n providers: [DorseyService],\r\n})\r\nexport class LoginMetricDialogComponent implements OnInit {\r\n currentUser: any;\r\n oldPassword: string;\r\n newPassword: string;\r\n confirmPassword: string;\r\n dataSelf: string;\r\n usersData: any;\r\n userName: string;\r\n password: string;\r\n constructor(\r\n public dialogRef: MatDialogRef<LoginMetricDialogComponent>,\r\n @Inject(MAT_DIALOG_DATA) public data: any, public dorseyService: DorseyService, private storage: LocalStorageService) {\r\n this.data = this.data.split('æææ');\r\n this.data = this.data[0];\r\n }\r\n ngOnInit() {\r\n this.currentUser = this.storage.retrieve('CurrentUser');\r\n }\r\n\r\n Close() {\r\n this.dialogRef.close(false);\r\n }\r\n ChangePassword() {\r\n\r\n this.dataSelf = '';\r\n if (!this.oldPassword || !this.newPassword || !this.confirmPassword) {\r\n this.dataSelf = 'Please enter mandatory fields(*)';\r\n return;\r\n } else if (this.oldPassword !== this.currentUser[0].Password) {\r\n this.dataSelf = 'Please enter the correct current password';\r\n return;\r\n } else if (this.newPassword !== this.confirmPassword) {\r\n this.dataSelf = 'New password and confirm password mismatch';\r\n return;\r\n } else if (this.oldPassword === this.confirmPassword) {\r\n this.dataSelf = 'Current password and new password should not match';\r\n return;\r\n }\r\n else {\r\n const json = {\r\n Password: this.confirmPassword,\r\n UserID: this.currentUser[0].UserID\r\n };\r\n this.dorseyService.ChangePassword(json).subscribe(data => {\r\n\r\n if (data['_body'].toString() !== 'false') {\r\n\r\n this.dialogRef.close(true);\r\n\r\n } else {\r\n this.dataSelf = 'Save failed';\r\n }\r\n\r\n });\r\n }\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport * as Msal from \"msal\";\r\nimport { Observable } from \"rxjs\";\r\nimport { AzureDetails } from \"./azure-details.model\";\r\n// @Injectable({\r\n// providedIn: \"root\",\r\n// })\r\nexport class MsalUserService {\r\n private accessToken: any;\r\n public clientApplication: Msal.UserAgentApplication = null;\r\n constructor() {\r\n this.clientApplication = new Msal.UserAgentApplication(\r\n AzureDetails.ClientId,\r\n \"https://login.microsoftonline.com/\" + AzureDetails.TenantId,\r\n this.authCallback,\r\n {\r\n storeAuthStateInCookie: true,\r\n //cacheLocation: 'localStorage' ,\r\n }\r\n );\r\n }\r\n public GetAccessToken(): Observable<any> {\r\n if (\r\n sessionStorage.getItem(\"msal.idtoken\") !== undefined &&\r\n sessionStorage.getItem(\"msal.idtoken\") != null\r\n ) {\r\n this.accessToken = sessionStorage.getItem(\"msal.idtoken\");\r\n }\r\n return this.accessToken;\r\n }\r\n\r\n public authCallback(errorDesc, token, error, tokenType) {\r\n if (token) {\r\n console.log(token);\r\n } else {\r\n console.log(error + \":\" + errorDesc);\r\n }\r\n }\r\n\r\n public getCurrentUserInfo() {\r\n const user = this.clientApplication.getUser();\r\n console.log(user);\r\n }\r\n\r\n public logout() {\r\n this.clientApplication.logout();\r\n }\r\n\r\n public login(){\r\n this.clientApplication.loginRedirect();\r\n }\r\n}","import {\r\n Directive,\r\n Output,\r\n EventEmitter,\r\n HostBinding,\r\n HostListener\r\n } from '@angular/core';\r\n \r\n @Directive({\r\n selector: '[long-press]'\r\n })\r\n export class LongPress {\r\n pressing: boolean;\r\n longPressing: boolean;\r\n timeout: any;\r\n interval: any;\r\n \r\n @Output()\r\n onLongPress = new EventEmitter();\r\n \r\n @Output()\r\n onLongPressing = new EventEmitter();\r\n \r\n @HostBinding('class.press')\r\n get press() { return this.pressing; }\r\n \r\n @HostBinding('class.longpress')\r\n get longPress() { return this.longPressing; }\r\n \r\n @HostListener('touchstart', ['$event'])\r\n @HostListener('mousedown', ['$event'])\r\n onMouseDown(event) {\r\n this.pressing = true;\r\n this.longPressing = false;\r\n this.timeout = setTimeout(() => {\r\n this.longPressing = true;\r\n this.onLongPress.emit(event);\r\n this.interval = setInterval(() => {\r\n this.onLongPressing.emit(event);\r\n }, 50);\r\n }, 500);\r\n }\r\n \r\n @HostListener('touchend')\r\n @HostListener('mouseup')\r\n @HostListener('mouseleave')\r\n endPress() {\r\n clearTimeout(this.timeout);\r\n clearInterval(this.interval);\r\n this.longPressing = false;\r\n this.pressing = false;\r\n }\r\n }\r\n ","import { Component, OnInit, Inject } from '@angular/core';\nimport { DorseyService } from '../dorsey.service';\nimport { Http } from '@angular/http';\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { FormControl } from '@angular/forms';\nimport { DatePipe } from '@angular/common'\nimport { Observable } from 'rxjs';\nimport { LocalStorageService } from 'ngx-webstorage';\nimport { GoalService } from '../services/goal.service';\nimport { EmployeeLoginLevel } from '../common/models/login-level.model';\nimport { PerformanceScoreCardService } from '../performance-score-card/performance-score-card.service';\nimport { copyRight } from '../copyRight.model';\n\n@Component({\n selector: 'app-metric',\n templateUrl: './metric.component.html',\n providers: [DorseyService]\n})\nexport class MetricComponent implements OnInit {\n employeeLoginLevel = EmployeeLoginLevel;\n employeeDetails: any;\n greenLow: string;\n greenHigh: string;\n redLow: string;\n GoalID: string;\n redHigh: string;\n yellowLow: string;\n yellowHigh: string;\n condition = false;\n status = false;\n employeeData: any;\n processData: any;\n activityData: any;\n pointerTypeData: any;\n frustrationtypeData: any;\n departmentData: any;\n teamData: any;\n severityData: any;\n statusData: any;\n processTeamData: any;\n EmployeeID: number;\n ProcessID: string;\n ActivityID: string;\n PointerTypeID = \"2\";\n FrustrationTypeID: string;\n DepartmentID: string;\n TeamID: string;\n StatusID: string;\n SeverityID: string;\n Subject: string;\n Description: string;\n PointerID: string;\n pointerData: any;\n tempActivity = [];\n tempFrustrationType = [];\n metricData: any;\n searchtext: string;\n p: number = 1;\n rowsOnPage = 10;\n rowsOnPageSet = [];\n rowCount: any;\n dynamicRows = 10;\n isDesc: boolean = false;\n column = \"\";\n direction: number;\n arrow = true;\n metricPaging = false;\n saveFilter = [];\n CompanyID: string;\n isDisable = false;\n disableSearch = false;\n tempProcess = [];\n UOM: string;\n\n currentUser: string;\n MenuPermissions: any;\n menuData: any;\n menuID: string;\n menuName: string;\n ParentID: any;\n subActivityStatus = false;\n SubActivityID: string;\n tempSubActivity = [];\n userTeamID: string;\n Source: string;\n loginCompanyName: any;\n\n TeamName: any;\n EmpROleID: any;\n UserID: any;\n userRoleAssignmentData: any;\n rolesData: any;\n GoalsList: any;\n constructor(private http: Http, private dorseyService: DorseyService,\n public dialog: MatDialog, private storage: LocalStorageService,\n public goalService: GoalService,\n private scoreCardService: PerformanceScoreCardService) {\n this.CompanyID = this.storage.retrieve('companyID');\n this.userTeamID = this.storage.retrieve('TeamID');\n this.currentUser = this.storage.retrieve('user');\n this.menuData = this.storage.retrieve('menuData');\n this.MenuPermissions = this.storage.retrieve('MenuPermissions');\n this.loginCompanyName = this.storage.retrieve('loginCompanyName');\n\n this.UserID = this.storage.retrieve('UserID');\n this.EmpROleID = this.storage.retrieve('EmpRoleID');\n this.employeeDetails = this.storage.retrieve('employeeDetails');\n this.GetTeam();\n }\n\n ngOnInit() {\n\n this.GetGoals();\n\n this.menuData = this.menuData.filter(x => x.MenuName.toString().toLowerCase() === 'metric');\n if (this.employeeDetails) {\n this.EmployeeID = this.employeeDetails.EmployeeID;\n this.TeamID = this.employeeDetails.TeamID;\n }\n else {\n this.EmployeeID = 0;\n }\n\n if (this.menuData.length > 0) {\n this.menuName = this.menuData[0][\"MenuName\"];\n this.menuID = this.menuData[0][\"MenuID\"];\n }\n\n this.GetProcess();\n this.GetActivity();\n this.GetPointerType();\n\n this.GetPointer();\n\n }\n\n\n GetGoals() {\n this.GoalsList = [];\n this.goalService.getGoals(parseInt(this.CompanyID)).subscribe(resp => {\n\n this.GoalsList = resp.Data;\n });\n }\n\n OpenPointer() {\n this.dialogCall('new');\n }\n Searchtext() {\n this.metricData = this.saveFilter;\n let tempMetric = this.metricData.filter(\n (item) => {\n return (\n (item.ProcessName !== null && item.ProcessName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n (item.ActivityName !== null && item.ActivityName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n (item.GoalName !== null && item.GoalName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n (item.Description !== null && item.Description.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n (item.TeamName !== null && item.TeamName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n\n (item.Source !== null && item.Source.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1)\n\n );\n }\n\n );\n this.metricData = tempMetric;\n if (this.metricData.length == 0) {\n this.isDisable = true;\n } else {\n this.isDisable = false;\n }\n\n if (this.searchtext === '') {\n this.GoalsList = this.saveFilter;\n this.rowCount = this.GoalsList.length;\n this.isDisable = false;\n this.getMetricPagination(this.rowCount);\n }\n else {\n this.rowCount = tempMetric.length;\n this.getMetricPagination(this.rowCount);\n if (this.rowsOnPageSet.length === 1) {\n if (this.rowsOnPageSet[0] <= 10)\n\n this.rowsOnPage = this.rowsOnPageSet[0];\n }\n }\n }\n\n GetPointer() {\n this.metricData = [];\n this.dorseyService.GetPointer(this.CompanyID).subscribe(subData => {\n subData = JSON.parse(subData['_body']);\n this.pointerData = subData;\n this.metricData = this.pointerData.filter(x => x.PointerTypeID != null && x.PointerTypeID.toString() === \"2\");\n let tempMetricData = this.metricData;\n\n if (this.metricData.length === 0) {\n this.metricPaging = false;\n this.isDisable = true;\n this.disableSearch = true;\n }\n else {\n\n if (this.employeeDetails) {\n if (this.employeeDetails.IsEmployeeLoginLevel == this.employeeLoginLevel.Department) {\n this.metricData = this.metricData.filter(entity1 => this.teamData.some(entity2 => entity1.TeamID == entity2.TeamID));\n }\n else if (this.employeeDetails.IsEmployeeLoginLevel == this.employeeLoginLevel.Team) {\n this.metricData = this.metricData.filter(ent => ent.TeamID == this.employeeDetails.TeamID)\n }\n else {\n let data = this.metricData.filter(x => x.CompanyID === this.CompanyID);\n this.metricData = data;\n }\n }\n\n }\n\n this.dynamicRows = 10;\n this.rowsOnPageSet = [];\n\n if (this.metricData.length === 0) {\n this.metricPaging = false;\n this.isDisable = true;\n this.disableSearch = true;\n }\n else {\n this.saveFilter = JSON.parse(JSON.stringify(this.metricData));\n this.rowCount = this.metricData.length;\n this.getMetricPagination(this.rowCount)\n\n this.metricPaging = true;\n this.isDisable = false;\n this.disableSearch = false;\n\n }\n });\n }\n\n getMetricPagination(RowCount): void {\n this.dynamicRows = 10;\n this.rowsOnPageSet = [];\n this.rowsOnPage = 10;\n this.rowCount = RowCount;\n while (this.dynamicRows < this.rowCount) {\n this.rowsOnPageSet.push(this.dynamicRows);\n this.dynamicRows = this.dynamicRows + 10;\n }\n if (!this.rowsOnPageSet.includes(this.rowCount)) {\n this.rowsOnPageSet.push(this.rowCount);\n if (this.rowsOnPageSet.length === 1) {\n if (this.rowsOnPageSet[0] <= 10)\n this.rowsOnPage = this.rowsOnPageSet[0];\n }\n }\n }\n exportAsXLSX() {\n let allData = JSON.parse(JSON.stringify(this.metricData));\n for (let i = 0; i < allData.length; i++) {\n allData[i].Team = allData[i].TeamName;\n allData[i].Process = allData[i].ProcessName;\n allData[i].Activity = allData[i].ActivityName;\n allData[i]['Goal'] = allData[i].GoalName;\n allData[i]['Metric'] = allData[i].Description;\n allData[i][' Source'] = allData[i].Source;\n delete (allData[i].DepartmentName);\n delete (allData[i].EmployeeName);\n delete (allData[i].VersionID);\n delete (allData[i].GoalID);\n delete (allData[i].Source);\n delete (allData[i].GoalName);\n delete (allData[i].Target);\n delete (allData[i].RedRange);\n delete (allData[i].GreenRange);\n delete (allData[i].YellowRange);\n delete (allData[i].CompanyID);\n delete (allData[i].ProjectName);\n delete (allData[i].ProcessName);\n delete (allData[i].ActivityName);\n\n delete (allData[i].TeamName);\n delete (allData[i].PointerID);\n delete (allData[i].Description);\n\n delete (allData[i].SeverityID);\n delete (allData[i].EmployeeID);\n\n delete (allData[i].Type);\n delete (allData[i].Subject);\n delete (allData[i].ActivityID);\n delete (allData[i].PointerTypeID);\n delete (allData[i].StatusID);\n delete (allData[i].DepartmentID);\n delete (allData[i].ProcessID)\n\n delete (allData[i].FrustrationsTypeName);\n delete (allData[i].StatusName);\n delete (allData[i].SeverityName)\n\n delete (allData[i].UpdatedDate);\n delete (allData[i].UpdatedBy);\n delete (allData[i].ProjectID)\n\n delete (allData[i].TeamID);\n delete (allData[i].FrustrationsTypeID);\n delete (allData[i].Date)\n\n delete (allData[i].IsActive);\n delete (allData[i].CreatedDate);\n delete (allData[i].CreatedBy)\n }\n\n this.dorseyService.generateExcel(allData, this.loginCompanyName + '_metric' + \"_\" + (new Date().getMonth() + 1) + '-' + new Date().getDate() + '-' + new Date().getFullYear(), 'Metric', \"Company: \" + this.loginCompanyName, '', \"Metric Report\", copyRight, 'FFFFFF00', 'FF0000FF');\n\n }\n sort(property) {\n this.arrow = !this.arrow;\n this.isDesc = !this.isDesc; //change the direction \n this.column = property;\n this.direction = this.isDesc ? 1 : -1;\n }\n GetPointerType() {\n this.dorseyService.GetPointerType().subscribe(subData => {\n subData = JSON.parse(subData['_body']);\n this.pointerTypeData = subData;\n });\n }\n GetTeam() {\n this.dorseyService.GetTeam(this.CompanyID).subscribe(subData => {\n subData = JSON.parse(subData['_body']);\n this.teamData = subData;\n\n if (this.employeeDetails) {\n if (this.employeeDetails.IsEmployeeLoginLevel == this.employeeLoginLevel.Department) {\n this.teamData = this.teamData.filter(ent => ent.DepartmentID == this.employeeDetails.DepartmentID)\n }\n else if (this.employeeDetails.IsEmployeeLoginLevel == this.employeeLoginLevel.Team) {\n this.teamData = this.teamData.filter(ent => ent.DepartmentID == this.employeeDetails.DepartmentID && ent.TeamID == this.employeeDetails.TeamID)\n this.TeamName = this.teamData[0].TeamName;\n }\n else {\n this.teamData = subData;\n }\n }\n });\n }\n GetActivity() {\n this.dorseyService.GetActivity(this.CompanyID).subscribe(subData => {\n subData = JSON.parse(subData['_body']);\n this.activityData = subData;\n });\n }\n GetProcess() {\n this.dorseyService.GetProcess(this.CompanyID).subscribe(subData => {\n subData = JSON.parse(subData['_body']);\n this.processData = subData;\n if (this.employeeDetails) {\n if (this.employeeDetails.IsEmployeeLoginLevel == this.employeeLoginLevel.Department) {\n this.processData = this.processData.filter(entity1 => this.teamData.some(entity2 => entity1.TeamID == entity2.TeamID));\n }\n else if (this.employeeDetails.IsEmployeeLoginLevel == this.employeeLoginLevel.Team) {\n this.processData = this.processData.filter(ent => ent.TeamID == this.employeeDetails.TeamID)\n }\n else {\n this.processData = subData;\n }\n }\n });\n }\n\n dialogCall(msg: string) {\n const dialogRef = this.dialog.open(MetricDialogComponent, {\n panelClass: 'custom-dialog-container',\n data: msg + 'æææ' + false,\n });\n if (msg === 'new') {\n this.searchtext = '';\n this.GetPointer();\n }\n dialogRef.componentInstance.EmployeeID = this.EmployeeID;\n dialogRef.componentInstance.currentUser = this.currentUser;\n dialogRef.componentInstance.GoalsList = this.GoalsList;\n dialogRef.componentInstance.processData = this.processData;\n\n dialogRef.componentInstance.activityData = this.activityData;\n dialogRef.componentInstance.departmentData = this.departmentData;\n dialogRef.componentInstance.pointerTypeData = this.pointerTypeData;\n dialogRef.componentInstance.severityData = this.severityData;\n dialogRef.componentInstance.statusData = this.statusData;\n dialogRef.componentInstance.teamData = this.teamData;\n dialogRef.componentInstance.employeeData = this.employeeData;\n dialogRef.componentInstance.frustrationtypeData = this.frustrationtypeData;\n dialogRef.componentInstance.tempActivity = this.tempActivity;\n dialogRef.componentInstance.tempFrustrationType = this.tempFrustrationType;\n dialogRef.componentInstance.CompanyID = this.CompanyID;\n dialogRef.componentInstance.tempSubActivity = this.tempSubActivity;\n dialogRef.componentInstance.SubActivityID = this.SubActivityID;\n dialogRef.componentInstance.searchtext = this.searchtext;\n dialogRef.componentInstance.GoalID = this.GoalID;\n this.GetPointer();\n if (msg === 'edit') {\n this.status = true;\n let tempProcessData = this.processData.filter(x => x.TeamID === this.TeamID);\n dialogRef.componentInstance.processData = tempProcessData;\n dialogRef.componentInstance.EmployeeID = this.EmployeeID;\n dialogRef.componentInstance.ProcessID = this.ProcessID;\n dialogRef.componentInstance.ActivityID = this.ActivityID;\n dialogRef.componentInstance.PointerTypeID = this.PointerTypeID;\n dialogRef.componentInstance.PointerID = this.PointerID;\n dialogRef.componentInstance.DepartmentID = this.DepartmentID;\n dialogRef.componentInstance.FrustrationTypeID = this.FrustrationTypeID;\n dialogRef.componentInstance.TeamID = this.TeamID;\n dialogRef.componentInstance.StatusID = this.StatusID;\n dialogRef.componentInstance.SeverityID = this.SeverityID;\n dialogRef.componentInstance.GoalID = this.GoalID\n dialogRef.componentInstance.Subject = this.Subject;\n dialogRef.componentInstance.Description = this.Description;\n dialogRef.componentInstance.tempActivity = this.tempActivity;\n dialogRef.componentInstance.tempFrustrationType = this.tempFrustrationType;\n\n dialogRef.componentInstance.Source = this.Source;\n\n dialogRef.componentInstance.subActivityStatus = this.subActivityStatus;\n dialogRef.componentInstance.SubActivityID = this.SubActivityID;\n }\n \n dialogRef.afterClosed().subscribe(result => {\n\n // this.rowsOnPageSet=[];\n this.dynamicRows = 10;\n if (this.searchtext !== '' && this.searchtext !== undefined) {\n this.Searchtext();\n }\n else {\n\n this.GetPointer();\n }\n\n if (result.toString() === 'true') {\n ;\n let statusMsg = '';\n if (msg === 'new') {\n statusMsg = 'Saved successfully';\n } else {\n\n statusMsg = 'Updated successfully';\n }\n\n\n // this.rowsOnPageSet=[];\n this.dynamicRows = 10;\n \n this.GetPointer();\n\n const dialogRefsub = this.dialog.open(MetricDialogComponent, {\n panelClass: 'custom-dialog-container',\n data: statusMsg + 'æææ' + false,\n // width: '30%'\n });\n\n setTimeout(() => {\n this.GetActivity();\n }, 500);\n dialogRefsub.afterClosed().subscribe(result1 => {\n \n if (this.searchtext !== '') {\n this.Searchtext();\n }\n else {\n this.GetPointer();\n }\n });\n }\n });\n }\n GetTempActivity(ProcessID: string) {\n this.tempActivity = [];\n for (let i = 0; i < this.activityData.length; i++) {\n if (this.activityData[i].ProcessID === ProcessID && this.activityData[i].ParentID == 0) {\n this.tempActivity.push(this.activityData[i]);\n }\n }\n\n }\n\n GetTempSubActivity(ActivityID) {\n this.tempSubActivity = [];\n for (let i = 0; i < this.activityData.length; i++) {\n if (this.activityData[i].ParentID === ActivityID) {\n this.tempSubActivity.push(this.activityData[i]);\n }\n }\n }\n\n GetKeyProcessTeam(TeamID) {\n this.tempProcess = [];\n for (let i = 0; i < this.processData.length; i++) {\n if (this.processData[i].TeamID.toString() === TeamID.toString()) {\n this.TeamID = TeamID;\n }\n }\n }\n\n EditPointer(element, text) {\n this.GetTempActivity(element.ProcessID);\n this.PointerID = element.PointerID;\n this.ProcessID = element.ProcessID;\n this.PointerTypeID = element.PointerTypeID;\n this.EmployeeID = element.EmployeeID;\n this.SeverityID = element.SeverityID;\n this.StatusID = element.StatusID;\n this.Subject = element.Subject;\n this.Description = element.Description;\n this.DepartmentID = element.DepartmentID;\n this.TeamID = element.TeamID;\n this.FrustrationTypeID = element.FrustrationTypeID;\n this.GoalID = element.GoalID;\n\n this.Source = element.Source;\n for (let i = 0; i < this.activityData.length; i++) {\n if (element.ActivityID === this.activityData[i].ActivityID) {\n this.ParentID = this.activityData[i].ParentID;\n }\n }\n\n if (!this.ParentID || this.ParentID.toString() === '0') {\n this.ActivityID = element.ActivityID;\n this.subActivityStatus = false;\n } else {\n this.subActivityStatus = true;\n this.SubActivityID = element.ActivityID;\n this.ActivityID = this.ParentID;\n }\n this.dialogCall('edit');\n }\n\n ifMaxRow() {\n if (this.rowsOnPage == this.metricData.length) {\n this.rowsOnPage = this.rowsOnPage - 1;\n }\n }\n DeletePointer(element) {\n this.PointerID = element.PointerID;\n let status: boolean;\n this.scoreCardService.CheckMetricExistInPSCDetails(element.PointerID).subscribe(resp => {\n status = resp.Data;\n })\n const dialogRef = this.dialog.open(MetricDialogComponent, {\n panelClass: 'custom-dialog-container',\n data: 'Are you sure you want to delete metric: ' + element.Description + '?æææ' + true,\n width: '400px',\n });\n dialogRef.afterClosed().subscribe(result => {\n if (result) {\n if (!status) {\n this.dorseyService.DeletePointer(this.PointerID).subscribe(data => {\n if (data.ok) {\n this.ifMaxRow();\n this.condition = true;\n this.dialogCall('Deleted successfully');\n }\n this.GetPointer();\n });\n }\n else {\n this.dialogCall(\"Delete Failed. This metric is associated with score card\");\n }\n }\n });\n }\n}\n\n@Component({\n selector: 'app-dialog',\n templateUrl: 'dialog.html',\n providers: [DorseyService, DatePipe],\n})\nexport class MetricDialogComponent implements OnInit {\n GoalID: string;\n GoalsList: any;\n Source: string;\n searchtext: string;\n condition = false;\n status = false;\n employeeData: any;\n processData: any;\n activityData: any;\n pointerTypeData: any;\n frustrationtypeData: any;\n departmentData: any;\n teamData: any;\n severityData: any;\n statusData: any;\n dataSelf = '';\n EmployeeID: number;\n ProcessID: string;\n ActivityID: string;\n PointerTypeID = \"2\";\n FrustrationTypeID: string;\n DepartmentID: string;\n TeamID: string;\n StatusID: string;\n SeverityID: string;\n Subject: string;\n Description: string;\n PointerID: string;\n tempActivity = [];\n tempFrustrationType = [];\n conditionActivity = '';\n processCtrl = new FormControl();\n currentUser: string;\n filteredProcess: Observable<any[]>\n tempDepart: any;\n tempProcess: any;\n CompanyID: string;\n processTeamData: any;\n\n subActivityStatus = false;\n SubActivityID: string;\n tempSubActivity = [];\n processMap = false;\n pointerData: any;\n breakpoint: number;\n metricData: any;\n btnDisabled = false;\n constructor(\n public dialogRef: MatDialogRef<MetricDialogComponent>,\n @Inject(MAT_DIALOG_DATA) public data: any, public dorseyService: DorseyService, private datepipe: DatePipe) {\n // dialogRef.disableClose=true;\n this.data = this.data.split('æææ');\n if (this.data[1] === 'true') {\n this.condition = true;\n } else if (this.data[1] === 'false') {\n this.condition = false;\n }\n else {\n if (this.data[1] === '') {\n this.conditionActivity = 'process';\n } else {\n this.conditionActivity = 'activity';\n }\n\n }\n this.data = this.data[0];\n }\n\n ngOnInit() {\n this.breakpoint = window.innerWidth <= 900 ? 1 : 3;\n if (this.SubActivityID) {\n this.GetTempSubActivity(this.ActivityID);\n }\n }\n\n onResize(event) {\n this.breakpoint = (event.target.innerWidth <= 900) ? 1 : 3;\n }\n\n\n ValidatePh(event: any) {\n if (\n // Allow: Delete, Backspace, Tab, Escape, Enter\n [46, 8, 9, 27, 13].indexOf(event.keyCode) !== -1 ||\n (event.keyCode === 65 && event.ctrlKey === true) || // Allow: Ctrl+A\n (event.keyCode === 67 && event.ctrlKey === true) || // Allow: Ctrl+C\n (event.keyCode === 86 && event.ctrlKey === true) || // Allow: Ctrl+V\n (event.keyCode === 88 && event.ctrlKey === true) || // Allow: Ctrl+X\n (event.keyCode === 65 && event.metaKey === true) || // Cmd+A (Mac)\n (event.keyCode === 67 && event.metaKey === true) || // Cmd+C (Mac)\n (event.keyCode === 86 && event.metaKey === true) || // Cmd+V (Mac)\n (event.keyCode === 88 && event.metaKey === true) || // Cmd+X (Mac)\n (event.keyCode >= 35 && event.keyCode <= 39) // Home, End, Left, Right\n ) {\n return;\n }\n\n if ((event.shiftKey || (event.keyCode < 48 || event.keyCode > 57)) && (event.keyCode < 96 || event.keyCode > 105)) {\n event.preventDefault();\n }\n }\n\n subactivity(event) {\n this.SubActivityID = event.value;\n }\n onYesClick() {\n this.dialogRef.close(true);\n }\n onNoClick(): void {\n this.dialogRef.close();\n }\n ToggleSubActivity() {\n this.subActivityStatus = !this.subActivityStatus;\n }\n AddPointer() {\n this.btnDisabled = true;\n\n setTimeout(() => {\n this.btnDisabled = false;\n }, 1000);\n this.FrustrationTypeID = '0';\n let count = 0;\n const Editcount = 0;\n if (this.ProcessID === undefined || //this.ActivityID === undefined ||\n // this.PointerTypeID === undefined || this.FrustrationTypeID === undefined || this.DepartmentID === undefined ||this.EmployeeID === undefined ||\n\n this.TeamID === undefined\n // || this.SeverityID ===undefined|| this.Subject ==undefined\n || this.Description === undefined || this.GoalID == undefined\n // || this.StatusID===undefined\n || this.ProcessID === '' || // this.EmployeeID === '' || this.UOM===''||this.Target==='' this.DepartmentID === '' ||this.PointerTypeID === '' || this.FrustrationTypeID === '' || this.SeverityID === '' |||| || this.StatusID === '' this.Subject === '' ||\n this.TeamID === '' || this.Description.trim() === '' || this.GoalID == '') {\n this.dataSelf = 'Please enter mandatory(*) fields';\n if (this.data === 'new') {\n\n }\n count++;\n }\n\n if (this.subActivityStatus) {\n if (this.ActivityID === undefined || this.SubActivityID === undefined ||\n this.ActivityID === '' || this.SubActivityID === '') {\n this.dataSelf = 'Please enter mandatory(*) fields';\n if (this.data === 'new') {\n\n }\n count++;\n\n }\n\n }\n if (count === 0 && Editcount === 0) {\n this.dataSelf = '';\n if (this.data === 'new') {\n\n this.Saving(this.data);\n } else {\n this.Saving(this.data);\n }\n }\n\n }\n\n Saving(msg: string) {\n this.FrustrationTypeID = '0';\n this.Subject = \"\";\n this.SeverityID = '1';\n this.StatusID = '1';\n\n // if (msg === 'new') {\n // this.EmployeeID = 0;\n // }\n\n if (!this.ActivityID) {\n this.ActivityID = \"0\";\n }\n\n // if (this.subActivityStatus) {\n // this.ActivityID = this.SubActivityID;\n // }\n\n\n\n let activityId: string;\n if (this.subActivityStatus) {\n activityId = this.SubActivityID\n }\n else {\n activityId = this.ActivityID;\n }\n const json = {\n // CompanyID: '1',\n CompanyID: this.CompanyID,\n ProjectID: '0',\n PointerID: this.PointerID,\n //EmployeeID: this.EmployeeID,\n ProessID: this.ProcessID,\n ActivityID: activityId,\n PointerTypeID: this.PointerTypeID,\n FrustrationsTypeID: this.FrustrationTypeID,\n DepartmentID: \"0\",\n EmployeeID: this.EmployeeID,\n\n // DepartmentID: this.DepartmentID,\n TeamID: this.TeamID,\n SeverityID: this.SeverityID,\n StatusID: this.StatusID,\n Subject: this.Subject,\n Description: this.Description,\n\n Target: '0',\n CreatedBy: this.currentUser,\n UpdatedBy: this.currentUser,\n Source: this.Source,\n GoalID: this.GoalID\n };\n\n if (msg === 'new') {\n this.dorseyService.SavePointer(json, 'No').subscribe(data => {\n\n if (data['_body'].toString() !== \"0\") {\n\n // this.dialogRef.close(true);\n this.dataSelf = 'Saved succesfully';\n //this.EmployeeID = '';\n this.DepartmentID = '';\n this.Description = '';\n this.PointerID = '';\n\n this.Source = '';\n this.GoalID = '';\n if (this.conditionActivity.toString() == 'process' || this.conditionActivity.toString() === 'activity') {\n return;\n\n }\n\n else if (this.SubActivityID && this.conditionActivity === '') {\n this.ActivityID = '';\n this.SubActivityID = '';\n this.tempSubActivity = [];\n // this.tempActivity=[];\n }\n else {\n this.ActivityID = '';\n }\n }\n else {\n this.dataSelf = 'Save failed';\n }\n });\n\n }\n else {\n\n this.dorseyService.SavePointer(json, 'No').subscribe(data => {\n\n if (data['_body'].toString() != '0') {\n\n this.dataSelf = 'Updated successfully';\n this.dialogRef.close(true);\n\n\n } else {\n this.dataSelf = 'Updated failed';\n }\n });\n }\n\n }\n\n\n Clear() {\n\n\n this.dialogRef.close(false);\n }\n employee(event) {\n this.EmployeeID = event.value;\n\n let tempEmp = this.employeeData.filter(x => x.EmployeeID === this.EmployeeID);\n\n if (tempEmp.length > 0 && tempEmp.length === 1) {\n this.tempDepart = this.departmentData.filter(x => x.DepartmentID === tempEmp[0].DepartmentID);\n this.DepartmentID = this.tempDepart[0].DepartmentID;\n\n }\n }\n GoalChange(event) {\n this.GoalID = event.value;\n }\n\n process(event) {\n this.ProcessID = event.value;\n this.ActivityID = '';\n this.SubActivityID = '';\n this.tempActivity = [];\n this.tempSubActivity = [];\n this.GetTempActivity(this.ProcessID);\n for (let i = 0; i < this.processData.length; i++) {\n if (this.processData[i].ProcessID === this.ProcessID) {\n this.TeamID = this.processData[i]['TeamID'];\n\n }\n }\n }\n GetTempActivity(processiD) {\n this.tempActivity = []\n for (let i = 0; i < this.activityData.length; i++) {\n if (this.activityData[i].ProcessID === processiD && this.activityData[i].ParentID === 0) {\n this.tempActivity.push(this.activityData[i]);\n }\n }\n\n }\n GetTempSubActivity(ActivityID) {\n this.tempSubActivity = [];\n for (let i = 0; i < this.activityData.length; i++) {\n if (this.activityData[i].ParentID === ActivityID) {\n this.tempSubActivity.push(this.activityData[i]);\n }\n }\n }\n\n activity(event) {\n this.tempSubActivity = [];\n this.ActivityID = event.value;\n this.SubActivityID = '';\n this.GetTempSubActivity(this.ActivityID);\n }\n\n pointerType(event) {\n this.PointerTypeID = event.value;\n this.tempFrustrationType = [];\n this.GetTempFrastrations();\n }\n\n GetTempFrastrations() {\n for (let i = 0; i < this.frustrationtypeData.length; i++) {\n if (this.frustrationtypeData[i].PointerTypeID === this.PointerTypeID) {\n this.tempFrustrationType.push(this.frustrationtypeData[i]);\n }\n }\n }\n\n frustrationType(event) {\n this.FrustrationTypeID = event.value;\n }\n\n department(event) {\n this.DepartmentID = event.value;\n }\n\n team(event) {\n this.TeamID = event.value;\n this.tempProcess = [];\n }\n\n GetKeyProcessTeam(TeamID) {\n this.dorseyService.GetKeyProcessTeam().subscribe(subData => {\n subData = JSON.parse(subData['_body']);\n this.processTeamData = subData;\n for (let i = 0; i < this.processTeamData.length; i++) {\n if (this.processTeamData[i].TeamID === TeamID) {\n this.tempProcess.push(this.processTeamData[i]);\n }\n }\n\n });\n }\n\n severity(event) {\n this.SeverityID = event.value;\n }\n\n statusChange(event) {\n this.StatusID = event.value;\n }\n\n}\n\n","import { Component, OnInit, Inject } from '@angular/core';\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { DorseyService } from '../dorsey.service';\nimport { LocalStorageService } from 'ngx-webstorage';\nimport { copyRight } from '../copyRight.model';\n\n@Component({\n selector: 'app-metricdata',\n templateUrl: './metricdata.component.html',\n})\nexport class MetricdataComponent implements OnInit {\n\n mainCategoryData: any;\n p: number = 1;\n rowsOnPage = 5;\n rowsOnPageSet = [];\n rowCount: any;\n dynamicRows = 5;\n saveFilter = [];\n isDisable = false;\n disableSearch = false;\n kpiPaging = false;\n subCategoryData: any;\n mainData = [];\n searchtext = '';\n menuData: any;\n menuID: string;\n menuName: string;\n empID: string;\n MenuPermissions: any;\n loginCompanyName: any;\n userTeamID: any;\n currentUser: string;\n CompanyID: string;\n MainCategory: any;\n SubCategory: any;\n RowID: any;\n MainCategoryID: any;\n condition = false;\n\n isDesc: boolean = false;\n column = \"\";\n direction: number;\n arrow = true;\n\n constructor(private dorseyService: DorseyService, public dialog: MatDialog, public storage: LocalStorageService) {\n this.currentUser = this.storage.retrieve('user');\n this.menuData = this.storage.retrieve('menuData');\n this.empID = this.storage.retrieve('EmployeeID');\n this.MenuPermissions = this.storage.retrieve('MenuPermissions');\n this.loginCompanyName = this.storage.retrieve('loginCompanyName');\n this.userTeamID = this.storage.retrieve(\"TeamID\");\n }\n\n ngOnInit() {\n this.CompanyID = this.storage.retrieve('companyID');\n\n this.getKpiMainData();\n this.getKpiSubData();\n let tempdata = this.menuData;\n this.menuData = tempdata.filter(x => x.MenuName.toString() === 'Metric Table');\n if (this.menuData.length > 0) {\n this.menuName = this.menuData[0][\"MenuName\"];\n this.menuID = this.menuData[0][\"MenuID\"];\n }\n }\n\n getKpiMainData() {\n this.dorseyService.GetKpiMain(this.CompanyID).subscribe(subData => {\n subData = JSON.parse(subData['_body']);\n this.mainCategoryData = subData;\n });\n }\n\n getKpiSubData() {\n this.mainData = [];\n this.dorseyService.GetKpiSub(this.CompanyID).subscribe(subData => {\n subData = JSON.parse(subData['_body']);\n this.subCategoryData = subData;\n setTimeout(() => {\n this.getKpiMainData();\n }, 500);\n for (let i = 0; i < this.mainCategoryData.length; i++) {\n let dataList = [];\n let dataId = [];\n for (let j = 0; j < this.subCategoryData.length; j++) {\n if (this.mainCategoryData[i].MainCategoryID === this.subCategoryData[j].MainCategoryID) {\n\n dataList.push(this.subCategoryData[j].SubCategory);\n dataId.push(this.subCategoryData[j].RowID);\n\n }\n }\n if (dataList.length > 0 && dataId.length > 0) {\n this.mainData.push({\n 'MainCategory': this.mainCategoryData[i].MainCategory,\n 'MainCategoryID': this.mainCategoryData[i].MainCategoryID,\n 'RowID': dataId,\n 'SubCategory': dataList\n });\n }\n\n }\n this.rowCount = this.mainData.length;\n if (this.mainData.length === 0) {\n this.kpiPaging = false;\n this.isDisable = true;\n this.disableSearch = true;\n }\n else {\n this.saveFilter = JSON.parse(JSON.stringify(this.mainData));\n this.kpiPaging = true;\n this.isDisable = false;\n this.disableSearch = false;\n\n this.dynamicRows = 5;\n this.rowsOnPageSet = [];\n\n while (this.dynamicRows < this.rowCount) {\n this.rowsOnPageSet.push(this.dynamicRows);\n this.dynamicRows = this.dynamicRows + 5;\n }\n if (!this.rowsOnPageSet.includes(this.rowCount))\n this.rowsOnPageSet.push(this.rowCount);\n if (this.rowsOnPageSet.length === 1) {\n if (this.rowsOnPageSet[0] <= 10)\n this.rowsOnPage = this.rowsOnPageSet[0];\n }\n }\n });\n\n\n\n\n }\n\n\n Searchtext() {\n this.mainData = this.saveFilter;\n let tempMainData = this.mainData.filter(\n (item) => {\n return (\n (item.MainCategory != null && item.MainCategory.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n (item.SubCategory != null && (item.SubCategory.filter(\n (da) => {\n return (\n da != null && da.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1\n )\n\n }\n )\n )\n ).length\n\n\n )\n\n\n\n }\n\n );\n\n\n this.mainData = tempMainData;\n if (this.mainData.length == 0) {\n this.isDisable = true;\n } else {\n this.isDisable = false;\n }\n if (this.searchtext === '') {\n this.getKpiMainData();\n this.dynamicRows = 5;\n this.rowsOnPageSet = [];\n this.getKpiSubData();\n this.isDisable = false;\n }\n }\n\n addData() {\n this.dialogCall('new');\n }\n\n EditMetricData(element, data, ROwiDs) {\n this.MainCategoryID = element.MainCategoryID;\n this.RowID = ROwiDs;\n this.MainCategory = element.MainCategoryID;\n this.SubCategory = data;\n\n this.storage.store('MCID', this.MainCategoryID);\n this.storage.store('subCat', this.SubCategory);\n this.dialogCall('edit');\n }\n\n // AddSubCategory(element,data,ROwiDs){\n // this.MainCategory = element.MainCategory;\n // this.dialogCall('subcat');\n // }\n\n ifMaxRow() {\n\n if (this.rowsOnPage == this.mainData.length) {\n this.rowsOnPage = this.rowsOnPage - 1;\n }\n }\n\n DeleteMetricData(element, data, ROwiDs) {\n this.MainCategoryID = element.MainCategoryID;\n this.RowID = ROwiDs\n\n\n const dialogRef = this.dialog.open(MetricDataDialogComponent, {\n panelClass: 'custom-dialog-container',\n data: 'Are you sure you want to delete category: ' + element.MainCategory + \",\" + data + '?æææ' + true,\n // width: '40%'\n });\n // this.condition = true;\n\n dialogRef.afterClosed().subscribe(result => {\n if (result) {\n\n\n this.dorseyService.DeleteMetricData(this.MainCategoryID, this.RowID).subscribe(data => {\n\n if (data.ok) {\n this.ifMaxRow();\n this.condition = true;\n this.dialogCall('Deleted successfully');\n }\n this.dynamicRows = 5;\n this.rowsOnPageSet = [];\n this.getKpiMainData();\n this.getKpiSubData();\n });\n\n }\n });\n }\n\n dialogCall(msg: string) {\n const dialogRef = this.dialog.open(MetricDataDialogComponent, {\n panelClass: 'custom-dialog-container',\n data: msg + 'æææ' + false,\n\n });\n dialogRef.componentInstance.currentUser = this.currentUser;\n dialogRef.componentInstance.mainData = this.mainData;\n dialogRef.componentInstance.CompanyID = this.CompanyID;\n dialogRef.componentInstance.mainCategoryData = this.mainCategoryData;\n dialogRef.componentInstance.subCategoryData = this.subCategoryData;\n\n if (msg === 'new') {\n\n this.searchtext = '';\n //this.getKpiMainData();\n this.dynamicRows = 5;\n this.rowsOnPageSet = [];\n this.getKpiSubData();\n }\n if (msg === 'edit') {\n\n dialogRef.componentInstance.MainCategory = this.MainCategory;\n dialogRef.componentInstance.RowID = this.RowID;\n dialogRef.componentInstance.SubCategory = this.SubCategory;\n dialogRef.componentInstance.MainCategoryID = this.MainCategoryID;\n }\n\n dialogRef.afterClosed().subscribe(result => {\n this.dynamicRows = 5;\n this.rowsOnPageSet = [];\n if (this.searchtext !== '') {\n this.Searchtext();\n }\n else {\n this.getKpiMainData();\n this.getKpiSubData();\n }\n\n if (result.toString() === 'true') {\n\n let statusMsg = '';\n if (msg === 'new') {\n statusMsg = 'Saved successfully';\n }\n else {\n\n statusMsg = 'Updated successfully';\n }\n this.dynamicRows = 5;\n this.rowsOnPageSet = [];\n this.getKpiMainData();\n this.getKpiSubData();\n\n const dialogRefsub = this.dialog.open(MetricDataDialogComponent, {\n panelClass: 'custom-dialog-container',\n data: statusMsg + 'æææ' + false,\n // width: '30%'\n });\n\n setTimeout(() => {\n this.dynamicRows = 5;\n this.rowsOnPageSet = [];\n this.getKpiMainData();\n this.getKpiSubData();\n }, 500);\n dialogRefsub.afterClosed().subscribe(result1 => {\n this.dynamicRows = 5;\n this.rowsOnPageSet = [];\n\n if (this.searchtext !== '') {\n this.Searchtext();\n }\n else {\n this.getKpiMainData();\n this.getKpiSubData();\n }\n\n\n // this.GetFrustrationType();\n });\n }\n });\n\n\n }\n\n sort(property) {\n this.arrow = !this.arrow;\n this.isDesc = !this.isDesc; //change the direction \n this.column = property;\n this.direction = this.isDesc ? 1 : -1;\n }\n\n exportAsXLSX() {\n let allData: any;\n let subcat = '';\n allData = JSON.parse(JSON.stringify(this.mainData));\n for (let i = 0; i < allData.length; i++) {\n let subcat = '';\n for (let j = 0; j < allData[i].SubCategory.length; j++) {\n subcat = subcat + allData[i].SubCategory[j] + '\\n';\n }\n allData[i].SubCategory = subcat;\n\n delete allData[i].MainCategoryID;\n delete allData[i].RowID;\n }\n\n\n this.dorseyService.generateExcel(allData, this.loginCompanyName + '_metric' + \"_\" + (new Date().getMonth() + 1) + '-' + new Date().getDate() + '-' + new Date().getFullYear(), 'Metric', \"Company: \" + this.loginCompanyName, '', \"Metric Table Report\", copyRight, 'FFFFFF00', 'FF0000FF');\n // const json = {\n // data:allData\n // }\n // this.dorseyService.Export(json,this.loginCompanyName+'_metric',this.loginCompanyName,'Metric').subscribe(data=>{\n\n // });\n }\n\n}\n\n@Component({\n selector: 'app-dialog',\n templateUrl: 'dialog.html',\n // styleUrls: ['dialog.css'],\n providers: [DorseyService, MetricdataComponent]\n})\nexport class MetricDataDialogComponent implements OnInit {\n SubCategory: string;\n condition = false;\n dataSelf: string;\n MainCategory: string;\n RowID: string;\n MainCategoryID: string;\n mainData: any;\n CompanyID: string;\n currentUser: string;\n mainCategoryData: any;\n subCategoryData: any;\n editSubData: any;\n btnDisabled = false;\n constructor(\n public dialogRef: MatDialogRef<MetricDataDialogComponent>,\n @Inject(MAT_DIALOG_DATA) public data: any, public dorseyService: DorseyService, private storage: LocalStorageService) {\n // dialogRef.disableClose=true;\n this.data = this.data.split('æææ');\n if (this.data[1] === 'true') {\n this.condition = true;\n } else {\n this.condition = false;\n }\n this.data = this.data[0];\n }\n ngOnInit() {\n }\n onYesClick() {\n this.dialogRef.close(true);\n }\n onNoClick(): void {\n this.dialogRef.close();\n }\n\n\n getKpiMainData() {\n this.dorseyService.GetKpiMain(this.CompanyID).subscribe(subData => {\n subData = JSON.parse(subData['_body']);\n this.mainCategoryData = subData;\n });\n }\n\n getKpiSubData() {\n this.mainData = [];\n this.dorseyService.GetKpiSub(this.CompanyID).subscribe(subData => {\n subData = JSON.parse(subData['_body']);\n this.subCategoryData = subData;\n });\n }\n AddMetCategory() {\n this.btnDisabled = true;\n\n setTimeout(() => {\n this.btnDisabled = false;\n }, 1000);\n let count = 0;\n const Editcount = 0;\n\n if (this.MainCategory == undefined ||\n this.MainCategory === '' || this.SubCategory == undefined ||\n this.SubCategory.trim() === '') {\n this.dataSelf = 'Please enter mandatory(*) fields';\n if (this.data === 'new') {\n }\n count++;\n }\n\n if (count === 0 && Editcount === 0) {\n this.dataSelf = '';\n if (this.data === 'new') {\n this.Saving(this.data);\n } else {\n this.Saving(this.data);\n }\n } else {\n }\n }\n Saving(msg: string) {\n const json = {\n MainCategoryID: this.MainCategoryID,\n MainCategory: this.MainCategory,\n CreatedBy: this.currentUser,\n RowID: this.RowID,\n CompanyID: this.CompanyID,\n SubCategory: this.SubCategory,\n UpdatedBy: this.currentUser\n };\n if (msg === 'new') {\n let subData = this.subCategoryData.filter(x => x.MainCategoryID === this.MainCategoryID);\n for (let i = 0; i < subData.length; i++) {\n if (subData[i].SubCategory.toLowerCase().trim() === this.SubCategory.toLowerCase().trim()) {\n this.dataSelf = 'Subcategory already exists';\n return;\n }\n }\n\n this.dorseyService.SaveMetricData(json, 'No').subscribe(data => {\n if (data['_body'].toString() === 'true') {\n this.dataSelf = 'Saved successfully';\n this.getKpiSubData();\n this.getKpiMainData();\n this.MainCategory = '';\n this.SubCategory = '';\n setTimeout(() => {\n this.dataSelf = '';\n }, 2000);\n } else {\n this.dataSelf = 'Save failed';\n }\n\n });\n } else {\n this.editSubData = this.subCategoryData.filter(x => x.MainCategoryID === this.MainCategoryID);\n for (let i = 0; i < this.editSubData.length; i++) {\n if (this.MainCategoryID === this.storage.retrieve('MCID')) {\n if (this.editSubData[i].SubCategory.toLowerCase().trim() === this.SubCategory.toLowerCase().trim() && this.editSubData[i].SubCategory.toLowerCase().trim() !== this.storage.retrieve('subCat').toLowerCase().trim()) {\n this.dataSelf = 'Subcategory already exists';\n return;\n }\n } else {\n if (this.editSubData[i].SubCategory.toLowerCase().trim() === this.SubCategory.toLowerCase().trim()) {\n this.dataSelf = 'Subcategory already exists';\n return;\n }\n }\n\n }\n this.dorseyService.SaveMetricData(json, 'No').subscribe(data => {\n if (data['_body'].toString() === 'true') {\n this.dialogRef.close(true);\n } else {\n this.dataSelf = 'Updated successfully';\n this.getKpiSubData();\n this.getKpiMainData();\n }\n });\n }\n }\n Clear() {\n this.dialogRef.close(false);\n }\n mainChange(event) {\n this.MainCategoryID = event.value;\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { DorseyService } from '../dorsey.service';\nimport { LocalStorageService } from 'ngx-webstorage';\nimport { Department } from '../departments/department.model';\nimport { ScoreCardTypeEnum } from '../performance-score-card/performance-score-card.model';\nimport { DepartmentService } from '../services/department.service';\nimport { EmployeeLoginLevel } from '../common/models/login-level.model';\nimport { copyRight } from '../copyRight.model';\n\n@Component({\n selector: 'app-nometric-process',\n templateUrl: './nometric-process.component.html',\n // styleUrls: ['./nometric-process.component.scss']\n})\nexport class NometricProcessComponent implements OnInit {\n copyRight: string = copyRight;\n employeeDetails: any;\n NometricData: any;\n searchtext: string;\n isDesc: boolean = false;\n column = \"\";\n direction: number;\n arrow = true;\n p: number = 1;\n rowsOnPage = 10;\n departmentList: Array<Department> = [];\n selectedDepartmentId: number;\n toggleTeam: boolean = false;\n scoreCardTypes: string[] = [ScoreCardTypeEnum.Department, ScoreCardTypeEnum.Team];\n rowsOnPageSet = [];\n rowCount: any;\n selectedReportType: string;\n departmentName: string;\n dynamicRows = 10;\n processPaging = false;\n saveFilter = [];\n CompanyID: string;\n isDisable = false;\n disableSearch = false;\n teamData: any;\n TeamID: any;\n filterData: any;\n EmployeeID: string;\n tempTeam = [];\n companyName: string;\n headerDate = new Date();\n TeamName: string;\n employeeData: any;\n copyDate: number;\n loginCompanyName: string;\n constructor(public dorseyService: DorseyService,\n private departmentService: DepartmentService, private storage: LocalStorageService) {\n\n this.loginCompanyName = this.storage.retrieve('loginCompanyName');\n this.EmployeeID == this.storage.retrieve('EmployeeID');\n this.EmployeeID = this.storage.retrieve('EmployeeID');\n this.companyName = this.storage.retrieve('LoginCompanyName');\n this.employeeDetails = this.storage.retrieve('employeeDetails');\n if (this.EmployeeID.toString() === \"0\") {\n }\n else {\n this.TeamID = this.storage.retrieve('TeamID');\n }\n\n }\n\n ngOnInit() {\n this.CompanyID = this.storage.retrieve('companyID');\n if (this.employeeDetails) {\n if ((this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Department) || (this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Team)) {\n this.toggleTeam = true;\n this.getTeamsByDepartmentId(this.employeeDetails.DepartmentID)\n }\n else {\n this.reportTypeChange(ScoreCardTypeEnum.Department)\n }\n }\n else {\n this.reportTypeChange(ScoreCardTypeEnum.Department)\n }\n this.copyDate = (new Date()).getFullYear();\n }\n\n teamChange(event): void {\n this.searchtext = '';\n this.selectedDepartmentId = 0;\n this.TeamID = event.value;\n let teamd = this.teamData.filter(x => x.TeamID === this.TeamID)\n if (teamd.length > 0) {\n this.TeamName = teamd[0].TeamName;\n }\n this.ConstructReport();\n }\n reportTypeChange(scoreCardType: string): void {\n this.searchtext = '';\n this.departmentList = [];\n this.teamData = [];\n this.filterData = [];\n this.selectedDepartmentId = 0;\n this.TeamID = 0;\n this.selectedReportType = scoreCardType;\n this.toggleTeam = scoreCardType === ScoreCardTypeEnum.Department ? false : true;\n this.getDepartments();\n this.getTeamsByDepartmentId(this.selectedDepartmentId);\n }\n\n departmentChange(selectedDepartmentId): void {\n this.searchtext = '';\n this.getTeamsByDepartmentId(selectedDepartmentId);\n this.departmentName = this.departmentList.find(ent => ent.DepartmentID === selectedDepartmentId).DepartmentName;\n }\n\n private getDepartments(): void {\n this.departmentService.getDepartments(Number(this.CompanyID)).subscribe(resp => {\n this.departmentList = resp.Data;\n if (this.employeeDetails) {\n if (this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Department) {\n this.departmentList = this.departmentList.filter(ent => ent.DepartmentID === this.employeeDetails.DepartmentID);\n }\n else if (this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Team) {\n this.departmentList = this.departmentList.filter(ent => ent.DepartmentID === this.employeeDetails.DepartmentID);\n this.getTeamsByDepartmentId(this.employeeDetails.DepartmentID);\n }\n }\n this.departmentList.splice(0, 0, { DepartmentID: 0, DepartmentName: 'Aggregate Report', DepartmentDescription: '0', CompanyID: Number(this.CompanyID), CreatedBy: '', UpdatedBy: '' });\n });\n }\n\n private getTeamsByDepartmentId(selectedDepartmentId): void {\n this.dorseyService.GetTeam(this.CompanyID.toString()).subscribe(resp => {\n var companyTeamList = JSON.parse(resp['_body']);\n this.teamData = companyTeamList;\n if (this.employeeDetails && companyTeamList) {\n if (this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Department) {\n this.teamData = this.teamData.filter(ent => ent.DepartmentID === this.employeeDetails.DepartmentID)\n }\n else if (this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Team) {\n this.teamData = this.teamData.filter(ent => ent.DepartmentID === this.employeeDetails.DepartmentID && ent.TeamID == this.employeeDetails.TeamID);\n this.selectedDepartmentId = this.teamData[0].DepartmentID;\n this.TeamID = this.teamData[0].TeamID;\n this.TeamName = this.teamData[0].TeamName;\n }\n else {\n if (!selectedDepartmentId) {\n this.selectedDepartmentId = 0;\n this.teamData = companyTeamList;\n }\n else if (selectedDepartmentId == 0) {\n this.teamData = companyTeamList;\n }\n else {\n this.teamData = this.teamData.filter(ent => ent.DepartmentID === selectedDepartmentId);\n }\n }\n }\n else {\n if (selectedDepartmentId == 0)\n this.teamData = companyTeamList;\n else\n this.teamData = companyTeamList.filter(ent => ent.DepartmentID === selectedDepartmentId);\n }\n this.dorseyService.GetNoMetricProcess(this.CompanyID).subscribe(pointer => {\n this.NometricData = JSON.parse(pointer['_body']);\n\n if (!this.TeamID)\n this.TeamID = 0;\n if (this.TeamID == 0) {\n this.teamData = this.teamData.filter(entity1 => this.NometricData.find(entity2 => entity1.TeamID == entity2.TeamID));\n if (this.teamData.length > 0)\n this.teamData.splice(0, 0, { TeamID: 0, TeamName: 'Aggregate Report' });\n }\n\n this.ConstructReport();\n\n });\n\n });\n }\n\n ConstructReport() {\n this.filterData = [];\n this.NometricData = [];\n this.dorseyService.GetNoMetricProcess(this.CompanyID).subscribe(subData => {\n subData = JSON.parse(subData['_body']);\n this.NometricData = subData;\n if (!this.TeamID)\n this.filterData = this.NometricData.filter(entity1 => this.teamData.find(entity2 => entity1.TeamID == entity2.TeamID));\n\n else {\n this.filterData = this.NometricData.filter(entity1 => entity1.TeamID == this.TeamID);\n }\n\n if (this.filterData.length === 0) {\n this.processPaging = false;\n this.isDisable = true;\n this.disableSearch = true;\n }\n else {\n this.processPaging = true;\n this.isDisable = false;\n this.disableSearch = false;\n this.saveFilter = JSON.parse(JSON.stringify(this.filterData));\n\n this.dynamicRows = 10;\n this.rowsOnPageSet = [];\n this.rowCount = this.filterData.length;\n\n while (this.dynamicRows < this.rowCount) {\n this.rowsOnPageSet.push(this.dynamicRows);\n this.dynamicRows = this.dynamicRows + 10;\n }\n if (!this.rowsOnPageSet.includes(this.rowCount))\n this.rowsOnPageSet.push(this.rowCount);\n if (this.rowsOnPageSet.length > 0) {\n if (this.rowsOnPageSet[0] <= 10)\n this.rowsOnPage = this.rowsOnPageSet[0];\n }\n }\n });\n }\n\n Searchtext() {\n this.filterData = this.saveFilter;\n\n let tempNoMetric = this.filterData.filter(\n (item) => {\n return (\n (item.ProcessName !== null && item.ProcessName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n (item.CompanyName !== null && item.CompanyName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n (item.DepartmentName !== null && item.DepartmentName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n (item.ProcessDescription !== null && item.ProcessDescription.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1)\n || (item.TeamName !== null && item.TeamName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1)\n );\n }\n\n );\n this.filterData = tempNoMetric;\n if (this.filterData.length == 0) {\n this.isDisable = true;\n } else {\n this.isDisable = false;\n }\n if (this.searchtext === '') {\n this.ConstructReport();\n this.isDisable = false;\n }\n }\n\n sort(property) {\n this.arrow = !this.arrow;\n this.isDesc = !this.isDesc; //change the direction \n this.column = property;\n this.direction = this.isDesc ? 1 : -1;\n }\n exportAsXLSX() {\n let allData = JSON.parse(JSON.stringify(this.filterData));\n for (let i = 0; i < this.filterData.length; i++) {\n allData[i][\"No \"] = i + 1;\n\n allData[i].Company = this.filterData[i].CompanyName;\n if (this.selectedReportType === ScoreCardTypeEnum.Department) {\n allData[i][\"Department\"] = this.filterData[i].DepartmentName;\n }\n allData[i].Team = this.filterData[i].TeamName;\n allData[i].Process = this.filterData[i].ProcessName;\n allData[i].Description = this.filterData[i].ProcessDescription;\n\n delete (allData[i].DepartmentName);\n delete (allData[i].ProcessID);\n delete (allData[i].CompanyName);\n delete (allData[i].ProcessName);\n delete (allData[i].ProcessDescription);\n delete (allData[i].TeamName);\n delete (allData[i].TeamID);\n }\n\n\n let name: any;\n if (this.selectedReportType == ScoreCardTypeEnum.Department && this.departmentName) {\n name = this.departmentName;\n } else if ((!this.selectedReportType || this.selectedReportType == ScoreCardTypeEnum.Team) && this.TeamName) {\n name = this.TeamName;\n } else {\n name = \"Aggregate Report\";\n }\n this.dorseyService.generateExcel(allData,\n this.loginCompanyName + '_Process with no metrics' + \"_\" + (new Date().getMonth() + 1) + '-' + new Date().getDate() + '-' + new Date().getFullYear(),\n 'Process with no metrics',\n \"Company: \" + this.loginCompanyName,\n this.selectedReportType ? this.selectedReportType + \": \" + name : 'Team' + \": \" + name,\n \"Process with no metrics Report\",\n copyRight,\n 'FFFFFF00',\n 'FF0000FF');\n }\n}\n","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL29yZ2FuaXphdGlvbi9vcmdhbml6YXRpb24uY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, Inject, OnInit } from '@angular/core';\nimport { OrganizationDetails } from './organization.model';\nimport { OrganizationService } from '../services/organization.service'\nimport { LocalStorageService } from 'ngx-webstorage';\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\nimport { DorseyService } from '../dorsey.service';\nimport { Router } from '@angular/router';\nimport { OrganizationLicenseDetails } from '../company/company.model';\nimport { LocationStrategy } from '@angular/common';\nimport { copyRight } from '../copyRight.model';\n\n@Component({\n selector: 'app-organization',\n templateUrl: './organization.component.html',\n styleUrls: ['./organization.component.scss']\n})\nexport class OrganizationComponent implements OnInit {\n [x: string]: any;\n organizationID: number;\n isSearchDisable = false;\n saveFilter: Array<OrganizationDetails> = [];\n isDisable = false;\n condition: boolean;\n searchtext: string = '';\n p: number = 1;\n rowsOnPage = 10;\n rowsOnPageSet = [];\n rowCount: any;\n dynamicRows = 10;\n isDesc: boolean = false;\n column = '';\n direction: number;\n arrow = true;\n licenseDetails: OrganizationLicenseDetails;\n companyPaging = false;\n MenuPermissions: any;\n organizationDetails: OrganizationDetails;\n currentUser: string;\n companyID: number;\n emailUnique: any;\n menuData: any;\n menuID: string;\n menuName: string;\n organization: Array<OrganizationDetails> = []; rolesData: any;\n userData: any;\n userRoleData: any;\n adminUserName: any;\n adminEmail: any;\n adminPassword: any;\n userRoleName: string;\n loginUsername: any;\n isSuperAdmin: boolean = true;\n loginLevel: string;\n constructor(\n private router: Router,\n private storage: LocalStorageService,\n public dialog: MatDialog,\n public organizationService: OrganizationService,\n private location: LocationStrategy,\n private dorseyService: DorseyService) {\n this.currentUser = this.storage.retrieve('user');\n this.menuData = this.storage.retrieve('menuData');\n this.MenuPermissions = this.storage.retrieve('MenuPermissions');\n this.adminUserName = this.storage.retrieve('adminUname');\n this.adminEmail = this.storage.retrieve('username');\n this.adminPassword = this.storage.retrieve('password');\n this.loginUsername = this.storage.retrieve('loginUsername');\n this.loginLevel = this.storage.retrieve(\"loginLevel\");\n\n //to disable back button\n history.pushState(null, null, window.location.href);\n this.location.onPopState(() => {\n history.pushState(null, null, window.location.href);\n });\n }\n\n ngOnInit(): void {\n if (this.menuData) {\n this.menuData = this.menuData.find(x => x.MenuName.toString().toLowerCase() === 'organization');\n if (this.menuData) {\n this.menuName = this.menuData[\"MenuName\"];\n this.menuID = this.menuData[\"MenuID\"];\n }\n }\n this.getRoles(0);\n this.getUsers();\n this.getUserRoleAssignment();\n this.getOrganizations();\n }\n\n getRoles(companyID) {\n this.dorseyService.GetRoles(companyID).subscribe(users => {\n this.rolesData = JSON.parse(users['_body']);\n });\n\n }\n\n getUsers() {\n this.dorseyService.GetUsersList().subscribe(users => {\n this.userData = JSON.parse(users['_body']);\n });\n }\n\n getUserRoleAssignment() {\n this.dorseyService.GetUserRoleAssignment().subscribe(userRoles => {\n this.userRoleData = JSON.parse(userRoles['_body']);\n });\n }\n\n getOrganizations(): void {\n this.organizationService.getOrganizations().subscribe(resp => {\n this.organization = resp.Data;\n this.rowsOnPageSet = [];\n this.dynamicRows = 10;\n this.rowCount = this.organization.length;\n if (this.organization.length === 0) {\n this.companyPaging = false;\n this.isDisable = true;\n this.isSearchDisable = true;\n }\n else {\n this.saveFilter = JSON.parse(JSON.stringify(this.organization));\n this.companyPaging = true;\n this.isDisable = false;\n this.isSearchDisable = false;\n this.organizationPagination(this.rowCount);\n }\n });\n }\n\n newOrganiation(): void {\n this.organizationDetails = {\n OrganizationID: 0,\n OrganizationName: '',\n OrganizationDescription: '',\n Address1: '',\n Address2: '',\n Country: '',\n State: '',\n City: '',\n Pincode: '',\n Email: '',\n Phone: '',\n CreatedBy: this.currentUser,\n UpdatedBy: this.currentUser,\n NoOfLicenses: 0,\n UserID: 0,\n UserName: '',\n Password: '',\n FirstName: '',\n LastName: '',\n EmployeeID: 0,\n CompanyID: 0,\n RowID: 0,\n RoleID: 0,\n }\n this.dialogCall('new');\n }\n\n sort(property) {\n this.arrow = !this.arrow;\n this.isDesc = !this.isDesc; //change the direction\n this.column = property;\n this.direction = this.isDesc ? 1 : -1;\n }\n editOrganization(organization): void {\n this.organizationDetails = organization;\n this.storage.store('OName', this.organizationDetails.OrganizationName);\n this.storage.store('UName', this.organizationDetails.UserName);\n this.getCompaniesCountByOrganizationId();\n }\n\n getCompaniesCountByOrganizationId(): void {\n this.organizationService.getCompaniesCountByOrganizationId(this.organizationDetails.OrganizationID).subscribe(resp => {\n this.licenseDetails = resp.Data[0];\n this.dialogCall('edit');\n });\n }\n\n deleteOrganization(organizationROw: any): void {\n this.organizationID = organizationROw.OrganizationID;\n const dialogRef = this.dialog.open(OrganizationDialogComponent, {\n panelClass: 'custom-dialog-container',\n data: 'Are you sure you want to delete organization: ' + organizationROw.OrganizationName + '?æææ' + true,\n });\n dialogRef.afterClosed().subscribe(result => {\n if (result) {\n this.organizationService.deleteOrganization(this.organizationID).subscribe(resp => {\n if (resp.Data) {\n this.condition = true;\n this.dialogCall('Deleted successfully');\n this.organization = [];\n this.getOrganizations();\n } else {\n this.dialogCall('Delete Failed');\n }\n this.dynamicRows = 10;\n this.rowsOnPageSet = [];\n });\n }\n });\n\n }\n\n\n exportAsXLSX(): void {\n let allData = JSON.parse(JSON.stringify(this.organization));\n for (let i = 0; i < allData.length; i++) {\n allData[i][\"Organization\"] = allData[i].OrganizationName;\n allData[i][\"Email \"] = allData[i].Email;\n allData[i][\"Phone \"] = allData[i].Phone;\n allData[i][\"No Of Licenses\"] = allData[i].NoOfLicenses;\n\n delete (allData[i].Email);\n delete (allData[i].Phone);\n delete (allData[i].OrganizationID);\n delete (allData[i].CompanyID);\n delete (allData[i].UserID);\n delete (allData[i].UserName);\n delete (allData[i].FirstName);\n delete (allData[i].LastName);\n delete (allData[i].EmployeeID);\n delete (allData[i].Password);\n delete (allData[i].OrganizationID);\n delete (allData[i].OrganizationName);\n delete (allData[i].OrganizationDescription);\n delete (allData[i].Address1);\n delete (allData[i].Address2);\n delete (allData[i].Country);\n delete (allData[i].City);\n delete (allData[i].State);\n delete (allData[i].Pincode);\n delete (allData[i].NoOfLicenses);\n delete (allData[i].UpdatedBy);\n delete (allData[i].UpdatedDate);\n delete (allData[i].CreatedBy);\n delete (allData[i].CreatedDate);\n delete (allData[i].IsActive);\n }\n\n this.dorseyService.generateExcel(allData, 'Organization' + \"_\" + (new Date().getMonth() + 1) + '-' + new Date().getDate() + '-' + new Date().getFullYear(), 'Organization', \"Organization: \" + this.loginUsername, '', \"Organization Report\", copyRight, 'FFFFFF00', 'FF0000FF');\n\n }\n searchText(): void {\n this.organization = this.saveFilter;\n let orgList = this.organization.filter(\n (item) => {\n return (\n (item.OrganizationName !== null && item.OrganizationName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n (item.Email !== null && item.Email.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n (item.Phone !== null && item.Phone.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1)\n\n );\n }\n );\n this.organization = orgList;\n if (this.organization.length == 0) {\n this.isDisable = true;\n } else {\n this.isDisable = false;\n }\n if (this.searchtext === '') {\n this.organization = this.saveFilter;\n this.rowCount = this.organization.length;\n this.isDisable = false;\n this.organizationPagination(this.rowCount);\n }\n else {\n this.rowCount = orgList.length;\n this.organizationPagination(this.rowCount);\n if (this.rowsOnPageSet.length === 1) {\n if (this.rowsOnPageSet[0] <= 10)\n\n this.rowsOnPage = this.rowsOnPageSet[0];\n }\n }\n }\n\n organizationPagination(RowCount) {\n this.dynamicRows = 10;\n this.rowsOnPageSet = [];\n this.rowsOnPage = 10;\n this.rowCount = RowCount;\n while (this.dynamicRows < this.rowCount) {\n this.rowsOnPageSet.push(this.dynamicRows);\n this.dynamicRows = this.dynamicRows + 10;\n }\n if (!this.rowsOnPageSet.includes(this.rowCount)) {\n this.rowsOnPageSet.push(this.rowCount);\n if (this.rowsOnPageSet.length === 1) {\n if (this.rowsOnPageSet[0] <= 10)\n this.rowsOnPage = this.rowsOnPageSet[0];\n }\n }\n }\n\n viewCompanies(element): void {\n let orgDetails = {\n OrganizationId: element.OrganizationID,\n OrganizationName: element.OrganizationName,\n NoOfLicenses: element.NoOfLicenses,\n IsSuperAdmin: this.isSuperAdmin\n }\n this.storage.store(\"OrganizationDetails\", orgDetails);\n this.router.navigate(['/entity']);\n }\n\n dialogCall(msg: string) {\n this.getUsers();\n const dialogRef = this.dialog.open(OrganizationDialogComponent, {\n panelClass: 'custom-dialog-container',\n data: msg + 'æææ' + false,\n });\n dialogRef.componentInstance.organizationDetails = this.organizationDetails;\n dialogRef.componentInstance.organizationID = this.organizationID;\n dialogRef.componentInstance.currentUser = this.currentUser;\n dialogRef.componentInstance.organization = this.saveFilter;\n dialogRef.componentInstance.saveFilter = this.saveFilter;\n dialogRef.componentInstance.licenseDetails = this.licenseDetails;\n dialogRef.componentInstance.userListData = this.userData;\n\n if (msg == 'edit' || msg == 'new') {\n this.searchtext = '';\n }\n dialogRef.afterClosed().subscribe(result => {\n if (this.searchtext !== '' && this.searchtext !== undefined) {\n this.searchText();\n }\n else {\n this.getOrganizations();\n }\n\n\n if (result && result.toString() === 'true') {\n let statusMsg = '';\n if (msg === 'new') {\n statusMsg = 'Saved successfully';\n }\n else {\n statusMsg = 'Updated successfully';\n }\n const dialogRefsub = this.dialog.open(OrganizationDialogComponent, {\n panelClass: 'custom-dialog-container',\n data: statusMsg + 'æææ' + false,\n // width: '30%'\n });\n setTimeout(() => {\n this.getOrganizations();\n }, 500);\n dialogRefsub.afterClosed().subscribe(result1 => {\n this.dynamicRows = 10;\n if (this.searchtext !== '') {\n this.searchText();\n }\n else {\n this.getOrganizations();\n }\n });\n } else {\n this.getOrganizations();\n }\n });\n }\n}\n@Component({\n selector: 'app-dialog',\n templateUrl: 'dialog.html',\n providers: [DorseyService],\n})\nexport class OrganizationDialogComponent {\n\n organizationDetails: OrganizationDetails;\n organizationID: number;\n public breakpoint: number; // Breakpoint observer code\n dataSelf = '';\n condition: boolean;\n currentUser: string;\n organization: Array<OrganizationDetails> = [];\n saveFilter: Array<OrganizationDetails> = [];\n btnDisabled = false;\n licenseDetails: OrganizationLicenseDetails;\n userListData: any;\n\n constructor(\n public dialogRef: MatDialogRef<OrganizationDialogComponent>,\n @Inject(MAT_DIALOG_DATA) public data: any, public dorseyService: DorseyService, private storage: LocalStorageService, private orgService: OrganizationService) {\n // dialogRef.disableClose=true;\n this.data = this.data.split('æææ');\n\n if (this.data[1] === 'true') {\n this.condition = true;\n\n } else {\n this.condition = false;\n }\n this.data = this.data[0];\n\n }\n\n ngOnInit() {\n this.breakpoint = window.innerWidth <= 1000 ? 1 : 3;\n }\n\n onResize(event): void {\n this.breakpoint = (event.target.innerWidth <= 1000) ? 1 : 3;\n }\n onYesClick() {\n this.dialogRef.close(true);\n }\n onNoClick(): void {\n this.dialogRef.close();\n }\n\n validateOrganization(): void {\n this.dataSelf = '';\n if (!this.organizationDetails.OrganizationName.trim()\n || !this.organizationDetails.FirstName.trim()\n || !this.organizationDetails.LastName.trim()\n || !this.organizationDetails.Address1.trim()\n || !this.organizationDetails.Country.trim()\n || !this.organizationDetails.State.trim()\n || !this.organizationDetails.City.trim()\n || !this.organizationDetails.Pincode\n || !this.organizationDetails.Phone\n || !this.organizationDetails.Email\n || !this.organizationDetails.UserName.trim()\n || !this.organizationDetails.Password\n ) {\n this.dataSelf = 'Please enter mandatory(*) fields';\n return;\n }\n else {\n var mailformat = /^\\w+([\\.-]?\\w+)*@\\w+([\\.-]?\\w+)*(\\.\\w{2,3})+$/;\n if (!this.organizationDetails.Email.match(mailformat)) {\n this.dataSelf = 'Please enter valid email';\n\n return;\n }\n }\n if (this.organizationDetails.NoOfLicenses == 0) {\n this.dataSelf = 'Please enter No. of Licenses';\n return;\n }\n this.saveOrganization(this.data);\n\n }\n\n\n saveOrganization(msg: string): void {\n if (this.organizationDetails.OrganizationID) {\n this.organizationDetails.UpdatedBy = this.currentUser;\n }\n if (msg == 'new') {\n if (this.organization.find(ent => ent.OrganizationName.toLowerCase().trim() === this.organizationDetails.OrganizationName.toLowerCase().trim())) {\n this.dataSelf = \"Organization name already exists\";\n return;\n }\n\n if (this.userListData.find(ent => ent.UserName.toLowerCase().trim() === this.organizationDetails.UserName.toLowerCase().trim())) {\n this.dataSelf = \"UserName already exists\";\n return;\n }\n this.orgService.saveOrganization(this.organizationDetails).subscribe(resp => {\n if (resp.Data) {\n this.dataSelf = 'Saved successfully';\n setTimeout(() => {\n this.dataSelf = '';\n }, 2000);\n\n\n this.dialogRef.close(true);\n\n } else {\n this.dataSelf = 'Save failed';\n }\n });\n }\n else {\n this.organization = this.organization.filter(ent => ent.OrganizationID !== this.organizationDetails.OrganizationID);\n if (this.organization.find(ent => ent.OrganizationName.toLowerCase().trim() == this.organizationDetails.OrganizationName.toLowerCase().trim())) {\n this.dataSelf = 'Organization name already exists';\n return;\n }\n\n this.userListData = this.userListData.filter(ent => ent.UserID !== this.organizationDetails.UserID);\n if (this.userListData.find(ent => ent.UserName.toLowerCase().trim() == this.organizationDetails.UserName.toLowerCase().trim())) {\n this.dataSelf = 'UserName already exist';\n return;\n }\n if (this.organizationDetails.NoOfLicenses < Number(this.licenseDetails.UsedLicenses)) {\n this.dataSelf = 'Cannot update licenses as entities exist for this organization';\n return;\n }\n this.orgService.saveOrganization(this.organizationDetails).subscribe(resp => {\n if (resp.Data === true) {\n this.dialogRef.close(true);\n } else {\n this.dataSelf = 'Updated successfully';\n }\n });\n }\n }\n clear(): void {\n this.dialogRef.close(false);\n }\n keyPress(event: any): void {\n const pattern = /[0-9\\+\\-\\ ]/;\n\n let inputChar = String.fromCharCode(event.charCode);\n if (event.keyCode != 8 && !pattern.test(inputChar)) {\n event.preventDefault();\n }\n }\n\n isAlpha(evt: any) {\n var keyCode = (evt.which) ? evt.which : evt.keyCode\n if ((keyCode < 65 || keyCode > 90) && (keyCode < 97 || keyCode > 123) && keyCode != 32)\n return false;\n return true;\n }\n\n validatePhone(event: any): void {\n if ((event.key) == \"Backspace\" || event.key == \"ArrowLeft\" || event.key == \"ArrowRight\") {\n return;\n } else {\n const regexpattern = '^[0-9]\\d*$';\n if (!event.key.match(regexpattern)) {\n event.preventDefault();\n }\n }\n\n }\n\n validateEmail(event: any): void {\n var re = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n\n if (!this.organizationDetails.Email) {\n if (event.keyCode == 32) {\n event.preventDefault();\n }\n }\n }\n\n\n valZero(): void {\n var re = /^(?=.*\\d)(?=.*[1-9]).{1,16}$/;\n if (this.organizationDetails.Phone !== '') {\n if (!this.organizationDetails.Phone.match(re)) {\n this.dataSelf = \"Phone number invalid\";\n\n this.organizationDetails.Phone = \"\";\n\n setTimeout(() => {\n this.dataSelf = \"\";\n }, 2000);\n }\n }\n\n }\n\n validate() {\n\n }\n\n}\n","import { Component, OnInit } from '@angular/core';\nimport { DorseyService } from '../dorsey.service';\nimport { LocalStorageService } from 'ngx-webstorage';\nimport { Department } from '../departments/department.model';\nimport { ScoreCardTypeEnum } from '../performance-score-card/performance-score-card.model';\nimport { EmployeeLoginLevel } from '../common/models/login-level.model';\nimport { DepartmentService } from '../services/department.service';\nimport { copyRight } from '../copyRight.model';\n\n@Component({\n selector: 'app-other-frustration',\n templateUrl: './other-frustration.component.html',\n // styleUrls: ['./other-frustration.component.scss']\n})\nexport class OtherFrustrationComponent implements OnInit {\n copyRight: string = copyRight;\n frustrationOtherData: any;\n searchtext: string;\n isDesc: boolean = false;\n column = \"\";\n direction: number;\n arrow = true;\n p: number = 1;\n rowsOnPage = 10;\n rowsOnPageSet = [];\n rowCount: any;\n dynamicRows = 10;\n processPaging = false;\n saveFilter = [];\n departmentName: string;\n CompanyID: string;\n isDisable = false;\n selectedReportType: string;\n disableSearch = false;\n teamData: any;\n TeamID: any;\n filterData: any;\n EmployeeID: string;\n tempTeam = [];\n companyName: string;\n headerDate = new Date();\n TeamName: string;\n employeeData: any;\n copyDate: number;\n employeeDetails: any;\n departmentList: Array<Department> = [];\n selectedDepartmentId: number;\n toggleTeam: boolean = false;\n scoreCardTypes: string[] = [ScoreCardTypeEnum.Department, ScoreCardTypeEnum.Team];\n constructor(public dorseyService: DorseyService,\n private departmentService: DepartmentService, private storage: LocalStorageService) {\n this.EmployeeID = this.storage.retrieve('EmployeeID');\n this.employeeDetails = this.storage.retrieve('employeeDetails');\n this.companyName = this.storage.retrieve('LoginCompanyName');\n\n if (this.EmployeeID.toString() === \"0\") {\n\n }\n else {\n this.TeamID = this.storage.retrieve('TeamID');\n }\n }\n\n ngOnInit() {\n this.CompanyID = this.storage.retrieve('companyID');\n\n if (this.employeeDetails) {\n\n if ((this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Department) || (this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Team)) {\n this.toggleTeam = true;\n\n this.getTeamsByDepartmentId(this.employeeDetails.DepartmentID)\n }\n else {\n this.reportTypeChange(ScoreCardTypeEnum.Department)\n }\n }\n else {\n this.reportTypeChange(ScoreCardTypeEnum.Department)\n }\n\n this.copyDate = (new Date()).getFullYear();\n\n }\n\n private getTeamsByDepartmentId(selectedDepartmentId): void {\n\n this.dorseyService.GetTeam(this.CompanyID.toString()).subscribe(resp => {\n var companyTeamList = JSON.parse(resp['_body']);\n this.teamData = companyTeamList;\n\n if (this.employeeDetails && companyTeamList) {\n if (this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Department) {\n this.teamData = this.teamData.filter(ent => ent.DepartmentID === this.employeeDetails.DepartmentID);\n }\n else if (this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Team) {\n this.teamData = this.teamData.filter(ent => ent.DepartmentID === this.employeeDetails.DepartmentID && ent.TeamID == this.employeeDetails.TeamID);\n this.selectedDepartmentId = this.teamData[0].DepartmentID;\n this.TeamID = this.teamData[0].TeamID;\n this.TeamName = this.teamData[0].TeamName;\n }\n else {\n if (!selectedDepartmentId) {\n this.selectedDepartmentId = 0;\n this.teamData = companyTeamList;\n }\n else if (selectedDepartmentId == 0) {\n this.teamData = companyTeamList;\n }\n else {\n this.teamData = this.teamData.filter(ent => ent.DepartmentID === selectedDepartmentId);\n }\n\n }\n }\n else {\n if (selectedDepartmentId == 0)\n this.teamData = companyTeamList;\n else\n this.teamData = companyTeamList.filter(ent => ent.DepartmentID === selectedDepartmentId);\n }\n this.dorseyService.GetFrustrationWithOther(this.CompanyID).subscribe(pointer => {\n this.frustrationOtherData = JSON.parse(pointer['_body']);\n\n if (!this.TeamID)\n this.TeamID = 0;\n\n if (this.TeamID == 0) {\n this.teamData = this.teamData.filter(entity1 => this.frustrationOtherData.find(entity2 => entity1.TeamID == entity2.TeamID));\n if (this.teamData.length > 0)\n this.teamData.splice(0, 0, { TeamID: 0, TeamName: 'Aggregate Report' });\n }\n this.ConstructReport();\n\n });\n\n });\n }\n\n teamChange(event): void {\n this.searchtext = '';\n this.selectedDepartmentId = 0;\n this.TeamID = event.value;\n let teamd = this.teamData.filter(x => x.TeamID === this.TeamID)\n if (teamd.length > 0) {\n this.TeamName = teamd[0].TeamName;\n }\n this.ConstructReport();\n }\n reportTypeChange(scoreCardType: string): void {\n this.searchtext = '';\n\n this.departmentList = [];\n this.teamData = [];\n this.filterData = [];\n this.selectedDepartmentId = 0;\n this.TeamID = 0;\n this.selectedReportType = scoreCardType;\n this.toggleTeam = scoreCardType === ScoreCardTypeEnum.Department ? false : true;\n this.getDepartments();\n this.getTeamsByDepartmentId(this.selectedDepartmentId);\n this.ConstructReport();\n }\n\n departmentChange(selectedDepartmentId): void {\n this.searchtext = '';\n this.getTeamsByDepartmentId(selectedDepartmentId)\n this.departmentName = this.departmentList.find(ent => ent.DepartmentID === selectedDepartmentId).DepartmentName;\n }\n\n private getDepartments(): void {\n this.departmentService.getDepartments(Number(this.CompanyID)).subscribe(resp => {\n this.departmentList = resp.Data;\n if (this.employeeDetails) {\n if (this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Department) {\n this.departmentList = this.departmentList.filter(ent => ent.DepartmentID === this.employeeDetails.DepartmentID);\n }\n else if (this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Team) {\n this.departmentList = this.departmentList.filter(ent => ent.DepartmentID === this.employeeDetails.DepartmentID);\n this.getTeamsByDepartmentId(this.employeeDetails.DepartmentID);\n }\n\n }\n this.departmentList.splice(0, 0, { DepartmentID: 0, DepartmentName: 'Aggregate Report', DepartmentDescription: '0', CompanyID: Number(this.CompanyID), CreatedBy: '', UpdatedBy: '' });\n });\n }\n\n\n ConstructReport() {\n this.filterData = [];\n if (!this.TeamID) {\n this.filterData = this.frustrationOtherData.filter(entity1 => this.teamData.find(entity2 => entity1.TeamID == entity2.TeamID));\n }\n else {\n this.filterData = this.frustrationOtherData.filter(entity1 => entity1.TeamID == this.TeamID);\n }\n\n if (this.filterData.length === 0) {\n this.processPaging = false;\n this.isDisable = true;\n this.disableSearch = true;\n }\n else {\n this.processPaging = true;\n this.isDisable = false;\n this.disableSearch = false;\n\n this.saveFilter = JSON.parse(JSON.stringify(this.filterData));\n this.rowCount = this.filterData.length;\n this.getOtherPagination(this.rowCount)\n }\n\n\n\n }\n\n Searchtext() {\n this.filterData = this.saveFilter;\n let tempfrustOther = this.filterData.filter(\n (item) => {\n return (\n (item.ProcessName !== null && item.ProcessName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n (item.DepartmentName !== null && item.DepartmentName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n (item.ActivityName !== null && item.ActivityName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n (item.Subject !== null && item.Subject.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n (item.Description !== null && item.Description.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n (item.ProjectName !== null && item.ProjectName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1)\n || (item.TeamName !== null && item.TeamName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1)\n || (item.StatusName !== null && item.StatusName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n (item.SeverityName !== null && item.SeverityName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1)\n );\n }\n\n );\n this.filterData = tempfrustOther;\n if (this.filterData.length == 0) {\n\n this.isDisable = true;\n } else {\n this.isDisable = false;\n }\n\n if (this.searchtext === '') {\n this.filterData = this.saveFilter;\n this.rowCount = this.filterData.length;\n this.isDisable = false;\n this.getOtherPagination(this.rowCount);\n }\n else {\n this.rowCount = tempfrustOther.length;\n this.getOtherPagination(this.rowCount);\n if (this.rowsOnPageSet.length === 1) {\n if (this.rowsOnPageSet[0] <= 10)\n this.rowsOnPage = this.rowsOnPageSet[0];\n }\n }\n }\n getOtherPagination(RowCount): void {\n this.dynamicRows = 10;\n this.rowsOnPageSet = [];\n this.rowsOnPage = 10;\n this.rowCount = RowCount;\n while (this.dynamicRows < this.rowCount) {\n this.rowsOnPageSet.push(this.dynamicRows);\n this.dynamicRows = this.dynamicRows + 10;\n }\n if (!this.rowsOnPageSet.includes(this.rowCount)) {\n this.rowsOnPageSet.push(this.rowCount);\n if (this.rowsOnPageSet.length === 1) {\n if (this.rowsOnPageSet[0] <= 10)\n this.rowsOnPage = this.rowsOnPageSet[0];\n }\n }\n }\n sort(property) {\n this.arrow = !this.arrow;\n this.isDesc = !this.isDesc; //change the direction \n this.column = property;\n this.direction = this.isDesc ? 1 : -1;\n }\n exportAsXLSX() {\n let allData = JSON.parse(JSON.stringify(this.filterData));\n for (let i = 0; i < allData.length; i++) {\n allData[i][\" No. \"] = i + 1;\n if (this.selectedReportType === ScoreCardTypeEnum.Department) {\n allData[i][\"Department\"] = this.filterData[i].DepartmentName;\n }\n allData[i].Team = this.filterData[i].TeamName;\n allData[i].Process = this.filterData[i].ProcessName;\n allData[i].Activity = this.filterData[i].ActivityName;\n allData[i][\" Type \"] = this.filterData[i].FrustrationsTypeName;\n allData[i][\" Frustration \"] = this.filterData[i].Subject;\n allData[i][\" Description \"] = this.filterData[i].Description;\n allData[i][\" Project Name\"] = this.filterData[i].ProjectName;\n allData[i].Status = this.filterData[i].StatusName;\n allData[i][\" Severity \"] = this.filterData[i].SeverityName;\n\n delete (allData[i].DepartmentName);\n delete (allData[i].SeverityName);\n\n delete (allData[i].GreenRange);\n delete (allData[i].RedRange);\n delete (allData[i].YellowRange);\n delete (allData[i].TeamName);\n delete (allData[i].ProcessName);\n delete (allData[i].ActivityName);\n delete (allData[i].PointerID);\n delete (allData[i].ActivityID);\n delete (allData[i].PointerTypeID);\n delete (allData[i].Subject);\n delete (allData[i].Description);\n delete (allData[i].EmployeeID);\n delete (allData[i].Type);\n delete (allData[i].StatusID);\n delete (allData[i].SeverityID);\n delete (allData[i].ProcessID);\n delete (allData[i].DepartmentID);\n delete (allData[i].TeamID);\n delete (allData[i].FrustrationsTypeID);\n delete (allData[i].Date);\n delete (allData[i].IsActive);\n delete (allData[i].CreatedDate);\n delete (allData[i].CreatedBy);\n delete (allData[i].UpdatedDate);\n delete (allData[i].UpdatedBy);\n delete (allData[i].FrustrationsTypeName);\n delete (allData[i].ProjectName);\n delete (allData[i].StatusName);\n delete (allData[i].ProjectID);\n\n delete (allData[i].SeverityName);\n delete (allData[i].PointerID);\n\n }\n\n\n let name: any;\n if (this.selectedReportType == ScoreCardTypeEnum.Department && this.departmentName) {\n name = this.departmentName;\n } else if ((!this.selectedReportType || this.selectedReportType == ScoreCardTypeEnum.Team) && this.TeamName) {\n name = this.TeamName;\n } else {\n name = \"Aggregate Report\";\n }\n this.dorseyService.generateExcel(allData, this.companyName + '_Other category frustrations' + \"_\" + (new Date().getMonth() + 1) + '-' + new Date().getDate() + '-' + new Date().getFullYear(), 'Other category frustrations', \"Company: \" + this.companyName, this.selectedReportType ? this.selectedReportType + \": \" + name : 'Team' + \": \" + name, \"Other category frustrations Report\", copyRight, 'FFFFFF00', 'FF0000FF');\n }\n}\n\n","module.exports = \".field {\\n margin-left: 2%;\\n}\\n\\n#tableActions {\\n justify-content: flex-start !important;\\n}\\n\\ntable {\\n width: 100%;\\n font-size: smaller;\\n border-collapse: collapse;\\n}\\n\\nth, td {\\n text-align: center;\\n font-size: smaller;\\n}\\n\\nth {\\n color: white;\\n background-color: #474747;\\n height: 35px;\\n font-size: 13px;\\n}\\n\\ntd {\\n height: 35px;\\n font-size: 13px;\\n}\\n\\ntable, th, td {\\n border: 1px solid #e1e1e1;\\n overflow: hidden;\\n word-wrap: break-word;\\n}\\n\\ntable.fixed {\\n table-layout: fixed;\\n}\\n\\ntable.fixed td {\\n overflow: hidden;\\n}\\n\\n.highlight td {\\n background: #C0C0C0;\\n}\\n\\n.warningMsg {\\n text-align: center;\\n color: red;\\n}\\n\\n.fa-arrow-down, .fa-arrow-up {\\n font-size: 10px;\\n}\\n\\n.margin-5 {\\n margin: 5px;\\n}\\n\\n.text-underline {\\n text-decoration: underline;\\n}\\n\\n.btnWrapper button {\\n margin: 2.5% 1% 0% 0.5% !important;\\n}\\n\\n.current-quarter {\\n background-color: #9cd99c;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvcGVyZm9ybWFuY2Utc2NvcmUtY2FyZC9GOlxcTmlraWwgV29ya1xcUHJvamVjdHNcXERvcnNleVxcSGllcmFyY2h5IFNvdXJjZSBDb2RlXFxXb3JraW5nXFxkb3JzZXlHcm91cC9zcmNcXGFwcFxccGVyZm9ybWFuY2Utc2NvcmUtY2FyZFxccGVyZm9ybWFuY2Utc2NvcmUtY2FyZC5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvcGVyZm9ybWFuY2Utc2NvcmUtY2FyZC9wZXJmb3JtYW5jZS1zY29yZS1jYXJkLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0ksZUFBQTtBQ0NKOztBREVBO0VBQ0ksc0NBQUE7QUNDSjs7QURFQTtFQUNJLFdBQUE7RUFDQSxrQkFBQTtFQUNBLHlCQUFBO0FDQ0o7O0FEQ0E7RUFDSSxrQkFBQTtFQUNBLGtCQUFBO0FDRUo7O0FEQ0E7RUFDSSxZQUFBO0VBQ0EseUJBQUE7RUFDQSxZQUFBO0VBQ0EsZUFBQTtBQ0VKOztBRENBO0VBQ0ksWUFBQTtFQUNBLGVBQUE7QUNFSjs7QURDQTtFQUNJLHlCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxxQkFBQTtBQ0VKOztBRENBO0VBQWMsbUJBQUE7QUNHZDs7QUREQTtFQUFpQixnQkFBQTtBQ0tqQjs7QURIQTtFQUFlLG1CQUFBO0FDT2Y7O0FETEE7RUFDSSxrQkFBQTtFQUNBLFVBQUE7QUNRSjs7QURMQTtFQUNJLGVBQUE7QUNRSjs7QURMQTtFQUNJLFdBQUE7QUNRSjs7QURMQTtFQUNJLDBCQUFBO0FDUUo7O0FETEE7RUFDSSxrQ0FBQTtBQ1FKOztBRExBO0VBQ0kseUJBQUE7QUNRSiIsImZpbGUiOiJzcmMvYXBwL3BlcmZvcm1hbmNlLXNjb3JlLWNhcmQvcGVyZm9ybWFuY2Utc2NvcmUtY2FyZC5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5maWVsZHtcclxuICAgIG1hcmdpbi1sZWZ0OiAyJTtcclxufVxyXG5cclxuI3RhYmxlQWN0aW9uc3tcclxuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG50YWJsZSB7XHJcbiAgICB3aWR0aDoxMDAlO1xyXG4gICAgZm9udC1zaXplOiBzbWFsbGVyO1xyXG4gICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcclxufVxyXG50aCx0ZHtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIGZvbnQtc2l6ZTogc21hbGxlcjtcclxufVxyXG5cclxudGgge1xyXG4gICAgY29sb3I6d2hpdGU7ICAgICBcclxuICAgIGJhY2tncm91bmQtY29sb3I6IzQ3NDc0NztcclxuICAgIGhlaWdodDogMzVweDtcclxuICAgIGZvbnQtc2l6ZTogMTNweDtcclxufVxyXG5cclxudGQge1xyXG4gICAgaGVpZ2h0OiAzNXB4O1xyXG4gICAgZm9udC1zaXplOiAxM3B4O1xyXG59XHJcblxyXG50YWJsZSwgdGgsIHRkIHtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlMWUxZTE7XHJcbiAgICBvdmVyZmxvdzpoaWRkZW47XHJcbiAgICB3b3JkLXdyYXA6YnJlYWstd29yZDtcclxufVxyXG5cclxudGFibGUuZml4ZWQgeyB0YWJsZS1sYXlvdXQ6Zml4ZWQ7IH1cclxuXHJcbnRhYmxlLmZpeGVkIHRkIHsgb3ZlcmZsb3c6IGhpZGRlbjsgfVxyXG5cclxuLmhpZ2hsaWdodCB0ZCB7YmFja2dyb3VuZDogI0MwQzBDMDt9XHJcblxyXG4ud2FybmluZ01zZyB7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICBjb2xvcjogcmVkO1xyXG59XHJcblxyXG4uZmEtYXJyb3ctZG93biwgLmZhLWFycm93LXVwe1xyXG4gICAgZm9udC1zaXplOiAxMHB4XHJcbn1cclxuXHJcbi5tYXJnaW4tNXtcclxuICAgIG1hcmdpbjogNXB4O1xyXG59XHJcblxyXG4udGV4dC11bmRlcmxpbmV7XHJcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcclxufVxyXG5cclxuLmJ0bldyYXBwZXIgYnV0dG9uIHtcclxuICAgIG1hcmdpbjogMi41JSAxJSAwJSAwLjUlICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5jdXJyZW50LXF1YXJ0ZXJ7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjOWNkOTljO1xyXG59IiwiLmZpZWxkIHtcbiAgbWFyZ2luLWxlZnQ6IDIlO1xufVxuXG4jdGFibGVBY3Rpb25zIHtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0ICFpbXBvcnRhbnQ7XG59XG5cbnRhYmxlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGZvbnQtc2l6ZTogc21hbGxlcjtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbn1cblxudGgsIHRkIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LXNpemU6IHNtYWxsZXI7XG59XG5cbnRoIHtcbiAgY29sb3I6IHdoaXRlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDc0NzQ3O1xuICBoZWlnaHQ6IDM1cHg7XG4gIGZvbnQtc2l6ZTogMTNweDtcbn1cblxudGQge1xuICBoZWlnaHQ6IDM1cHg7XG4gIGZvbnQtc2l6ZTogMTNweDtcbn1cblxudGFibGUsIHRoLCB0ZCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNlMWUxZTE7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbn1cblxudGFibGUuZml4ZWQge1xuICB0YWJsZS1sYXlvdXQ6IGZpeGVkO1xufVxuXG50YWJsZS5maXhlZCB0ZCB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5oaWdobGlnaHQgdGQge1xuICBiYWNrZ3JvdW5kOiAjQzBDMEMwO1xufVxuXG4ud2FybmluZ01zZyB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY29sb3I6IHJlZDtcbn1cblxuLmZhLWFycm93LWRvd24sIC5mYS1hcnJvdy11cCB7XG4gIGZvbnQtc2l6ZTogMTBweDtcbn1cblxuLm1hcmdpbi01IHtcbiAgbWFyZ2luOiA1cHg7XG59XG5cbi50ZXh0LXVuZGVybGluZSB7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuXG4uYnRuV3JhcHBlciBidXR0b24ge1xuICBtYXJnaW46IDIuNSUgMSUgMCUgMC41JSAhaW1wb3J0YW50O1xufVxuXG4uY3VycmVudC1xdWFydGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzljZDk5Yztcbn0iXX0= */\"","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { Router } from '@angular/router';\r\nimport { LocalStorageService } from 'ngx-webstorage';\r\nimport { ValidationDialogComponent } from '../add-score-card/validation-dialog';\r\nimport { Department } from '../departments/department.model';\r\nimport { DorseyService } from '../dorsey.service';\r\nimport { DepartmentService } from '../services/department.service';\r\nimport { ScoreCard, ScoreCardTypeEnum } from './performance-score-card.model';\r\nimport { PerformanceScoreCardService } from './performance-score-card.service';\r\nimport { BsDatepickerConfig } from 'ngx-bootstrap/datepicker';\r\nimport { ScoreCardMaster, PSCMetricDetails } from '../add-score-card/add-score-card.model';\r\nimport { ResponseDialogComponent } from '../add-score-card/response-dialog';\r\nimport { QuarterService } from '../services/quarter.service';\r\nconst Moment = require('moment');\r\nimport { extendMoment } from 'moment-range';\r\nconst moment = extendMoment(Moment);\r\nimport { EmployeeLoginLevel } from '../common/models/login-level.model';\r\n@Component({\r\n selector: 'app-performance-score-card',\r\n templateUrl: './performance-score-card.component.html',\r\n styleUrls: ['./performance-score-card.component.scss']\r\n})\r\nexport class PerformanceScoreCardComponent implements OnInit {\r\n\r\n employeeDetails: any;\r\n isViewScoreCard: boolean = false;\r\n pscMetricDetails: Array<PSCMetricDetails>;\r\n selectedMetrics: Array<PSCMetricDetails> = [];\r\n departmentList: Array<Department> = [];\r\n companyId: number;\r\n selectedDepartmentId: number;\r\n selectedTeamId: number;\r\n teamList: any = [];\r\n scoreCardTypes: string[] = [ScoreCardTypeEnum.Department, ScoreCardTypeEnum.Team];\r\n toggleTeam: boolean = false;\r\n selectedScoreCardType: string;\r\n scoreCard: ScoreCard;\r\n YearPickerConfig: Partial<BsDatepickerConfig>;\r\n masterScoreCards: Array<ScoreCardMaster> = [];\r\n\r\n MenuPermissions: any;\r\n menuData: any;\r\n menuID: string;\r\n menuName: string;\r\n column = \"\";\r\n direction: number;\r\n arrow = true;\r\n isDesc: boolean = false;\r\n isDisable = false;\r\n disableSearch = false;\r\n p: number = 1;\r\n rowsOnPage = 10;\r\n rowsOnPageSet = [];\r\n rowCount: any;\r\n dynamicRows = 10;\r\n scoreCardMasterId: number;\r\n masterScoreCard: ScoreCardMaster;\r\n WeekDateList = [];\r\n latestScoreCardId: number;\r\n isScoreCardEnable: boolean = false;\r\n constructor(private departmentService: DepartmentService,\r\n private dorseyService: DorseyService,\r\n private storage: LocalStorageService,\r\n private scoreCardService: PerformanceScoreCardService,\r\n private quarterService: QuarterService,\r\n private router: Router,\r\n public dialog: MatDialog) {\r\n this.menuData = this.storage.retrieve('menuData');\r\n this.MenuPermissions = this.storage.retrieve('MenuPermissions');\r\n this.employeeDetails = this.storage.retrieve('employeeDetails');\r\n this.isScoreCardEnable = this.storage.retrieve('isScoreCardEnable');\r\n\r\n this.YearPickerConfig = Object.assign({},\r\n { containerClass: 'theme-dark-blue', showWeekNumbers: false, dateInputFormat: 'YYYY' });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.companyId = this.storage.retrieve('companyID');\r\n this.menuData = this.menuData.filter(x => x.MenuName.toString().toLowerCase() === 'score card');\r\n if (this.menuData.length > 0) {\r\n this.menuName = this.menuData[0][\"MenuName\"];\r\n this.menuID = this.menuData[0][\"MenuID\"];\r\n }\r\n if (this.employeeDetails) {\r\n if (this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Team) {\r\n this.selectedScoreCardType = EmployeeLoginLevel.Team;\r\n this.scoreCardTypeChange(this.selectedScoreCardType);\r\n }\r\n }\r\n }\r\n\r\n /*Set Pagination for score cards */\r\n\r\n scoreCardPagination(RowCount): void {\r\n this.dynamicRows = 10;\r\n this.rowsOnPageSet = [];\r\n this.rowsOnPage = 10;\r\n this.rowCount = RowCount;\r\n while (this.dynamicRows < this.rowCount) {\r\n this.rowsOnPageSet.push(this.dynamicRows);\r\n this.dynamicRows = this.dynamicRows + 10;\r\n }\r\n if (!this.rowsOnPageSet.includes(this.rowCount)) {\r\n this.rowsOnPageSet.push(this.rowCount);\r\n if (this.rowsOnPageSet.length === 1) {\r\n if (this.rowsOnPageSet[0] <= 10)\r\n this.rowsOnPage = this.rowsOnPageSet[0];\r\n }\r\n }\r\n }\r\n\r\n scoreCardTypeChange(scoreCardType: string): void {\r\n this.masterScoreCards = [];\r\n this.toggleTeam = scoreCardType === ScoreCardTypeEnum.Department ? false : true;\r\n this.getDepartments();\r\n this.getTeamsByDepartmentId(this.selectedDepartmentId);\r\n }\r\n\r\n departmentChange(selectedDepartmentId): void {\r\n this.masterScoreCards = [];\r\n if (this.selectedScoreCardType === ScoreCardTypeEnum.Team) {\r\n this.getTeamsByDepartmentId(selectedDepartmentId);\r\n }\r\n }\r\n\r\n teamChange(teamId: number): void {\r\n this.masterScoreCards = [];\r\n }\r\n\r\n showMasterScoreCards(): void {\r\n if (!this.validateFields()) {\r\n return;\r\n }\r\n this.masterScoreCards = [];\r\n this.scoreCardService.GetScoreCardMasterByDepartmentId(this.selectedDepartmentId, this.companyId).subscribe(resp => {\r\n this.masterScoreCards = resp.Data;\r\n if (this.selectedScoreCardType === ScoreCardTypeEnum.Team) {\r\n this.masterScoreCards = this.masterScoreCards.filter(ent => ent.TeamID === this.selectedTeamId);\r\n } else {\r\n this.masterScoreCards = this.masterScoreCards.filter(ent => ent.TeamID === 0);\r\n }\r\n\r\n this.rowCount = this.masterScoreCards.length;\r\n if (this.masterScoreCards.length === 0) {\r\n this.isDisable = true;\r\n this.disableSearch = true;\r\n }\r\n else {\r\n this.latestScoreCardId = this.masterScoreCards[0].Id;\r\n this.isDisable = false;\r\n this.disableSearch = false;\r\n this.scoreCardPagination(this.rowCount);\r\n }\r\n this.masterScoreCards = this.masterScoreCards.map(ele => {\r\n return {\r\n Id: ele.Id,\r\n CompanyID: ele.CompanyID,\r\n ScoreCardType: ele.ScoreCardType,\r\n DepartmentID: ele.DepartmentID,\r\n TeamID: ele.TeamID,\r\n QuarterId: ele.QuarterId,\r\n Year: ele.Year,\r\n ScoreCardName: ele.ScoreCardName,\r\n CreatedBy: ele.CreatedBy,\r\n UpdatedBy: ele.UpdatedBy,\r\n QuarterName: 'Quarter ' + ele.QuarterId,//ele.ScoreCardName.split('_')[1],\r\n CompanyName: ele.CompanyName,\r\n DepartmentName: ele.DepartmentName,\r\n TeamName: ele.TeamName\r\n }\r\n });\r\n });\r\n }\r\n\r\n openScoreCard(): void {\r\n if (!this.validateFields()) {\r\n return;\r\n }\r\n this.assignScoreCardValues();\r\n this.router.navigate(['add-score-card', 0, 0]);\r\n }\r\n\r\n editScoreCard(scoreCard): void {\r\n this.assignScoreCardValues();\r\n this.router.navigate(['add-score-card', scoreCard.Id, 0]);\r\n }\r\n\r\n deleteScoreCard(scoreCard): void {\r\n const dialogRef = this.dialog.open(PerformanceScoreCardDialogComponent, {\r\n panelClass: 'custom-dialog-container',\r\n data: 'Are you sure you want to delete score card : ' + scoreCard.ScoreCardName + '?æææ' + true,\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result) {\r\n this.scoreCardService.DeleteScoreCardMaster(scoreCard.Id).subscribe(resp => {\r\n if (resp.Data == true) {\r\n this.dialog.open(ResponseDialogComponent, {\r\n data: {\r\n message: 'Delete successful'\r\n }\r\n });\r\n this.showMasterScoreCards();\r\n }\r\n });\r\n }\r\n });\r\n }\r\n\r\n ///private methods\r\n private validateFields(): boolean {\r\n var errorMessages = [];\r\n if (!this.selectedScoreCardType) {\r\n errorMessages.push(\"Please select Type\");\r\n }\r\n if (!this.selectedDepartmentId) {\r\n errorMessages.push(\"Please select Department\");\r\n }\r\n if (this.selectedScoreCardType === ScoreCardTypeEnum.Team) {\r\n if (!this.selectedTeamId) {\r\n errorMessages.push(\"Please select Team\");\r\n }\r\n }\r\n\r\n if (errorMessages.length != 0) {\r\n this.dialog.open(ValidationDialogComponent, {\r\n data: {\r\n errorMessages: errorMessages\r\n }\r\n });\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n private getDepartments(): void {\r\n this.departmentService.getDepartments(this.companyId).subscribe(resp => {\r\n this.departmentList = resp.Data;\r\n if (this.employeeDetails) {\r\n\r\n if (this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Department) {\r\n this.departmentList = this.departmentList.filter(ent => ent.DepartmentID === this.employeeDetails.DepartmentID);\r\n }\r\n else if (this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Team) {\r\n this.departmentList = this.departmentList.filter(ent => ent.DepartmentID === this.employeeDetails.DepartmentID);\r\n this.getTeamsByDepartmentId(this.employeeDetails.DepartmentID);\r\n\r\n }\r\n }\r\n });\r\n }\r\n\r\n private getTeamsByDepartmentId(selectedDepartmentId): void {\r\n this.dorseyService.GetTeam(this.companyId.toString()).subscribe(resp => {\r\n var companyTeamList = JSON.parse(resp['_body']);\r\n this.teamList = companyTeamList;\r\n if (this.employeeDetails && companyTeamList) {\r\n if (this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Department) {\r\n this.teamList = this.teamList.filter(ent => ent.DepartmentID === this.employeeDetails.DepartmentID);\r\n }\r\n else if (this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Team) {\r\n this.teamList = this.teamList.filter(ent => ent.DepartmentID === this.employeeDetails.DepartmentID && ent.TeamID == this.employeeDetails.TeamID);\r\n this.selectedDepartmentId = this.teamList[0].DepartmentID;\r\n this.selectedTeamId = this.teamList[0].TeamID;\r\n }\r\n }\r\n else {\r\n this.teamList = companyTeamList.filter(ent => ent.DepartmentID === selectedDepartmentId);\r\n }\r\n });\r\n }\r\n\r\n private assignScoreCardValues() {\r\n var department = this.departmentList.find(ent => ent.DepartmentID === this.selectedDepartmentId);\r\n var team = this.teamList.find(ent => ent.TeamID === this.selectedTeamId);\r\n this.scoreCard = {\r\n ScoreCardType: this.selectedScoreCardType,\r\n DepartmentId: this.selectedDepartmentId,\r\n DepartmentName: department ? department.DepartmentName : '',\r\n TeamId: (this.selectedScoreCardType == ScoreCardTypeEnum.Team && this.selectedTeamId) ? this.selectedTeamId : 0,\r\n TeamName: (this.selectedScoreCardType == ScoreCardTypeEnum.Team && team) ? team.TeamName : ''\r\n };\r\n this.scoreCardService.scoreCard.next(this.scoreCard);\r\n }\r\n\r\n viewScoreCard(scoreCard): void {\r\n this.scoreCardMasterId = scoreCard.Id;\r\n this.scoreCardService.GetPerformanceScoreCardDetails(scoreCard.CompanyID, scoreCard.DepartmentID, scoreCard.TeamID, scoreCard.Id).subscribe(resp => {\r\n this.pscMetricDetails = resp.AdditionalData.PSCDetails;\r\n this.selectedMetrics = this.pscMetricDetails.filter(ent => ent.IsSelected === true);\r\n this.processData();\r\n var quarter = resp.AdditionalData.QuarterDetails;\r\n var months = quarter.filter(val => val.QuarterID == scoreCard.QuarterId);\r\n if (months.length > 0)\r\n this.WeekDateList = this.quarterService.getWeekMonths(months, Number(scoreCard.Year), quarter[0].QuarterWeekDay, quarter[0].QuarterWeekDate);\r\n this.scoreCard = scoreCard;\r\n this.isViewScoreCard = true;\r\n });\r\n }\r\n\r\n private processData(): void {\r\n const goalSeen = {};\r\n this.selectedMetrics = this.selectedMetrics.sort((a, b) => {\r\n return a.GoalName.localeCompare(b.GoalName);\r\n }).map(x => {\r\n const goalSpan = goalSeen[x.GoalName] ? 0 :\r\n this.selectedMetrics.filter(y => y.GoalName === x.GoalName).length;\r\n goalSeen[x.GoalName] = true;\r\n return { ...x, goalSpan };\r\n });\r\n }\r\n\r\n viewScoreCardChangedHandler(value: boolean): void {\r\n this.isViewScoreCard = value;\r\n }\r\n\r\n goToAddScoreCardChangedHandler(event): void {\r\n this.assignScoreCardValues();\r\n this.router.navigate(['add-score-card', this.scoreCardMasterId, 3]);\r\n }\r\n\r\n sort(property): void {\r\n this.arrow = !this.arrow;\r\n this.isDesc = !this.isDesc; //change the direction\r\n this.column = property;\r\n this.direction = this.isDesc ? 1 : -1;\r\n }\r\n\r\n}\r\n\r\n\r\n@Component({\r\n selector: 'app-dialog',\r\n templateUrl: 'dialog.html',\r\n})\r\nexport class PerformanceScoreCardDialogComponent implements OnInit {\r\n\r\n condition = false;\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef<PerformanceScoreCardDialogComponent>,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n this.data = this.data.split('æææ');\r\n if (this.data[1] === 'true') {\r\n this.condition = true;\r\n } else {\r\n this.condition = false;\r\n }\r\n this.data = this.data[0];\r\n }\r\n\r\n ngOnInit(): void { }\r\n\r\n onYesClick(): void {\r\n this.dialogRef.close(true);\r\n }\r\n\r\n onNoClick(): void {\r\n this.dialogRef.close();\r\n }\r\n}\r\n","export enum ScoreCardTypeEnum {\r\n Department = \"Department\",\r\n Team = \"Team\"\r\n}\r\n\r\nexport interface ScoreCard {\r\n ScoreCardType: string,\r\n DepartmentId: number,\r\n TeamId: number,\r\n DepartmentName: string,\r\n TeamName: string\r\n}","import { HttpClient, HttpErrorResponse } from \"@angular/common/http\";\r\nimport { Injectable } from \"@angular/core\";\r\nimport { BehaviorSubject, Observable, throwError } from \"rxjs\";\r\nimport { catchError } from \"rxjs/operators\";\r\nimport { environment } from \"src/environments/environment\";\r\nimport { PerformanceScoreCard } from \"../add-score-card/add-score-card.model\";\r\nimport { IResponsePackage } from \"../models/response-package.model\";\r\nimport { ScoreCard } from \"./performance-score-card.model\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class PerformanceScoreCardService {\r\n\r\n httpUrl = environment.API_URL;\r\n public scoreCard: BehaviorSubject<ScoreCard> = new BehaviorSubject<ScoreCard>(null);\r\n\r\n constructor(private http: HttpClient) { }\r\n\r\n GetScoreCardMasterByDepartmentId(departmentId: number, companyId: number): Observable<IResponsePackage> {\r\n return this.http.get<IResponsePackage>(`${this.httpUrl}Dorsey/GetScoreCardMasterByDepartmentId?departmentId=${departmentId}&companyId=${companyId}`)\r\n .pipe(\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n GetPerformanceScoreCardDetails(companyId: number, departmentId: number, teamId: number, scoreCardMasterId: number): Observable<IResponsePackage> {\r\n return this.http.get<IResponsePackage>(`${this.httpUrl}Dorsey/GetPerformanceScoreCardDetails?departmentId=${departmentId}&teamId=${teamId}&companyId=${companyId}&pscMasterId=${scoreCardMasterId}`)\r\n .pipe(\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n SavePerformanceScoreCardDetails(entity: PerformanceScoreCard): Observable<any> {\r\n return this.http.post(`${this.httpUrl}Dorsey/SavePerformanceScoreCardDetails`, entity).pipe(\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n GetPSCDetailIdsByPSCMasterId(scoreCardMasterId: number): Observable<IResponsePackage> {\r\n return this.http.get<IResponsePackage>(`${this.httpUrl}Dorsey/GetPSCDetailIdsByPSCMasterId?pscMasterId=${scoreCardMasterId}`)\r\n .pipe(\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n DeleteScoreCardMaster(scoreCardID: number): Observable<any> {\r\n return this.http.get(`${this.httpUrl}Dorsey/DeleteScoreCardMaster?scoreCardID=${scoreCardID}`).pipe(\r\n catchError(this.handleError)\r\n );\r\n }\r\n CheckMetricExistInPSCDetails(pointerId: number): Observable<any> {\r\n return this.http.get(`${this.httpUrl}Dorsey/CheckMetricExistInPSCDetails?pointerId=${pointerId}`).pipe(\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n private handleError(err: HttpErrorResponse) {\r\n let errorMessage = '';\r\n if (err.error instanceof ErrorEvent) {\r\n errorMessage = `An error occured: ${err.error.message}`;\r\n }\r\n else {\r\n errorMessage = `Server returned code: ${err.status}, error message is ${err.message}`\r\n }\r\n return throwError(errorMessage);\r\n }\r\n\r\n}\r\n","module.exports = \"button{\\r\\n background-color: gray;\\r\\n color: white;\\r\\n}\\r\\n.Logheader {\\r\\n background-color: #474747;\\r\\n color: #ffffff;\\r\\n height: 30px;\\r\\n \\r\\n}\\r\\nimg {\\r\\n height:25px;\\r\\n width: 25px;\\r\\n cursor: pointer;\\r\\n float: left;\\r\\n margin-top: -3px;\\r\\n\\r\\n}\\r\\n[mat-fab] {\\r\\n cursor: pointer;\\r\\n background-color: darkgray;\\r\\n max-height:47px;\\r\\n max-width: 47px;\\r\\n}\\r\\n.search {\\r\\n float: right;\\r\\n}\\r\\n[user] {\\r\\n /*margin-left: 18px;*/\\r\\n\\r\\n}\\r\\n[record]{\\r\\n /*min-width: 200px;*/\\r\\n text-align: left;\\r\\n /*padding-left: 13px;*/\\r\\n}\\r\\n[recordheader]{\\r\\n /*min-width: 200px; */\\r\\n}\\r\\nth,td{\\r\\n /*min-width: 160px;*/\\r\\n height: 30px;\\r\\n text-align: center;\\r\\n}\\r\\n.logheight{\\r\\n white-space: nowrap;\\r\\n height: 400px;\\r\\n}\\r\\n.mappings {\\r\\n min-width: 900px;\\r\\n min-height: 350px;\\r\\n}\\r\\n.mappings1{\\r\\n min-width: 400px;\\r\\n min-height: 150px;\\r\\n}\\r\\n.logwidth {\\r\\n min-width: 300px;\\r\\n}\\r\\ndiv,button,mat-form-field,mat-table{\\r\\n font-family: Open sans;\\r\\n}\\r\\n.tableClass {\\r\\n min-height: 350px;\\r\\n max-height: 350px;\\r\\n}\\r\\n.tableWithNoHeight {\\r\\n min-height: 40px;\\r\\n max-height: 40px;\\r\\n}\\r\\n.warningMsg{\\r\\ncolor: #ef5350;\\r\\ntext-align: center;\\r\\n}\\r\\n.mat-table {\\r\\n overflow: auto;\\r\\n /*min-height: 350px;\\r\\n max-height: 350px;*/\\r\\n max-width: 1000px;\\r\\n min-width: 1000px;\\r\\n}\\r\\nmat-header-row{\\r\\nbackground-color: \\t#474747;\\r\\nmin-height: 35px;\\r\\n position: -webkit-sticky;\\r\\n position: sticky;\\r\\n top: 0;\\r\\n}\\r\\nmat-row {\\r\\n border: 1;\\r\\n min-height: 30px;\\r\\n \\r\\n\\r\\n}\\r\\nmat-header-cell {\\r\\n margin-left: 10px;\\r\\n font-size: 14px;\\r\\n font-weight: 600;\\r\\n text-align: center;\\r\\n color: #FFFFFF;\\r\\n}\\r\\nmat-cell {\\r\\n /*margin-right: -24px;*/\\r\\n /*border-right: 1px solid #e1e1e1;;*/\\r\\n align-self: stretch;\\r\\n margin-left: 10px;\\r\\n /*text-align: center;*/\\r\\n padding-top:9px;\\r\\n}\\r\\n.close {\\r\\n color: #aaaaaa;\\r\\n float: right;\\r\\n font-size: 28px;\\r\\n font-weight: bold;\\r\\n cursor: pointer;\\r\\n margin-right: -2px;\\r\\n margin-top: -34px;\\r\\n top:0;\\r\\n right:0;\\r\\n}\\r\\nlabel{\\r\\n font-weight: 600;\\r\\n font-size: 15px;\\r\\n text-align: right;\\r\\n display: block;\\r\\n}\\r\\n.drpdownlabel{\\r\\n margin-top: 30px;\\r\\n}\\r\\n.top {\\r\\n margin-top:5px;\\r\\n}\\r\\n.aligntop {\\r\\n /* margin-top: -10px; */\\r\\n}\\r\\n.alignheader {\\r\\n text-align: center;\\r\\n margin-bottom:20px;\\r\\n}\\r\\n.successMsg{\\r\\ncolor: green;\\r\\ntext-align: center;\\r\\n}\\r\\n.asterik{\\r\\n color: #ef5350;\\r\\n font-size: 15px; \\r\\n}\\r\\n/*input.mat-input-element {\\r\\n margin-top: 0.20em;\\r\\n}*/\\r\\n.mat-column-Action { \\r\\n border-right: 1px solid #e1e1e1;\\r\\n /*align-self: stretch;*/\\r\\n text-align: center;\\r\\n}\\r\\n.mat-column-Previous {\\r\\n border-right: 1px solid #e1e1e1;\\r\\n /*align-self: stretch;*/\\r\\n /*text-align: center;*/\\r\\n}\\r\\n.mat-column-Current {\\r\\n border-right: 1px solid #e1e1e1;\\r\\n /*align-self: stretch;*/\\r\\n /*text-align: center;*/\\r\\n}\\r\\n.mat-column-User {\\r\\n border-right: 1px solid #e1e1e1;\\r\\n /*align-self: stretch;*/\\r\\n text-align: center;\\r\\n max-width: 130px;\\r\\n}\\r\\n.mat-column-Date {\\r\\n /*border-right: 1px solid #e1e1e1;*/\\r\\n /*align-self: stretch;*/\\r\\n text-align: center;\\r\\n}\\r\\nlabel\\r\\n {\\r\\n margin-top: 20px;\\r\\n font-size:smaller;\\r\\n }\\r\\n[matInput]{\\r\\n font-size: smaller;\\r\\n }\\r\\n.Addcolor {\\r\\n color: #ef5350 !important ;\\r\\n cursor: pointer !important ; \\r\\n }\\r\\n.removeColor {\\r\\n color: #ccc !important ;\\r\\n cursor: none !important ;\\r\\n }\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvcG9pbnRlci9kaWFsb2cuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0lBQ0ksc0JBQXNCO0lBQ3RCLFlBQVk7QUFDaEI7QUFDQTtJQUNJLHlCQUF5QjtJQUN6QixjQUFjO0lBQ2QsWUFBWTs7QUFFaEI7QUFDQTtJQUNJLFdBQVc7SUFDWCxXQUFXO0lBQ1gsZUFBZTtJQUNmLFdBQVc7UUFDUCxnQkFBZ0I7O0FBRXhCO0FBQ0E7R0FDRyxlQUFlO0VBQ2hCLDBCQUEwQjtDQUMzQixlQUFlO0NBQ2YsZUFBZTtBQUNoQjtBQUVBO0lBQ0ksWUFBWTtBQUNoQjtBQUNBO1FBQ1EscUJBQXFCOztBQUU3QjtBQUNBO0lBQ0ksb0JBQW9CO0lBQ3BCLGdCQUFnQjtJQUNoQixzQkFBc0I7QUFDMUI7QUFDQTtJQUNJLHdCQUF3QjtBQUM1QjtBQUNBO0lBQ0ksb0JBQW9CO0lBQ3BCLFlBQVk7SUFDWixrQkFBa0I7QUFDdEI7QUFDQTtJQUNJLG1CQUFtQjtJQUNuQixhQUFhO0FBQ2pCO0FBQ0E7Q0FDQyxnQkFBZ0I7Q0FDaEIsaUJBQWlCO0FBQ2xCO0FBQ0E7SUFDSSxnQkFBZ0I7SUFDaEIsaUJBQWlCO0FBQ3JCO0FBQ0E7TUFDTSxnQkFBZ0I7QUFDdEI7QUFDQTtLQUNLLHNCQUFzQjtBQUMzQjtBQUNBO0VBQ0UsaUJBQWlCO0VBQ2pCLGlCQUFpQjtBQUNuQjtBQUNBO0VBQ0UsZ0JBQWdCO0VBQ2hCLGdCQUFnQjtBQUNsQjtBQUdBO0FBQ0EsY0FBYztBQUNkLGtCQUFrQjtBQUNsQjtBQUNBO0VBQ0UsY0FBYztHQUNiO3FCQUNrQjtFQUNuQixpQkFBaUI7RUFDakIsaUJBQWlCO0FBQ25CO0FBQ0E7QUFDQSwwQkFBMEI7QUFDMUIsZ0JBQWdCO0VBQ2Qsd0JBQWdCO0VBQWhCLGdCQUFnQjtFQUNoQixNQUFNO0FBQ1I7QUFDQTtJQUNJLFNBQVM7SUFDVCxnQkFBZ0I7OztBQUdwQjtBQUNBO0lBQ0ksaUJBQWlCO0lBQ2pCLGVBQWU7SUFDZixnQkFBZ0I7RUFDbEIsa0JBQWtCO0VBQ2xCLGNBQWM7QUFDaEI7QUFDQTtJQUNJLHVCQUF1QjtLQUN0QixvQ0FBb0M7SUFDckMsbUJBQW1CO0lBQ25CLGlCQUFpQjtJQUNqQixzQkFBc0I7SUFDdEIsZUFBZTtBQUNuQjtBQUVBO0lBQ0ksY0FBYztJQUNkLFlBQVk7SUFDWixlQUFlO0lBQ2YsaUJBQWlCO0lBQ2pCLGVBQWU7TUFDYixrQkFBa0I7SUFDcEIsaUJBQWlCO0tBQ2hCLEtBQUs7S0FDTCxPQUFPO0FBQ1o7QUFDQTtJQUNJLGdCQUFnQjtJQUNoQixlQUFlO0lBQ2YsaUJBQWlCO0lBQ2pCLGNBQWM7QUFDbEI7QUFDQTtRQUNRLGdCQUFnQjtBQUN4QjtBQUNBO0lBQ0ksY0FBYztBQUNsQjtBQUNBO0lBQ0ksdUJBQXVCO0FBQzNCO0FBQ0E7SUFDSSxrQkFBa0I7SUFDbEIsa0JBQWtCO0FBQ3RCO0FBQ0E7QUFDQSxZQUFZO0FBQ1osa0JBQWtCO0FBQ2xCO0FBQ0E7RUFDRSxjQUFjO0VBQ2QsZUFBZTtBQUNqQjtBQUNBOztFQUVFO0FBQ0Y7S0FDSywrQkFBK0I7SUFDaEMsdUJBQXVCO0lBQ3ZCLGtCQUFrQjtBQUN0QjtBQUNBO0tBQ0ssK0JBQStCO0lBQ2hDLHVCQUF1QjtJQUN2QixzQkFBc0I7QUFDMUI7QUFDQTtLQUNLLCtCQUErQjtJQUNoQyx1QkFBdUI7SUFDdkIsc0JBQXNCO0FBQzFCO0FBQ0E7S0FDSywrQkFBK0I7SUFDaEMsdUJBQXVCO0lBQ3ZCLGtCQUFrQjtJQUNsQixnQkFBZ0I7QUFDcEI7QUFDQTtLQUNLLG1DQUFtQztJQUNwQyx1QkFBdUI7SUFDdkIsa0JBQWtCO0FBQ3RCO0FBQ0k7O1FBRUksZ0JBQWdCO1FBQ2hCLGlCQUFpQjtJQUNyQjtBQUVBO1FBQ0ksa0JBQWtCO0lBQ3RCO0FBRUE7UUFDSSwwQkFBMEI7UUFDMUIsMkJBQTJCO0tBQzlCO0FBQ0E7UUFDRyx1QkFBdUI7UUFDdkIsd0JBQXdCO0tBQzNCIiwiZmlsZSI6InNyYy9hcHAvcG9pbnRlci9kaWFsb2cuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiYnV0dG9ue1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogZ3JheTtcclxuICAgIGNvbG9yOiB3aGl0ZTtcclxufVxyXG4uTG9naGVhZGVyIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICM0NzQ3NDc7XHJcbiAgICBjb2xvcjogI2ZmZmZmZjtcclxuICAgIGhlaWdodDogMzBweDtcclxuICAgICBcclxufVxyXG5pbWcge1xyXG4gICAgaGVpZ2h0OjI1cHg7XHJcbiAgICB3aWR0aDogMjVweDtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgICAgIG1hcmdpbi10b3A6IC0zcHg7XHJcblxyXG59XHJcblttYXQtZmFiXSB7XHJcbiAgIGN1cnNvcjogcG9pbnRlcjtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZ3JheTtcclxuIG1heC1oZWlnaHQ6NDdweDtcclxuIG1heC13aWR0aDogNDdweDtcclxufVxyXG5cclxuLnNlYXJjaCB7XHJcbiAgICBmbG9hdDogcmlnaHQ7XHJcbn1cclxuW3VzZXJdIHtcclxuICAgICAgICAvKm1hcmdpbi1sZWZ0OiAxOHB4OyovXHJcblxyXG59XHJcbltyZWNvcmRde1xyXG4gICAgLyptaW4td2lkdGg6IDIwMHB4OyovXHJcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgLypwYWRkaW5nLWxlZnQ6IDEzcHg7Ki9cclxufVxyXG5bcmVjb3JkaGVhZGVyXXtcclxuICAgIC8qbWluLXdpZHRoOiAyMDBweDsgICAgKi9cclxufVxyXG50aCx0ZHtcclxuICAgIC8qbWluLXdpZHRoOiAxNjBweDsqL1xyXG4gICAgaGVpZ2h0OiAzMHB4O1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG59XHJcbi5sb2doZWlnaHR7XHJcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4gICAgaGVpZ2h0OiA0MDBweDtcclxufVxyXG4ubWFwcGluZ3Mge1xyXG4gbWluLXdpZHRoOiA5MDBweDtcclxuIG1pbi1oZWlnaHQ6IDM1MHB4O1xyXG59XHJcbi5tYXBwaW5nczF7XHJcbiAgICBtaW4td2lkdGg6IDQwMHB4O1xyXG4gICAgbWluLWhlaWdodDogMTUwcHg7XHJcbn1cclxuLmxvZ3dpZHRoIHtcclxuICAgICAgbWluLXdpZHRoOiAzMDBweDtcclxufVxyXG5kaXYsYnV0dG9uLG1hdC1mb3JtLWZpZWxkLG1hdC10YWJsZXtcclxuICAgICBmb250LWZhbWlseTogT3BlbiBzYW5zO1xyXG59XHJcbi50YWJsZUNsYXNzIHtcclxuICBtaW4taGVpZ2h0OiAzNTBweDtcclxuICBtYXgtaGVpZ2h0OiAzNTBweDtcclxufVxyXG4udGFibGVXaXRoTm9IZWlnaHQge1xyXG4gIG1pbi1oZWlnaHQ6IDQwcHg7XHJcbiAgbWF4LWhlaWdodDogNDBweDtcclxufVxyXG5cclxuXHJcbi53YXJuaW5nTXNne1xyXG5jb2xvcjogI2VmNTM1MDtcclxudGV4dC1hbGlnbjogY2VudGVyO1xyXG59XHJcbi5tYXQtdGFibGUge1xyXG4gIG92ZXJmbG93OiBhdXRvO1xyXG4gICAvKm1pbi1oZWlnaHQ6IDM1MHB4O1xyXG4gIG1heC1oZWlnaHQ6IDM1MHB4OyovXHJcbiAgbWF4LXdpZHRoOiAxMDAwcHg7XHJcbiAgbWluLXdpZHRoOiAxMDAwcHg7XHJcbn1cclxubWF0LWhlYWRlci1yb3d7XHJcbmJhY2tncm91bmQtY29sb3I6IFx0IzQ3NDc0NztcclxubWluLWhlaWdodDogMzVweDtcclxuICBwb3NpdGlvbjogc3RpY2t5O1xyXG4gIHRvcDogMDtcclxufVxyXG5tYXQtcm93IHtcclxuICAgIGJvcmRlcjogMTtcclxuICAgIG1pbi1oZWlnaHQ6IDMwcHg7XHJcbiBcclxuXHJcbn1cclxubWF0LWhlYWRlci1jZWxsIHtcclxuICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xyXG4gICAgZm9udC1zaXplOiAxNHB4O1xyXG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgY29sb3I6ICNGRkZGRkY7XHJcbn1cclxubWF0LWNlbGwge1xyXG4gICAgLyptYXJnaW4tcmlnaHQ6IC0yNHB4OyovXHJcbiAgICAgLypib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjZTFlMWUxOzsqL1xyXG4gICAgYWxpZ24tc2VsZjogc3RyZXRjaDtcclxuICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xyXG4gICAgLyp0ZXh0LWFsaWduOiBjZW50ZXI7Ki9cclxuICAgIHBhZGRpbmctdG9wOjlweDtcclxufVxyXG5cclxuLmNsb3NlIHtcclxuICAgIGNvbG9yOiAjYWFhYWFhO1xyXG4gICAgZmxvYXQ6IHJpZ2h0O1xyXG4gICAgZm9udC1zaXplOiAyOHB4O1xyXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAgIG1hcmdpbi1yaWdodDogLTJweDtcclxuICAgIG1hcmdpbi10b3A6IC0zNHB4O1xyXG4gICAgIHRvcDowO1xyXG4gICAgIHJpZ2h0OjA7XHJcbn1cclxubGFiZWx7XHJcbiAgICBmb250LXdlaWdodDogNjAwO1xyXG4gICAgZm9udC1zaXplOiAxNXB4O1xyXG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxufVxyXG4uZHJwZG93bmxhYmVse1xyXG4gICAgICAgIG1hcmdpbi10b3A6IDMwcHg7XHJcbn1cclxuLnRvcCB7XHJcbiAgICBtYXJnaW4tdG9wOjVweDtcclxufVxyXG4uYWxpZ250b3Age1xyXG4gICAgLyogbWFyZ2luLXRvcDogLTEwcHg7ICovXHJcbn1cclxuLmFsaWduaGVhZGVyIHtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIG1hcmdpbi1ib3R0b206MjBweDtcclxufVxyXG4uc3VjY2Vzc01zZ3tcclxuY29sb3I6IGdyZWVuO1xyXG50ZXh0LWFsaWduOiBjZW50ZXI7XHJcbn1cclxuLmFzdGVyaWt7XHJcbiAgY29sb3I6ICNlZjUzNTA7XHJcbiAgZm9udC1zaXplOiAxNXB4OyAgXHJcbn1cclxuLyppbnB1dC5tYXQtaW5wdXQtZWxlbWVudCB7XHJcbiAgIG1hcmdpbi10b3A6IDAuMjBlbTtcclxufSovXHJcbi5tYXQtY29sdW1uLUFjdGlvbiB7ICAgIFxyXG4gICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNlMWUxZTE7XHJcbiAgICAvKmFsaWduLXNlbGY6IHN0cmV0Y2g7Ki9cclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxufVxyXG4ubWF0LWNvbHVtbi1QcmV2aW91cyB7XHJcbiAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2UxZTFlMTtcclxuICAgIC8qYWxpZ24tc2VsZjogc3RyZXRjaDsqL1xyXG4gICAgLyp0ZXh0LWFsaWduOiBjZW50ZXI7Ki9cclxufVxyXG4ubWF0LWNvbHVtbi1DdXJyZW50IHtcclxuICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjZTFlMWUxO1xyXG4gICAgLyphbGlnbi1zZWxmOiBzdHJldGNoOyovXHJcbiAgICAvKnRleHQtYWxpZ246IGNlbnRlcjsqL1xyXG59XHJcbi5tYXQtY29sdW1uLVVzZXIge1xyXG4gICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNlMWUxZTE7XHJcbiAgICAvKmFsaWduLXNlbGY6IHN0cmV0Y2g7Ki9cclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIG1heC13aWR0aDogMTMwcHg7XHJcbn1cclxuLm1hdC1jb2x1bW4tRGF0ZSB7XHJcbiAgICAgLypib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjZTFlMWUxOyovXHJcbiAgICAvKmFsaWduLXNlbGY6IHN0cmV0Y2g7Ki9cclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxufVxyXG4gICAgbGFiZWxcclxuICAgIHtcclxuICAgICAgICBtYXJnaW4tdG9wOiAyMHB4O1xyXG4gICAgICAgIGZvbnQtc2l6ZTpzbWFsbGVyO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICBbbWF0SW5wdXRde1xyXG4gICAgICAgIGZvbnQtc2l6ZTogc21hbGxlcjtcclxuICAgIH1cclxuXHJcbiAgICAuQWRkY29sb3Ige1xyXG4gICAgICAgIGNvbG9yOiAjZWY1MzUwICFpbXBvcnRhbnQgO1xyXG4gICAgICAgIGN1cnNvcjogcG9pbnRlciAhaW1wb3J0YW50IDsgIFxyXG4gICAgIH1cclxuICAgICAucmVtb3ZlQ29sb3Ige1xyXG4gICAgICAgIGNvbG9yOiAjY2NjICFpbXBvcnRhbnQgO1xyXG4gICAgICAgIGN1cnNvcjogbm9uZSAhaW1wb3J0YW50IDtcclxuICAgICB9XHJcbiJdfQ== */\"","import { Component, OnInit, Inject } from '@angular/core';\nimport { DorseyService } from '../dorsey.service';\nimport { Http, Response } from '@angular/http';\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { IfStmt } from '@angular/compiler';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { MatButton, MatDatepickerInputEvent } from '@angular/material';\nimport { FormControl } from '@angular/forms';\nimport { DatePipe } from '@angular/common'\nimport { strictEqual } from 'assert';\nimport { Observable } from 'rxjs';\nimport { map, startWith } from 'rxjs/operators';\nimport { LocalStorageService } from 'ngx-webstorage';\nimport { copyRight } from '../copyRight.model';\n\n@Component({\n selector: 'app-pointer',\n templateUrl: './pointer.component.html',\n // styleUrls: ['./pointer.component.scss'],\n providers: [DorseyService]\n})\nexport class PointerComponent implements OnInit {\n ErrorMessage: string;\n projectData: any;\n condition = false;\n status = false;\n employeeData: any;\n processData: any;\n activityData: any;\n pointerTypeData: any;\n frustrationtypeData: any;\n departmentData: any;\n teamData: any;\n severityData: any;\n statusData: any;\n\n EmployeeID: string;\n ProcessID: string;\n ActivityID: string;\n PointerTypeID = \"1\";\n FrustrationTypeID: string;\n DepartmentID: string;\n TeamID: string;\n StatusID: string;\n SeverityID: string;\n Subject: string;\n Description: string;\n PointerID: string;\n pointerData: any;\n tempActivity = [];\n tempFrustrationType = [];\n pointerFrustration: any;\n FrustrationTypeIDs = [];\n newPointer = false;\n ProjectID: string;\n searchtext: string\n\n p: number = 1;\n rowsOnPage = 10;\n rowsOnPageSet = [];\n rowCount: any;\n dynamicRows = 10;\n isDesc: boolean = false;\n column = \"\";\n direction: number;\n arrow = true;\n frustPaging = false;\n saveFilter = [];\n CompanyID: string;\n isDisable = false;\n disableSearch = false;\n currentUser: string;\n MenuPermissions: any;\n menuData: any;\n menuID: string;\n menuName: string;\n ParentID: any;\n subActivityStatus = false;\n SubActivityID: string;\n tempSubActivity = [];\n userTeamID: string;\n\n suggestionAssignTypes = false;\n loginCompanyName: any;\n empID: string;\n updatedDate = new Date();\n updatedBy: any;\n constructor(private http: Http, private dorseyService: DorseyService,\n public dialog: MatDialog, private storage: LocalStorageService) {\n this.CompanyID = this.storage.retrieve('companyID');\n this.userTeamID = this.storage.retrieve('TeamID');\n this.currentUser = this.storage.retrieve('user');\n this.menuData = this.storage.retrieve('menuData');\n this.MenuPermissions = this.storage.retrieve('MenuPermissions');\n this.loginCompanyName = this.storage.retrieve('loginCompanyName');\n\n this.empID = this.storage.retrieve('EmployeeID');\n }\n\n ngOnInit() {\n\n let tempdata = this.menuData;\n if (this.empID.toString() !== '0') {\n this.EmployeeID = this.empID;\n }\n else {\n this.EmployeeID = \"0\";\n }\n this.menuData = tempdata.filter(x => x.MenuName.toString().toLowerCase() === 'frustration');\n if (this.menuData.length > 0) {\n this.menuName = this.menuData[0][\"MenuName\"];\n this.menuID = this.menuData[0][\"MenuID\"];\n }\n\n this.GetProcess();\n this.GetActivity();\n this.GetEmployee();\n this.GetDepartment();\n this.GetPointerType();\n this.GetSeverity();\n this.GetStatus();\n this.GetTeam();\n this.GetFrustrationType();\n this.GetPointer();\n this.GetProjects();\n\n }\n OpenPointer() {\n this.newPointer = true;\n this.dialogCall('new');\n }\n\n\n Searchtext() {\n this.pointerFrustration = this.saveFilter;\n\n let tempFrust = this.pointerFrustration.filter(\n (item) => {\n return (\n (item.ProcessName !== null && item.ProcessName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n (item.ActivityName !== null && item.ActivityName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n (item.TeamName !== null && item.TeamName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n (item.Subject !== null && item.Subject.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n (item.Description !== null && item.Description.toLowerCase().indexOf(this.searchtext.toLowerCase()).trim() > -1) ||\n (item.ProjectName !== null && item.ProjectName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1)\n );\n }\n\n );\n this.pointerFrustration = tempFrust;\n if (this.pointerFrustration.length == 0) {\n // this.GetActivity();\n this.isDisable = true;\n }\n if (this.searchtext === '') {\n this.GetPointer();\n this.isDisable = false;\n }\n }\n\n GetPointer() {\n this.dorseyService.GetPointer(this.CompanyID).subscribe(subData => {\n subData = JSON.parse(subData['_body']);\n this.pointerData = subData;\n this.pointerFrustration = this.pointerData.filter(x => x.PointerTypeID != null && x.PointerTypeID.toString() === \"1\")\n let tempFrustData = this.pointerFrustration;\n this.saveFilter = JSON.parse(JSON.stringify(this.pointerFrustration));\n this.rowCount = this.pointerFrustration.length;\n\n if (this.pointerFrustration.length === 0) {\n this.frustPaging = false;\n this.isDisable = true;\n this.disableSearch = true;\n }\n else {\n this.frustPaging = true;\n this.isDisable = false;\n this.disableSearch = false;\n if (this.userTeamID != '0' && this.userTeamID !== null && this.CompanyID !== '0') {\n this.pointerFrustration = tempFrustData.filter(x => x.TeamID.toString() === this.userTeamID.toString() && x.CompanyID === this.CompanyID);\n }\n else {\n this.pointerFrustration = tempFrustData.filter(x => x.CompanyID === this.CompanyID);\n }\n\n\n while (this.dynamicRows < this.rowCount) {\n this.rowsOnPageSet.push(this.dynamicRows);\n this.dynamicRows = this.dynamicRows + 10;\n }\n if (!this.rowsOnPageSet.includes(this.rowCount)) this.rowsOnPageSet.push(this.rowCount);\n if (this.rowsOnPageSet.length === 1) {\n if (this.rowsOnPageSet[0] <= 10)\n this.rowsOnPage = this.rowsOnPageSet[0];\n }\n }\n });\n }\n\n sort(property) {\n this.arrow = !this.arrow;\n this.isDesc = !this.isDesc; //change the direction \n this.column = property;\n this.direction = this.isDesc ? 1 : -1;\n }\n\n GetProjects() {\n this.dorseyService.GetProjects(this.CompanyID).subscribe(subData => {\n subData = JSON.parse(subData['_body']);\n this.projectData = subData;\n\n });\n }\n GetEmployee() {\n this.dorseyService.GetEmployee(this.CompanyID).subscribe(subData => {\n\n subData = JSON.parse(subData['_body']);\n this.employeeData = subData;\n let temmEmployee = this.employeeData;\n\n if (this.TeamID != '0') {\n this.employeeData = temmEmployee.filter(x => x.TeamID === this.TeamID || x.CompanyID == this.CompanyID);\n } else {\n this.employeeData = temmEmployee.filter(x => x.CompanyID === this.CompanyID);\n }\n });\n }\n AddToProject() {\n this.newPointer = false;\n this.dialogCall('assign');\n }\n\n exportAsXLSX() {\n let allData = JSON.parse(JSON.stringify(this.pointerFrustration));\n for (let i = 0; i < allData.length; i++) {\n\n allData[i].Process = allData[i].ProcessName;\n allData[i].Activity = allData[i].ActivityName;\n allData[i].Team = allData[i].TeamName;\n allData[i][\"Issue ID\"] = allData[i].PointerID;\n allData[i].Type = allData[i].FrustrationsTypeName;\n allData[i].Project = allData[i].ProjectName;\n allData[i][\"Status\"] = allData[i].StatusName;\n allData[i][\"Severity\"] = allData[i].SeverityName;\n\n allData[i].Subject = allData[i].Subject;\n allData[i].Description = allData[i].Description;\n delete (allData[i].PointerID);\n delete (allData[i].ProcessName);\n delete (allData[i].ActivityName);\n delete (allData[i].TeamName);\n delete (allData[i].PointerID);\n delete (allData[i].FrustrationsTypeName);\n delete (allData[i].ProjectName);\n delete (allData[i].StatusName);\n delete (allData[i].SeverityName);\n delete (allData[i].SeverityID);\n delete (allData[i].EmployeeID);\n delete (allData[i].ActivityID);\n delete (allData[i].PointerTypeID);\n delete (allData[i].StatusID);\n delete (allData[i].DepartmentID);\n delete (allData[i].ProcessID)\n delete (allData[i].UpdatedDate);\n delete (allData[i].UpdatedBy);\n delete (allData[i].ProjectID)\n delete (allData[i].TeamID);\n delete (allData[i].FrustrationsTypeID);\n delete (allData[i].Date)\n\n delete (allData[i].IsActive);\n delete (allData[i].CreatedDate);\n delete (allData[i].CreatedBy)\n }\n\n // const json = {\n // data:allData\n // }\n // this.dorseyService.Export(json,this.loginCompanyName+'_frustration',this.loginCompanyName,'Frustration').subscribe(data=>{\n\n // });\n\n this.dorseyService.generateExcel(allData, this.loginCompanyName + '_frustration' + \"_\" + (new Date().getMonth() + 1) + '-' + new Date().getDate() + '-' + new Date().getFullYear(), 'Frustration', new Date(), this.loginCompanyName + \" Frustration Report\", copyRight, 'FFFFFF00', 'FF0000FF');\n\n\n // this.dorseyService.exportAsExcelFile(allData,this.loginCompanyName+'_frustration');\n }\n\n\n GetFrustrationType() {\n this.dorseyService.GetFrustrationType(\"1\", this.CompanyID).subscribe(subData => {\n subData = JSON.parse(subData['_body']);\n\n let tempType: any;\n tempType = subData;\n if (tempType.length === 0) {\n this.suggestionAssignTypes = false;\n this.dorseyService.GetFrustrationType('1', \"0\").subscribe(subData => {\n subData = JSON.parse(subData['_body']);\n this.frustrationtypeData = subData;\n });\n }\n else {\n this.frustrationtypeData = tempType;\n this.suggestionAssignTypes = true;\n }\n\n });\n\n\n }\n GetDepartment() {\n this.dorseyService.GetDepartment().subscribe(subData => {\n subData = JSON.parse(subData['_body']);\n this.departmentData = subData;\n });\n }\n\n GetPointerType() {\n this.dorseyService.GetPointerType().subscribe(subData => {\n subData = JSON.parse(subData['_body']);\n this.pointerTypeData = subData;\n });\n }\n GetStatus() {\n this.dorseyService.GetStatus().subscribe(subData => {\n subData = JSON.parse(subData['_body']);\n this.statusData = subData;\n this.StatusID = this.statusData[0].StatusID;\n });\n }\n GetSeverity() {\n this.dorseyService.GetSeverity().subscribe(subData => {\n subData = JSON.parse(subData['_body']);\n this.severityData = subData;\n });\n }\n\n GetTeam() {\n this.dorseyService.GetTeam(this.CompanyID).subscribe(subData => {\n subData = JSON.parse(subData['_body']);\n this.teamData = subData;\n });\n }\n GetActivity() {\n this.dorseyService.GetActivity(this.CompanyID).subscribe(subData => {\n subData = JSON.parse(subData['_body']);\n this.activityData = subData;\n });\n }\n GetProcess() {\n this.dorseyService.GetProcess(this.CompanyID).subscribe(subData => {\n subData = JSON.parse(subData['_body']);\n this.processData = subData;\n let processTemp = this.processData;\n this.processData = processTemp.filter(x => x.TeamID !== 0);\n });\n }\n\n\n dialogCall(msg: string) {\n const dialogRef = this.dialog.open(PointerDialogComponent, {\n panelClass: 'custom-dialog-container',\n data: msg + 'æææ' + false,\n });\n if (msg === 'new') {\n this.searchtext = '';\n this.GetPointer();\n }\n dialogRef.componentInstance.EmployeeID = this.EmployeeID;\n\n dialogRef.componentInstance.currentUser = this.currentUser;\n dialogRef.componentInstance.processData = this.processData;\n dialogRef.componentInstance.activityData = this.activityData;\n dialogRef.componentInstance.departmentData = this.departmentData;\n dialogRef.componentInstance.pointerTypeData = this.pointerTypeData;\n dialogRef.componentInstance.severityData = this.severityData;\n dialogRef.componentInstance.statusData = this.statusData;\n dialogRef.componentInstance.teamData = this.teamData;\n dialogRef.componentInstance.employeeData = this.employeeData;\n dialogRef.componentInstance.frustrationtypeData = this.frustrationtypeData;\n dialogRef.componentInstance.tempActivity = this.tempActivity;\n dialogRef.componentInstance.tempFrustrationType = this.tempFrustrationType;\n dialogRef.componentInstance.CompanyID = this.CompanyID;\n dialogRef.componentInstance.tempSubActivity = this.tempSubActivity;\n dialogRef.componentInstance.SubActivityID = this.SubActivityID;\n dialogRef.componentInstance.updatedBy = this.updatedBy;\n dialogRef.componentInstance.updatedDate = this.updatedDate\n if (msg === 'edit') {\n this.status = true;\n dialogRef.componentInstance.EmployeeID = this.EmployeeID;\n dialogRef.componentInstance.ProcessID = this.ProcessID;\n dialogRef.componentInstance.ActivityID = this.ActivityID;\n dialogRef.componentInstance.PointerTypeID = this.PointerTypeID;\n dialogRef.componentInstance.PointerID = this.PointerID;\n dialogRef.componentInstance.DepartmentID = this.DepartmentID;\n dialogRef.componentInstance.FrustrationTypeIDs = this.FrustrationTypeIDs;\n dialogRef.componentInstance.TeamID = this.TeamID;\n dialogRef.componentInstance.StatusID = this.StatusID;\n dialogRef.componentInstance.SeverityID = this.SeverityID;\n dialogRef.componentInstance.Subject = this.Subject;\n dialogRef.componentInstance.Description = this.Description;\n dialogRef.componentInstance.tempActivity = this.tempActivity;\n dialogRef.componentInstance.tempFrustrationType = this.tempFrustrationType;\n dialogRef.componentInstance.ProjectID = this.ProjectID;\n dialogRef.componentInstance.subActivityStatus = this.subActivityStatus;\n dialogRef.componentInstance.SubActivityID = this.SubActivityID;\n dialogRef.componentInstance.updatedBy = this.updatedBy\n dialogRef.componentInstance.updatedDate = this.updatedDate\n }\n\n dialogRef.afterClosed().subscribe(result => {\n\n\n if (this.searchtext !== '') {\n this.Searchtext();\n }\n else {\n this.GetFrustrationType();\n this.GetPointer();\n }\n\n if (result.toString() === 'true') {\n let statusMsg = '';\n if (msg === 'new' || msg != 'assign') {\n statusMsg = 'Saved successfully';\n this.dynamicRows = 10;\n this.rowsOnPageSet = [];\n this.GetPointer();\n }\n else {\n statusMsg = 'Updated successfully';\n\n }\n const dialogRefsub = this.dialog.open(PointerDialogComponent, {\n panelClass: 'custom-dialog-container',\n data: statusMsg + 'æææ' + false,\n // width: '30%'\n });\n dialogRefsub.afterClosed().subscribe(result1 => {\n this.GetPointer();\n this.GetFrustrationType();\n // this.Searchtext();\n });\n }\n });\n }\n GetTempActivity(ProcessID: string) {\n this.tempActivity = [];\n for (let i = 0; i < this.activityData.length; i++) {\n if (this.activityData[i].ProcessID === ProcessID) {\n this.tempActivity.push(this.activityData[i]);\n }\n }\n }\n // GetFrustrations(PointerTypeID:string){\n // for(let i=0;i<this.frustrationtypeData.length;i++){\n // if(this.frustrationtypeData[i].PointerTypeID===PointerTypeID){\n // this.tempFrustrationType.push(this.frustrationtypeData[i]);\n // }\n // }\n\n // }\n GetTempSubActivity(ActivityID) {\n this.tempSubActivity = [];\n for (let i = 0; i < this.activityData.length; i++) {\n if (this.activityData[i].ParentID === ActivityID) {\n this.tempSubActivity.push(this.activityData[i]);\n }\n }\n }\n EditPointer(element, text) {\n\n this.newPointer = true;\n this.GetTempActivity(element.ProcessID);\n\n\n for (let i = 0; i < this.processData.length; i++) {\n if (this.processData[i].ProcessID === element.ProcessID) {\n this.TeamID = this.processData[i]['TeamID'];\n\n }\n }\n\n //this.GetFrustrations(element.PointerTypeID);\n this.ProjectID = element.ProjectID\n this.PointerID = element.PointerID;\n this.ProcessID = element.ProcessID;\n this.ActivityID = element.ActivityID;\n this.PointerTypeID = element.PointerTypeID;\n this.EmployeeID = element.EmployeeID;\n this.SeverityID = element.SeverityID;\n this.StatusID = element.StatusID;\n this.Subject = element.Subject;\n this.Description = element.Description;\n this.DepartmentID = element.DepartmentID;\n this.TeamID = element.TeamID;\n this.updatedDate = element.UpdatedDate;\n this.updatedBy = element.UpdatedBy;\n this.FrustrationTypeIDs.push(element.FrustrationsTypeID);\n\n for (let i = 0; i < this.activityData.length; i++) {\n if (element.ActivityID === this.activityData[i].ActivityID) {\n this.ParentID = this.activityData[i].ParentID;\n }\n\n }\n if (this.ParentID.toString() === '0') {\n this.ActivityID = element.ActivityID;\n this.subActivityStatus = false;\n } else {\n this.subActivityStatus = true;\n this.SubActivityID = element.ActivityID;\n this.ActivityID = this.ParentID;\n }\n\n this.dialogCall('edit');\n }\n\n\n ifMaxRow() {\n\n if (this.rowsOnPage == this.pointerData.length) {\n this.rowsOnPage = this.rowsOnPage - 1;\n }\n }\n\n DeletePointer(element) {\n\n this.newPointer = true;\n this.PointerID = element.PointerID;\n\n\n const dialogRef = this.dialog.open(PointerDialogComponent, {\n panelClass: 'custom-dialog-container',\n data: 'Are you sure you want to delete frustation: ' + element.PointerID + '?æææ' + true,\n // width: '40%'\n });\n // this.condition = true;\n\n dialogRef.afterClosed().subscribe(result => {\n if (result) {\n\n /// this.condition = true;\n this.dorseyService.DeletePointer(this.PointerID).subscribe(data => {\n\n if (data.ok) {\n this.ifMaxRow();\n this.condition = true;\n this.dialogCall('Deleted successfully');\n }\n this.dynamicRows = 10;\n this.rowsOnPageSet = [];\n this.GetPointer();\n });\n }\n });\n }\n\n\n\n}\n\n\n\n@Component({\n selector: 'app-dialog',\n templateUrl: 'dialog.html',\n // styleUrls: ['dialog.css'],\n providers: [DorseyService, DatePipe],\n})\nexport class PointerDialogComponent implements OnInit {\n suggestionAssignTypes = false;\n projectData: any;\n ProjectID: string;\n condition = false;\n status = false;\n employeeData: any;\n processData: any;\n activityData: any;\n pointerTypeData: any;\n frustrationtypeData: any;\n departmentData: any;\n teamData: any;\n severityData: any;\n statusData: any;\n dataSelf = '';\n EmployeeID: string;\n currentUser: string;\n ProcessID: string;\n ActivityID: string;\n PointerTypeID = \"1\";\n FrustrationTypeID: string;\n DepartmentID: string;\n TeamID: string;\n StatusID: string;\n SeverityID: string;\n Subject: string;\n Description: string;\n PointerID: string;\n tempActivity = [];\n tempFrustrationType = [];\n processCtrl = new FormControl();\n conditionActivity = '';\n filteredProcess: Observable<any[]>;\n tempProcess: any;\n tempDepart: any;\n CompanyID: string;\n processTeamData: any;\n subActivityStatus = false;\n tempSubActivity = [];\n SubActivityID: string;\n typeAvai = false;\n FTextBoxType: string;\n FTextBoxType2: any;\n FrustrationTypeIDs = [];\n typeEdit = false;\n showDd = false;\n TypeIDS: any;\n pointerData: any;\n frustTypeName: any;\n editClick = false;\n notEdit = true;\n enableEdit = true;\n disableFrustType = false;\n updatedBy: any;\n updatedDate = new Date();\n constructor(public dialog: MatDialog,\n public dialogRef: MatDialogRef<PointerDialogComponent>,\n @Inject(MAT_DIALOG_DATA) public data: any, public dorseyService: DorseyService, private datepipe: DatePipe) {\n this.data = this.data.split('æææ');\n if (this.data[1] === 'true') {\n this.condition = true;\n } else if (this.data[1] === 'false') {\n this.condition = false;\n }\n else {\n if (this.data[1] === '') {\n this.conditionActivity = 'process';\n } else {\n this.conditionActivity = 'activity';\n }\n // if (this.data[1] === '') {\n // this.conditionActivity = 'process';\n // } else {\n // this.conditionActivity = 'activity';\n // }\n // }\n\n // else {\n // if(this.data[1]=='issue')\n // {\n // this.conditionActivity = '';\n // }\n }\n if (this.data[0] === 'new') {\n this.disableFrustType = false;\n } else {\n this.disableFrustType = true;\n }\n this.data = this.data[0];\n }\n\n ngOnInit() {\n let data = this.frustrationtypeData.filter(x => x.CompanyID.toString() === this.CompanyID.toString());\n if (data.length == 0) {\n this.suggestionAssignTypes = true;\n }\n else {\n this.typeAvai = false;\n this.suggestionAssignTypes = false;\n }\n this.GetStatus();\n if (this.SubActivityID) {\n this.GetTempSubActivity(this.ActivityID);\n }\n }\n GetStatus() {\n this.dorseyService.GetStatus().subscribe(subData => {\n subData = JSON.parse(subData['_body']);\n this.statusData = subData;\n });\n }\n onYesClick() {\n this.dialogRef.close(true);\n }\n onNoClick(): void {\n this.dialogRef.close();\n }\n ToggleSubActivity() {\n this.subActivityStatus = !this.subActivityStatus;\n }\n\n AddPointer() {\n let count = 0;\n const Editcount = 0;\n\n if (this.ProcessID === undefined || //this.ActivityID === undefined ||this.EmployeeID === undefined || this.Description===''|| this.Description === undefined ||\n this.PointerTypeID === undefined || this.FrustrationTypeID === undefined ||\n this.TeamID === undefined || this.SeverityID === undefined || this.Subject == undefined || this.StatusID === undefined ||\n\n this.ProcessID === '' || // this.ActivityID === '' || this.EmployeeID === '' ||\n this.PointerTypeID === '' ||\n //this.FrustrationTypeIDs.length === 0 || \n this.TeamID === '' || this.SeverityID === '' || this.Subject.trim() === '' || this.StatusID === '' || this.FrustrationTypeID.length === 0) {\n\n this.dataSelf = 'Please enter mandatory(*) fields';\n if (this.data === 'new') {\n\n }\n count++;\n }\n\n if (count === 0 && Editcount === 0) {\n this.dataSelf = '';\n if (this.data === 'new') {\n\n this.Saving(this.data);\n } else {\n this.Saving(this.data);\n }\n }\n }\n frustrationTypesDa(event) {\n this.FrustrationTypeID = event.value;\n }\n Saving(msg: string) {\n if (this.ActivityID === '' || this.ActivityID === undefined) {\n this.ActivityID = \"0\";\n }\n\n if (this.ProjectID === '' || this.ProjectID === undefined || this.ProjectID === null) {\n this.ProjectID = \"0\";\n }\n let activityId: string;\n if (this.subActivityStatus) {\n activityId = this.SubActivityID\n }\n else {\n activityId = this.ActivityID;\n }\n const json = {\n CompanyID: this.CompanyID,\n PointerID: this.PointerID,\n EmployeeID: \"0\",\n ProessID: this.ProcessID,\n ActivityID: activityId,\n PointerTypeID: this.PointerTypeID,\n FrustrationsTypeID: this.FrustrationTypeID,\n DepartmentID: \"0\",\n TeamID: this.TeamID,\n SeverityID: this.SeverityID,\n StatusID: this.StatusID,\n Subject: this.Subject,\n Description: this.Description,\n CreatedBy: this.currentUser,\n UpdatedBy: this.currentUser,\n ProjectID: this.ProjectID,\n }\n if (msg === 'new') {\n\n this.dorseyService.SavePointer(json, 'No').subscribe(data => {\n\n if (data['_body'].toString() !== \"0\") {\n\n if (this.PointerTypeID.toString() === \"1\") {\n this.PointerID = data['_body'].toString();\n const caseData = {\n PointerID: this.PointerID,\n CreatedBy: this.currentUser,\n UpdatedBy: this.currentUser\n };\n this.dorseyService.SaveCase(caseData).subscribe(data => {\n if (data['_body'].toString() !== '0') {\n {\n\n }\n }\n });\n\n // this.dialogRef.close(true);\n this.dataSelf = 'Saved succesfully';\n // this.FrustrationTypeIDs=[];\n this.EmployeeID = '';\n this.DepartmentID = '';\n this.FrustrationTypeID = '';\n this.Subject = '';\n this.Description = '';\n this.SeverityID = '';\n this.StatusID = this.statusData[0].StatusID;\n this.PointerID = '';\n this.FTextBoxType2 = '';\n this.showDd = true;\n this.FrustrationTypeIDs = [];\n\n }\n else {\n this.dataSelf = 'Updated successfully';\n }\n }\n\n });\n } else {\n\n this.dorseyService.SavePointer(json, 'No').subscribe(data => {\n\n if (data['_body'].toString() !== '0') {\n this.dataSelf = 'Updated successfully';\n setTimeout(() => {\n this.dialogRef.close(true);\n }, 1000);\n } else {\n this.dataSelf = 'Updated failed';\n }\n });\n }\n }\n\n\n Clear() {\n this.dialogRef.close(false);\n }\n employee(event) {\n this.EmployeeID = event.value;\n let tempEmp = this.employeeData.filter(x => x.EmployeeID === this.EmployeeID);\n\n if (tempEmp.length > 0 && tempEmp.length === 1) {\n this.tempDepart = this.departmentData.filter(x => x.DepartmentID === tempEmp[0].DepartmentID);\n this.DepartmentID = this.tempDepart[0].DepartmentID;\n\n }\n }\n process(event) {\n this.ProcessID = event.value;\n this.tempActivity = [];\n this.GetTempActivity(this.ProcessID);\n\n\n for (let i = 0; i < this.processData.length; i++) {\n if (this.processData[i].ProcessID === this.ProcessID) {\n this.TeamID = this.processData[i]['TeamID'];\n\n }\n }\n\n }\n GetTempActivity(processID) {\n this.tempSubActivity = [];\n for (let i = 0; i < this.activityData.length; i++) {\n if (this.activityData[i].ProcessID === processID) {\n this.tempActivity.push(this.activityData[i]);\n }\n }\n }\n activity(event) {\n this.tempSubActivity = [];\n this.ActivityID = event.value;\n this.GetTempSubActivity(this.ActivityID);\n }\n\n GetTempSubActivity(ActivityID) {\n this.tempSubActivity = [];\n for (let i = 0; i < this.activityData.length; i++) {\n\n if (this.activityData[i].ParentID === ActivityID) {\n this.tempSubActivity.push(this.activityData[i]);\n }\n }\n }\n pointerType(event) {\n this.PointerTypeID = event.value;\n this.tempFrustrationType = [];\n this.GetTempFrastrations();\n }\n\n GetTempFrastrations() {\n for (let i = 0; i < this.frustrationtypeData.length; i++) {\n if (this.frustrationtypeData[i].PointerTypeID === this.PointerTypeID) {\n this.tempFrustrationType.push(this.frustrationtypeData[i]);\n }\n }\n }\n\n frustrationType(event) {\n this.FrustrationTypeIDs = event.value;\n\n let data = this.frustrationtypeData.filter(x => x.FrustrationsTypeID === this.FrustrationTypeIDs);\n if (data.length > 0) {\n this.FrustrationTypeIDs = data[0];\n }\n\n this.enableEdit = false;\n if (!this.notEdit) {\n this.typeEdit = true;\n }\n }\n frustrationTypes(event) {\n this.FrustrationTypeIDs = event.value;\n }\n department(event) {\n this.DepartmentID = event.value;\n }\n\n team(event) {\n this.TeamID = event.value;\n\n }\n\n GetKeyProcessTeam(TeamID) {\n this.dorseyService.GetKeyProcessTeam().subscribe(subData => {\n subData = JSON.parse(subData['_body']);\n this.processTeamData = subData;\n for (let i = 0; i < this.processTeamData.length; i++) {\n if (this.processTeamData[i].TeamID === TeamID) {\n this.tempProcess.push(this.processTeamData[i]);\n }\n }\n });\n }\n\n severity(event) {\n this.SeverityID = event.value;\n }\n\n statusChange(event) {\n this.StatusID = event.value;\n }\n\n AddType() {\n // console.log(\"addtype\");\n this.typeAvai = true;\n }\n CancelType() {\n this.FTextBoxType = '';\n this.typeAvai = false;\n // this.suggestionAssignTypes=false;\n // this.GetFrustrationType();\n this.typeEdit = false;\n // this.notEdit = true;\n // this.enableEdit=true;\n }\n SaveType() {\n // console.log(this.PointerTypeID);\n let count = 0;\n const Editcount = 0;\n\n if (this.FTextBoxType === undefined || this.FTextBoxType.trim() === '') {\n\n this.dataSelf = 'Please enter mandatory(*) fields';\n if (this.data === 'new') {\n\n }\n count++;\n }\n\n if (count === 0 && Editcount === 0) {\n this.dataSelf = '';\n if (this.data === 'new') {\n\n this.SaveTypeDetails(this.data);\n } else {\n this.SaveTypeDetails(this.data);\n }\n } else {\n\n }\n\n }\n\n SaveTypeDetails(msg: string) {\n // console.log(this.FrustrationTypeIDs);\n if (this.FTextBoxType !== undefined || this.FTextBoxType !== '') {\n this.FrustrationTypeIDs = [];\n if (msg === 'new') {\n this.FrustrationTypeIDs.push(this.FTextBoxType);\n // console.log(this.FrustrationTypeIDs);\n this.TypeIDS = this.FrustrationTypeIDs\n }\n\n if (msg === 'edit') {\n // console.log(this.frustrationtypeData);\n // console.log(this.FTextBoxType2);\n this.FrustrationTypeIDs.push(this.FTextBoxType2.FrustrationsTypeName);\n // console.log(this.FrustrationTypeIDs);\n this.TypeIDS = this.FrustrationTypeIDs[0].FrustrationsTypeName;\n }\n }\n\n const json = {\n FrustrationsTypeID: this.FrustrationTypeIDs[0].FrustrationsTypeID,\n CompanyID: this.CompanyID,\n TypeIDS: this.TypeIDS,\n CreatedBy: this.currentUser,\n PointerTypeID: 1\n }\n if (msg === 'new') {\n // console.log(json);\n this.dorseyService.SaveTypes(json, 'No').subscribe(data => {\n // console.log(data['_body'].toString());\n if (data['_body'].toString() === 'true') {\n // console.log(data['_body']);\n this.GetFrustrationType();\n this.FTextBoxType = '';\n this.enableEdit = true;\n this.dataSelf = 'Frustration type saved successfully';\n this.typeAvai = false;\n // this.suggestionAssignTypes=false;\n // this.dialogRef.close(true);\n\n } else {\n this.dataSelf = 'Frustration type saved failed';\n }\n\n });\n }\n else {\n this.dorseyService.SaveTypes(json, 'No').subscribe(data => {\n // console.log(data['_body']);\n if (data['_body'].toString() === 'true') {\n\n\n this.dataSelf = 'Frustration type updated successfully';\n setTimeout(() => {\n this.dataSelf = '';\n }, 2000);\n this.typeAvai = false;\n this.GetFrustrationType();\n // this.FTextBoxType='';\n\n } else {\n this.dataSelf = 'Frustration type updated failed';\n }\n });\n }\n\n }\n\n EditableType() {\n this.typeEdit = true;\n\n\n // if(this.FTextBoxType2 === undefined || this.FTextBoxType2 === ''){\n // this.dataSelf = \"Select Frustration Type in dropdown\";\n // setTimeout(() => {\n // this.dataSelf='';\n // }, 2000);\n // }else{\n // this.notEdit = false;\n // this.editClick=true;\n // // this.EditType();\n // this.dataSelf='';\n // }\n }\n\n EditType() {\n\n if (this.FTextBoxType2.FrustrationsTypeName === undefined || this.FTextBoxType2.FrustrationsTypeName === '') {\n this.dataSelf = \"Please enter mandatory(*) fields\"\n } else {\n //console.log(element);\n // console.log(this.FrustrationTypeIDs);\n //this.showDd=true;\n this.SaveTypeDetails('edit');\n this.typeEdit = false;\n // this.FTextBoxType= ''\n }\n\n\n }\n\n GetPointer() {\n this.dorseyService.GetPointer(this.CompanyID).subscribe(subData => {\n subData = JSON.parse(subData['_body']);\n this.pointerData = subData;\n });\n }\n\n\n DeleteType(element, name) {\n\n const dialogRef = this.dialog.open(PointerDialogComponent2, {\n\n panelClass: 'custom-dialog-container',\n data: 'Are you sure you want to delete frustation type:' + name + '?æææ' + true,\n // width: '40%'\n });\n // this.condition = true;\n\n dialogRef.afterClosed().subscribe(result => {\n if (result) {\n // console.log(this.FrustrationTypeIDs);\n // console.log(element);\n for (let i = 0; i < this.FrustrationTypeIDs.length; i++) {\n this.FrustrationTypeID = this.FrustrationTypeIDs[i].FrustrationsTypeID;\n // console.log(this.FrustrationTypeID);\n }\n this.GetPointer();\n let issueCount = 0;\n setTimeout(() => {\n // console.log(this.pointerData);\n for (let i = 0; i < this.pointerData.length; i++) {\n // console.log(element, this.pointerData[i].FrustrationsTypeID);\n if (element == this.pointerData[i].FrustrationsTypeID) {\n issueCount++;\n }\n\n\n }\n\n /// this.condition = true;\n // console.log(!issueCount);\n if (!issueCount) {\n // console.log(\"****\");\n this.dorseyService.DeleteType(element).subscribe(data => {\n //alert('Are you sure ');\n this.notEdit = true;\n this.dataSelf = \"Deleted successfully\";\n if (data.ok) {\n this.condition = true;\n // this.dialogCall('Deleted successfully');\n }\n this.GetFrustrationType();\n this.FTextBoxType = '';\n });\n\n } else {\n this.dataSelf = \"This frustration type is in use\";\n }\n\n }, 500);\n\n\n }\n });\n\n\n\n\n\n this.typeEdit = false;\n }\n Tranfer() {\n\n const json = {\n CompanyID: this.CompanyID,\n TypeIDS: JSON.stringify(this.FrustrationTypeIDs),\n CreatedBy: this.currentUser,\n PointerTypeID: 1\n }\n\n this.dorseyService.SaveTypes(json, 'No').subscribe(data => {\n // console.log(data['_body'].toString());\n if (data['_body'].toString() === 'true') {\n\n\n this.GetFrustrationType();\n // this.dialogRef.close(true);\n this.dataSelf = 'Frustration type saved successfully';\n setTimeout(() => {\n this.dataSelf = '';\n }, 2000);\n } else {\n this.dataSelf = 'Frustration type saved failed';\n setTimeout(() => {\n this.dataSelf = '';\n }, 2000);\n }\n\n });\n }\n GetFrustrationType() {\n this.dorseyService.GetFrustrationType(\"1\", this.CompanyID).subscribe(subData => {\n subData = JSON.parse(subData['_body']);\n\n let tempType: any;\n tempType = subData;\n // console.log(tempType);\n if (tempType.length === 0) {\n this.suggestionAssignTypes = true;\n this.dorseyService.GetFrustrationType('1', \"0\").subscribe(subData => {\n subData = JSON.parse(subData['_body']);\n this.frustrationtypeData = subData;\n // console.log(this.frustrationtypeData)\n });\n }\n else {\n this.frustrationtypeData = tempType;\n this.suggestionAssignTypes = false;\n }\n\n });\n\n\n }\n\n}\n\n\n@Component({\n selector: 'app-dialog',\n templateUrl: 'dialog.html',\n styleUrls: ['dialog.css'],\n providers: [DorseyService]\n})\nexport class PointerDialogComponent2 implements OnInit {\n condition = false;\n processData: any;\n //ProcessID:string;\n dataSelf: string;\n TeamName: string;\n TeamID: string;\n teamData: any;\n CompanyID: string;\n currentUser: string;\n TeamDescription: string;\n processIDs = [];\n updatedBy: any;\n updatedDate = new Date();\n constructor(\n public dialogRef: MatDialogRef<PointerDialogComponent2>,\n @Inject(MAT_DIALOG_DATA) public data: any, public dorseyService: DorseyService) {\n // dialogRef.disableClose=true;\n this.data = this.data.split('æææ');\n if (this.data[1] === 'true') {\n this.condition = true;\n } else {\n this.condition = false;\n }\n this.data = this.data[0];\n }\n ngOnInit() {\n\n }\n onYesClick() {\n this.dialogRef.close(true);\n }\n onNoClick(): void {\n this.dialogRef.close();\n }\n\n Clear() {\n this.dialogRef.close(false);\n }\n\n}\n","module.exports = \".dialogHead{\\r\\n display: flex;\\r\\n width: 100%;\\r\\n margin: 0;\\r\\n padding: 0;\\r\\n justify-content: space-between;\\r\\n}\\r\\n\\r\\n.infoHead{\\r\\nflex:2;\\r\\ndisplay:flex;\\r\\n}\\r\\n\\r\\n.companyInfo{\\r\\nflex: 2;\\r\\n}\\r\\n\\r\\n.teamInfo{\\r\\n flex: 1;\\r\\n }\\r\\n\\r\\n.teamInfo{\\r\\n padding-left: 10px;\\r\\n }\\r\\n\\r\\n.ActionButton{\\r\\n flex: 1;\\r\\n display: flex;\\r\\n justify-content: flex-end;\\r\\n}\\r\\n\\r\\n.ActionButton div{\\r\\nmargin: 10px;\\r\\n}\\r\\n\\r\\n.XBtn{\\r\\n display: flex;\\r\\n justify-content: flex-end;\\r\\n position: relative;\\r\\n padding: 0;\\r\\n margin-top: -15px;\\r\\n cursor: pointer;\\r\\n}\\r\\n\\r\\n.Xbtn .close{\\r\\ncursor: pointer !important;\\r\\n}\\r\\n\\r\\n@media (max-width:916px){\\r\\n.dialogHead{\\r\\n flex-direction: column;\\r\\n}\\r\\n.ActionButton{\\r\\n flex: 1;\\r\\n display: flex;\\r\\n justify-content: center;\\r\\n}\\r\\n\\r\\n}\\r\\n\\r\\n@media (max-width:916px){\\r\\n .dialogHead{\\r\\n flex-direction: column;\\r\\n }\\r\\n .ActionButton{\\r\\n flex: 1;\\r\\n display: flex;\\r\\n justify-content: center;\\r\\n }\\r\\n \\r\\n }\\r\\n\\r\\n@media (max-width:576px){\\r\\n \\r\\n .dialogHead, .ActionButton, .infoHead{\\r\\n flex-direction: column;\\r\\n }\\r\\n\\r\\n .teamInfo{\\r\\n padding-left: 0;\\r\\n }\\r\\n\\r\\n .ActionButton {\\r\\n margin-top: 10px;\\r\\n }\\r\\n\\r\\n .ActionButton div{\\r\\n margin: 0;\\r\\n }\\r\\n \\r\\n}\\r\\n\\r\\n.mappings, .mappings1 {\\r\\n min-width: 700px;\\r\\n min-height: 200px;\\r\\n}\\r\\n\\r\\n[tble] table {\\r\\n width:100%;\\r\\n font-size: smaller;\\r\\n}\\r\\n\\r\\n[tble] th,td{\\r\\n align-content: center;\\r\\n text-align: left;\\r\\n font-size: smaller;\\r\\n}\\r\\n\\r\\n.btn-info{\\r\\n background-color:#3775b5 !important;\\r\\n}\\r\\n\\r\\n.redstar{\\r\\n margin-right: 3px;\\r\\n}\\r\\n\\r\\n.circlelg {\\r\\n width: 17px;\\r\\n height: 17px;\\r\\n border-radius: 50%;\\r\\n font-size: 10px;\\r\\n font-weight: bold;\\r\\n color: white;\\r\\n border: 2px solid white;\\r\\n text-align: center;\\r\\n \\r\\n}\\r\\n\\r\\n.frustrationbg {\\r\\n background-color: #d55632;\\r\\n}\\r\\n\\r\\n.metricsbg {\\r\\n background-color: #4aabe7;\\r\\n}\\r\\n\\r\\n[tble] th {\\r\\n color:white; \\r\\nbackground-color: \\t#474747;\\r\\nheight: 35px;\\r\\n font-size: 13px;\\r\\n}\\r\\n\\r\\n[tble] td {\\r\\n height: 35px;\\r\\n font-size: 13px;\\r\\n}\\r\\n\\r\\n[tble] table {\\r\\n border-collapse: collapse;\\r\\n \\r\\n}\\r\\n\\r\\n[tble] table, th, td {\\r\\n border: 0px solid #e1e1e1;\\r\\n overflow:hidden;\\r\\n word-wrap:break-word;\\r\\n}\\r\\n\\r\\n[tble] table.fixed { table-layout:fixed; }\\r\\n\\r\\n[tble] table.fixed td { overflow: hidden; }\\r\\n\\r\\n[tble1] table {\\r\\n width:100%;\\r\\n font-size: smaller;\\r\\n}\\r\\n\\r\\n[tble1] th,td{\\r\\nalign-content: center;\\r\\n text-align: left;\\r\\n font-size: smaller;\\r\\n}\\r\\n\\r\\n[tble1] th {\\r\\ncolor:white; \\r\\nbackground-color: \\t#474747;\\r\\nheight: 35px;\\r\\nfont-size: 13px;\\r\\n}\\r\\n\\r\\n[tble1] td {\\r\\n height: 35px;\\r\\n font-size: 13px;\\r\\n}\\r\\n\\r\\n[tble1] table {\\r\\n border-collapse: collapse;\\r\\n \\r\\n}\\r\\n\\r\\n[tble1] table, th, td {\\r\\n border: 0px solid #e1e1e1;\\r\\n overflow:hidden;\\r\\n word-wrap:break-word;\\r\\n}\\r\\n\\r\\n[tble1] table.fixed { table-layout:fixed; }\\r\\n\\r\\n[tble1] table.fixed td { overflow: hidden; }\\r\\n\\r\\n.highlight td {background: #C0C0C0;}\\r\\n\\r\\n.fa{\\r\\n font-size: 18px; \\r\\n}\\r\\n\\r\\n.fa-square-o{\\r\\n font-size:24px\\r\\n}\\r\\n\\r\\n.fa-plus{\\r\\nfont-size: 13px;\\r\\n}\\r\\n\\r\\n.dots {\\r\\n flex-wrap: wrap;\\r\\n}\\r\\n\\r\\ninput {\\r\\n width: 181%;\\r\\n}\\r\\n\\r\\n.square {\\r\\n padding: 0px;\\r\\n background-color: #3775b5;\\r\\n color: white;\\r\\n text-align: center;\\r\\n cursor: pointer;\\r\\n border-radius: 5px;\\r\\n border: 2px solid #3775b5;\\r\\n font-size: 13px;\\r\\n font-weight: bold;\\r\\n box-shadow: 0px 8px 3px 0px #265382;\\r\\n font-family: unset;\\r\\n}\\r\\n\\r\\n.squareActvty {\\r\\n padding: 0px;\\r\\n background-color: #FFFFCC;\\r\\n color: black;\\r\\n text-align: center;\\r\\n cursor: pointer;\\r\\n border: 2px solid #FFFFCC;\\r\\n border-radius: 5px;\\r\\n word-break: break-word;\\r\\n width: 100px;\\r\\n box-shadow: 3px 3px 3px\\r\\n }\\r\\n\\r\\n[squareBox] {\\r\\n padding-top: 6%;\\r\\n padding-right: 2%;\\r\\n }\\r\\n\\r\\n.squareInActvty {\\r\\n padding: 3px;\\r\\n background-color: #e2e3e4;\\r\\n color: black;\\r\\n text-align: left;\\r\\n cursor: pointer;\\r\\n border: 2px solid #e2e3e4;\\r\\n border-radius: 5px;\\r\\n font-size: 12px;\\r\\n word-break: break-word;\\r\\n font-family: unset;\\r\\n \\r\\n }\\r\\n\\r\\n.squareExActvty {\\r\\n padding: 3px;\\r\\n background-color: #a3cda2;\\r\\n color: black;\\r\\n text-align: left;\\r\\n cursor: pointer;\\r\\n border: 2px solid #a3cda2;\\r\\n border-radius: 5px;\\r\\n font-size: 12px;\\r\\n word-break: break-word;\\r\\n \\r\\n }\\r\\n\\r\\n.squareKPI {\\r\\n padding-left: 9%;\\r\\n padding-right: 7px;\\r\\n background-color: #6ADAFF;\\r\\n color: white;\\r\\n text-align: center;\\r\\n border-radius: 5px;\\r\\n font-size: 17px;\\r\\n width: 25px;\\r\\n cursor: pointer;\\r\\n }\\r\\n\\r\\n.squareKPI1 {\\r\\n background-color: #6ADAFF;\\r\\n color: white;\\r\\n text-align: center;\\r\\n border-radius: 5px;\\r\\n font-size: 11px;\\r\\n border-radius: 5px;\\r\\n cursor: pointer;\\r\\n }\\r\\n\\r\\n.squareKPI2 {\\r\\n border: 2px solid white;\\r\\n height: 17px;\\r\\n width: 17px;\\r\\n background-color: #4aabe7;\\r\\n border-radius: 50%;\\r\\n display: inline-block;\\r\\n text-align: center;\\r\\n color: white;\\r\\n font-size: 10px;\\r\\n margin-left: 6px;\\r\\n font-weight:bold;\\r\\n /* margin-top: 29px; */\\r\\n margin-left: 1px;\\r\\n }\\r\\n\\r\\n.squareIssue {\\r\\n background-color: #FFAAE3;\\r\\n color: white;\\r\\n text-align: center;\\r\\n cursor: pointer;\\r\\n width: 25px;\\r\\n word-wrap: break-word;\\r\\n word-break: break-all;\\r\\n border-radius: 5px;\\r\\n font-size: 17px;\\r\\n }\\r\\n\\r\\n.squareIssue1 {\\r\\n border: 2px solid white;\\r\\n height: 17px;\\r\\n width: 17px;\\r\\n background-color: #d55632;\\r\\n border-radius: 50%;\\r\\n display: inline-block;\\r\\n text-align: center;\\r\\n color: white;\\r\\n font-size: 10px;\\r\\n margin-left: 6px;\\r\\n font-weight:bold;\\r\\n /* margin-top: 29px; */\\r\\n }\\r\\n\\r\\n.circleM {\\r\\n height: 10%;\\r\\n width: 10%;\\r\\n background-color: #6ADAFF;\\r\\n border-radius: 50%;\\r\\n text-align: center;\\r\\n color: white;\\r\\n padding: 0px 5px;\\r\\n }\\r\\n\\r\\n.circleI {\\r\\n height: 40%;\\r\\n width: 5%;\\r\\n /* background-color: #EF74FC; */\\r\\n border-radius: 50%;\\r\\n text-align: center;\\r\\n padding: 0px 0px;\\r\\n font-size: 12px;\\r\\n margin-left: 5px;\\r\\n }\\r\\n\\r\\n.circleI .fa-lg{\\r\\n margin-left: -8px;\\r\\n }\\r\\n\\r\\ntable td,\\r\\n th {\\r\\n font-size: 10px;\\r\\n }\\r\\n\\r\\n.squareIssues {\\r\\n background-color: #f7aaa3;\\r\\n border: 2px solid #f7aaa3;\\r\\n color: black;\\r\\n text-align: center;\\r\\n cursor: pointer;\\r\\n border-radius: 5px;\\r\\n font-size: 11px;\\r\\n word-break: break-word;\\r\\n box-shadow: 0 3px 3px 0px #d55632;\\r\\n width: 270px;\\r\\n }\\r\\n\\r\\n.squareM {\\r\\n background-color: #4aabe7;\\r\\n border: 2px solid #4aabe7;\\r\\n color: black;\\r\\n text-align: center;\\r\\n cursor: pointer;\\r\\n border-radius: 5px;\\r\\n font-size: 11px;\\r\\n word-break: break-word;\\r\\n box-shadow: 0 3px 3px 0px #4aabe7;\\r\\n /* width:100px; */\\r\\n width: 270px;\\r\\n }\\r\\n\\r\\n.circleS {\\r\\n background-color: #d9c25a;\\r\\n border-radius: 15px;\\r\\n text-align: center;\\r\\n color: white;\\r\\n padding: 0px 5px;\\r\\n width: 12px;\\r\\n height: 12px;\\r\\n border: 1px solid white;\\r\\n margin-top: 3px;\\r\\n }\\r\\n\\r\\n.warningMsg{\\r\\n color: red;\\r\\n text-align: center;\\r\\n}\\r\\n\\r\\n.Addcolor {\\r\\n color: #ef5350 !important ;\\r\\n cursor: pointer !important ; \\r\\n}\\r\\n\\r\\n.removeColor {\\r\\n color: #ccc !important ;\\r\\n cursor: none !important ;\\r\\n}\\r\\n\\r\\n#Rowcontainer{\\r\\n display: flex;\\r\\n margin: 0;\\r\\n margin-top: -10px;\\r\\n margin-bottom: -10px;\\r\\n padding: 0;\\r\\n justify-content: space-between;\\r\\n \\r\\n\\r\\n}\\r\\n\\r\\n.tableDiv{\\r\\n overflow: auto;\\r\\n max-height: 70vh;\\r\\n}\\r\\n\\r\\n.tableDiv td{\\r\\n padding-right: 5px;\\r\\n}\\r\\n\\r\\n.tableDiv th{\\r\\n min-width: 100px !important;\\r\\n cursor: pointer;\\r\\n}\\r\\n\\r\\n.tableDiv::-webkit-scrollbar {\\r\\n width: 4px;\\r\\n}\\r\\n\\r\\n.offset-1{\\r\\n margin-left: 0%;\\r\\n}\\r\\n\\r\\n#Rowheading{\\r\\n flex: 1;\\r\\n text-align: center;\\r\\n flex-basis: 30%;\\r\\n}\\r\\n\\r\\n#Rowwrapper{\\r\\nflex: 2;\\r\\n}\\r\\n\\r\\n#RowtableActions{\\r\\ndisplay: flex;\\r\\n\\r\\njustify-content: center;\\r\\n\\r\\n}\\r\\n\\r\\n#field, #buttonview{\\r\\n margin: 2%;\\r\\n \\r\\n}\\r\\n\\r\\n#Rowheadingsmap{\\r\\n flex: 1;\\r\\n text-align: center;\\r\\n flex-basis: 30%;\\r\\n font-size: 14px;\\r\\n margin-left: -3%;\\r\\n}\\r\\n\\r\\n#buttonviewsmap{\\r\\n margin-right: 2%;\\r\\n \\r\\n}\\r\\n\\r\\n/* #searchField{\\r\\n width: 100%;\\r\\n} */\\r\\n\\r\\n/********For Mobile view ********/\\r\\n\\r\\n@media (max-width:576px){\\r\\n *{\\r\\n box-sizing: border-box;\\r\\n }\\r\\n\\r\\n table{\\r\\n margin: 2%;\\r\\n }\\r\\n\\r\\n #Rowcontainer{\\r\\n display: flex;\\r\\n margin: 0;\\r\\n padding: 0;\\r\\n flex-direction: column;\\r\\n justify-content: left;\\r\\n \\r\\n margin: 2%;\\r\\n \\r\\n }\\r\\n\\r\\n #Rowwrapper{\\r\\n width: 100%;\\r\\n }\\r\\n \\r\\n #RowtableActions{\\r\\n display: flex;\\r\\n width: 100%;\\r\\n flex-direction: column;\\r\\n justify-content: center;\\r\\n \\r\\n }\\r\\n #Rowheading{\\r\\n \\r\\n \\r\\n }\\r\\n \\r\\n\\r\\n.btn{\\r\\n width: 100%;\\r\\n \\r\\n }\\r\\n .mappings {\\r\\n min-width: 280px;\\r\\n min-height: 75px;\\r\\n }\\r\\n #btnmob{\\r\\n margin: 2%;\\r\\n }\\r\\n \\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvcHJvY2Vzcy1tYXAvZGlhbG9nLmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLGFBQWE7RUFDYixXQUFXO0VBQ1gsU0FBUztFQUNULFVBQVU7RUFDViw4QkFBOEI7QUFDaEM7O0FBRUE7QUFDQSxNQUFNO0FBQ04sWUFBWTtBQUNaOztBQUVBO0FBQ0EsT0FBTztBQUNQOztBQUVBO0VBQ0UsT0FBTztFQUNQOztBQUVBO0lBQ0Usa0JBQWtCO0VBQ3BCOztBQUVGO0VBQ0UsT0FBTztFQUNQLGFBQWE7RUFDYix5QkFBeUI7QUFDM0I7O0FBRUE7QUFDQSxZQUFZO0FBQ1o7O0FBRUE7RUFDRSxhQUFhO0VBQ2IseUJBQXlCO0VBQ3pCLGtCQUFrQjtFQUNsQixVQUFVO0VBQ1YsaUJBQWlCO0VBQ2pCLGVBQWU7QUFDakI7O0FBQ0E7QUFDQSwwQkFBMEI7QUFDMUI7O0FBRUE7QUFDQTtFQUNFLHNCQUFzQjtBQUN4QjtBQUNBO0VBQ0UsT0FBTztFQUNQLGFBQWE7RUFDYix1QkFBdUI7QUFDekI7O0FBRUE7O0FBRUE7RUFDRTtJQUNFLHNCQUFzQjtFQUN4QjtFQUNBO0lBQ0UsT0FBTztJQUNQLGFBQWE7SUFDYix1QkFBdUI7RUFDekI7O0VBRUE7O0FBRUY7O0VBRUU7SUFDRSxzQkFBc0I7RUFDeEI7O0VBRUE7SUFDRSxlQUFlO0VBQ2pCOztFQUVBO0lBQ0UsZ0JBQWdCO0VBQ2xCOztFQUVBO0lBQ0UsU0FBUztJQUNUOztBQUVKOztBQUdBO0NBQ0MsZ0JBQWdCO0NBQ2hCLGlCQUFpQjtBQUNsQjs7QUFDQTtJQUNJLFVBQVU7SUFDVixrQkFBa0I7QUFDdEI7O0FBQ0E7RUFDRSxxQkFBcUI7SUFDbkIsZ0JBQWdCO0lBQ2hCLGtCQUFrQjtBQUN0Qjs7QUFDQTtFQUNFLG1DQUFtQztBQUNyQzs7QUFDQTtFQUNFLGlCQUFpQjtBQUNuQjs7QUFHRTtJQUNFLFdBQVc7SUFDWCxZQUFZO0lBQ1osa0JBQWtCO0lBQ2xCLGVBQWU7SUFDZixpQkFBaUI7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QixvQkFBb0I7RUFDcEIsVUFBVTtFQUNWLDhCQUE4Qjs7O0FBR2hDOztBQUVBO0VBQ0UsY0FBYztFQUNkLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGtCQUFrQjtBQUNwQjs7QUFFQTtFQUNFLDJCQUEyQjtFQUMzQixlQUFlO0FBQ2pCOztBQUVBO0VBQ0UsVUFBVTtBQUNaOztBQU1BO0VBQ0UsZUFBZTtBQUNqQjs7QUFDQTtFQUNFLE9BQU87RUFDUCxrQkFBa0I7RUFDbEIsZUFBZTtBQUNqQjs7QUFDQTtBQUNBLE9BQU87QUFDUDs7QUFDQTtBQUNBLGFBQWE7O0FBRWIsdUJBQXVCOztBQUV2Qjs7QUFFQTtFQUNFLFVBQVU7O0FBRVo7O0FBRUE7RUFDRSxPQUFPO0VBQ1Asa0JBQWtCO0VBQ2xCLGVBQWU7RUFDZixlQUFlO0VBQ2YsZ0JBQWdCO0FBQ2xCOztBQUVBO0VBQ0UsZ0JBQWdCOztBQUVsQjs7QUFFQTs7R0FFRzs7QUFFSCxpQ0FBaUM7O0FBQ2pDO0VBQ0U7TUFDSSxzQkFBc0I7RUFDMUI7O0VBRUE7TUFDSSxVQUFVO0VBQ2Q7O0NBRUQ7S0FDSSxhQUFhO0tBQ2IsU0FBUztLQUNULFVBQVU7S0FDVixzQkFBc0I7S0FDdEIscUJBQXFCOztLQUVyQixVQUFVOztDQUVkOztDQUVBO0tBQ0ksV0FBVztDQUNmOztDQUVBO0NBQ0EsYUFBYTtDQUNiLFdBQVc7Q0FDWCxzQkFBc0I7Q0FDdEIsdUJBQXVCOztDQUV2QjtFQUNDOzs7Q0FHRDs7O0FBR0Q7S0FDSyxXQUFXOztDQUVmO0NBQ0E7RUFDQyxnQkFBZ0I7RUFDaEIsZ0JBQWdCO0NBQ2pCO0NBQ0E7R0FDRSxVQUFVO0NBQ1o7O0FBRUQiLCJmaWxlIjoic3JjL2FwcC9wcm9jZXNzLW1hcC9kaWFsb2cuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmRpYWxvZ0hlYWR7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICB3aWR0aDogMTAwJTtcclxuICBtYXJnaW46IDA7XHJcbiAgcGFkZGluZzogMDtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbn1cclxuXHJcbi5pbmZvSGVhZHtcclxuZmxleDoyO1xyXG5kaXNwbGF5OmZsZXg7XHJcbn1cclxuXHJcbi5jb21wYW55SW5mb3tcclxuZmxleDogMjtcclxufVxyXG5cclxuLnRlYW1JbmZve1xyXG4gIGZsZXg6IDE7XHJcbiAgfVxyXG5cclxuICAudGVhbUluZm97XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XHJcbiAgfVxyXG5cclxuLkFjdGlvbkJ1dHRvbntcclxuICBmbGV4OiAxO1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcclxufVxyXG5cclxuLkFjdGlvbkJ1dHRvbiBkaXZ7XHJcbm1hcmdpbjogMTBweDtcclxufVxyXG5cclxuLlhCdG57XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBwYWRkaW5nOiAwO1xyXG4gIG1hcmdpbi10b3A6IC0xNXB4O1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxufVxyXG4uWGJ0biAuY2xvc2V7XHJcbmN1cnNvcjogcG9pbnRlciAhaW1wb3J0YW50O1xyXG59XHJcblxyXG5AbWVkaWEgKG1heC13aWR0aDo5MTZweCl7XHJcbi5kaWFsb2dIZWFke1xyXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbn1cclxuLkFjdGlvbkJ1dHRvbntcclxuICBmbGV4OiAxO1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbn1cclxuXHJcbn1cclxuXHJcbkBtZWRpYSAobWF4LXdpZHRoOjkxNnB4KXtcclxuICAuZGlhbG9nSGVhZHtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgfVxyXG4gIC5BY3Rpb25CdXR0b257XHJcbiAgICBmbGV4OiAxO1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gIH1cclxuICBcclxuICB9XHJcblxyXG5AbWVkaWEgKG1heC13aWR0aDo1NzZweCl7XHJcbiAgXHJcbiAgLmRpYWxvZ0hlYWQsIC5BY3Rpb25CdXR0b24sIC5pbmZvSGVhZHtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgfVxyXG5cclxuICAudGVhbUluZm97XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XHJcbiAgfVxyXG5cclxuICAuQWN0aW9uQnV0dG9uIHtcclxuICAgIG1hcmdpbi10b3A6IDEwcHg7XHJcbiAgfVxyXG5cclxuICAuQWN0aW9uQnV0dG9uIGRpdntcclxuICAgIG1hcmdpbjogMDtcclxuICAgIH1cclxuICBcclxufVxyXG5cclxuXHJcbi5tYXBwaW5ncywgLm1hcHBpbmdzMSB7XHJcbiBtaW4td2lkdGg6IDcwMHB4O1xyXG4gbWluLWhlaWdodDogMjAwcHg7XHJcbn1cclxuW3RibGVdIHRhYmxlIHtcclxuICAgIHdpZHRoOjEwMCU7XHJcbiAgICBmb250LXNpemU6IHNtYWxsZXI7XHJcbn1cclxuW3RibGVdIHRoLHRke1xyXG4gIGFsaWduLWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICBmb250LXNpemU6IHNtYWxsZXI7XHJcbn1cclxuLmJ0bi1pbmZve1xyXG4gIGJhY2tncm91bmQtY29sb3I6IzM3NzViNSAhaW1wb3J0YW50O1xyXG59XHJcbi5yZWRzdGFye1xyXG4gIG1hcmdpbi1yaWdodDogM3B4O1xyXG59XHJcblxyXG5cclxuICAuY2lyY2xlbGcge1xyXG4gICAgd2lkdGg6IDE3cHg7XHJcbiAgICBoZWlnaHQ6IDE3cHg7XHJcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgICBmb250LXNpemU6IDEwcHg7XHJcbiAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgIGNvbG9yOiB3aGl0ZTtcclxuICAgIGJvcmRlcjogMnB4IHNvbGlkIHdoaXRlO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIFxyXG59XHJcblxyXG4uZnJ1c3RyYXRpb25iZyB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Q1NTYzMjtcclxufVxyXG5cclxuLm1ldHJpY3NiZyB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRhYWJlNztcclxufVxyXG5cclxuW3RibGVdIHRoIHtcclxuIGNvbG9yOndoaXRlOyAgICAgXHJcbmJhY2tncm91bmQtY29sb3I6IFx0IzQ3NDc0NztcclxuaGVpZ2h0OiAzNXB4O1xyXG4gZm9udC1zaXplOiAxM3B4O1xyXG59XHJcblt0YmxlXSB0ZCB7XHJcbiAgICBoZWlnaHQ6IDM1cHg7XHJcbiAgICAgZm9udC1zaXplOiAxM3B4O1xyXG59XHJcblt0YmxlXSB0YWJsZSB7XHJcbiAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xyXG4gICAgXHJcbn1cclxuW3RibGVdIHRhYmxlLCB0aCwgdGQge1xyXG4gICAgYm9yZGVyOiAwcHggc29saWQgI2UxZTFlMTtcclxuICAgIG92ZXJmbG93OmhpZGRlbjtcclxuICAgIHdvcmQtd3JhcDpicmVhay13b3JkO1xyXG59XHJcblt0YmxlXSB0YWJsZS5maXhlZCB7IHRhYmxlLWxheW91dDpmaXhlZDsgfVxyXG5bdGJsZV0gdGFibGUuZml4ZWQgdGQgeyBvdmVyZmxvdzogaGlkZGVuOyB9XHJcblxyXG5cclxuXHJcblxyXG5bdGJsZTFdIHRhYmxlIHtcclxuICB3aWR0aDoxMDAlO1xyXG4gIGZvbnQtc2l6ZTogc21hbGxlcjtcclxufVxyXG5bdGJsZTFdIHRoLHRke1xyXG5hbGlnbi1jb250ZW50OiBjZW50ZXI7XHJcbiAgdGV4dC1hbGlnbjogbGVmdDtcclxuICBmb250LXNpemU6IHNtYWxsZXI7XHJcbn1cclxuXHJcblt0YmxlMV0gdGgge1xyXG5jb2xvcjp3aGl0ZTsgICAgIFxyXG5iYWNrZ3JvdW5kLWNvbG9yOiBcdCM0NzQ3NDc7XHJcbmhlaWdodDogMzVweDtcclxuZm9udC1zaXplOiAxM3B4O1xyXG59XHJcblt0YmxlMV0gdGQge1xyXG4gIGhlaWdodDogMzVweDtcclxuICAgZm9udC1zaXplOiAxM3B4O1xyXG59XHJcblt0YmxlMV0gdGFibGUge1xyXG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XHJcbiAgXHJcbn1cclxuW3RibGUxXSB0YWJsZSwgdGgsIHRkIHtcclxuICBib3JkZXI6IDBweCBzb2xpZCAjZTFlMWUxO1xyXG4gIG92ZXJmbG93OmhpZGRlbjtcclxuICB3b3JkLXdyYXA6YnJlYWstd29yZDtcclxufVxyXG5bdGJsZTFdIHRhYmxlLmZpeGVkIHsgdGFibGUtbGF5b3V0OmZpeGVkOyB9XHJcblt0YmxlMV0gdGFibGUuZml4ZWQgdGQgeyBvdmVyZmxvdzogaGlkZGVuOyB9XHJcblxyXG5cclxuLmhpZ2hsaWdodCB0ZCB7YmFja2dyb3VuZDogI0MwQzBDMDt9XHJcblxyXG4uZmF7XHJcbiAgICAgZm9udC1zaXplOiAxOHB4OyBcclxufVxyXG5cclxuLmZhLXNxdWFyZS1ve1xyXG4gIGZvbnQtc2l6ZToyNHB4XHJcbn1cclxuLmZhLXBsdXN7XHJcbmZvbnQtc2l6ZTogMTNweDtcclxufVxyXG4uZG90cyB7XHJcbiAgICBmbGV4LXdyYXA6IHdyYXA7XHJcbn1cclxuICBcclxuaW5wdXQge1xyXG4gIHdpZHRoOiAxODElO1xyXG59XHJcbiAgXHJcbi5zcXVhcmUge1xyXG4gIHBhZGRpbmc6IDBweDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzc3NWI1O1xyXG4gIGNvbG9yOiB3aGl0ZTtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG4gIGJvcmRlci1yYWRpdXM6IDVweDtcclxuICBib3JkZXI6IDJweCBzb2xpZCAjMzc3NWI1O1xyXG4gIGZvbnQtc2l6ZTogMTNweDtcclxuICBmb250LXdlaWdodDogYm9sZDtcclxuICBib3gtc2hhZG93OiAwcHggOHB4IDNweCAwcHggIzI2NTM4MjtcclxuICBmb250LWZhbWlseTogdW5zZXQ7XHJcbn1cclxuICAuc3F1YXJlQWN0dnR5IHtcclxuICAgIHBhZGRpbmc6IDBweDtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICNGRkZGQ0M7XHJcbiAgICBjb2xvcjogYmxhY2s7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICBib3JkZXI6IDJweCBzb2xpZCAjRkZGRkNDO1xyXG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xyXG4gICAgd29yZC1icmVhazogYnJlYWstd29yZDtcclxuICAgIHdpZHRoOiAxMDBweDtcclxuICAgIGJveC1zaGFkb3c6IDNweCAzcHggM3B4XHJcbiAgfVxyXG5cclxuICBcclxuICBbc3F1YXJlQm94XSB7XHJcbiAgICBwYWRkaW5nLXRvcDogNiU7XHJcbiAgICBwYWRkaW5nLXJpZ2h0OiAyJTtcclxuICB9XHJcbiAgXHJcbiAgLnNxdWFyZUluQWN0dnR5IHtcclxuICAgIHBhZGRpbmc6IDNweDtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICNlMmUzZTQ7XHJcbiAgICBjb2xvcjogYmxhY2s7XHJcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgYm9yZGVyOiAycHggc29saWQgI2UyZTNlNDtcclxuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcclxuICAgIGZvbnQtc2l6ZTogMTJweDtcclxuICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XHJcbiAgICBmb250LWZhbWlseTogdW5zZXQ7XHJcbiAgIFxyXG4gIH1cclxuICBcclxuICAuc3F1YXJlRXhBY3R2dHkge1xyXG4gICAgcGFkZGluZzogM3B4O1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2EzY2RhMjtcclxuICAgIGNvbG9yOiBibGFjaztcclxuICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICBib3JkZXI6IDJweCBzb2xpZCAjYTNjZGEyO1xyXG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xyXG4gICAgZm9udC1zaXplOiAxMnB4O1xyXG4gICAgd29yZC1icmVhazogYnJlYWstd29yZDtcclxuICAgXHJcbiAgfVxyXG4gIFxyXG4gIC5zcXVhcmVLUEkge1xyXG4gIHBhZGRpbmctbGVmdDogOSU7XHJcbiAgcGFkZGluZy1yaWdodDogN3B4O1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICM2QURBRkY7XHJcbiAgY29sb3I6IHdoaXRlO1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICBib3JkZXItcmFkaXVzOiA1cHg7XHJcbiAgZm9udC1zaXplOiAxN3B4O1xyXG4gIHdpZHRoOiAyNXB4O1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxuICB9XHJcbiAgXHJcbiAgLnNxdWFyZUtQSTEge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzZBREFGRjtcclxuICAgIGNvbG9yOiB3aGl0ZTtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcclxuICAgIGZvbnQtc2l6ZTogMTFweDtcclxuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICB9XHJcblxyXG4gIC5zcXVhcmVLUEkyIHtcclxuICAgIGJvcmRlcjogMnB4IHNvbGlkIHdoaXRlO1xyXG4gICAgaGVpZ2h0OiAxN3B4O1xyXG4gICAgd2lkdGg6IDE3cHg7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGFhYmU3O1xyXG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgY29sb3I6IHdoaXRlO1xyXG4gICAgZm9udC1zaXplOiAxMHB4O1xyXG4gICAgbWFyZ2luLWxlZnQ6IDZweDtcclxuICAgIGZvbnQtd2VpZ2h0OmJvbGQ7XHJcbiAgICAvKiBtYXJnaW4tdG9wOiAyOXB4OyAqL1xyXG4gICAgbWFyZ2luLWxlZnQ6IDFweDtcclxuICB9XHJcbiAgXHJcbiAgLnNxdWFyZUlzc3VlIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICNGRkFBRTM7XHJcbiAgICBjb2xvcjogd2hpdGU7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICB3aWR0aDogMjVweDtcclxuICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDtcclxuICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcclxuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcclxuICAgIGZvbnQtc2l6ZTogMTdweDtcclxuICB9XHJcbiAgXHJcbiAgLnNxdWFyZUlzc3VlMSB7XHJcbiAgICBib3JkZXI6IDJweCBzb2xpZCB3aGl0ZTtcclxuICAgIGhlaWdodDogMTdweDtcclxuICAgIHdpZHRoOiAxN3B4O1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Q1NTYzMjtcclxuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIGNvbG9yOiB3aGl0ZTtcclxuICAgIGZvbnQtc2l6ZTogMTBweDtcclxuICAgIG1hcmdpbi1sZWZ0OiA2cHg7XHJcbiAgICBmb250LXdlaWdodDpib2xkO1xyXG4gICAgLyogbWFyZ2luLXRvcDogMjlweDsgKi9cclxuICB9XHJcbiAgXHJcbiAgLmNpcmNsZU0ge1xyXG4gICAgaGVpZ2h0OiAxMCU7XHJcbiAgICB3aWR0aDogMTAlO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzZBREFGRjtcclxuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIGNvbG9yOiB3aGl0ZTtcclxuICAgIHBhZGRpbmc6IDBweCA1cHg7XHJcbiAgfVxyXG4gIFxyXG4gIC5jaXJjbGVJIHtcclxuICAgIGhlaWdodDogNDAlO1xyXG4gICAgd2lkdGg6IDUlO1xyXG4gICAgLyogYmFja2dyb3VuZC1jb2xvcjogI0VGNzRGQzsgKi9cclxuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIHBhZGRpbmc6IDBweCAwcHg7XHJcbiAgICBmb250LXNpemU6IDEycHg7XHJcbiAgICBtYXJnaW4tbGVmdDogNXB4O1xyXG4gIH1cclxuXHJcbiAgLmNpcmNsZUkgLmZhLWxne1xyXG4gICAgbWFyZ2luLWxlZnQ6IC04cHg7XHJcbiAgfVxyXG4gIFxyXG4gIHRhYmxlIHRkLFxyXG4gIHRoIHtcclxuICAgIGZvbnQtc2l6ZTogMTBweDtcclxuICB9XHJcbiAgXHJcbiAgLnNxdWFyZUlzc3VlcyB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAgI2Y3YWFhMztcclxuICAgIGJvcmRlcjogMnB4IHNvbGlkICNmN2FhYTM7XHJcbiAgICBjb2xvcjogYmxhY2s7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XHJcbiAgICBmb250LXNpemU6IDExcHg7XHJcbiAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xyXG4gICAgYm94LXNoYWRvdzogMCAzcHggM3B4IDBweCAjZDU1NjMyO1xyXG4gICAgd2lkdGg6IDI3MHB4O1xyXG4gIH1cclxuICBcclxuICAuc3F1YXJlTSB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGFhYmU3O1xyXG4gICAgYm9yZGVyOiAycHggc29saWQgIzRhYWJlNztcclxuICAgIGNvbG9yOiBibGFjaztcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcclxuICAgIGZvbnQtc2l6ZTogMTFweDtcclxuICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XHJcbiAgICBib3gtc2hhZG93OiAgMCAzcHggM3B4IDBweCAgIzRhYWJlNztcclxuICAgIC8qIHdpZHRoOjEwMHB4OyAqL1xyXG4gICAgd2lkdGg6IDI3MHB4O1xyXG4gIH1cclxuICAuY2lyY2xlUyB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDljMjVhO1xyXG4gICAgYm9yZGVyLXJhZGl1czogMTVweDtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIGNvbG9yOiB3aGl0ZTtcclxuICAgIHBhZGRpbmc6IDBweCA1cHg7XHJcbiAgICB3aWR0aDogMTJweDtcclxuICAgIGhlaWdodDogMTJweDtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkIHdoaXRlO1xyXG4gICAgbWFyZ2luLXRvcDogM3B4O1xyXG4gIH1cclxuLndhcm5pbmdNc2d7XHJcbiAgY29sb3I6IHJlZDtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbn1cclxuLkFkZGNvbG9yIHtcclxuICBjb2xvcjogI2VmNTM1MCAhaW1wb3J0YW50IDtcclxuICBjdXJzb3I6IHBvaW50ZXIgIWltcG9ydGFudCA7ICBcclxufVxyXG4ucmVtb3ZlQ29sb3Ige1xyXG4gIGNvbG9yOiAjY2NjICFpbXBvcnRhbnQgO1xyXG4gIGN1cnNvcjogbm9uZSAhaW1wb3J0YW50IDtcclxufVxyXG4jUm93Y29udGFpbmVye1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgbWFyZ2luOiAwO1xyXG4gIG1hcmdpbi10b3A6IC0xMHB4O1xyXG4gIG1hcmdpbi1ib3R0b206IC0xMHB4O1xyXG4gIHBhZGRpbmc6IDA7XHJcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gXHJcblxyXG59XHJcblxyXG4udGFibGVEaXZ7XHJcbiAgb3ZlcmZsb3c6IGF1dG87XHJcbiAgbWF4LWhlaWdodDogNzB2aDtcclxufVxyXG5cclxuLnRhYmxlRGl2IHRke1xyXG4gIHBhZGRpbmctcmlnaHQ6IDVweDtcclxufVxyXG5cclxuLnRhYmxlRGl2IHRoe1xyXG4gIG1pbi13aWR0aDogMTAwcHggIWltcG9ydGFudDtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcbn1cclxuXHJcbi50YWJsZURpdjo6LXdlYmtpdC1zY3JvbGxiYXIge1xyXG4gIHdpZHRoOiA0cHg7XHJcbn1cclxuXHJcblxyXG5cclxuXHJcblxyXG4ub2Zmc2V0LTF7XHJcbiAgbWFyZ2luLWxlZnQ6IDAlO1xyXG59XHJcbiNSb3doZWFkaW5ne1xyXG4gIGZsZXg6IDE7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIGZsZXgtYmFzaXM6IDMwJTtcclxufVxyXG4jUm93d3JhcHBlcntcclxuZmxleDogMjtcclxufVxyXG4jUm93dGFibGVBY3Rpb25ze1xyXG5kaXNwbGF5OiBmbGV4O1xyXG5cclxuanVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcblxyXG59XHJcblxyXG4jZmllbGQsICNidXR0b252aWV3e1xyXG4gIG1hcmdpbjogMiU7XHJcbiAgXHJcbn1cclxuXHJcbiNSb3doZWFkaW5nc21hcHtcclxuICBmbGV4OiAxO1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICBmbGV4LWJhc2lzOiAzMCU7XHJcbiAgZm9udC1zaXplOiAxNHB4O1xyXG4gIG1hcmdpbi1sZWZ0OiAtMyU7XHJcbn1cclxuXHJcbiNidXR0b252aWV3c21hcHtcclxuICBtYXJnaW4tcmlnaHQ6IDIlO1xyXG4gIFxyXG59XHJcblxyXG4vKiAjc2VhcmNoRmllbGR7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbn0gKi9cclxuXHJcbi8qKioqKioqKkZvciBNb2JpbGUgdmlldyAqKioqKioqKi9cclxuQG1lZGlhIChtYXgtd2lkdGg6NTc2cHgpe1xyXG4gICp7XHJcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgfVxyXG5cclxuICB0YWJsZXtcclxuICAgICAgbWFyZ2luOiAyJTtcclxuICB9XHJcblxyXG4gI1Jvd2NvbnRhaW5lcntcclxuICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgIG1hcmdpbjogMDtcclxuICAgICBwYWRkaW5nOiAwO1xyXG4gICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICAganVzdGlmeS1jb250ZW50OiBsZWZ0O1xyXG4gICAgXHJcbiAgICAgbWFyZ2luOiAyJTtcclxuIFxyXG4gfVxyXG5cclxuICNSb3d3cmFwcGVye1xyXG4gICAgIHdpZHRoOiAxMDAlO1xyXG4gfVxyXG4gXHJcbiAjUm93dGFibGVBY3Rpb25ze1xyXG4gZGlzcGxheTogZmxleDtcclxuIHdpZHRoOiAxMDAlO1xyXG4gZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gXHJcbiB9XHJcbiAgI1Jvd2hlYWRpbmd7XHJcbiAgICAgXHJcbiAgICBcclxuIH1cclxuIFxyXG5cclxuLmJ0bntcclxuICAgICB3aWR0aDogMTAwJTtcclxuICAgICBcclxuIH1cclxuIC5tYXBwaW5ncyB7XHJcbiAgbWluLXdpZHRoOiAyODBweDtcclxuICBtaW4taGVpZ2h0OiA3NXB4O1xyXG4gfVxyXG4gI2J0bm1vYntcclxuICAgbWFyZ2luOiAyJTtcclxuIH1cclxuICBcclxufVxyXG4iXX0= */\"","module.exports = \"/**************************Process Map Top Buttons and dropdown*******************************/\\n#topContainer {\\n width: 100%;\\n margin: 0;\\n padding: 0;\\n}\\n.label-style {\\n text-align: center;\\n vertical-align: middle;\\n color: #c5c0ab;\\n padding-top: 15px;\\n}\\n.screenActions {\\n display: flex;\\n}\\n.selectDropDowns {\\n width: 33%;\\n}\\n.actionBtns {\\n width: 67%;\\n}\\n.selectWrapper, .btnWrapper {\\n display: flex;\\n}\\n.mapTypeSelect {\\n width: 25%;\\n margin: 2%;\\n}\\n.teamSelect {\\n width: 32%;\\n margin: 2%;\\n}\\n.versionSelect {\\n width: 32%;\\n margin: 2%;\\n}\\n.btnWrapper button {\\n margin: 2.5% 1% 0 1%;\\n}\\n/************************** END Process Map Top Buttons and dropdown*******************************/\\n/************************** For Mobile View Process Map Top Buttons and dropdown*******************************/\\n@media (max-width: 576px) {\\n #topContainer {\\n width: 100%;\\n margin: 0;\\n padding: 0;\\n }\\n\\n .screenActions {\\n display: flex;\\n flex-direction: column;\\n justify-content: space-betaween;\\n }\\n\\n .selectDropDowns {\\n width: 100%;\\n }\\n\\n .actionBtns {\\n width: 100%;\\n }\\n\\n .selectWrapper, .btnWrapper {\\n display: flex;\\n flex-direction: column;\\n }\\n\\n .mapTypeSelect, .versionSelect, .teamSelect {\\n width: 100%;\\n display: flex;\\n margin: 2%;\\n }\\n\\n .mapTypeSelect mat-form-field, .versionSelect mat-form-field, .teamSelect mat-form-field {\\n width: 100%;\\n margin: 0 2%;\\n }\\n\\n .btnWrapper button {\\n margin: 2.5% 1% 0 1%;\\n }\\n\\n .offset-1 {\\n margin-left: 0%;\\n }\\n}\\n/************************** END For Mobile View Process Map Top Buttons and dropdown*******************************/\\n.mat-form-field-appearance-legacy .mat-form-field-wrapper {\\n padding-bottom: 1.25em;\\n width: 42% !important;\\n}\\nmat-form-field {\\n display: initial;\\n}\\n@media print {\\n .donotprintthis {\\n display: none;\\n }\\n}\\n@media print {\\n @page {\\n size: auto;\\n margin: 0mm !important;\\n }\\n a[href]:after {\\n content: none !important;\\n }\\n}\\n@media print {\\n #Header, #Footer {\\n display: none !important;\\n margin: 0mm !important;\\n }\\n}\\n@media screen {\\n .donotprintthis {\\n display: block;\\n }\\n}\\n.Addcolor {\\n cursor: pointer !important;\\n}\\n.removeColor {\\n cursor: pointer !important;\\n}\\n.removeColor1 {\\n color: #ccc !important;\\n cursor: pointer !important;\\n}\\n.dots {\\n flex-wrap: wrap;\\n}\\nhtml,\\nbody {\\n overflow-x: hidden;\\n}\\ninput {\\n width: 181%;\\n}\\n.square {\\n padding: 0px;\\n background-color: #FFFF99;\\n color: black;\\n text-align: center;\\n cursor: pointer;\\n border-radius: 5px;\\n border: 2px solid #C9C927;\\n font-size: 13px;\\n font-weight: bold;\\n box-shadow: 3px 3px 3px #C9C927;\\n font-family: unset;\\n}\\n.squareActvty {\\n padding: 0px;\\n background-color: #FFFFCC;\\n color: black;\\n text-align: center;\\n cursor: pointer;\\n border: 2px solid #C9C927;\\n border-radius: 5px;\\n /*font-size: 11px;*/\\n word-break: break-word;\\n /*height: 51px;*/\\n width: 100px;\\n box-shadow: 3px 3px 3px;\\n}\\n/*#activity {\\nfont-size: .5vw;\\n }*/\\n[squareBox] {\\n padding-top: 6%;\\n padding-right: 2%;\\n}\\n.squareInActvty {\\n padding: 0px;\\n background-color: #e2e3e4;\\n color: black;\\n text-align: center;\\n cursor: pointer;\\n border: 2px solid #e2e3e4;\\n border-radius: 5px;\\n font-size: 12px;\\n word-break: break-word;\\n min-height: 51px;\\n width: 100px;\\n font-family: unset;\\n}\\n.squareExActvty {\\n padding: 0px;\\n background-color: #a3cda2;\\n color: black;\\n text-align: center;\\n cursor: pointer;\\n border: 2px solid #a3cda2;\\n border-radius: 5px;\\n font-size: 12px;\\n word-break: break-word;\\n min-height: 51px;\\n width: 100px;\\n}\\n.squareKPI {\\n /*border: 2px solid #10BCF5;*/\\n background-color: #6ADAFF;\\n color: white;\\n text-align: center;\\n border-radius: 5px;\\n /*border: 1px solid #10BCF5;*/\\n font-size: 17px;\\n /* margin-left:-21px; */\\n width: 25px;\\n /* height: 21px; */\\n cursor: pointer;\\n /* box-shadow: 3px 3px 3px #1EBFF4; */\\n /* padding-left: 7%;\\n padding-right: 6%; */\\n}\\n.squareKPI1 {\\n /*border: 2px solid #10BCF5;*/\\n background-color: #6ADAFF;\\n color: white;\\n text-align: center;\\n border-radius: 5px;\\n /*border: 1px solid #10BCF5;*/\\n font-size: 11px;\\n /* margin-left:-21px; */\\n width: 20px;\\n /*height: 21px;*/\\n border-radius: 5px;\\n cursor: pointer;\\n /*box-shadow: 3px 3px 3px #1EBFF4;*/\\n}\\n.squareIssue {\\n /*border: 2px solid #FF5DCA;*/\\n background-color: #FFAAE3;\\n color: white;\\n text-align: center;\\n cursor: pointer;\\n width: 25px;\\n /* padding: 14%; */\\n /*height: 21px;*/\\n border-radius: 5px;\\n font-size: 17px;\\n /* box-shadow: 3px 3px 3px #FF5DCA; */\\n /* margin-left:-11px; */\\n}\\n.squareIssue1 {\\n /*border: 2px solid #FF5DCA;*/\\n background-color: #FFAAE3;\\n color: white;\\n text-align: center;\\n cursor: pointer;\\n width: 25px;\\n /* padding: 14%; */\\n /*height: 21px;*/\\n border-radius: 5px;\\n font-size: 17px;\\n /* box-shadow: 3px 3px 3px #FF5DCA; */\\n /* margin-left:-11px; */\\n}\\n.circleM {\\n height: 10%;\\n width: 10%;\\n background-color: #6ADAFF;\\n border-radius: 50%;\\n text-align: center;\\n color: white;\\n padding: 0px 5px;\\n}\\n.circleI {\\n height: 10%;\\n width: 10%;\\n border-radius: 50%;\\n text-align: center;\\n color: white;\\n padding: 0px 5px;\\n}\\ntable td,\\nth {\\n font-size: 10px;\\n}\\n@media print {\\n .donotprintthis {\\n display: none;\\n }\\n}\\n@media print {\\n @page {\\n size: auto;\\n margin: 0mm;\\n }\\n a[href]:after {\\n content: none !important;\\n }\\n}\\n@media print {\\n #Header,\\n#Footer {\\n display: none !important;\\n }\\n}\\n@media screen {\\n .donotprintthis {\\n display: block;\\n }\\n}\\n@media (max-width: 576px) {\\n #moblgd {\\n margin-left: -2%;\\n }\\n\\n .alignment {\\n margin-bottom: 1px;\\n }\\n\\n .alignment1 {\\n margin-bottom: -3px;\\n }\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvcHJvY2Vzcy1tYXAvRjpcXE5pa2lsIFdvcmtcXFByb2plY3RzXFxEb3JzZXlcXEhpZXJhcmNoeSBTb3VyY2UgQ29kZVxcV29ya2luZ1xcZG9yc2V5R3JvdXAvc3JjXFxhcHBcXHByb2Nlc3MtbWFwXFxwcm9jZXNzLW1hcC5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvcHJvY2Vzcy1tYXAvcHJvY2Vzcy1tYXAuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsOEZBQUE7QUFDQTtFQUVFLFdBQUE7RUFDQSxTQUFBO0VBQ0EsVUFBQTtBQ0FGO0FESUE7RUFDRSxrQkFBQTtFQUNBLHNCQUFBO0VBQ0EsY0FBQTtFQUNBLGlCQUFBO0FDREY7QURJQTtFQUNFLGFBQUE7QUNERjtBRElBO0VBQ0UsVUFBQTtBQ0RGO0FESUE7RUFDRSxVQUFBO0FDREY7QURJQTtFQUNFLGFBQUE7QUNERjtBRElBO0VBQ0UsVUFBQTtFQUNBLFVBQUE7QUNERjtBRElBO0VBQ0UsVUFBQTtFQUNBLFVBQUE7QUNERjtBRElBO0VBQ0UsVUFBQTtFQUNBLFVBQUE7QUNERjtBRElBO0VBQ0Usb0JBQUE7QUNERjtBREtBLDhHQUFBO0FBRUEsaUhBQUE7QUFDQTtFQUNFO0lBRUUsV0FBQTtJQUNBLFNBQUE7SUFDQSxVQUFBO0VDSkY7O0VEUUE7SUFDRSxhQUFBO0lBQ0Esc0JBQUE7SUFDQSwrQkFBQTtFQ0xGOztFRFFBO0lBQ0UsV0FBQTtFQ0xGOztFRFFBO0lBQ0UsV0FBQTtFQ0xGOztFRFFBO0lBQ0UsYUFBQTtJQUNBLHNCQUFBO0VDTEY7O0VEUUE7SUFDRSxXQUFBO0lBQ0EsYUFBQTtJQUNBLFVBQUE7RUNMRjs7RURRQTtJQUNFLFdBQUE7SUFDQSxZQUFBO0VDTEY7O0VEVUE7SUFDRSxvQkFBQTtFQ1BGOztFRFVBO0lBQ0UsZUFBQTtFQ1BGO0FBQ0Y7QURTQSw2SEFBQTtBQUlBO0VBQ0ksc0JBQUE7RUFDQSxxQkFBQTtBQ1ZKO0FEWUE7RUFFSSxn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NkRFO0VBQ0U7SUFDRSxjQUFBO0VDM0RKO0FBQ0Y7QUQ4REU7RUFDRTtJQUNFLGdCQUFBO0VDNURKOztFRDhERTtJQUNFLGtCQUFBO0VDM0RKOztFRDZERTtJQUNFLG1CQUFBO0VDMURKO0FBQ0YiLCJmaWxlIjoic3JjL2FwcC9wcm9jZXNzLW1hcC9wcm9jZXNzLW1hcC5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKioqKioqKioqKioqKioqKioqKioqKioqKlByb2Nlc3MgTWFwIFRvcCBCdXR0b25zIGFuZCBkcm9wZG93bioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcbiN0b3BDb250YWluZXJ7XHJcbiBcclxuICB3aWR0aDogMTAwJTtcclxuICBtYXJnaW46IDA7XHJcbiAgcGFkZGluZzogMDtcclxuICBcclxufVxyXG5cclxuLmxhYmVsLXN0eWxlIHtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuICBjb2xvcjogI2M1YzBhYjtcclxuICBwYWRkaW5nLXRvcDogMTVweDtcclxufVxyXG5cclxuLnNjcmVlbkFjdGlvbnN7XHJcbiAgZGlzcGxheTogZmxleDtcclxufVxyXG5cclxuLnNlbGVjdERyb3BEb3duc3sgXHJcbiAgd2lkdGg6IDMzJTtcclxufVxyXG5cclxuLmFjdGlvbkJ0bnN7ICBcclxuICB3aWR0aDogNjclO1xyXG59XHJcblxyXG4uc2VsZWN0V3JhcHBlciwgLmJ0bldyYXBwZXJ7XHJcbiAgZGlzcGxheTogZmxleDtcclxufVxyXG5cclxuLm1hcFR5cGVTZWxlY3R7XHJcbiAgd2lkdGg6IDI1JTtcclxuICBtYXJnaW46IDIlO1xyXG59XHJcblxyXG4udGVhbVNlbGVjdHtcclxuICB3aWR0aDogMzIlO1xyXG4gIG1hcmdpbjogMiU7XHJcbn1cclxuXHJcbi52ZXJzaW9uU2VsZWN0e1xyXG4gIHdpZHRoOiAzMiU7XHJcbiAgbWFyZ2luOiAyJTtcclxufVxyXG5cclxuLmJ0bldyYXBwZXIgYnV0dG9ue1xyXG4gIG1hcmdpbjogMi41JSAxJSAwIDElO1xyXG4gIFxyXG59XHJcblxyXG4vKioqKioqKioqKioqKioqKioqKioqKioqKiogICAgICBFTkQgICAgICAgUHJvY2VzcyBNYXAgVG9wIEJ1dHRvbnMgYW5kIGRyb3Bkb3duKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuXHJcbi8qKioqKioqKioqKioqKioqKioqKioqKioqKiBGb3IgTW9iaWxlIFZpZXcgICBQcm9jZXNzIE1hcCBUb3AgQnV0dG9ucyBhbmQgZHJvcGRvd24qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG5AbWVkaWEgKG1heC13aWR0aDogNTc2cHgpe1xyXG4gICN0b3BDb250YWluZXJ7XHJcbiBcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gICAgcGFkZGluZzogMDtcclxuICAgIFxyXG4gIH1cclxuICBcclxuICAuc2NyZWVuQWN0aW9uc3tcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXRhd2VlbjtcclxuICB9XHJcbiAgXHJcbiAgLnNlbGVjdERyb3BEb3duc3sgXHJcbiAgICB3aWR0aDogMTAwJTtcclxuICB9XHJcbiAgXHJcbiAgLmFjdGlvbkJ0bnN7ICBcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gIH1cclxuICBcclxuICAuc2VsZWN0V3JhcHBlciwgLmJ0bldyYXBwZXJ7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICB9XHJcbiAgXHJcbiAgLm1hcFR5cGVTZWxlY3QsIC52ZXJzaW9uU2VsZWN0LCAudGVhbVNlbGVjdHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIG1hcmdpbjogMiU7XHJcbiAgfVxyXG5cclxuICAubWFwVHlwZVNlbGVjdCBtYXQtZm9ybS1maWVsZCwgLnZlcnNpb25TZWxlY3QgbWF0LWZvcm0tZmllbGQsIC50ZWFtU2VsZWN0IG1hdC1mb3JtLWZpZWxke1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBtYXJnaW46MCAyJTtcclxuICB9XHJcbiAgXHJcbiAgXHJcblxyXG4gIC5idG5XcmFwcGVyIGJ1dHRvbntcclxuICAgIG1hcmdpbjogMi41JSAxJSAwIDElO1xyXG4gICAgXHJcbiAgfVxyXG4gIC5vZmZzZXQtMXtcclxuICAgIG1hcmdpbi1sZWZ0OiAwJTtcclxuICB9XHJcbn1cclxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqICAgICAgRU5EICAgRm9yIE1vYmlsZSBWaWV3ICAgIFByb2Nlc3MgTWFwIFRvcCBCdXR0b25zIGFuZCBkcm9wZG93bioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcblxyXG5cclxuXHJcbi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSAubWF0LWZvcm0tZmllbGQtd3JhcHBlciB7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogMS4yNWVtO1xyXG4gICAgd2lkdGg6IDQyJSAhaW1wb3J0YW50O1xyXG59XHJcbm1hdC1mb3JtLWZpZWxkIHtcclxuIFxyXG4gICAgZGlzcGxheTogaW5pdGlhbDtcclxuXHJcbn1cclxuQG1lZGlhIHByaW50XHJcbntcclxuICAgIC5kb25vdHByaW50dGhpc1xyXG4gICAge1xyXG4gICAgICBcclxuICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgXHJcbiAgICB9XHJcbn1cclxuQG1lZGlhIHByaW50IHtcclxuICAgIEBwYWdlIHsgc2l6ZTogYXV0bzsgIG1hcmdpbjogMG1tICFpbXBvcnRhbnQ7ICB9XHJcblxyXG4gICAgYVtocmVmXTphZnRlciB7XHJcbiAgICAgICAgY29udGVudDogbm9uZSAhaW1wb3J0YW50O1xyXG4gICAgfVxyXG59XHJcblxyXG5AbWVkaWEgcHJpbnQge1xyXG4gICAgI0hlYWRlciwgI0Zvb3RlciB7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgbWFyZ2luOiAwbW0gICFpbXBvcnRhbnR9XHJcbn1cclxuQG1lZGlhIHNjcmVlblxyXG57XHJcbiAgICAuZG9ub3RwcmludHRoaXNcclxuICAgIHtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIH1cclxufVxyXG4uQWRkY29sb3Ige1xyXG4gICAgLy8gY29sb3I6ICNlZjUzNTAgIWltcG9ydGFudCA7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXIgIWltcG9ydGFudCA7ICBcclxuIH1cclxuIC5yZW1vdmVDb2xvciB7XHJcbiAgICAvLyBjb2xvcjogI2NjYyAhaW1wb3J0YW50IDtcclxuICAgIGN1cnNvcjogcG9pbnRlciAhaW1wb3J0YW50IDtcclxuIH1cclxuXHJcbiAucmVtb3ZlQ29sb3IxIHtcclxuICBjb2xvcjogI2NjYyAhaW1wb3J0YW50IDtcclxuICBjdXJzb3I6IHBvaW50ZXIgIWltcG9ydGFudCA7XHJcbn1cclxuXHJcbiAuZG90cyB7XHJcblxyXG4gICAgZmxleC13cmFwOiB3cmFwO1xyXG5cclxuICB9XHJcblxyXG4gIGh0bWwsXHJcbiAgYm9keSB7XHJcblxyXG4gICAgb3ZlcmZsb3cteDogaGlkZGVuO1xyXG4gIH1cclxuXHJcbiAgaW5wdXQge1xyXG4gICAgd2lkdGg6IDE4MSU7XHJcbiAgfVxyXG5cclxuICAuc3F1YXJlIHtcclxuICAgIHBhZGRpbmc6IDBweDtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICNGRkZGOTk7XHJcbiAgICBjb2xvcjogYmxhY2s7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XHJcbiAgICBib3JkZXI6IDJweCBzb2xpZCAjQzlDOTI3O1xyXG4gICAgZm9udC1zaXplOiAxM3B4O1xyXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICBib3gtc2hhZG93OiAzcHggM3B4IDNweCAjQzlDOTI3O1xyXG4gICAgZm9udC1mYW1pbHk6IHVuc2V0O1xyXG4gIH1cclxuXHJcbiAgLnNxdWFyZUFjdHZ0eSB7XHJcbiAgICBwYWRkaW5nOiAwcHg7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkNDO1xyXG4gICAgY29sb3I6IGJsYWNrO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgYm9yZGVyOiAycHggc29saWQgI0M5QzkyNztcclxuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcclxuICAgIC8qZm9udC1zaXplOiAxMXB4OyovXHJcbiAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xyXG4gICAgLypoZWlnaHQ6IDUxcHg7Ki9cclxuICAgIHdpZHRoOiAxMDBweDtcclxuICAgIGJveC1zaGFkb3c6IDNweCAzcHggM3B4XHJcbiAgfVxyXG5cclxuICAvKiNhY3Rpdml0eSB7XHJcbmZvbnQtc2l6ZTogLjV2dztcclxuICB9Ki9cclxuXHJcbiAgW3NxdWFyZUJveF0ge1xyXG4gICAgcGFkZGluZy10b3A6IDYlO1xyXG4gICAgcGFkZGluZy1yaWdodDogMiU7XHJcbiAgfVxyXG5cclxuICAuc3F1YXJlSW5BY3R2dHkge1xyXG4gICAgcGFkZGluZzogMHB4O1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2UyZTNlNDtcclxuICAgIGNvbG9yOiBibGFjaztcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIGJvcmRlcjogMnB4IHNvbGlkICNlMmUzZTQ7XHJcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XHJcbiAgICBmb250LXNpemU6IDEycHg7XHJcbiAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xyXG4gICAgbWluLWhlaWdodDogNTFweDtcclxuICAgIHdpZHRoOiAxMDBweDtcclxuICAgIC8vIGJveC1zaGFkb3c6IDNweCAzcHggM3B4ICNDOUM5Mjc7XHJcbiAgICBmb250LWZhbWlseTogdW5zZXQ7XHJcblxyXG4gIH1cclxuXHJcbiAgLnNxdWFyZUV4QWN0dnR5IHtcclxuICAgIHBhZGRpbmc6IDBweDtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICNhM2NkYTI7XHJcbiAgICBjb2xvcjogYmxhY2s7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICBib3JkZXI6IDJweCBzb2xpZCAjYTNjZGEyO1xyXG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xyXG4gICAgZm9udC1zaXplOiAxMnB4O1xyXG4gICAgd29yZC1icmVhazogYnJlYWstd29yZDtcclxuICAgIG1pbi1oZWlnaHQ6IDUxcHg7XHJcbiAgICB3aWR0aDogMTAwcHg7XHJcbiAgICAvLyBib3gtc2hhZG93OiAzcHggM3B4IDNweCAjNzNBRDIxO1xyXG4gIH1cclxuXHJcbiAgLnNxdWFyZUtQSSB7XHJcbiAgICAvKmJvcmRlcjogMnB4IHNvbGlkICMxMEJDRjU7Ki9cclxuICAgIC8vIHBhZGRpbmctbGVmdDogOSU7XHJcbiAgICAvLyBwYWRkaW5nLXJpZ2h0OiA3cHg7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNkFEQUZGO1xyXG4gICAgY29sb3I6IHdoaXRlO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xyXG4gICAgLypib3JkZXI6IDFweCBzb2xpZCAjMTBCQ0Y1OyovXHJcbiAgICBmb250LXNpemU6IDE3cHg7XHJcbiAgICAvKiBtYXJnaW4tbGVmdDotMjFweDsgKi9cclxuICAgIHdpZHRoOiAyNXB4O1xyXG4gICAgLyogaGVpZ2h0OiAyMXB4OyAqL1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgLyogYm94LXNoYWRvdzogM3B4IDNweCAzcHggIzFFQkZGNDsgKi9cclxuICAgIC8qIHBhZGRpbmctbGVmdDogNyU7XHJcbiAgICBwYWRkaW5nLXJpZ2h0OiA2JTsgKi9cclxuICB9XHJcblxyXG4gIC5zcXVhcmVLUEkxIHtcclxuICAgIC8qYm9yZGVyOiAycHggc29saWQgIzEwQkNGNTsqL1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzZBREFGRjtcclxuICAgIGNvbG9yOiB3aGl0ZTtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcclxuICAgIC8qYm9yZGVyOiAxcHggc29saWQgIzEwQkNGNTsqL1xyXG4gICAgZm9udC1zaXplOiAxMXB4O1xyXG4gICAgLyogbWFyZ2luLWxlZnQ6LTIxcHg7ICovXHJcbiAgICB3aWR0aDogMjBweDtcclxuICAgIC8qaGVpZ2h0OiAyMXB4OyovXHJcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAvKmJveC1zaGFkb3c6IDNweCAzcHggM3B4ICMxRUJGRjQ7Ki9cclxuICB9XHJcblxyXG4gIC5zcXVhcmVJc3N1ZSB7XHJcbiAgICAvKmJvcmRlcjogMnB4IHNvbGlkICNGRjVEQ0E7Ki9cclxuICAgIGJhY2tncm91bmQtY29sb3I6ICNGRkFBRTM7XHJcbiAgICBjb2xvcjogd2hpdGU7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICB3aWR0aDogMjVweDtcclxuICAgIC8qIHBhZGRpbmc6IDE0JTsgKi9cclxuICAgIC8qaGVpZ2h0OiAyMXB4OyovXHJcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XHJcbiAgICBmb250LXNpemU6IDE3cHg7XHJcbiAgICAvKiBib3gtc2hhZG93OiAzcHggM3B4IDNweCAjRkY1RENBOyAqL1xyXG4gICAgLyogbWFyZ2luLWxlZnQ6LTExcHg7ICovXHJcbiAgfVxyXG5cclxuICAuc3F1YXJlSXNzdWUxIHtcclxuICAgIC8qYm9yZGVyOiAycHggc29saWQgI0ZGNURDQTsqL1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0ZGQUFFMztcclxuICAgIGNvbG9yOiB3aGl0ZTtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIHdpZHRoOiAyNXB4O1xyXG4gICAgLyogcGFkZGluZzogMTQlOyAqL1xyXG4gICAgLypoZWlnaHQ6IDIxcHg7Ki9cclxuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcclxuICAgIGZvbnQtc2l6ZTogMTdweDtcclxuICAgIC8vIHBhZGRpbmctbGVmdDogNnB4O1xyXG4gICAgLy8gcGFkZGluZy1yaWdodDogNnB4O1xyXG4gICAgLyogYm94LXNoYWRvdzogM3B4IDNweCAzcHggI0ZGNURDQTsgKi9cclxuICAgIC8qIG1hcmdpbi1sZWZ0Oi0xMXB4OyAqL1xyXG4gIH1cclxuXHJcbiAgLmNpcmNsZU0ge1xyXG4gICAgaGVpZ2h0OiAxMCU7XHJcbiAgICB3aWR0aDogMTAlO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzZBREFGRjtcclxuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIGNvbG9yOiB3aGl0ZTtcclxuICAgIHBhZGRpbmc6IDBweCA1cHg7XHJcbiAgfVxyXG5cclxuICAuY2lyY2xlSSB7XHJcbiAgICBoZWlnaHQ6IDEwJTtcclxuICAgIHdpZHRoOiAxMCU7XHJcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICBjb2xvcjogd2hpdGU7XHJcbiAgICBwYWRkaW5nOiAwcHggNXB4O1xyXG4gIH1cclxuXHJcbiAgdGFibGUgdGQsXHJcbiAgdGgge1xyXG4gICAgZm9udC1zaXplOiAxMHB4O1xyXG4gIH1cclxuXHJcbiAgLy8gLnNxdWFyZUlzc3VlcyB7XHJcbiAgLy8gICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZBQUUzO1xyXG4gIC8vICAgYm9yZGVyOiAycHggc29saWQgI0ZGNURDQTtcclxuICAvLyAgIGNvbG9yOiBibGFjaztcclxuICAvLyAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAvLyAgIGJvcmRlci1yYWRpdXM6IDVweDtcclxuICAvLyAgIGZvbnQtc2l6ZTogMTFweDtcclxuICAvLyAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XHJcbiAgLy8gICBtaW4td2lkdGg6IDYwcHg7XHJcbiAgLy8gICB3aWR0aDogMTUwcHg7XHJcbiAgLy8gICBtYXJnaW4tbGVmdDogMnB4O1xyXG4gIC8vICAgYm94LXNoYWRvdzogM3B4IDNweCAzcHggI0ZGNURDQTtcclxuICAvLyB9XHJcblxyXG4gIC8vIC5zcXVhcmVNIHtcclxuICAvLyAgIGJhY2tncm91bmQtY29sb3I6ICM2QURBRkY7XHJcbiAgLy8gICBib3JkZXI6IDJweCBzb2xpZCAjMTBCQ0Y1O1xyXG4gIC8vICAgY29sb3I6IGJsYWNrO1xyXG4gIC8vICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIC8vICAgYm9yZGVyLXJhZGl1czogNXB4O1xyXG4gIC8vICAgZm9udC1zaXplOiAxMXB4O1xyXG4gIC8vICAgd29yZC1icmVhazogYnJlYWstd29yZDtcclxuICAvLyAgIG1pbi13aWR0aDogNjBweDtcclxuICAvLyAgIHdpZHRoOiAxNDZweDtcclxuICAvLyAgIG1hcmdpbi1sZWZ0OiAycHg7XHJcbiAgLy8gICBib3gtc2hhZG93OiAzcHggM3B4IDNweCAjMTBCQ0Y1O1xyXG4gIC8vIH1cclxuXHJcbiAgQG1lZGlhIHByaW50IHtcclxuICAgIC5kb25vdHByaW50dGhpcyB7XHJcblxyXG4gICAgICBkaXNwbGF5OiBub25lO1xyXG5cclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBtZWRpYSBwcmludCB7XHJcbiAgICBAcGFnZSB7XHJcbiAgICAgIHNpemU6IGF1dG87XHJcbiAgICAgIG1hcmdpbjogMG1tO1xyXG4gICAgfVxyXG5cclxuICAgIGFbaHJlZl06YWZ0ZXIge1xyXG4gICAgICBjb250ZW50OiBub25lICFpbXBvcnRhbnQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAbWVkaWEgcHJpbnQge1xyXG5cclxuICAgICNIZWFkZXIsXHJcbiAgICAjRm9vdGVyIHtcclxuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQG1lZGlhIHNjcmVlbiB7XHJcbiAgICAuZG9ub3RwcmludHRoaXMge1xyXG4gICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBtZWRpYSAobWF4LXdpZHRoOjU3NnB4KXtcclxuICAgICNtb2JsZ2R7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiAtMiU7XHJcbiAgICB9XHJcbiAgICAuYWxpZ25tZW50e1xyXG4gICAgICBtYXJnaW4tYm90dG9tOiAxcHg7XHJcbiAgICB9XHJcbiAgICAuYWxpZ25tZW50MXtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogLTNweDtcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuXHJcbiIsIi8qKioqKioqKioqKioqKioqKioqKioqKioqKlByb2Nlc3MgTWFwIFRvcCBCdXR0b25zIGFuZCBkcm9wZG93bioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4jdG9wQ29udGFpbmVyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbn1cblxuLmxhYmVsLXN0eWxlIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBjb2xvcjogI2M1YzBhYjtcbiAgcGFkZGluZy10b3A6IDE1cHg7XG59XG5cbi5zY3JlZW5BY3Rpb25zIHtcbiAgZGlzcGxheTogZmxleDtcbn1cblxuLnNlbGVjdERyb3BEb3ducyB7XG4gIHdpZHRoOiAzMyU7XG59XG5cbi5hY3Rpb25CdG5zIHtcbiAgd2lkdGg6IDY3JTtcbn1cblxuLnNlbGVjdFdyYXBwZXIsIC5idG5XcmFwcGVyIHtcbiAgZGlzcGxheTogZmxleDtcbn1cblxuLm1hcFR5cGVTZWxlY3Qge1xuICB3aWR0aDogMjUlO1xuICBtYXJnaW46IDIlO1xufVxuXG4udGVhbVNlbGVjdCB7XG4gIHdpZHRoOiAzMiU7XG4gIG1hcmdpbjogMiU7XG59XG5cbi52ZXJzaW9uU2VsZWN0IHtcbiAgd2lkdGg6IDMyJTtcbiAgbWFyZ2luOiAyJTtcbn1cblxuLmJ0bldyYXBwZXIgYnV0dG9uIHtcbiAgbWFyZ2luOiAyLjUlIDElIDAgMSU7XG59XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKiAgICAgIEVORCAgICAgICBQcm9jZXNzIE1hcCBUb3AgQnV0dG9ucyBhbmQgZHJvcGRvd24qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqIEZvciBNb2JpbGUgVmlldyAgIFByb2Nlc3MgTWFwIFRvcCBCdXR0b25zIGFuZCBkcm9wZG93bioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5AbWVkaWEgKG1heC13aWR0aDogNTc2cHgpIHtcbiAgI3RvcENvbnRhaW5lciB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cblxuICAuc2NyZWVuQWN0aW9ucyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0YXdlZW47XG4gIH1cblxuICAuc2VsZWN0RHJvcERvd25zIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuXG4gIC5hY3Rpb25CdG5zIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuXG4gIC5zZWxlY3RXcmFwcGVyLCAuYnRuV3JhcHBlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB9XG5cbiAgLm1hcFR5cGVTZWxlY3QsIC52ZXJzaW9uU2VsZWN0LCAudGVhbVNlbGVjdCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBtYXJnaW46IDIlO1xuICB9XG5cbiAgLm1hcFR5cGVTZWxlY3QgbWF0LWZvcm0tZmllbGQsIC52ZXJzaW9uU2VsZWN0IG1hdC1mb3JtLWZpZWxkLCAudGVhbVNlbGVjdCBtYXQtZm9ybS1maWVsZCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luOiAwIDIlO1xuICB9XG5cbiAgLmJ0bldyYXBwZXIgYnV0dG9uIHtcbiAgICBtYXJnaW46IDIuNSUgMSUgMCAxJTtcbiAgfVxuXG4gIC5vZmZzZXQtMSB7XG4gICAgbWFyZ2luLWxlZnQ6IDAlO1xuICB9XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKiogICAgICBFTkQgICBGb3IgTW9iaWxlIFZpZXcgICAgUHJvY2VzcyBNYXAgVG9wIEJ1dHRvbnMgYW5kIGRyb3Bkb3duKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSAubWF0LWZvcm0tZmllbGQtd3JhcHBlciB7XG4gIHBhZGRpbmctYm90dG9tOiAxLjI1ZW07XG4gIHdpZHRoOiA0MiUgIWltcG9ydGFudDtcbn1cblxubWF0LWZvcm0tZmllbGQge1xuICBkaXNwbGF5OiBpbml0aWFsO1xufVxuXG5AbWVkaWEgcHJpbnQge1xuICAuZG9ub3RwcmludHRoaXMge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbkBtZWRpYSBwcmludCB7XG4gIEBwYWdlIHtcbiAgICBzaXplOiBhdXRvO1xuICAgIG1hcmdpbjogMG1tICFpbXBvcnRhbnQ7XG4gIH1cbiAgYVtocmVmXTphZnRlciB7XG4gICAgY29udGVudDogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgcHJpbnQge1xuICAjSGVhZGVyLCAjRm9vdGVyIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luOiAwbW0gIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIHNjcmVlbiB7XG4gIC5kb25vdHByaW50dGhpcyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cbi5BZGRjb2xvciB7XG4gIGN1cnNvcjogcG9pbnRlciAhaW1wb3J0YW50O1xufVxuXG4ucmVtb3ZlQ29sb3Ige1xuICBjdXJzb3I6IHBvaW50ZXIgIWltcG9ydGFudDtcbn1cblxuLnJlbW92ZUNvbG9yMSB7XG4gIGNvbG9yOiAjY2NjICFpbXBvcnRhbnQ7XG4gIGN1cnNvcjogcG9pbnRlciAhaW1wb3J0YW50O1xufVxuXG4uZG90cyB7XG4gIGZsZXgtd3JhcDogd3JhcDtcbn1cblxuaHRtbCxcbmJvZHkge1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG59XG5cbmlucHV0IHtcbiAgd2lkdGg6IDE4MSU7XG59XG5cbi5zcXVhcmUge1xuICBwYWRkaW5nOiAwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRkZGOTk7XG4gIGNvbG9yOiBibGFjaztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgYm9yZGVyOiAycHggc29saWQgI0M5QzkyNztcbiAgZm9udC1zaXplOiAxM3B4O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgYm94LXNoYWRvdzogM3B4IDNweCAzcHggI0M5QzkyNztcbiAgZm9udC1mYW1pbHk6IHVuc2V0O1xufVxuXG4uc3F1YXJlQWN0dnR5IHtcbiAgcGFkZGluZzogMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkNDO1xuICBjb2xvcjogYmxhY2s7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBib3JkZXI6IDJweCBzb2xpZCAjQzlDOTI3O1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIC8qZm9udC1zaXplOiAxMXB4OyovXG4gIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG4gIC8qaGVpZ2h0OiA1MXB4OyovXG4gIHdpZHRoOiAxMDBweDtcbiAgYm94LXNoYWRvdzogM3B4IDNweCAzcHg7XG59XG5cbi8qI2FjdGl2aXR5IHtcbmZvbnQtc2l6ZTogLjV2dztcbiAgfSovXG5bc3F1YXJlQm94XSB7XG4gIHBhZGRpbmctdG9wOiA2JTtcbiAgcGFkZGluZy1yaWdodDogMiU7XG59XG5cbi5zcXVhcmVJbkFjdHZ0eSB7XG4gIHBhZGRpbmc6IDBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2UyZTNlNDtcbiAgY29sb3I6IGJsYWNrO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYm9yZGVyOiAycHggc29saWQgI2UyZTNlNDtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBmb250LXNpemU6IDEycHg7XG4gIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG4gIG1pbi1oZWlnaHQ6IDUxcHg7XG4gIHdpZHRoOiAxMDBweDtcbiAgZm9udC1mYW1pbHk6IHVuc2V0O1xufVxuXG4uc3F1YXJlRXhBY3R2dHkge1xuICBwYWRkaW5nOiAwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNhM2NkYTI7XG4gIGNvbG9yOiBibGFjaztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJvcmRlcjogMnB4IHNvbGlkICNhM2NkYTI7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xuICBtaW4taGVpZ2h0OiA1MXB4O1xuICB3aWR0aDogMTAwcHg7XG59XG5cbi5zcXVhcmVLUEkge1xuICAvKmJvcmRlcjogMnB4IHNvbGlkICMxMEJDRjU7Ki9cbiAgYmFja2dyb3VuZC1jb2xvcjogIzZBREFGRjtcbiAgY29sb3I6IHdoaXRlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgLypib3JkZXI6IDFweCBzb2xpZCAjMTBCQ0Y1OyovXG4gIGZvbnQtc2l6ZTogMTdweDtcbiAgLyogbWFyZ2luLWxlZnQ6LTIxcHg7ICovXG4gIHdpZHRoOiAyNXB4O1xuICAvKiBoZWlnaHQ6IDIxcHg7ICovXG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgLyogYm94LXNoYWRvdzogM3B4IDNweCAzcHggIzFFQkZGNDsgKi9cbiAgLyogcGFkZGluZy1sZWZ0OiA3JTtcbiAgcGFkZGluZy1yaWdodDogNiU7ICovXG59XG5cbi5zcXVhcmVLUEkxIHtcbiAgLypib3JkZXI6IDJweCBzb2xpZCAjMTBCQ0Y1OyovXG4gIGJhY2tncm91bmQtY29sb3I6ICM2QURBRkY7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIC8qYm9yZGVyOiAxcHggc29saWQgIzEwQkNGNTsqL1xuICBmb250LXNpemU6IDExcHg7XG4gIC8qIG1hcmdpbi1sZWZ0Oi0yMXB4OyAqL1xuICB3aWR0aDogMjBweDtcbiAgLypoZWlnaHQ6IDIxcHg7Ki9cbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIC8qYm94LXNoYWRvdzogM3B4IDNweCAzcHggIzFFQkZGNDsqL1xufVxuXG4uc3F1YXJlSXNzdWUge1xuICAvKmJvcmRlcjogMnB4IHNvbGlkICNGRjVEQ0E7Ki9cbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGQUFFMztcbiAgY29sb3I6IHdoaXRlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgd2lkdGg6IDI1cHg7XG4gIC8qIHBhZGRpbmc6IDE0JTsgKi9cbiAgLypoZWlnaHQ6IDIxcHg7Ki9cbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBmb250LXNpemU6IDE3cHg7XG4gIC8qIGJveC1zaGFkb3c6IDNweCAzcHggM3B4ICNGRjVEQ0E7ICovXG4gIC8qIG1hcmdpbi1sZWZ0Oi0xMXB4OyAqL1xufVxuXG4uc3F1YXJlSXNzdWUxIHtcbiAgLypib3JkZXI6IDJweCBzb2xpZCAjRkY1RENBOyovXG4gIGJhY2tncm91bmQtY29sb3I6ICNGRkFBRTM7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHdpZHRoOiAyNXB4O1xuICAvKiBwYWRkaW5nOiAxNCU7ICovXG4gIC8qaGVpZ2h0OiAyMXB4OyovXG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgZm9udC1zaXplOiAxN3B4O1xuICAvKiBib3gtc2hhZG93OiAzcHggM3B4IDNweCAjRkY1RENBOyAqL1xuICAvKiBtYXJnaW4tbGVmdDotMTFweDsgKi9cbn1cblxuLmNpcmNsZU0ge1xuICBoZWlnaHQ6IDEwJTtcbiAgd2lkdGg6IDEwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzZBREFGRjtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgcGFkZGluZzogMHB4IDVweDtcbn1cblxuLmNpcmNsZUkge1xuICBoZWlnaHQ6IDEwJTtcbiAgd2lkdGg6IDEwJTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgcGFkZGluZzogMHB4IDVweDtcbn1cblxudGFibGUgdGQsXG50aCB7XG4gIGZvbnQtc2l6ZTogMTBweDtcbn1cblxuQG1lZGlhIHByaW50IHtcbiAgLmRvbm90cHJpbnR0aGlzIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5AbWVkaWEgcHJpbnQge1xuICBAcGFnZSB7XG4gICAgc2l6ZTogYXV0bztcbiAgICBtYXJnaW46IDBtbTtcbiAgfVxuICBhW2hyZWZdOmFmdGVyIHtcbiAgICBjb250ZW50OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSBwcmludCB7XG4gICNIZWFkZXIsXG4jRm9vdGVyIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSBzY3JlZW4ge1xuICAuZG9ub3RwcmludHRoaXMge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNTc2cHgpIHtcbiAgI21vYmxnZCB7XG4gICAgbWFyZ2luLWxlZnQ6IC0yJTtcbiAgfVxuXG4gIC5hbGlnbm1lbnQge1xuICAgIG1hcmdpbi1ib3R0b206IDFweDtcbiAgfVxuXG4gIC5hbGlnbm1lbnQxIHtcbiAgICBtYXJnaW4tYm90dG9tOiAtM3B4O1xuICB9XG59Il19 */\"","import { Component, OnInit, Inject, OnChanges } from '@angular/core';\nimport { DorseyService } from '../dorsey.service';\nimport { GoalService } from '../services/goal.service';\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { PointerDialogComponent } from '../pointer/pointer.component';\nimport { MetricDialogComponent } from '../metric/metric.component';\nimport { LocalStorageService } from 'ngx-webstorage';\nimport { ProcessDialogComponent } from '../process/process.component';\nimport { ActivityDialogComponent } from '../activity/activity.component';\nimport { trigger, state, style, animate, transition } from '@angular/animations';\nimport { CdkDragDrop, transferArrayItem } from '@angular/cdk/drag-drop';\nimport { EmployeeLoginLevel } from '../common/models/login-level.model';\nimport { PerformanceScoreCardService } from '../performance-score-card/performance-score-card.service';\nimport { HostListener } from '@angular/core';\nimport { LoginComponent } from '../login/login.component';\nimport { LocationStrategy } from '@angular/common'\nimport { copyRight } from '../copyRight.model';\n\n@Component({\n selector: 'app-process-map',\n templateUrl: './process-map.component.html',\n styleUrls: ['./process-map.component.scss'],\n providers: [DorseyService, ProcessMapComponent],\n animations: [\n trigger('changeDivSize', [\n state('initial', style({\n width: '100%',\n height: '100%',\n })),\n state('final', style({\n // width: '50%',\n height: '100%'\n })),\n transition('initial=>final', animate('1500ms')),\n transition('final=>initial', animate('1000ms'))\n ]),\n\n trigger('changeTextSize', [\n state('initial', style({\n fontSize: '13px'\n })),\n state('final', style({\n fontSize: '6px'\n })),\n transition('initial=>final', animate('1500ms')),\n transition('final=>initial', animate('1000ms'))\n ]),\n trigger('changeBoxSize', [\n state('initial', style({\n fontSize: '17px',\n padding: '0px 6px 0px 6px'\n })),\n state('final', style({\n fontSize: '10px',\n padding: '0px 2px 0px 2px'\n })),\n transition('initial=>final', animate('1500ms')),\n transition('final=>initial', animate('1000ms'))\n ]),\n trigger('changeActBoxSize', [\n state('initial', style({\n fontSize: '17px',\n height: '26px',\n width: '26px'\n })),\n state('final', style({\n fontSize: '6px',\n height: '11px',\n width: '11px'\n })),\n transition('initial=>final', animate('1500ms')),\n transition('final=>initial', animate('1000ms'))\n ]),\n trigger('changeActBoxSize1', [\n state('initial', style({\n fontSize: '17px',\n height: '26px',\n width: '26px'\n })),\n state('final', style({\n fontSize: '8px',\n height: '11px',\n width: '11px'\n })),\n transition('initial=>final', animate('1500ms')),\n transition('final=>initial', animate('1000ms'))\n ]),\n trigger('changeMFDivSize', [\n state('initial', style({\n // width: '100%',\n // height: '100%',\n })),\n state('final', style({\n // width: '90%',\n // height: '50%'\n })),\n transition('initial=>final', animate('1500ms')),\n transition('final=>initial', animate('1000ms'))\n ]),\n trigger('changeAlertBoxSize', [\n state('initial', style({\n // fontSize:'12px',\n // height:'40%px',\n width: '20px'\n })),\n state('final', style({\n // fontSize:'6px',\n // height:'20%',\n width: '11px'\n })),\n transition('initial=>final', animate('1500ms')),\n transition('final=>initial', animate('1000ms'))\n ])\n ]\n})\nexport class ProcessMapComponent implements OnInit, OnChanges {\n copyRight: string = copyRight;\n isDisabledTeamId: boolean = false\n menuCCheck = false;\n menuReadCheck = false;\n menuCreateCheck = false;\n activityTemp: any;\n menuUpdateCheck = false;\n menuDeleteCheck = false;\n RoleData: any;\n readOnly = false;\n TeamName: string;\n empID: number;\n granualActivity = [];\n granualProcess = [];\n granualTeam = [];\n versions = [];\n currentVersion = '';\n showPrintData: boolean = false;\n\n filterDropProcess: any;\n filterDropActivity: any;\n MapType: string;\n CompanyID: string;\n\n processLists = [];\n pointerList = [];\n activityLists: any;\n ActiveActivities = {};\n tempSubList = [];\n ProcessFinalList = [];\n IssuesLists = {\n\n };\n\n granulProcessLists = {\n\n };\n\n granualTempProcess = [];\n employeeData: any;\n processData: any;\n connectedTo = [];\n activityData: any;\n pointerTypeData: any;\n frustrationtypeData: any;\n departmentData: any;\n teamData: any;\n severityData: any;\n statusData: any;\n ProcessType: string;\n EmployeeID: string;\n ProcessID: string;\n ActivityID: string;\n PointerTypeID: string;\n FrustrationTypeID: string;\n DepartmentID: string;\n TeamID: any;\n StatusID: string;\n SeverityID: string;\n Subject: string;\n Description: string;\n PointerID: string;\n pointerData: any;\n tempActivity = [];\n tempFrustrationType = [];\n CaseData = [];\n processIDs = [];\n expandMap = false;\n cased: any;\n IsVersion = false;\n condition = false;\n pocessSepecficActivity = [];\n subProcessMap = {};\n headerDate = new Date();\n metricData: any;\n expandProcess = false;\n selcetdProcessId = [];\n errorMessage: string;\n Permissons: any;\n showDiv = true;\n companyData: any;\n CompanyName: string;\n subTeam = false;\n MenuPermissions: any;\n menuData: any;\n menuID: string;\n activityTypeData: any;\n menuName: string;\n ParentID: string;\n VersionNumber: number;\n childTableName: string;\n childTableNameType: string;\n currentVersionFileds = true;\n currentUser: string;\n EmpROleID: string;\n hideButton = true;\n dashboardTeamID: any;\n typeName: any;\n alertData: any;\n alertPTypeID: any;\n alertMTypeID: any;\n alertValue: any;\n\n alertMetricValue: any;\n alertMetricPointer: any;\n ifMetricAlert = false;\n //showMetricAlert=false;\n showMetricAlert = {};\n AlertMetricStatus: any;\n copyDate: number;\n childTablePointers: any;\n squence: any;\n parentID: any;\n\n currentZoomLevel: number;\n width = 100;\n height = 100;\n currentState = 'initial';\n changeSize = false;\n previousVersionID: string;\n sequenceList = [];\n lastSequence: any;\n GoalsList: any;\n employeeDetails: any;\n employeeLoginLevel = EmployeeLoginLevel;\n constructor(private dorseyService: DorseyService, private location: LocationStrategy,\n private dialog: MatDialog, private storage: LocalStorageService,\n private goalService: GoalService\n ) {\n history.pushState(null, null, window.location.href);\n this.location.onPopState(() => {\n history.pushState(null, null, window.location.href);\n });\n\n this.currentUser = this.storage.retrieve('user');\n this.menuData = this.storage.retrieve('menuData');\n this.CompanyID = this.storage.retrieve('companyID');\n this.EmployeeID = this.storage.retrieve('EmployeeID');\n this.MenuPermissions = this.storage.retrieve('MenuPermissions');\n this.EmpROleID = this.storage.retrieve(\"EmpRoleID\");\n this.empID = this.storage.retrieve(\"EmployeeID\");\n this.dashboardTeamID = this.storage.retrieve(\"id\");\n this.CompanyName = this.storage.retrieve('CompanyName');\n if (this.dashboardTeamID !== null) {\n this.TeamID = Number(this.dashboardTeamID);\n }\n else if (this.EmployeeID.toString() === \"0\") {\n this.TeamID = Number(this.storage.retrieve('TeamIDLeader'));\n }\n else {\n this.TeamID = (this.storage.retrieve('TeamID'));\n }\n this.employeeDetails = this.storage.retrieve(\"employeeDetails\");\n this.GetEmployee();\n this.MapType = \"3\";\n this.typeName = 'Both';\n this.GetTeam();\n }\n\n ngOnChanges() {\n\n }\n\n // @HostListener('window:popstate', ['$event'])\n // onPopState(event) {\n // console.log('Back button pressed');\n // var loginLevel = this.storage.retrieve(\"loginLevel\");\n // if (loginLevel === 'organization' || loginLevel === 'superadmin' || loginLevel === 'entity') {\n // this.login.BackToAdmin();\n // }\n // }\n\n ngOnInit() {\n this.GetRoles();\n this.GetGoals();\n let tempdata = this.menuData;\n this.menuData = tempdata.filter(x => x.MenuName.toString().toLowerCase() === 'processmap');\n if (this.menuData.length > 0) {\n this.menuName = this.menuData[0][\"MenuName\"];\n this.menuID = this.menuData[0][\"MenuID\"];\n }\n\n if ((this.MenuPermissions[this.menuName][this.menuID]['C'] && this.MenuPermissions[this.menuName][this.menuID]['R']) || (this.MenuPermissions[this.menuName][this.menuID]['U'] && this.MenuPermissions[this.menuName][this.menuID]['R']) || (this.MenuPermissions[this.menuName][this.menuID]['D'] && this.MenuPermissions[this.menuName][this.menuID]['R'])) {\n this.readOnly = false;\n }\n else {\n this.readOnly = true;\n }\n this.GetActivityType();\n this.GetCompany();\n this.GetPointer();\n this.GetActivities();\n this.GetDepartment();\n this.GetPointerType();\n this.GetSeverity();\n this.GetStatus();\n this.GetFrustrationType();\n this.GetAlertValues();\n this.GetMetricAlert();\n setTimeout(() => {\n this.checkForMetricAlert();\n }, 500);\n\n this.copyDate = (new Date()).getFullYear();\n }\n\n\n GetGoals() {\n this.GoalsList = [];\n this.goalService.getGoals(parseInt(this.CompanyID)).subscribe(resp => {\n\n this.GoalsList = resp.Data;\n });\n }\n changeState() {\n this.changeSize = !this.changeSize;\n this.currentState = this.currentState === 'initial' ? 'final' : 'initial';\n }\n GetCompany() {\n this.dorseyService.GetCompanyData().subscribe(company => {\n this.companyData = JSON.parse(company['_body']);\n let filterCompanyName = this.companyData.filter(x => x.CompanyID === this.CompanyID);\n if (filterCompanyName.length === 1) {\n this.CompanyName = filterCompanyName[0].CompanyName;\n\n }\n });\n\n }\n isOverflown(element) {\n return element.scrollHeight > element.clientHeight || element.scrollWidth > element.clientWidth;\n }\n\n AutoFit() {\n let el = document.getElementsByClassName('squareInActvty');\n\n for (let index = 0; index < el.length; ++index) {\n var div = el[index];\n\n\n }\n }\n GetVersions() {\n\n this.errorMessage = \"\";\n\n this.dorseyService.GetVersions(Number(this.CompanyID), this.TeamID).subscribe(versions => {\n this.versions = JSON.parse(versions['_body']);\n if (this.versions.length > 0) {\n if (this.TeamID) {\n this.currentVersion = this.versions[this.versions.length - 1];\n this.DepartmentID = this.versions[this.versions.length - 1]['VersionID'];\n }\n this.ConstructMap();\n }\n else {\n this.ProcessFinalList = [];\n this.granualActivity = [];\n this.granualProcess = [];\n this.pointerList = [];\n\n this.processLists = [];\n this.TeamID = this.TeamID;\n }\n\n });\n }\n GetSelectedVersion(event) {\n this.processLists = [];\n this.activityLists = [];\n this.pointerList = [];\n this.previousVersionID = event.value;\n for (let i = 0; i < this.versions.length; i++) {\n if (this.versions[i].VersionID === event.value) {\n this.currentVersion = this.versions[i];\n if (this.versions[i].VersionName.split('_').length !== 1) {\n this.headerDate = new Date(this.versions[i].VersionName.split('_')[1]);\n this.currentVersionFileds = false;\n }\n else {\n this.headerDate = new Date();\n this.currentVersionFileds = false;\n }\n }\n }\n this.ConstructMap();\n }\n GetSelectedProcessMap(event) {\n\n this.selcetdProcessId = [];\n this.activityLists = [];\n this.ActiveActivities = [];\n this.TeamID = event.value;\n\n this.subTeam = true;\n\n this.GetVersions();\n for (let i = 0; i < this.teamData.length; i++) {\n\n if (this.teamData[i].TeamID === event.value) {\n\n }\n }\n }\n\n GetRoles() {\n this.dorseyService.GetRoles(this.CompanyID).subscribe(data => {\n\n let roledata = JSON.parse(data[\"_body\"]);\n this.RoleData = roledata;\n\n let tempData = roledata.filter(x => x.RoleID === this.EmpROleID);\n if (tempData.length == 0) {\n\n return;\n }\n\n else {\n if (!tempData[0].PermissionJson) {\n return;\n }\n else {\n this.Permissons = JSON.parse(tempData[0].PermissionJson);\n }\n }\n\n });\n }\n\n\n ConstructMap() {\n if (!this.TeamID)\n return;\n this.connectedTo = [];\n this.IssuesLists = [];\n this.ActiveActivities = [];\n this.ProcessFinalList = [];\n\n this.dorseyService.GetVersions(Number(this.CompanyID), this.TeamID).subscribe(versions => {\n this.versions = JSON.parse(versions['_body']);\n let CurrentVersionNumber;\n this.processLists = [];\n this.processIDs = [];\n this.granualProcess = [];\n this.granualActivity = [];\n this.hideButton = true;\n\n let tableName;\n let tableAct;\n let tablePointers;\n let tableKeyProcessTeam;\n let tableActivitiesTeam;\n let tablefrustrationType;\n this.CompanyID = this.CompanyID;\n if (this.TeamID !== '0') {\n let data = this.teamData.filter(x => x.TeamID === this.TeamID);\n if (data.length > 0) {\n this.TeamName = data[0].TeamName;\n }\n\n\n }\n CurrentVersionNumber = this.currentVersion['VersionID'];\n this.VersionNumber = CurrentVersionNumber;\n\n if (this.currentVersion['VersionName'] != undefined)\n if (this.currentVersion['VersionName'].split('_').length === 1) {\n this.IsVersion = false;\n }\n\n\n if (this.currentVersion['VersionName'] != undefined)\n if (!(this.currentVersion['VersionName'].split('_').length === 1)) {\n\n this.IsVersion = true;\n tableName = 'Ver_KeyProcess';\n tableAct = 'Ver_Activities';\n tablePointers = 'Ver_Pointers';\n tablefrustrationType = 'Ver_FrustrationsType';\n\n }\n else {\n this.IsVersion = false;\n tableName = 'KeyProcess';\n tableAct = 'Activities';\n tablePointers = 'Pointers';\n\n tablefrustrationType = 'FrustrationsType';\n }\n this.childTableName = tablePointers;\n this.childTablePointers = tablePointers;\n this.childTableNameType = tableAct;\n this.dorseyService.GetSelectedVersionData(Number(CurrentVersionNumber), Number(this.CompanyID), Number(this.TeamID), tableName).subscribe(process => {\n\n process = JSON.parse(process['_body']);\n\n let Prcesses: any = process;\n\n this.dorseyService.GetSelectedVersionPointerData(CurrentVersionNumber, Number(this.CompanyID), Number(this.TeamID), tablePointers).subscribe(pointer => {\n this.pointerList = JSON.parse(pointer['_body']);\n\n for (let i = 0; i < Prcesses.length; i++) {\n\n let PmCount = 0; let PfCount = 0;\n let smCount = 0, sfCount = 0;\n\n let subActiCount = 0;\n if (Prcesses[i]['CompanyID'].toString() === this.CompanyID.toString() || this.CompanyID.toString() == \"0\") {\n\n\n this.processLists.push(Prcesses[i]);\n\n\n if (!this.Permissons) {\n this.granualProcess = this.processLists;\n\n }\n else {\n\n\n if (this.Permissons[\"Process\"] !== undefined) {\n let ProcessPer = this.Permissons[\"Process\"];\n\n let processKeys = Object.keys(ProcessPer);\n\n this.granualProcess = [];\n\n for (let i = 0; i < processKeys.length; i++) {\n\n let prsData = this.processLists.filter(x => x.ProcessID.toString() === processKeys[i].toString());\n\n if (prsData.length > 0) {\n let permissonKeys = Object.keys(ProcessPer[processKeys[i]]);\n\n if (permissonKeys.indexOf('R') > -1)\n prsData[0]['R'] = ProcessPer[processKeys[i]]['R'];\n else\n prsData[0]['R'] = false;\n\n\n if (permissonKeys.indexOf('C') > -1)\n prsData[0]['C'] = ProcessPer[processKeys[i]]['C'];\n else\n prsData[0]['C'] = false;\n\n\n if (permissonKeys.indexOf('U') > -1)\n prsData[0]['U'] = ProcessPer[processKeys[i]]['U'];\n else\n prsData[0]['U'] = false;\n\n\n if (permissonKeys.indexOf('D') > -1)\n prsData[0]['D'] = ProcessPer[processKeys[i]]['D'];\n else\n prsData[0]['D'] = false;\n\n this.granualProcess.push(prsData[0]);\n }\n else {\n\n }\n\n\n\n }\n\n if (this.granualProcess.length === 0) {\n this.granualProcess = this.processLists;\n }\n }\n else {\n\n if (this.TeamID != \"0\" && this.CompanyID != \"0\") {\n let data = this.processLists.filter(x => x.TeamID === this.TeamID && x.CompanyID === this.CompanyID);\n this.processLists = data;\n this.granualProcess = this.processLists;\n\n }\n else {\n let data = this.processLists.filter(x => x.CompanyID === this.CompanyID);\n this.processLists = data;\n this.granualProcess = this.processLists;\n }\n\n\n }\n }\n\n\n this.dorseyService.GetSelectedVersionActivityData(CurrentVersionNumber, Number(this.CompanyID), Number(this.TeamID), tableAct).subscribe(activity => {\n\n activity = JSON.parse(activity['_body']);\n\n this.activityLists = activity;\n\n\n\n\n\n // let filter=this.activityLists.filter(x=>x.ProcessID=== this.granualProcess[i].ProcessID);\n // if(filter.length>0){\n // this.activityTemp=filter;\n // }\n\n // else{\n // this.activityTemp=[];\n // }\n\n\n\n if (!this.Permissons) {\n this.granualActivity = this.activityLists;\n\n }\n else {\n\n if (this.Permissons[\"Activity\"] !== undefined) {\n\n\n let ActPer = this.Permissons[\"Activity\"];\n\n let activityKeys = Object.keys(ActPer);\n\n this.granualActivity = [];\n for (let i = 0; i < activityKeys.length; i++) {\n\n\n let actData = this.activityLists.filter(x => x.ActivityID.toString() === activityKeys[i].toString());\n if (actData.length > 0) {\n let permissonKeys = Object.keys(ActPer[activityKeys[i]]);\n\n if (permissonKeys.indexOf('R') > -1)\n actData[0]['R'] = ActPer[activityKeys[i]]['R'];\n else\n actData[0]['R'] = false;\n\n\n if (permissonKeys.indexOf('C') > -1)\n actData[0]['C'] = ActPer[activityKeys[i]]['C'];\n else\n actData[0]['C'] = false;\n\n\n if (permissonKeys.indexOf('U') > -1)\n actData[0]['U'] = ActPer[activityKeys[i]]['U'];\n else\n actData[0]['U'] = false;\n\n\n if (permissonKeys.indexOf('D') > -1)\n actData[0]['D'] = ActPer[activityKeys[i]]['D'];\n else\n actData[0]['D'] = false;\n\n this.granualActivity.push(actData[0]);\n }\n\n }\n if (this.granualActivity.length === 0) {\n this.granualActivity = this.activityLists;\n }\n\n }\n else {\n\n if (this.TeamID != \"0\" && this.CompanyID != \"0\") {\n let data = this.activityLists.filter(x => x.TeamID === this.TeamID && x.CompanyID === this.CompanyID);\n this.activityLists = data;\n this.granualActivity = this.activityLists;\n\n }\n else {\n let data = this.activityLists.filter(x => x.CompanyID === this.CompanyID);\n this.activityLists = data;\n this.granualActivity = this.activityLists;\n }\n\n }\n }\n\n const ActivityJson = [];\n let ActiDummyM = {}; const ActiDummyI = {}; let procesDummy = {};\n let issueDummy = {}; let metricDummy = {};\n let issueProcess = {}; let metricProcess = {};\n let metricMoreThanDummy = {};\n let issueProbool = {};\n let metricProbool = {};\n\n for (let j = 0; j < this.granualActivity.length; j++) {\n let frustationCount = []; let fCount = 0;\n let metricCount = []; let mCount = 0;\n\n\n if (this.granualActivity[j]['ProcessID'].toString() === this.granualProcess[i].ProcessID.toString() && this.granualActivity[j].ParentID === 0) {\n\n\n this.metricData = this.pointerList.filter(x => x.PointerTypeID != null && x.PointerTypeID.toString() === '2');\n this.pointerList.forEach(element => {\n\n\n if (element['ProcessID'] === this.granualProcess[i].ProcessID && element['ActivityID'] === this.granualActivity[j]['ActivityID']) {\n if (element['PointerTypeID'] === 2) {\n mCount++;\n this.expandProcess = false;\n let metric = this.metricData.filter(x => x.ProcessID === this.granualProcess[i].ProcessID && x.ActivityID === this.granualActivity[j].ActivityID)\n metricDummy[this.granualActivity[j]['ActivityID']] = metric;\n } else {\n\n fCount++;\n this.expandProcess = false;\n this.dorseyService.GetCaseData(this.granualProcess[i].ProcessID, this.granualActivity[j].ActivityID, 1, CurrentVersionNumber, this.childTableName, this.childTableNameType).subscribe(cases => {\n cases = JSON.parse(cases['_body']);\n this.cased = cases;\n issueDummy[this.granualActivity[j]['ActivityID']] = this.cased;\n });\n }\n }\n else {\n if (element['PointerTypeID'] === 2) {\n let metric = this.metricData.filter(x => x.ProcessID === this.granualProcess[i].ProcessID && x.ActivityID === this.granualActivity[j].ActivityID)\n\n metricMoreThanDummy[this.granualActivity[j]['ActivityID']] = metric.length;\n }\n }\n });\n\n\n let subActData = this.granualActivity.filter(x => x.ProcessID === this.granualProcess[i].ProcessID && x.ParentID !== 0);\n\n for (let n = 0; n < subActData.length; n++) {\n\n if (subActData[n]['ProcessID'].toString() === this.granualProcess[i].ProcessID.toString()) {\n\n for (let a = 0; a < this.pointerList.length; a++) {\n if (subActData[n].ActivityID === this.pointerList[a].ActivityID && this.pointerList[a].PointerTypeID === 2) {\n\n smCount++;\n } else if (subActData[n].ActivityID === this.pointerList[a].ActivityID && this.pointerList[a].PointerTypeID === 1) {\n\n sfCount++;\n }\n }\n\n }\n }\n\n this.granualProcess[i].SubMetricCount = smCount;\n this.granualProcess[i].SubIssueCount = sfCount;\n\n if (this.granualProcess[i].MetricCount) {\n this.granualProcess[i].MetricCount = +this.granualProcess[i].MetricCount + mCount;\n }\n else { this.granualProcess[i].MetricCount = mCount; }\n if (this.granualProcess[i].IssueCount) {\n this.granualProcess[i].IssueCount = +this.granualProcess[i].IssueCount + fCount;\n }\n else { this.granualProcess[i].IssueCount = fCount; }\n\n if (mCount !== 0) {\n ActiDummyM[this.granualActivity[j]['ActivityID']] = mCount;\n }\n\n\n if (fCount !== 0) {\n ActiDummyI[this.granualActivity[j]['ActivityID']] = fCount;\n }\n\n let element = document.getElementById('metric');\n\n procesDummy['Metric'] = ActiDummyM;\n procesDummy['MetricCount'] = this.granualProcess[i].MetricCount;\n procesDummy['Issue'] = ActiDummyI;\n procesDummy['IssueCount'] = this.granualProcess[i].IssueCount;\n\n ActivityJson.push(this.granualActivity[j]);\n ActivityJson.sort(function (a, b) {\n return a.squence - b.squence;\n });\n\n this.ActiveActivities[this.granualProcess[i].ProcessID] = ActivityJson;\n\n this.tempSubList[this.granualActivity[j]];\n\n\n } if (this.granualActivity[j]['ProcessID'].toString() === this.granualProcess[i].ProcessID.toString() && this.granualActivity[j].ParentID !== 0) {\n\n subActiCount++;\n }\n procesDummy['SubActivity'] = subActiCount;\n\n }\n\n this.pointerList.forEach(element => {\n if (element['ProcessID'] === this.granualProcess[i].ProcessID && element['ActivityID'] === 0) {\n if (this.processIDs.indexOf(this.granualProcess[i].ProcessID) > -1) {\n } else {\n if (element['StatusID'] !== 4 || element['StatusID'] !== 5) {\n if (element['PointerTypeID'] === 2) {\n PmCount++;\n this.metricData = this.pointerList.filter(x => x.PointerTypeID != null && x.PointerTypeID.toString() === '2');\n let metricd = this.metricData.filter(x => x.ProcessID === this.granualProcess[i].ProcessID && x.ActivityID === 0)\n metricProcess[Prcesses[i]['ProcessID']] = metricd;\n metricProbool[Prcesses[i]['ProcessID']] = true;\n this.expandProcess = true;\n\n } else {\n PfCount++;\n this.dorseyService.GetCaseData(this.granualProcess[i].ProcessID, 0, 1, CurrentVersionNumber, this.childTableName, this.childTableNameType).subscribe(cases => {\n cases = JSON.parse(cases['_body']);\n\n issueProcess[Prcesses[i]['ProcessID']] = cases;\n this.expandProcess = true;\n issueProbool[Prcesses[i]['ProcessID']] = true;\n\n });\n }\n }\n }\n }\n });\n\n this.granualProcess.forEach(elementProcess => {\n this.granualTempProcess = [];\n this.granulProcessLists = [];\n this.granualActivity.forEach(elementActivity => {\n\n\n if (elementProcess.ProcessID == elementActivity.ProcessID && elementActivity.ParentID == 0) {\n this.granualTempProcess.push(elementActivity);\n }\n\n });\n\n\n this.granualTempProcess.sort(function (a, b) {\n return a.squence - b.squence;\n });\n // this.granulProcessLists['weeklist'] = this.granualTempProcess;\n if (this.granualProcess.length == this.ProcessFinalList.length) {\n return;\n }\n else {\n this.ProcessFinalList.push({\n 'ProcessID': elementProcess.ProcessName,\n 'ActivityList': this.granualTempProcess,\n 'Process': elementProcess\n });\n\n this.connectedTo.push(elementProcess.ProcessName);\n }\n })\n\n if (this.processIDs.indexOf(this.granualProcess[i].ProcessID) > -1) { }\n else { this.processIDs.push(this.granualProcess[i].ProcessID); }\n procesDummy['IssueProcess'] = issueProcess;\n procesDummy['MetricProcess'] = metricProcess;\n Prcesses[i].pMetricCount = PmCount;\n Prcesses[i].pIssueCount = PfCount;\n Prcesses[i].SubMetricCount = smCount;\n Prcesses[i].SubIssueCount = sfCount;\n procesDummy['pMetricCount'] = PmCount;\n procesDummy['pIssueCount'] = PfCount;\n procesDummy['SubMetricCount'] = smCount;\n procesDummy['SubIssueCount'] = sfCount;\n procesDummy['IssueList'] = issueDummy;\n procesDummy['MetricList'] = metricDummy;\n procesDummy['MetricMoreThan'] = metricMoreThanDummy;\n procesDummy['TeamID'] = Prcesses[i].TeamID;\n if (Object.keys(procesDummy).length > 0) {\n this.IssuesLists[this.granualProcess[i].ProcessID] = procesDummy;\n }\n\n\n let datatemp = this.chunk(this.tempSubList, 3);\n this.checkForMetricAlert();\n\n\n });\n }\n }\n });\n });\n });\n }\n chunk(arr, size) {\n var newArr = [];\n for (var i = 0; i < arr.length; i += size) {\n newArr.push(arr.slice(i, i + size));\n }\n return newArr;\n }\n Print1() {\n var id = document.getElementById('Map');\n var prt = document.getElementById('printMap');\n // prt.style.height ='1000px';\n // id.classList.remove('donotprintthis');\n var printContents = document.getElementById('printMap').innerHTML;\n var originalContents = document.body.innerHTML;\n document.body.innerHTML = printContents;\n window.print();\n\n //prt.style.height ='440px';\n // document.body.innerHTML = originalContents;\n }\n\n Print() {\n // var id = document.getElementById('Map');\n // var prt = document.getElementById('printMap');\n // prt.style.height ='1000px';\n //id.classList.remove('donotprintthis');\n var printContents = document.getElementById('printMap').innerHTML;\n document.body.innerHTML = printContents;\n window.print();\n //prt.style.height ='440px';\n // document.body.innerHTML = originalContents;\n }\n\n\n Versioning(menuPer) {\n if (!menuPer) {\n return;\n }\n const json = {\n CompanyID: this.CompanyID,\n TeamID: this.TeamID,\n createdby: this.currentUser\n };\n const dialogRef = this.dialog.open(ProcessMapDialogComponent, {\n data: 'Are you sure you want to version it ' + '?æææ' + true,\n });\n dialogRef.afterClosed().subscribe(result => {\n if (result) {\n this.dorseyService.SaveProcess(json, 'Yes').subscribe(data => {\n if (data.ok) {\n this.condition = true;\n this.dialogCall('Version saved successfully');\n }\n // this.GetProcess();\n // this.GetActivities();\n // this.GetPointer();\n this.GetVersions();\n });\n }\n });\n }\n\n ExpandMap() {\n this.processLists = [];\n this.IssuesLists = {};\n this.processIDs = [];\n this.pointerList = [];\n this.ConstructMap()\n this.expandMap = true;\n\n }\n HideMap() {\n this.expandMap = false;\n }\n\n GetPointer() {\n this.dorseyService.GetPointer(this.CompanyID).subscribe(subData => {\n\n subData = JSON.parse(subData['_body']);\n this.pointerData = subData;\n this.metricData = this.pointerData.filter(x => x.PointerTypeID != null && x.PointerTypeID.toString() === '2');\n\n });\n }\n GetEmployee() {\n this.dorseyService.GetEmployee(this.CompanyID).subscribe(subData => {\n subData = JSON.parse(subData['_body']);\n this.employeeData = subData;\n let temmEmployee = this.employeeData;\n\n if (this.TeamID != '0') {\n this.employeeData = temmEmployee.filter(x => x.TeamID === this.TeamID || x.CompanyID == this.CompanyID);\n } else {\n this.employeeData = temmEmployee.filter(x => x.CompanyID === this.CompanyID);\n }\n\n\n\n if (this.empID.toString() !== '0') {\n let filterEmp = this.employeeData.filter(x => x.EmployeeID === this.empID);\n if (filterEmp.length > 0) {\n if (filterEmp[0].TeamID !== '0') {\n this.TeamID = filterEmp[0].TeamID;\n }\n\n }\n\n\n }\n });\n }\n\n\n GetDepartment() {\n this.dorseyService.GetDepartment().subscribe(subData => {\n subData = JSON.parse(subData['_body']);\n this.departmentData = subData;\n });\n }\n\n GetPointerType() {\n this.dorseyService.GetPointerType().subscribe(subData => {\n subData = JSON.parse(subData['_body']);\n this.pointerTypeData = subData;\n });\n }\n GetStatus() {\n this.dorseyService.GetStatus().subscribe(subData => {\n subData = JSON.parse(subData['_body']);\n this.statusData = subData;\n });\n }\n GetSeverity() {\n this.dorseyService.GetSeverity().subscribe(subData => {\n subData = JSON.parse(subData['_body']);\n this.severityData = subData;\n });\n }\n\n GetTeam() {\n this.GetRoles();\n this.ProcessFinalList = []; ``\n this.granualProcess = [];\n this.granualActivity = [];\n this.IssuesLists = [];\n this.processLists = [];\n this.pointerList = [];\n this.activityLists = [];\n\n this.dorseyService.GetTeam(this.CompanyID).subscribe(subData => {\n subData = JSON.parse(subData['_body']);\n this.teamData = subData;\n if (!this.Permissons) {\n\n if (this.EmployeeID.toString() !== \"0\") {\n if (this.employeeLoginLevel.Department == this.employeeDetails.IsEmployeeLoginLevel) {\n this.teamData = this.teamData.filter(ent => ent.DepartmentID == this.employeeDetails.DepartmentID);\n }\n else if (this.employeeLoginLevel.Team == this.employeeDetails.IsEmployeeLoginLevel) {\n this.teamData = this.teamData.filter(ent => ent.DepartmentID == this.employeeDetails.DepartmentID && ent.TeamID == this.employeeDetails.TeamID);\n }\n else {\n this.teamData = subData;\n }\n // if (this.TeamID.toString() !== \"0\" && this.CompanyID.toString() !== \"0\") {\n // let data = this.teamData.filter(x => x.TeamID === this.TeamID && x.CompanyID === this.CompanyID);\n\n // this.teamData = data;\n // this.TeamID = this.teamData[0].TeamID;\n // }\n // else {\n // let data = this.teamData.filter(x => x.CompanyID === this.CompanyID);\n // this.teamData = data;\n // }\n }\n else {\n this.teamData = subData;\n }\n\n }\n else if (this.Permissons[\"Team\"] !== undefined) {\n\n let TeamPer = this.Permissons[\"Team\"];\n let TeamKeys = Object.keys(TeamPer);\n let teamTemp = TeamKeys;\n\n if (!TeamKeys) {\n this.teamData = subData;\n }\n else {\n\n let tempList = [];\n for (let k = 0; k < TeamKeys.length; k++) {\n let data = this.teamData.filter(x => x.TeamID.toString() === TeamKeys[k].toString());\n if (data.length > 0) {\n tempList[k] = (data[0]);\n }\n }\n this.teamData = tempList;\n }\n }\n else {\n if (this.employeeLoginLevel.Department == this.employeeDetails.IsEmployeeLoginLevel) {\n this.teamData = this.teamData.filter(ent => ent.DepartmentID == this.employeeDetails.DepartmentID);\n }\n else if (this.employeeLoginLevel.Team == this.employeeDetails.IsEmployeeLoginLevel) {\n this.teamData = this.teamData.filter(ent => ent.DepartmentID == this.employeeDetails.DepartmentID && ent.TeamID == this.employeeDetails.TeamID);\n }\n else {\n this.teamData = subData;\n }\n // if (this.TeamID.toString() !== \"0\" && this.CompanyID.toString() !== \"0\") {\n // let data = this.teamData.filter(x => x.TeamID === this.TeamID && x.CompanyID === this.CompanyID);\n\n // this.teamData = data;\n // }\n // else {\n // let data = this.teamData.filter(x => x.CompanyID === this.CompanyID);\n // this.teamData = data;\n // this.TeamID = this.teamData[0].TeamID;\n // }\n }\n\n if (this.TeamID.toString() === '0') {\n if (this.teamData !== undefined) {\n for (let i = 0; i < this.teamData.length; i++) {\n if (this.teamData[i].TeamName === 'Leadership Team') {\n this.TeamID = this.teamData[i].TeamID;\n }\n }\n }\n }\n this.GetVersions();\n });\n\n }\n\n //drag drop activity\n dropActivity(event: CdkDragDrop<string[]>, ProcessData: any) {\n this.sequenceList = [];\n this.filterDropActivity = [];\n\n if (event.previousContainer === event.container) {\n // moveItemInArray(event.container.data, event.previousIndex, event.currentIndex);\n\n this.filterDropActivity = event.container.data;\n let filterArrayActivity = this.filterDropActivity.filter(x => x.squence == event.previousIndex + 1);\n\n if (filterArrayActivity.length > 0 && filterArrayActivity.length == 1) {\n this.SaveActivity(filterArrayActivity, event.currentIndex + 1, filterArrayActivity[0].ProcessID, 'move');\n }\n }\n else {\n\n transferArrayItem(event.previousContainer.data,\n event.container.data,\n event.previousIndex,\n event.currentIndex);\n\n\n this.filterDropActivity = event.container.data;\n for (let i = 0; i < this.filterDropActivity.length; i++) {\n\n if (this.filterDropActivity[i].ProcessID === ProcessData.ProcessID && this.filterDropActivity[i].ParentID === 0 && this.TeamID === this.filterDropActivity[i].TeamID) {\n this.sequenceList.push(this.filterDropActivity[i].squence);\n }\n\n\n }\n\n let filterArrayActivity = this.filterDropActivity.filter(x => x.squence == event.previousIndex + 1 && x.ProcessID !== ProcessData.ProcessID);\n\n this.SaveActivity(filterArrayActivity, event.currentIndex + 1, ProcessData.ProcessID, 'transfer');\n }\n\n\n }\n //drag drop process\n dropProcess(event: CdkDragDrop<string[]>) {\n\n if (event.previousContainer === event.container) {\n this.filterDropProcess = event.container.data;\n let filterArrayProcess = this.filterDropProcess.filter(x => x['Process'].squence == event.previousIndex + 1);\n\n if (filterArrayProcess.length > 0 && filterArrayProcess.length == 1) {\n this.SaveProcess(filterArrayProcess[0]['Process'], event.currentIndex + 1);\n }\n }\n // moveItemInArray(event.container.data, event.previousIndex, event.currentIndex);\n }\n SaveProcess(processData: any, currentIndex) {\n\n const json = {\n CompanyID: processData.CompanyID,\n\n processName: processData.ProcessName,\n createdby: processData.CreatedBy,\n processID: processData.ProcessID,\n updatedby: processData.CreatedBy,\n ProcessDescription: processData.ProcessDescription,\n\n DepartmentID: \"0\",\n EmployeeID: processData.EmployeeID,\n\n type: 'edit',\n TeamID: processData.TeamID,\n squence: currentIndex,\n lastSequence: processData.squence\n };\n\n this.dorseyService.SaveProcess(json, 'No').subscribe(data => {\n if (data['_body'].toString() === 'true') {\n\n } else {\n\n }\n this.ConstructMap();\n });\n\n\n }\n\n SaveActivity(currentAct: any, currentIndex, ProcessID, typeOf) {\n this.lastSequence = [];\n\n\n if (typeOf.toString() == 'transfer') {\n if (ProcessID != currentAct[0].ProcessID) {\n let seq = this.sequenceList.length + 1;\n\n if (this.sequenceList.length !== 0) {\n this.sequenceList.push(seq);\n }\n else this.sequenceList.push(1);\n }\n\n if (currentAct[0].ParentID === 0) {\n this.squence = this.sequenceList[this.sequenceList.length - 1];\n this.lastSequence = this.sequenceList.length;\n }\n }\n\n for (let i = 0; i < currentAct.length; i++) {\n\n if (typeOf.toString() == 'move') {\n this.lastSequence = currentAct[i].squence;\n\n }\n const json = {\n CompanyID: this.CompanyID,\n ActivityID: currentAct[i].ActivityID,\n ParentID: currentAct[i].ParentID,\n ActivityName: currentAct[i].ActivityName,\n ProcessID: ProcessID,\n ActivityTypeID: currentAct[i].ActivityTypeID,\n DepartmentID: currentAct[i].DepartmentID,\n EmployeeID: currentAct[i].EmployeeID,\n CreatedBy: this.currentUser,\n UpdatedBy: this.currentUser,\n TeamIDs: this.TeamID,\n squence: currentIndex,\n type: 'edit',\n lastSequence: this.lastSequence\n };\n\n // return;\n this.dorseyService.SaveActivity(json, 'No').subscribe(data => {\n if (data['_body'].toString() === 'true') {\n this.ConstructMap();\n\n } else {\n\n }\n this.GetActivities();\n\n });\n }\n }\n\n\n GetActivities() {\n this.dorseyService.GetActivity(this.CompanyID).subscribe(subData => {\n subData = JSON.parse(subData['_body']);\n this.activityData = subData;\n\n });\n }\n GetProcess() {\n this.dorseyService.GetProcess(this.CompanyID).subscribe(subData => {\n this.processLists = JSON.parse(subData['_body']);\n if (this.processLists.length === 0) {\n this.showDiv = true;\n\n }\n\n });\n }\n GetActivity() {\n\n this.dorseyService.GetActivity(this.CompanyID).subscribe(activity => {\n activity = JSON.parse(activity['_body']);\n this.activityLists = activity;\n this.activityData = this.activityLists;\n });\n }\n\n GetPointers() {\n\n this.dorseyService.GetPointer(this.CompanyID).subscribe(pointer => {\n this.pointerList = JSON.parse(pointer['_body']);\n\n });\n\n }\n getCase(processID, activityID, pointerID, menuUpdate, menuDelete) {\n\n this.menuUpdateCheck = menuUpdate;\n this.menuDeleteCheck = menuDelete;\n\n if (this.expandMap === true) {\n this.expandMap = true;\n }\n\n let activityName = '';\n\n if (activityID !== 0) {\n activityName = activityID.ActivityName;\n activityID = activityID.ActivityID;\n\n }\n\n this.dorseyService.GetCaseData(processID.ProcessID, activityID, pointerID, this.currentVersion['VersionID'], this.childTableName, this.childTableNameType).subscribe(cases => {\n cases = JSON.parse(cases['_body']);\n\n const dialogRef = this.dialog.open(ProcessMapDialogComponent, {\n panelClass: 'custom-dialog-container',\n data: 'new' + 'æææ' + true + 'æææ' + pointerID,\n width: '800px',\n });\n\n let filterROle = this.RoleData.filter(x => x.RoleName === \"Read Only\" && x.RoleID === this.EmpROleID);\n\n if (filterROle.length > 0) {\n this.readOnly = true;\n }\n else {\n this.readOnly = false;\n\n }\n\n\n\n\n\n dialogRef.componentInstance.IsVersion = this.IsVersion;\n dialogRef.componentInstance.readOnly = this.readOnly;\n dialogRef.componentInstance.GoalsList = this.GoalsList;\n\n dialogRef.componentInstance.menuDeleteCheck = this.menuDeleteCheck;\n dialogRef.componentInstance.menuUpdateCheck = this.menuUpdateCheck;\n\n dialogRef.componentInstance.childTablePointers = this.childTablePointers;\n dialogRef.componentInstance.currentVersion = this.currentVersion;\n dialogRef.componentInstance.versionID = this.currentVersion['VersionID'];\n dialogRef.componentInstance.childTableNameType = this.childTableNameType;\n dialogRef.componentInstance.CaseData = cases;\n dialogRef.componentInstance.Process = processID.ProcessName;\n dialogRef.componentInstance.Activity = activityName;\n dialogRef.componentInstance.pointerList = this.pointerList;\n dialogRef.componentInstance.processData = this.processData;\n\n dialogRef.componentInstance.childTableName = this.childTableName;\n\n dialogRef.componentInstance.processData = this.processLists;\n dialogRef.componentInstance.activityData = this.activityData;\n dialogRef.componentInstance.departmentData = this.departmentData;\n dialogRef.componentInstance.pointerTypeData = this.pointerTypeData;\n dialogRef.componentInstance.severityData = this.severityData;\n // dialogRef.componentInstance.statusData = this.statusData;\n dialogRef.componentInstance.teamData = this.teamData;\n dialogRef.componentInstance.employeeData = this.employeeData;\n dialogRef.componentInstance.frustrationtypeData = this.frustrationtypeData;\n dialogRef.componentInstance.tempActivity = this.tempActivity;\n dialogRef.componentInstance.tempFrustrationType = this.tempFrustrationType;\n dialogRef.componentInstance.statusData = this.statusData;\n dialogRef.componentInstance.ActivityID = activityID;\n dialogRef.componentInstance.ProcessID = processID;\n dialogRef.componentInstance.IssuesLists = this.IssuesLists;\n dialogRef.componentInstance.ProcessFinalList = this.ProcessFinalList;\n dialogRef.afterClosed().subscribe(result => {\n this.ConstructMap();\n })\n\n\n });\n\n\n }\n\n getCaseData(processID, activityID, pointerID, versionID) {\n this.dorseyService.GetCaseData(processID.ProcessID, activityID.ActivityID, pointerID, versionID, this.childTableName, this.childTableNameType).subscribe(cases => {\n cases = JSON.parse(cases['_body']);\n this.cased = cases;\n\n });\n\n\n }\n\n\n GetFrustrationType() {\n this.dorseyService.GetFrustrationType('1', this.CompanyID).subscribe(subData => {\n subData = JSON.parse(subData['_body']);\n this.frustrationtypeData = subData;\n\n });\n\n\n }\n ChooseMatricOrIssue(processID, activityID, menuPer, isver, read, menuUpdate, menuDelete) {\n\n this.ActivityID = activityID;\n\n\n\n\n // if(isver){\n // let filter=this.activityData.filter(x=>x.ProcessID===processID && x.VersionID===this.currentVersion['VersionID']);\n // if(filter.length>0){\n // this.activityTemp=filter;\n // }\n\n // else{\n // this.activityTemp=[];\n // }\n\n // }\n // else{\n\n // }\n\n\n\n let filter = this.granualActivity.filter(x => x.ProcessID === processID);\n if (filter.length > 0) {\n this.activityTemp = filter;\n }\n\n else {\n this.activityTemp = [];\n }\n\n\n\n\n\n let filterROle = this.RoleData.filter(x => x.RoleName === \"Read Only\" && x.RoleID === this.EmpROleID);\n\n if (filterROle.length > 0) {\n this.readOnly = true;\n }\n else {\n this.readOnly = false;\n\n }\n\n\n if (!this.TeamID) {\n return;\n }\n\n\n this.menuReadCheck = read;\n\n this.menuUpdateCheck = menuUpdate;\n\n this.menuDeleteCheck = menuDelete;\n // if(!this.readOnly){\n // this.readOnly=read;\n // }\n this.menuCreateCheck = menuPer;\n\n\n if (this.menuCreateCheck && this.menuReadCheck) {\n this.menuCreateCheck = this.menuCreateCheck;\n this.menuUpdateCheck = this.menuUpdateCheck;\n this.menuDeleteCheck = this.menuDeleteCheck;\n }\n else if (this.menuDeleteCheck && this.menuReadCheck) {\n this.menuDeleteCheck = this.menuDeleteCheck;\n this.menuUpdateCheck = this.menuUpdateCheck;\n\n }\n else if (this.menuUpdateCheck && this.menuReadCheck) {\n this.menuUpdateCheck = this.menuUpdateCheck;\n this.menuDeleteCheck = this.menuDeleteCheck;\n }\n else if (!this.menuCreateCheck && this.menuReadCheck) {\n this.menuCCheck = this.menuReadCheck;\n }\n\n\n if (activityID != 0 && (this.readOnly || this.IsVersion || this.menuCCheck)) {\n return;\n }\n\n\n\n // if(processID!=0 && activityID!=0 && this.readOnly || this.IsVersion)\n // {\n // return;\n // }\n\n this.subProcessMap = {};\n\n const dialogRef = this.dialog.open(ProcessMapDialogComponent, {\n data: 'choose' + 'æææ' + true,\n\n });\n dialogRef.componentInstance.isSub = activityID;\n dialogRef.componentInstance.ActivityID = activityID;\n dialogRef.componentInstance.ProcessID = processID;\n dialogRef.componentInstance.isProcess = processID;\n dialogRef.componentInstance.IsVersion = isver;\n dialogRef.componentInstance.readOnly = this.readOnly;\n dialogRef.componentInstance.menuDeleteCheck = this.menuDeleteCheck;\n dialogRef.componentInstance.menuUpdateCheck = this.menuUpdateCheck;\n dialogRef.componentInstance.menuCreateCheck = this.menuCreateCheck;\n dialogRef.componentInstance.menuReadCheck = this.menuReadCheck;\n dialogRef.componentInstance.menuCCheck = this.menuCCheck;\n dialogRef.componentInstance.activityTemp = this.activityTemp;\n\n dialogRef.componentInstance.GoalsList = this.GoalsList;\n\n dialogRef.afterClosed().subscribe(pointerType => {\n\n dialogRef.componentInstance.isSub = activityID;\n if (pointerType === 'Issue') {\n\n this.AddIssue(processID, activityID);\n } else if (pointerType === 'Metric') {\n this.AddMetric(processID, activityID);\n } else if (pointerType === 'processView') {\n\n this.DisplaySubMap(processID);\n\n }\n else if (pointerType === 'Activity') {\n dialogRef.componentInstance.isActivity = activityID;\n this.AddActivity(processID, activityID);\n }\n else if (pointerType === 'SubActivity') {\n this.AddActivity(processID, activityID);\n }\n\n else if (pointerType === 'subAct') {\n\n this.DisplaySubActivityMap(processID, activityID);\n\n\n }\n else if (pointerType === 'changSquence' && activityID != 0) {\n\n const subDialogref = this.dialog.open(ActivityDialogComponent, {\n panelClass: 'custom-dialog-container',\n data: 'rearrange' + 'æææ' + true,\n });\n\n let activityFilter = this.activityData.filter(x =>\n x.ProcessID.toString() == processID.toString() && x.ActivityID.toString() == activityID.toString()\n );\n subDialogref.componentInstance.ProcessID = processID;\n subDialogref.componentInstance.ActivityID = activityID;\n subDialogref.componentInstance.ActivityName = activityFilter[0].ActivityName;\n subDialogref.componentInstance.ParentActivityID = activityFilter[0].ParentID;\n subDialogref.componentInstance.DepartmentID = activityFilter[0].DepartmentID;\n subDialogref.componentInstance.EmployeeID = activityFilter[0].EmployeeID;\n subDialogref.componentInstance.ActivityTypeID = activityFilter[0].ActivityTypeID;\n subDialogref.componentInstance.tempActivity = this.activityData;\n subDialogref.componentInstance.squence = activityFilter[0].squence;\n subDialogref.componentInstance.processData = this.processLists;\n subDialogref.componentInstance.TeamID = activityFilter[0].TeamID;\n\n subDialogref.componentInstance.teamData = this.teamData;\n subDialogref.componentInstance.ActivityTypeID = activityFilter[0].ActivityTypeID;\n subDialogref.componentInstance.activityTypeData = this.activityTypeData;\n subDialogref.componentInstance.ParentActivityID = activityFilter[0].ParentID;\n subDialogref.componentInstance.activityData = this.activityData;\n subDialogref.componentInstance.CompanyID = this.CompanyID;\n subDialogref.afterClosed().subscribe(result => {\n // this.GetActivity();\n this.dorseyService.GetActivity(this.CompanyID).subscribe(subData => {\n this.activityData = JSON.parse(subData['_body']);\n\n this.processLists = [];\n this.IssuesLists = {};\n this.processIDs = [];\n this.pointerList = [];\n this.granualProcess = [];\n this.ProcessFinalList = [];\n\n this.GetActivities();\n // this.ngOnInit();\n // this.dialogCall('Updated Successfully');\n this.ConstructMap();\n\n this.checkForMetricAlert();\n\n });\n });\n } else if (pointerType === 'changSquence' && processID != 0) {\n\n this.dorseyService.GetProcess(this.CompanyID).subscribe(subData => {\n this.processData = JSON.parse(subData['_body']);\n const processDialogref = this.dialog.open(ProcessDialogComponent, {\n panelClass: 'custom-dialog-container',\n data: 'rearrange' + 'æææ' + true,\n });\n\n let processFilter = this.processData.filter(x =>\n x.ProcessID.toString() == processID.toString()\n );\n processDialogref.componentInstance.processID = processID;\n processDialogref.componentInstance.TeamID = this.TeamID;\n processDialogref.componentInstance.teamData = this.teamData;\n processDialogref.componentInstance.CompanyID = this.CompanyID;\n processDialogref.componentInstance.ProcessName = processFilter[0].ProcessName;\n processDialogref.componentInstance.TeamID = processFilter[0].TeamID;\n processDialogref.componentInstance.EmployeeID = processFilter[0].EmployeeID;\n processDialogref.componentInstance.DepartmentID = processFilter[0].DepartmentID;\n processDialogref.componentInstance.ProcessDescription = processFilter[0].ProcessDescription;\n processDialogref.componentInstance.squence = processFilter[0].squence;\n processDialogref.componentInstance.processData = this.processData;\n\n processDialogref.afterClosed().subscribe(res => {\n dialogRef.close(false);\n this.ConstructMap();\n });\n });\n\n }\n\n else if (pointerType === 'edit' && activityID != 0) {\n\n let activityFilter = this.activityData.filter(x => x.ProcessID === processID && x.ActivityID === activityID);\n if (activityFilter.length > 0) {\n const dialogRef = this.dialog.open(ActivityDialogComponent, {\n panelClass: 'custom-dialog-container',\n data: 'edit' + 'æææ' + true,\n });\n\n if (activityFilter[0].ActivityID === 0) {\n dialogRef.componentInstance.ParentActivityID = 0;\n }\n else {\n dialogRef.componentInstance.ParentActivityID = activityFilter[0].ActivityID;\n }\n\n this.activityData.sort(function (a, b) {\n return a.squence - b.squence;\n });\n\n\n let tempProcessData = this.processLists.filter(x => x.TeamID === activityFilter[0].TeamID);\n\n dialogRef.componentInstance.processData = tempProcessData;\n\n dialogRef.componentInstance.ActivityID = activityFilter[0].ActivityID;\n\n dialogRef.componentInstance.ParentActivityID = activityFilter[0].ParentID;\n dialogRef.componentInstance.DepartmentID = activityFilter[0].DepartmentID;\n dialogRef.componentInstance.EmployeeID = activityFilter[0].EmployeeID;\n dialogRef.componentInstance.tempActivity = this.activityData;\n\n dialogRef.componentInstance.oldProcessID = activityFilter[0].ProcessID;\n\n dialogRef.componentInstance.oldActivityID = this.ParentID;\n\n dialogRef.componentInstance.ActivityTypeID = activityFilter[0].ActivityTypeID;\n dialogRef.componentInstance.ActivityName = activityFilter[0].ActivityName;\n dialogRef.componentInstance.squence = activityFilter[0].squence;\n dialogRef.componentInstance.activityData = this.activityData;\n dialogRef.componentInstance.processData = this.processLists;\n dialogRef.componentInstance.TeamID = activityFilter[0].TeamID;\n dialogRef.componentInstance.departmentData = this.departmentData;\n dialogRef.componentInstance.teamData = this.teamData;\n dialogRef.componentInstance.employeeData = this.employeeData;\n\n dialogRef.componentInstance.actData = this.activityData;\n\n dialogRef.componentInstance.ProcessID = activityFilter[0].ProcessID;\n dialogRef.componentInstance.CompanyID = activityFilter[0].CompanyID;\n dialogRef.componentInstance.activityTypeData = this.activityTypeData;\n\n dialogRef.componentInstance.currentUser = this.currentUser;\n dialogRef.afterClosed().subscribe(result => {\n if (result) {\n this.dialogCall(\"Updated successfully\");\n this.processLists = [];\n this.IssuesLists = {};\n this.processIDs = [];\n //this.pointerList=[];\n\n this.GetActivities();\n // this.ngOnInit();\n this.ConstructMap()\n }\n\n\n });\n }\n\n }\n\n else if (pointerType === 'edit' && processID != 0) {\n\n\n const dialogRef = this.dialog.open(ProcessDialogComponent, {\n panelClass: 'custom-dialog-container',\n data: 'edit' + 'æææ' + true,\n });\n\n let processFilter = this.processLists.filter(x => x.ProcessID === processID);\n if (processFilter.length > 0) {\n dialogRef.componentInstance.EmployeeID = processFilter[0].EmployeeID;\n dialogRef.componentInstance.TeamID = processFilter[0].TeamID;\n dialogRef.componentInstance.teamData = this.teamData;\n dialogRef.componentInstance.CompanyID = processFilter[0].CompanyID;\n dialogRef.componentInstance.processData = this.processLists;\n dialogRef.componentInstance.procData = this.processLists;\n\n dialogRef.componentInstance.processID = processFilter[0].ProcessID;\n dialogRef.componentInstance.ProcessName = processFilter[0].ProcessName;\n dialogRef.componentInstance.ProcessDescription = processFilter[0].ProcessDescription;\n dialogRef.componentInstance.squence = processFilter[0].squence;\n dialogRef.afterClosed().subscribe(result => {\n\n if (result)\n this.dialogCall(\"Updated successfully\");\n\n this.processLists = [];\n this.IssuesLists = {};\n this.processIDs = [];\n this.pointerList = [];\n this.GetTeam();\n\n });\n }\n\n }\n else if (pointerType === 'delete' && activityID != 0) {\n let activityFilter = this.activityData.filter(x => x.ProcessID === processID && x.ActivityID === activityID);\n if (activityFilter.length > 0) {\n\n this.ActivityID = activityFilter[0].ActivityID;\n this.CompanyID = activityFilter[0].CompanyID;\n this.TeamID = activityFilter[0].TeamID;\n this.squence = activityFilter[0].squence;\n this.ProcessID = activityFilter[0].ProcessID;\n this.parentID = activityFilter[0].ParentID;\n\n const dialogRef = this.dialog.open(ActivityDialogComponent, {\n panelClass: 'custom-dialog-container',\n data: 'Are you sure you want to delete activity: ' + activityFilter[0].ActivityName + '?æææ' + true,\n\n });\n\n dialogRef.afterClosed().subscribe(result => {\n if (result) {\n\n\n this.dorseyService.DeleteActivity(this.ActivityID, this.CompanyID, this.TeamID, this.squence, this.ProcessID, this.parentID).subscribe(data => {\n\n if (data.ok) {\n this.condition = true;\n this.dialogCall('Deleted successfully');\n }\n this.GetActivities();\n this.ConstructMap();\n });\n\n }\n });\n\n }\n }\n\n else if (pointerType === 'delete' && processID != 0) {\n let processFilter = this.processLists.filter(x => x.ProcessID === processID);\n if (processFilter.length > 0) {\n\n this.ProcessID = processFilter[0].ProcessID;\n this.CompanyID = processFilter[0].CompanyID;\n this.TeamID = processFilter[0].TeamID;\n this.squence = processFilter[0].squence;\n\n const dialogRef = this.dialog.open(ProcessDialogComponent, {\n panelClass: 'custom-dialog-container',\n data: 'Are you sure you want to delete process: ' + processFilter[0].ProcessName + '?æææ' + true,\n });\n\n dialogRef.afterClosed().subscribe(result => {\n if (result) {\n\n\n this.dorseyService.DeleteProcess(this.ProcessID, this.CompanyID, this.TeamID, this.squence).subscribe(data => {\n if (data.ok) {\n this.condition = true;\n this.dialogCall('Deleted successfully');\n\n this.GetProcess();\n setTimeout(() => {\n this.ConstructMap();\n }, 100);\n }\n });\n\n }\n });\n }\n }\n });\n\n }\n\n onChange(event) {\n this.MapType = event.value.toString();\n\n if (this.MapType === '0') {\n this.typeName = \"Only Frustrations\";\n } else if (this.MapType === '1') {\n this.typeName = \"Only Metrics\";\n } else if (this.MapType === '2') {\n this.typeName = \"No Frustrations & Metrics\";\n } else {\n this.typeName = \"Both\";\n }\n }\n DisplaySubActivityMap(processID, activityID) {\n\n this.granualActivity = [];\n this.activityLists = [];\n let CurrentVersionNumber;\n CurrentVersionNumber = this.currentVersion['VersionID'];\n this.dorseyService.GetSelectedVersionActivityData(CurrentVersionNumber, Number(this.CompanyID), Number(this.TeamID), this.childTableNameType).subscribe(activity => {\n\n activity = JSON.parse(activity['_body']);\n this.activityLists = activity;\n this.granualActivity = this.activityLists;\n\n this.subProcessMap = {};\n var procssName = '';\n let activitys = [];\n let subActivities = [];\n let subactTemp = {};\n if (this.TeamID === 0) {\n for (let i = 0; i < this.granualActivity.length; i++) {\n if (this.granualActivity[i].ProcessID === processID && this.granualActivity[i].ParentID === 0) {\n activitys.push(this.granualActivity[i]);\n }\n }\n }\n else {\n for (let i = 0; i < this.granualActivity.length; i++) {\n if (this.granualActivity[i].ProcessID === processID && this.granualActivity[i].TeamID === this.TeamID && this.granualActivity[i].ParentID === 0) {\n activitys.push(this.granualActivity[i]);\n }\n }\n }\n\n for (let i = 0; i < this.processLists.length; i++) {\n\n if (this.processLists[i].ProcessID === processID) {\n procssName = this.processLists[i].ProcessName;\n\n }\n }\n let tempSub;\n\n\n let subact = this.granualActivity.filter(x => x.ParentID != 0);\n subActivities = [];\n let metricDummy = {};\n let issueDummy = {};\n let SubFsCounts = {};\n activitys.forEach(actElement => {\n tempSub = subact.filter(x => x.ParentID.toString() === actElement['ActivityID'].toString() && x.ProcessID.toString() === processID.toString());\n if (tempSub.length > 0) {\n subActivities = tempSub;\n subactTemp[actElement['ActivityID']] = subActivities;\n }\n subActivities.sort(function (a, b) {\n return a.squence - b.squence;\n });\n this.granualActivity = this.activityLists;\n\n\n tempSub.forEach(subAct => {\n this.dorseyService.GetSelectedVersionPointerData(CurrentVersionNumber, Number(this.CompanyID), Number(this.TeamID), this.childTableName).subscribe(pointer => {\n this.pointerData = JSON.parse(pointer['_body']);\n let fSCount = 0;\n let mSCount = 0;\n let procesDummy = {};\n let ActiDummyM = {}; const ActiDummyI = {};\n this.metricData = this.pointerData.filter(x => x.PointerTypeID != null && x.PointerTypeID.toString() === '2');\n this.pointerData.forEach(element => {\n\n if (element['ProcessID'] === processID && element['ActivityID'] === subAct['ActivityID']) {\n\n if (element['PointerTypeID'] === 2) {\n mSCount++;\n this.expandProcess = false;\n let metric = this.metricData.filter(x => x.ProcessID === processID && x.ActivityID === element['ActivityID'])\n metricDummy[subAct['ActivityID']] = metric;\n\n } else {\n fSCount++;\n this.expandProcess = false;\n this.dorseyService.GetCaseData(processID, element['ActivityID'], 1, CurrentVersionNumber, this.childTableName, this.childTableNameType).subscribe(cases => {\n cases = JSON.parse(cases['_body']);\n this.cased = cases;\n issueDummy[subAct['ActivityID']] = this.cased;\n });\n }\n }\n });\n if (mSCount !== 0) {\n ActiDummyM[subAct['ActivityID']] = mSCount;\n }\n if (fSCount !== 0) {\n ActiDummyI[subAct['ActivityID']] = fSCount;\n }\n procesDummy['SubMetric'] = ActiDummyM;\n procesDummy['SubIssue'] = ActiDummyI;\n SubFsCounts[subAct['ActivityID']] = procesDummy;\n });\n });\n\n });\n\n this.IssuesLists[processID]['SubMCount'] = SubFsCounts;\n let data = [];\n const ActivityJson = [];\n for (let i = 0; i < activitys.length; i++) {\n if (activitys[i].ParentID === 0) {\n data.push(activitys[i]);\n }\n }\n activitys.sort(function (a, b) {\n return a.squence - b.squence;\n });\n this.IssuesLists[processID]['Activity'] = activitys;\n this.IssuesLists[processID]['SubActivity'] = subactTemp;\n this.IssuesLists[processID]['SubActivityMetric'] = metricDummy;\n this.IssuesLists[processID]['SubActivityIssues'] = issueDummy;\n\n this.subProcessMap[processID] = this.IssuesLists[processID];\n const dialogRef = this.dialog.open(ProcessMapDialogComponent, {\n panelClass: ['custom-dialog-containerSub'],\n data: 'subAct' + 'æææ',\n maxWidth: '90vw'\n });\n dialogRef.componentInstance.copyRight = this.copyRight;\n dialogRef.componentInstance.currentVersion = this.currentVersion;\n dialogRef.componentInstance.IsVersion = this.IsVersion;\n dialogRef.componentInstance.readOnly = this.readOnly;\n dialogRef.componentInstance.GoalsList = this.GoalsList;\n dialogRef.componentInstance.menuDeleteCheck = this.menuDeleteCheck;\n dialogRef.componentInstance.menuUpdateCheck = this.menuUpdateCheck;\n dialogRef.componentInstance.menuCreateCheck = this.menuCreateCheck;\n dialogRef.componentInstance.menuReadCheck = this.menuReadCheck;\n dialogRef.componentInstance.menuCCheck = this.menuCCheck;\n dialogRef.componentInstance.IssuesLists = this.subProcessMap;\n dialogRef.componentInstance.MapType = this.MapType;\n dialogRef.componentInstance.isProcess = processID;\n dialogRef.componentInstance.isActivity = activityID;\n dialogRef.componentInstance.ProcessName = procssName;\n dialogRef.componentInstance.TeamID = this.TeamID\n dialogRef.componentInstance.tempProcess = this.processLists;\n dialogRef.componentInstance.activityData = this.activityData;\n dialogRef.componentInstance.departmentData = this.departmentData;\n dialogRef.componentInstance.pointerTypeData = this.pointerTypeData;\n dialogRef.componentInstance.severityData = this.severityData;\n dialogRef.componentInstance.statusData = this.statusData;\n dialogRef.componentInstance.teamData = this.teamData;\n dialogRef.componentInstance.employeeData = this.employeeData;\n dialogRef.componentInstance.frustrationtypeData = this.frustrationtypeData;\n dialogRef.componentInstance.tempActivity = this.activityData;\n dialogRef.componentInstance.tempFrustrationType = this.tempFrustrationType;\n dialogRef.componentInstance.ProcessID = processID;\n dialogRef.componentInstance.CompanyID = this.CompanyID;\n dialogRef.componentInstance.VersionNumber = this.VersionNumber;\n dialogRef.componentInstance.childTable = this.childTableName;\n dialogRef.componentInstance.childFrustType = this.childTableNameType;\n dialogRef.componentInstance.pointerList = this.pointerList;\n dialogRef.componentInstance.CompanyName = this.CompanyName;\n dialogRef.componentInstance.TeamName = this.TeamName;\n dialogRef.componentInstance.alertValue = this.alertValue;\n dialogRef.componentInstance.alertMetricValue = this.alertMetricValue;\n dialogRef.componentInstance.alertPTypeID = this.alertPTypeID;\n dialogRef.componentInstance.alertMTypeID = this.alertMTypeID;\n dialogRef.componentInstance.alertMetricPointer = this.alertMetricPointer;\n dialogRef.componentInstance.TeamID = this.TeamID\n dialogRef.componentInstance.processData = this.processLists;\n dialogRef.componentInstance.activityData = this.activityData;\n dialogRef.componentInstance.departmentData = this.departmentData;\n dialogRef.componentInstance.pointerTypeData = this.pointerTypeData;\n dialogRef.componentInstance.severityData = this.severityData;\n dialogRef.componentInstance.statusData = this.statusData;\n dialogRef.componentInstance.teamData = this.teamData;\n dialogRef.componentInstance.employeeData = this.employeeData;\n dialogRef.componentInstance.frustrationtypeData = this.frustrationtypeData;\n dialogRef.componentInstance.tempActivity = this.activityData;\n dialogRef.componentInstance.tempFrustrationType = this.tempFrustrationType;\n dialogRef.componentInstance.ProcessID = processID;\n dialogRef.componentInstance.ActivityID = activityID;\n dialogRef.componentInstance.CompanyID = this.CompanyID;\n this.StatusID = this.statusData[0].StatusID;\n dialogRef.componentInstance.StatusID = this.StatusID;\n dialogRef.componentInstance.currentUser = this.currentUser;\n dialogRef.componentInstance.childTablePointers = this.childTablePointers;\n dialogRef.componentInstance.childTableName = this.childTableName;\n dialogRef.componentInstance.activityTypeData = this.activityTypeData;\n dialogRef.componentInstance.RoleData = this.RoleData;\n dialogRef.componentInstance.EmpROleID = this.EmpROleID;\n dialogRef.componentInstance.CurrentVersionNumber = CurrentVersionNumber;\n dialogRef.componentInstance.childTableNameType = this.childTableNameType;\n dialogRef.componentInstance.alertMetricPointer = this.alertMetricPointer;\n dialogRef.afterClosed().subscribe(res => {\n this.GetActivity();\n this.GetFrustrationType();\n this.ConstructMap();\n });\n });\n\n }\n DisplaySubMap(processID) {\n this.subProcessMap = {};\n var procssName = '';\n let process = \"\";\n let activitys = [];\n if (this.TeamID === 0) {\n for (let i = 0; i < this.granualActivity.length; i++) {\n if (this.granualActivity[i].ProcessID === processID && this.granualActivity[i].ParentID === 0) {\n activitys.push(this.granualActivity[i]);\n }\n }\n }\n else {\n for (let i = 0; i < this.granualActivity.length; i++) {\n if (this.granualActivity[i].ProcessID === processID && this.granualActivity[i].TeamID === this.TeamID && this.granualActivity[i].ParentID === 0) {\n activitys.push(this.granualActivity[i]);\n }\n }\n }\n activitys.sort(function (a, b) {\n return a.squence - b.squence;\n });\n for (let i = 0; i < this.processLists.length; i++) {\n\n if (this.processLists[i].ProcessID === processID) {\n procssName = this.processLists[i].ProcessID;\n process = this.processLists[i].ProcessName;\n }\n }\n let data = [];\n for (let i = 0; i < activitys.length; i++) {\n\n if (activitys[i].ParentID === 0) {\n data.push(activitys[i]);\n }\n }\n this.IssuesLists[procssName]['Activity'] = activitys;\n this.subProcessMap[procssName] = this.IssuesLists[procssName];\n const dialogRef = this.dialog.open(ProcessMapDialogComponent, {\n panelClass: 'custom-dialog-container',\n data: 'subMap' + 'æææ',\n width: '800px'\n });\n dialogRef.componentInstance.currentVersion = this.currentVersion;\n dialogRef.componentInstance.IssuesLists = this.subProcessMap;\n dialogRef.componentInstance.MapType = this.MapType;\n dialogRef.componentInstance.ProcessName = process;\n dialogRef.componentInstance.pointerList = this.pointerList;\n dialogRef.componentInstance.CompanyName = this.CompanyName;\n dialogRef.componentInstance.TeamName = this.TeamName;\n dialogRef.componentInstance.alertValue = this.alertValue;\n dialogRef.componentInstance.alertMetricValue = this.alertMetricValue;\n dialogRef.componentInstance.alertPTypeID = this.alertPTypeID;\n dialogRef.componentInstance.GoalsList = this.GoalsList;\n dialogRef.componentInstance.alertMTypeID = this.alertMTypeID;\n dialogRef.componentInstance.alertMetricPointer = this.alertMetricPointer;\n dialogRef.afterClosed().subscribe(res => {\n this.GetActivity();\n });\n }\n\n\n AddIssue(processID, activityID) {\n const dialogRef = this.dialog.open(PointerDialogComponent, {\n panelClass: 'custom-dialog-container',\n data: 'new' + 'æææ' + activityID,\n });\n dialogRef.componentInstance.TeamID = this.TeamID\n dialogRef.componentInstance.processData = this.processLists;\n dialogRef.componentInstance.activityData = this.activityData;\n dialogRef.componentInstance.departmentData = this.departmentData;\n dialogRef.componentInstance.pointerTypeData = this.pointerTypeData;\n dialogRef.componentInstance.severityData = this.severityData;\n dialogRef.componentInstance.statusData = this.statusData;\n dialogRef.componentInstance.teamData = this.teamData;\n dialogRef.componentInstance.employeeData = this.employeeData;\n dialogRef.componentInstance.frustrationtypeData = this.frustrationtypeData;\n dialogRef.componentInstance.tempActivity = this.activityData;\n dialogRef.componentInstance.tempFrustrationType = this.tempFrustrationType;\n dialogRef.componentInstance.ProcessID = processID;\n dialogRef.componentInstance.ActivityID = activityID;\n dialogRef.componentInstance.CompanyID = this.CompanyID;\n this.StatusID = this.statusData[0].StatusID;\n dialogRef.componentInstance.StatusID = this.StatusID;\n dialogRef.componentInstance.currentUser = this.currentUser;\n dialogRef.afterClosed().subscribe(result => {\n this.processLists = [];\n this.GetFrustrationType();\n this.IssuesLists = {};\n this.processIDs = [];\n this.pointerList = [];\n this.ConstructMap()\n });\n\n }\n AddProcess(menuPer, vers) {\n if (!menuPer || vers) {\n return;\n }\n const dialogRef = this.dialog.open(ProcessDialogComponent, {\n panelClass: 'custom-dialog-container',\n data: 'new' + 'æææ' + 'process',\n });\n dialogRef.componentInstance.EmployeeID = this.empID;\n dialogRef.componentInstance.TeamID = this.TeamID;\n dialogRef.componentInstance.teamData = this.teamData;\n dialogRef.componentInstance.CompanyID = this.CompanyID;\n dialogRef.componentInstance.processData = this.processLists;\n dialogRef.afterClosed().subscribe(result => {\n this.processLists = [];\n this.IssuesLists = {};\n this.processIDs = [];\n this.pointerList = [];\n this.GetTeam();\n });\n }\n GetActivityType() {\n this.dorseyService.GetActivityType().subscribe(subData => {\n subData = JSON.parse(subData['_body']);\n this.activityTypeData = subData;\n });\n }\n\n AddActivity(processID, activityID) {\n const dialogRef = this.dialog.open(ActivityDialogComponent, {\n panelClass: 'custom-dialog-container',\n data: 'new' + 'æææ' + 'process',\n });\n\n if (activityID === 0) {\n dialogRef.componentInstance.ParentActivityID = 0;\n }\n else {\n dialogRef.componentInstance.ParentActivityID = activityID;\n }\n this.activityData.sort(function (a, b) {\n return a.squence - b.squence;\n });\n dialogRef.componentInstance.activityData = this.activityData;\n dialogRef.componentInstance.processData = this.processLists;\n dialogRef.componentInstance.TeamID = this.TeamID;\n dialogRef.componentInstance.tempActivity = this.activityData;\n dialogRef.componentInstance.departmentData = this.departmentData;\n dialogRef.componentInstance.teamData = this.teamData;\n dialogRef.componentInstance.employeeData = this.employeeData;\n dialogRef.componentInstance.tempActivity = this.activityData;\n dialogRef.componentInstance.ProcessID = processID;\n dialogRef.componentInstance.CompanyID = this.CompanyID;\n dialogRef.componentInstance.activityTypeData = this.activityTypeData;\n\n dialogRef.componentInstance.currentUser = this.currentUser;\n dialogRef.afterClosed().subscribe(result => {\n this.processLists = [];\n this.IssuesLists = {};\n this.processIDs = [];\n this.pointerList = [];\n this.GetActivities();\n this.ConstructMap()\n\n });\n\n }\n\n AddMetric(processID, activityID) {\n const dialogRef = this.dialog.open(MetricDialogComponent, {\n panelClass: 'custom-dialog-container',\n data: 'new' + 'æææ' + activityID,\n });\n\n dialogRef.componentInstance.processData = this.processLists;\n dialogRef.componentInstance.TeamID = this.TeamID;\n dialogRef.componentInstance.GoalsList = this.GoalsList;\n dialogRef.componentInstance.tempActivity = this.activityData;\n dialogRef.componentInstance.departmentData = this.departmentData;\n dialogRef.componentInstance.pointerTypeData = this.pointerTypeData;\n dialogRef.componentInstance.severityData = this.severityData;\n dialogRef.componentInstance.statusData = this.statusData;\n dialogRef.componentInstance.teamData = this.teamData;\n dialogRef.componentInstance.employeeData = this.employeeData;\n dialogRef.componentInstance.frustrationtypeData = this.frustrationtypeData;\n dialogRef.componentInstance.tempActivity = this.activityData;\n dialogRef.componentInstance.tempFrustrationType = this.tempFrustrationType;\n dialogRef.componentInstance.ProcessID = processID;\n dialogRef.componentInstance.ActivityID = activityID;\n dialogRef.componentInstance.CompanyID = this.CompanyID;\n dialogRef.componentInstance.currentUser = this.currentUser;\n dialogRef.afterClosed().subscribe(result => {\n this.processLists = [];\n this.IssuesLists = {};\n this.processIDs = [];\n this.pointerList = [];\n this.GetFrustrationType();\n\n this.ConstructMap()\n this.checkForMetricAlert();\n });\n\n }\n dialogCall(msg: string) {\n\n const dialogRef = this.dialog.open(ProcessMapDialogComponent, {\n data: msg + 'æææ' + false,\n });\n dialogRef.afterClosed().subscribe(result => {\n\n if (result.toString() === 'true') {\n\n let statusMsg = '';\n if (msg === 'new') {\n statusMsg = 'Saved successfully';\n }\n }\n });\n }\n\n GetAlertValues() {\n this.dorseyService.GetAlertValue(this.CompanyID, 1).subscribe(subData => {\n subData = JSON.parse(subData['_body']);\n this.alertData = subData;\n\n for (let i = 0; i < this.alertData.length; i++) {\n\n if (this.alertData[i].AlertStatus === true) {\n this.alertPTypeID = this.alertData[i].PointerTypeID;\n this.alertValue = this.alertData[i].AlertValue;\n }\n }\n });\n\n }\n\n GetMetricAlert() {\n this.dorseyService.GetAlertValue(this.CompanyID, 2).subscribe(subData => {\n subData = JSON.parse(subData['_body']);\n this.alertData = subData;\n\n for (let i = 0; i < this.alertData.length; i++) {\n\n if (this.alertData[i].AlertStatus === true) {\n this.alertMetricPointer = this.alertData[i].PointerTypeID;\n this.alertMetricValue = this.alertData[i].AlertValue;\n this.AlertMetricStatus = this.alertData[i].AlertStatus;\n this.alertMTypeID = this.alertData[i].PointerTypeID;\n\n }\n\n }\n });\n\n }\n\n checkForMetricAlert() {\n this.showMetricAlert = [];\n if (this.AlertMetricStatus) {\n for (let i = 0; i < this.granualProcess.length; i++) {\n\n if (this.ActiveActivities[this.granualProcess[i].ProcessID] !== undefined) {\n for (let j = 0; j < this.ActiveActivities[this.granualProcess[i].ProcessID].length; j++) {\n let id = this.ActiveActivities[this.granualProcess[i].ProcessID][j].ActivityID;\n\n this.showMetricAlert[id] = false;\n\n if (this.IssuesLists[this.granualProcess[i].ProcessID]['MetricList'][this.ActiveActivities[this.granualProcess[i].ProcessID][j].ActivityID.toString()] != undefined) {\n\n j = j + this.alertMetricValue - (j % this.alertMetricValue) - 1;\n\n } else {\n\n if ((j + 1) % this.alertMetricValue == 0) {\n this.showMetricAlert[id] = true;\n\n } else {\n\n this.showMetricAlert[id] = false;\n\n }\n }\n\n }\n }\n\n\n\n }\n }\n }\n\n}\n@Component({\n selector: 'app-dialog',\n templateUrl: 'dialog.html',\n styleUrls: ['dialog.css'],\n providers: [DorseyService, ProcessMapComponent]\n})\nexport class ProcessMapDialogComponent implements OnInit {\n readOnly = false;\n copyRight: string;\n IsVersion = false;\n ActivityTypeID: string;\n condition = false;\n isActivity: any;\n dataSelf: string;\n processID: string;\n headerText: string;\n PointerType: string;\n CaseData: any;\n Process = '';\n Activity = '';\n toggle = '';\n IssuesLists = {};\n ProcessFinalList = [];\n subKey = '';\n MapType: string;\n TeamID: any;\n tempProcess = [];\n activityData: any;\n departmentData: any;\n pointerTypeData: any\n severityData: any;\n statusData: any;\n teamData: any;\n employeeData: any;\n frustrationtypeData: any;\n tempActivity: any;\n tempFrustrationType: any;\n ProcessID: string\n ActivityID: string\n CompanyID: string;\n ParentID: string;\n SubActivityID: string;\n tempSubActivity = [];\n subActivityStatus = false;\n ProcessName = '';\n GoalsList: any;\n VersionNumber: number;\n childTable: string;\n\n childFrustType: string;\n pointerList = [];\n ActivityName: string;\n activityTypeData: any;\n SubactivityData: any;\n isSub: any;\n isProcess: any;\n processData: any;\n expandMap = false;\n parentActivityName: string;\n CompanyName: string;\n TeamName: string;\n headerDate = new Date();\n versionID: any;\n childTableName: any;\n currentVersion = '';\n StatusID: string;\n alertPTypeID: any;\n alertValue: any;\n alertMetricValue: any;\n alertMetricPointer: any;\n showMetricAlert = {};\n alertMTypeID: any;\n copyDate: number;\n currentUser: string;\n childTablePointers: any;\n RoleData: any;\n EmpROleID: string;\n CurrentVersionNumber: any;\n childTableNameType: string;\n\n redLow: string;\n redHigh: string;\n yellowLow: string;\n yellowHigh: any;\n PointerID: any;\n //title=false;\n editSubActiibiyt = false;\n parentId: any;\n menuDeleteCheck: boolean;\n menuUpdateCheck: boolean;\n menuCreateCheck: boolean;\n menuReadCheck: boolean;\n menuCCheck: boolean;\n EmployeeID: any;\n subActivity: any;\n FrustrationTypeID: any;\n SeverityID: any;\n Subject: any;\n Description: any;\n Source: any;\n DepartmentID: string;\n conditionActivity: any;\n activityTemp: any;\n constructor(private parent: ProcessMapComponent,\n public dialogRef: MatDialogRef<ProcessMapDialogComponent>,\n @Inject(MAT_DIALOG_DATA) public data: any, public dorseyService: DorseyService,\n private dialog: MatDialog, private storage: LocalStorageService,\n private scoreCardService: PerformanceScoreCardService) {\n // dialogRef.disableClose=true;\n\n this.data = this.data.split('æææ');\n\n if (this.data[1] === 'true') {\n this.condition = true;\n } else {\n this.condition = false;\n }\n this.toggle = this.data[2];\n this.data = this.data[0];\n\n }\n ngOnInit() {\n\n this.currentUser = this.storage.retrieve('user');\n this.CompanyID = this.storage.retrieve('companyID');\n\n this.subKey = Object.keys(this.IssuesLists)[0];\n this.checkForMetricAlert();\n\n this.copyDate = (new Date()).getFullYear();\n\n }\n\n ExpandMap() {\n let open = document.getElementById('open');\n ;\n if (open !== null) {\n open.style.marginTop = '8px'\n }\n this.expandMap = true;\n\n }\n HideMap() {\n let open = document.getElementById('open');\n if (open !== null) {\n open.style.marginTop = '30px';\n }\n\n this.expandMap = false;\n }\n\n Print() {\n window.print();\n var printContents = document.getElementById('Map').innerHTML;\n var popupWin = window.open('', '_blank', 'width=300,height=300');\n popupWin.document.open();\n popupWin.document.write(printContents);\n\n popupWin.window.print();\n popupWin.document.close();\n return true;\n\n }\n closeChoose() {\n this.dialogRef.close(this.PointerType);\n }\n Clear() {\n this.dialogRef.close(false);\n }\n onYesClick() {\n\n this.dialogRef.close(true);\n }\n onNoClick(): void {\n this.dialogRef.close();\n }\n PrintMap() {\n var id = document.getElementById('Map');\n id.className = 'donotprintthis';\n window.print();\n //this.title=true;\n }\n GetPointerData() {\n\n }\n GetActivityType() {\n this.dorseyService.GetActivityType().subscribe(subData => {\n subData = JSON.parse(subData['_body']);\n this.activityTypeData = subData;\n });\n\n }\n\n\n dialogCall(msg: string) {\n\n const dialogRef = this.dialog.open(ProcessMapDialogComponent, {\n data: msg + 'æææ' + false,\n });\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n dialogRef.afterClosed().subscribe(result => {\n\n if (result.toString() === 'true') {\n\n let statusMsg = '';\n if (msg === 'new') {\n statusMsg = 'Saved successfully';\n }\n // else {\n\n // statusMsg = 'Updated successfully';\n // }\n\n }\n\n });\n }\n AddMetricOrIssue(activityID, parentID) {\n\n if (this.IsVersion && this.readOnly) {\n return;\n }\n else if (this.readOnly) {\n return;\n }\n else if (this.IsVersion && !this.readOnly) {\n return;\n }\n else if (this.menuCCheck) {\n return;\n }\n\n\n this.GetActivityType();\n this.GetProcess();\n const dialogRef = this.dialog.open(ProcessMapDialogComponent2, {\n data: 'chooseChild' + 'æææ' + true,\n });\n\n\n let processTemp = this.activityData.filter(x => x.ActivityID === activityID);\n if (processTemp.length > 0) {\n this.processID = processTemp[0].ProcessID;\n\n this.ActivityName = processTemp[0].ActivityName;\n this.ActivityID = processTemp[0].ActivityID;\n }\n\n dialogRef.componentInstance.isProcess = 0;\n dialogRef.componentInstance.IsVersion = this.IsVersion;\n dialogRef.componentInstance.readOnly = this.readOnly;\n\n\n dialogRef.componentInstance.menuDeleteCheck = this.menuDeleteCheck;\n dialogRef.componentInstance.menuUpdateCheck = this.menuUpdateCheck;\n\n dialogRef.componentInstance.GoalsList = this.GoalsList;\n dialogRef.componentInstance.menuCreateCheck = this.menuCreateCheck;\n dialogRef.componentInstance.menuReadCheck = this.menuReadCheck;\n\n dialogRef.componentInstance.menuCCheck = this.menuCCheck;\n\n let activityFilter1 = this.activityData.filter(x =>\n x.ProcessID.toString() === this.processID.toString() && x.ActivityID.toString() === activityID.toString());\n\n dialogRef.componentInstance.isSub = activityFilter1[0].ParentID;\n dialogRef.componentInstance.activityProcess = activityFilter1[0].ParentID;\n dialogRef.componentInstance.ActivityTypeID = activityFilter1[0].ActivityTypeID;\n\n dialogRef.componentInstance.isActivity = activityFilter1[0].Act;\n\n dialogRef.afterClosed().subscribe(pointerType => {\n\n if (pointerType === 'Issue') {\n this.AddIssue(activityID);\n }\n else if (pointerType === 'SubActivity') {\n\n this.AddSubActivity(activityID, this.processID);\n\n }\n else if (pointerType === 'Metric') {\n\n this.AddMetric(activityID);\n\n } else if (pointerType === 'changSquence') {\n\n const subDialogref = this.dialog.open(ActivityDialogComponent, {\n panelClass: 'custom-dialog-container',\n data: 'rearrange' + 'æææ' + true,\n });\n\n this.ActivityID = activityID;\n let processTemp = this.activityData.filter(x => x.ActivityID === activityID);\n if (processTemp.length > 0) {\n this.processID = processTemp[0].ProcessID;\n this.ActivityName = processTemp[0].ActivityName;\n }\n let activityFilter = this.activityData.filter(x =>\n x.ProcessID.toString() === this.processID.toString() && x.ActivityID.toString() === activityID.toString()\n );\n\n subDialogref.componentInstance.ProcessID = this.processID;\n subDialogref.componentInstance.ActivityID = activityID;\n subDialogref.componentInstance.ActivityName = activityFilter[0].ActivityName;\n subDialogref.componentInstance.ParentActivityID = activityFilter[0].ParentID;\n subDialogref.componentInstance.DepartmentID = activityFilter[0].DepartmentID;\n subDialogref.componentInstance.EmployeeID = activityFilter[0].EmployeeID;\n subDialogref.componentInstance.ActivityTypeID = activityFilter[0].ActivityTypeID;\n subDialogref.componentInstance.tempActivity = this.activityData;\n subDialogref.componentInstance.squence = activityFilter[0].squence;\n subDialogref.componentInstance.processData = this.tempProcess;\n subDialogref.componentInstance.TeamID = activityFilter[0].TeamID;\n subDialogref.componentInstance.teamData = this.teamData;\n subDialogref.componentInstance.ActivityTypeID = activityFilter[0].ActivityTypeID;\n subDialogref.componentInstance.activityTypeData = this.activityTypeData;\n subDialogref.componentInstance.ParentActivityID = activityFilter[0].ParentID;\n subDialogref.componentInstance.activityData = this.activityData;\n subDialogref.componentInstance.CompanyID = this.CompanyID;\n subDialogref.afterClosed().subscribe(result => {\n\n this.dorseyService.GetActivity(this.CompanyID).subscribe(subData => {\n this.activityData = JSON.parse(subData['_body']);\n\n subData = JSON.parse(subData['_body']);\n\n this.SubactivityData = subData;\n\n this.SubactivityData = this.SubactivityData.filter(x => x.ParentID === activityFilter[0].ParentID && x.ProcessID === this.processID);\n let sQuen = this.SubactivityData.filter(x => x.ActivityID === activityID);\n\n let ParentName = this.activityData.filter(x => x.ActivityID === activityFilter[0].ParentID);\n this.SubactivityData.sort(function (a, b) {\n return a.squence - b.squence;\n });\n\n if (ParentName.length)\n this.IssuesLists[this.processID]['SubActivity'][ParentName[0].ActivityID] = this.SubactivityData;\n else this.IssuesLists[this.processID]['Activity'] = this.SubactivityData;\n\n });\n\n\n });\n }\n\n else if (pointerType === 'edit' && parentID === 0) {\n this.editSubActiibiyt = true;\n let activityFilter = this.activityData.filter(x => x.ActivityID === activityID);\n\n if (activityFilter.length > 0) {\n\n const dialogRef = this.dialog.open(ActivityDialogComponent, {\n panelClass: 'custom-dialog-container',\n data: 'edit' + 'æææ' + true,\n });\n\n if (activityFilter[0].ActivityID === 0) {\n dialogRef.componentInstance.ParentActivityID = 0;\n }\n else {\n dialogRef.componentInstance.ParentActivityID = activityFilter[0].ActivityID;\n }\n\n this.activityData.sort(function (a, b) {\n return a.squence - b.squence;\n });\n\n let tempProcessData = this.tempProcess.filter(x => x.TeamID === activityFilter[0].TeamID);\n\n dialogRef.componentInstance.processData = tempProcessData;\n\n dialogRef.componentInstance.ActivityID = activityFilter[0].ActivityID;\n\n dialogRef.componentInstance.ProcessID = activityFilter[0].ProcessID;\n dialogRef.componentInstance.ParentActivityID = activityFilter[0].ParentID;\n dialogRef.componentInstance.DepartmentID = activityFilter[0].DepartmentID;\n dialogRef.componentInstance.EmployeeID = activityFilter[0].EmployeeID;\n\n dialogRef.componentInstance.tempActivity = this.activityData;\n\n\n dialogRef.componentInstance.oldProcessID = activityFilter[0].ProcessID;\n\n dialogRef.componentInstance.oldActivityID = activityFilter[0].ParentID;\n\n dialogRef.componentInstance.ActivityID = activityFilter[0].ActivityID;\n dialogRef.componentInstance.ActivityTypeID = activityFilter[0].ActivityTypeID;\n dialogRef.componentInstance.ActivityName = activityFilter[0].ActivityName;\n dialogRef.componentInstance.squence = activityFilter[0].squence;\n dialogRef.componentInstance.activityData = this.activityData;\n // dialogRef.componentInstance.processData = this.processLists;\n dialogRef.componentInstance.TeamID = activityFilter[0].TeamID;\n dialogRef.componentInstance.tempActivity = this.activityData;\n dialogRef.componentInstance.departmentData = this.departmentData;\n dialogRef.componentInstance.teamData = this.teamData;\n dialogRef.componentInstance.employeeData = this.employeeData;\n\n dialogRef.componentInstance.actData = this.activityData;\n dialogRef.componentInstance.tempActivity = this.activityData;\n\n dialogRef.componentInstance.ProcessID = activityFilter[0].ProcessID;\n dialogRef.componentInstance.CompanyID = activityFilter[0].CompanyID;\n dialogRef.componentInstance.activityTypeData = this.activityTypeData;\n\n dialogRef.componentInstance.currentUser = this.currentUser;\n dialogRef.afterClosed().subscribe(result => {\n if (result)\n this.dialogCall(\"Updated successfully\");\n\n this.processData = [];\n // this.pointerList=[];\n // this.GetFrustrations();\n\n let filAct = this.activityData;\n this.dorseyService.GetActivity(this.CompanyID).subscribe(subData => {\n this.activityData = JSON.parse(subData['_body']);\n\n subData = JSON.parse(subData['_body']);\n\n this.SubactivityData = subData;\n\n\n\n this.SubactivityData = this.SubactivityData.filter(x => x.ParentID === activityFilter[0].ParentID && x.ProcessID === activityFilter[0].ProcessID);\n let sQuen = this.SubactivityData.filter(x => x.ActivityID === activityFilter[0].ActivityID);\n\n\n let data = this.activityData.filter(x => x.ParentID === activityFilter[0].ActivityID);\n this.SubactivityData.sort(function (a, b) {\n return a.squence - b.squence;\n });\n\n\n let tempAct = this.activityData.filter(x => x.ActivityID === activityFilter[0].ActivityID);\n\n let temfilAct = filAct.filter(x => x.ActivityID === activityFilter[0].ActivityID);\n\n\n\n this.IssuesLists[activityFilter[0].ProcessID]['Activity'] = this.SubactivityData;\n this.ParentID = parentID.toString();;\n\n if (!(Object.keys(this.IssuesLists[this.processID]['SubActivity']).indexOf(this.SubactivityData[0].ActivityID.toString()) > -1)) {\n\n this.IssuesLists[activityFilter[0].ProcessID]['SubActivity'][tempAct[0].ActivityID] = data;\n this.ActivityName = this.SubactivityData[0].ActivityName;\n this.ActivityID = this.SubactivityData[0].ActivityID;\n this.ProcessID = this.SubactivityData[0].ProcessID;\n\n //this.GetFrustrations();\n\n }\n\n else {\n this.ActivityName = activityFilter[0].ActivityName;\n this.ActivityID = activityFilter[0].ActivityID;\n this.ProcessID = activityFilter[0].ProcessID;\n // this.GetFrustrations();\n }\n\n //this.pointerList=[];\n });\n\n\n });\n }\n }\n else if (pointerType === 'edit' && parentID != 0) {\n this.editSubActiibiyt = true;\n let filterAct = this.activityData.filter(x => x.ParentID === parentID && x.ActivityID === activityID);\n\n if (filterAct.length > 0) {\n\n\n const dialogRef = this.dialog.open(ActivityDialogComponent, {\n panelClass: 'custom-dialog-container',\n data: 'edit' + 'æææ' + true,\n });\n\n this.activityData.sort(function (a, b) {\n return a.squence - b.squence;\n });\n\n\n let tempProcessData = this.tempProcess.filter(x => x.TeamID === this.TeamID);\n\n dialogRef.componentInstance.processData = tempProcessData;\n\n\n dialogRef.componentInstance.ParentActivityID = filterAct[0].ParentID;\n dialogRef.componentInstance.DepartmentID = filterAct[0].DepartmentID;\n dialogRef.componentInstance.EmployeeID = filterAct[0].EmployeeID;\n\n\n dialogRef.componentInstance.tempActivity = this.activityData;\n\n\n\n dialogRef.componentInstance.oldProcessID = this.ProcessID;\n\n dialogRef.componentInstance.oldActivityID = this.ParentID;\n\n dialogRef.componentInstance.ActivityID = filterAct[0].ActivityID;\n dialogRef.componentInstance.ActivityTypeID = filterAct[0].ActivityTypeID;\n dialogRef.componentInstance.ActivityName = filterAct[0].ActivityName;\n\n dialogRef.componentInstance.squence = filterAct[0].squence;\n dialogRef.componentInstance.activityData = this.activityData;\n // dialogRef.componentInstance.processData = this.processLists;\n dialogRef.componentInstance.TeamID = filterAct[0].TeamID;\n dialogRef.componentInstance.tempActivity = this.activityData;\n dialogRef.componentInstance.departmentData = this.departmentData;\n dialogRef.componentInstance.teamData = this.teamData;\n dialogRef.componentInstance.employeeData = this.employeeData;\n\n dialogRef.componentInstance.actData = this.activityData;\n dialogRef.componentInstance.tempActivity = this.activityData;\n\n dialogRef.componentInstance.ProcessID = filterAct[0].ProcessID;\n dialogRef.componentInstance.CompanyID = filterAct[0].CompanyID;\n dialogRef.componentInstance.activityTypeData = this.activityTypeData;\n\n dialogRef.componentInstance.currentUser = this.currentUser;\n dialogRef.afterClosed().subscribe(result => {\n if (result)\n\n this.dialogCall(\"Updated successfully\");\n this.processData = [];\n let activityFilter = this.activityData.filter(x =>\n x.ProcessID.toString() === filterAct[0].ProcessID.toString() && x.ActivityID.toString() === filterAct[0].ActivityID.toString()\n );\n\n this.dorseyService.GetActivity(this.CompanyID).subscribe(subData => {\n this.activityData = JSON.parse(subData['_body']);\n subData = JSON.parse(subData['_body']);\n this.SubactivityData = subData;\n this.SubactivityData = this.SubactivityData.filter(x => x.ParentID === activityFilter[0].ParentID && x.ProcessID === filterAct[0].ProcessID);\n let sQuen = this.SubactivityData.filter(x => x.ActivityID === filterAct[0].ActivityID);\n let ParentName = this.activityData.filter(x => x.ActivityID === activityFilter[0].ParentID);\n this.SubactivityData.sort(function (a, b) {\n return a.squence - b.squence;\n });\n if (ParentName.length)\n this.IssuesLists[filterAct[0].ProcessID]['SubActivity'][ParentName[0].ActivityID] = this.SubactivityData;\n else this.IssuesLists[filterAct[0].ProcessID]['Activity'] = this.SubactivityData;\n });\n });\n }\n }\n else if (pointerType === 'delete' && parentID === 0) {\n let activityFilter = this.activityData.filter(x => x.ProcessID === this.processID && x.ActivityID === activityID);\n if (activityFilter.length > 0) {\n this.ActivityID = activityFilter[0].ActivityID;\n this.CompanyID = activityFilter[0].CompanyID;\n this.TeamID = activityFilter[0].TeamID;\n this.ProcessID = activityFilter[0].ProcessID;\n const dialogRef = this.dialog.open(ActivityDialogComponent, {\n panelClass: 'custom-dialog-container',\n data: 'Are you sure you want to delete activity: ' + activityFilter[0].ActivityName + '?æææ' + true,\n });\n dialogRef.afterClosed().subscribe(result => {\n if (result) {\n this.dorseyService.DeleteActivity(this.ActivityID, this.CompanyID, this.TeamID, activityFilter[0].squence, activityFilter[0].ProcessID, activityFilter[0].ParentID).subscribe(data => {\n if (data.ok) {\n this.condition = true;\n this.dialogCall('Deleted successfully');\n }\n this.processData = [];\n let filAct = this.activityData;\n this.dorseyService.GetActivity(this.CompanyID).subscribe(subData => {\n this.activityData = JSON.parse(subData['_body']);\n subData = JSON.parse(subData['_body']);\n this.SubactivityData = subData;\n this.SubactivityData = this.SubactivityData.filter(x => x.ParentID === activityFilter[0].ParentID && x.ProcessID === activityFilter[0].ProcessID);\n let sQuen = this.SubactivityData.filter(x => x.ActivityID === activityFilter[0].ActivityID);\n let data = this.activityData.filter(x => x.ParentID === activityFilter[0].ActivityID);\n this.SubactivityData.sort(function (a, b) {\n return a.squence - b.squence;\n });\n let tempAct = this.activityData.filter(x => x.ActivityID === activityFilter[0].ActivityID);\n let temfilAct = filAct.filter(x => x.ActivityID === activityFilter[0].ActivityID);\n this.IssuesLists[activityFilter[0].ProcessID]['Activity'] = this.SubactivityData;\n this.ParentID = parentID.toString();;\n if (!(Object.keys(this.IssuesLists[this.processID]['SubActivity']).indexOf(this.SubactivityData[0].ActivityID.toString()) > -1)) {\n this.IssuesLists[activityFilter[0].ProcessID]['SubActivity'][tempAct[0].ActivityID] = data;\n this.ActivityName = this.SubactivityData[0].ActivityName;\n this.ActivityID = this.SubactivityData[0].ActivityID;\n this.ProcessID = this.SubactivityData[0].ProcessID;\n }\n else {\n this.ActivityName = activityFilter[0].ActivityName;\n this.ActivityID = activityFilter[0].ActivityID;\n this.ProcessID = activityFilter[0].ProcessID;\n }\n });\n });\n }\n });\n }\n }\n\n else if (pointerType === 'delete' && parentID !== 0) {\n let filterAct = this.activityData.filter(x => x.ParentID === parentID && x.ActivityID === activityID);\n if (filterAct.length > 0) {\n this.ActivityID = filterAct[0].ActivityID;\n this.CompanyID = filterAct[0].CompanyID;\n this.TeamID = filterAct[0].TeamID;\n this.ProcessID = filterAct[0].ProcessID;\n const dialogRef = this.dialog.open(ActivityDialogComponent, {\n panelClass: 'custom-dialog-container',\n data: 'Are you sure you want to delete activity: ' + filterAct[0].ActivityName + '?æææ' + true,\n });\n dialogRef.afterClosed().subscribe(result => {\n if (result) {\n this.dorseyService.DeleteActivity(this.ActivityID, this.CompanyID, this.TeamID, filterAct[0].squence, filterAct[0].ProcessID, filterAct[0].ParentID).subscribe(data => {\n if (data.ok) {\n this.condition = true;\n this.dialogCall('Deleted successfully');\n }\n let tempFilter = this.activityData.filter(x =>\n x.ProcessID.toString() === filterAct[0].ProcessID.toString() && x.ActivityID.toString() === filterAct[0].ActivityID.toString()\n );\n this.dorseyService.GetActivity(this.CompanyID).subscribe(subData => {\n this.activityData = JSON.parse(subData['_body']);\n subData = JSON.parse(subData['_body']);\n this.SubactivityData = subData;\n this.SubactivityData = this.SubactivityData.filter(x => x.ParentID === filterAct[0].ParentID && x.ProcessID === filterAct[0].ProcessID);\n let sQuen = this.SubactivityData.filter(x => x.ActivityID === filterAct[0].ActivityID);\n let ParentName = this.activityData.filter(x => x.ActivityID === filterAct[0].ParentID);\n this.SubactivityData.sort(function (a, b) {\n return a.squence - b.squence;\n });\n if (ParentName.length)\n this.IssuesLists[filterAct[0].ProcessID]['SubActivity'][ParentName[0].ActivityID] = this.SubactivityData;\n else this.IssuesLists[filterAct[0].ProcessID]['Activity'] = this.SubactivityData;\n });\n });\n }\n });\n }\n }\n });\n }\n\n EditPointer(element) {\n let tempP = this.pointerList.filter(x => x.PointerID === element.PointerID);\n if (tempP.length > 0) {\n this.TeamID = tempP[0].TeamID;\n }\n\n this.dorseyService.GetSelectedVersionPointerData(this.versionID, Number(this.CompanyID), Number(this.TeamID), this.childTablePointers).subscribe(pointer => {\n this.pointerList = JSON.parse(pointer['_body']);\n\n let filterPointer = this.pointerList.filter(x => x.PointerID === element.PointerID);\n if (filterPointer.length > 0) {\n if (filterPointer[0].PointerTypeID === 1) {\n const dialogRef = this.dialog.open(PointerDialogComponent, {\n panelClass: 'custom-dialog-container',\n data: 'edit' + 'æææ' + 'process',\n });\n\n\n\n\n // this.GetTempActivity(filterPointer[0].ProcessID);\n dialogRef.componentInstance.processData = this.processData;\n dialogRef.componentInstance.activityData = this.activityData;\n dialogRef.componentInstance.departmentData = this.departmentData;\n dialogRef.componentInstance.pointerTypeData = this.pointerTypeData;\n dialogRef.componentInstance.severityData = this.severityData;\n dialogRef.componentInstance.statusData = this.statusData;\n\n\n dialogRef.componentInstance.teamData = this.teamData;\n dialogRef.componentInstance.employeeData = this.employeeData;\n dialogRef.componentInstance.frustrationtypeData = this.frustrationtypeData;\n dialogRef.componentInstance.tempActivity = this.tempActivity;\n dialogRef.componentInstance.tempFrustrationType = this.tempFrustrationType;\n dialogRef.componentInstance.EmployeeID = filterPointer[0].EmployeeID;\n dialogRef.componentInstance.ProcessID = filterPointer[0].ProcessID;\n dialogRef.componentInstance.ActivityID = filterPointer[0].ActivityID;\n dialogRef.componentInstance.PointerTypeID = filterPointer[0].PointerTypeID;\n dialogRef.componentInstance.PointerID = filterPointer[0].PointerID;\n dialogRef.componentInstance.DepartmentID = filterPointer[0].DepartmentID;\n dialogRef.componentInstance.FrustrationTypeIDs = filterPointer[0].FrustrationsTypeID;\n dialogRef.componentInstance.FrustrationTypeID = filterPointer[0].FrustrationsTypeID;\n dialogRef.componentInstance.TeamID = filterPointer[0].TeamID;\n dialogRef.componentInstance.StatusID = filterPointer[0].StatusID;\n dialogRef.componentInstance.SeverityID = filterPointer[0].SeverityID;\n dialogRef.componentInstance.Subject = filterPointer[0].Subject;\n dialogRef.componentInstance.Description = filterPointer[0].Description;\n // dialogRef.componentInstance.tempFrustrationType = element.tempFrustrationType;\n\n dialogRef.componentInstance.ProjectID = filterPointer[0].ProjectID;\n dialogRef.componentInstance.CompanyID = filterPointer[0].CompanyID;\n dialogRef.componentInstance.updatedBy = filterPointer[0].UpdatedBy;\n dialogRef.componentInstance.updatedDate = filterPointer[0].UpdatedDate;\n dialogRef.componentInstance.currentUser = this.currentUser;\n this.tempActivity = [];\n for (let i = 0; i < this.activityData.length; i++) {\n if (this.activityData[i].ProcessID === filterPointer[0].ProcessID && this.activityData[i].ParentID == 0) {\n this.tempActivity.push(this.activityData[i]);\n }\n }\n dialogRef.componentInstance.tempActivity = this.tempActivity;\n\n dialogRef.afterClosed().subscribe(result => {\n if (result)\n this.dialogCall(\"Updated successfully\");\n this.dorseyService.GetCaseData(filterPointer[0].ProcessID, filterPointer[0].ActivityID, filterPointer[0].PointerTypeID, this.versionID, this.childTableName, this.childTableNameType).subscribe(cases => {\n cases = JSON.parse(cases['_body']);\n this.CaseData = cases;\n })\n });\n } else {\n const dialogRef = this.dialog.open(MetricDialogComponent, {\n panelClass: 'custom-dialog-container',\n data: 'edit' + 'æææ' + 'process',\n });\n\n\n let tempProcessData = this.processData.filter(x => x.TeamID === filterPointer[0].TeamID);\n\n dialogRef.componentInstance.processData = tempProcessData;\n dialogRef.componentInstance.GoalsList = this.GoalsList;\n\n dialogRef.componentInstance.activityData = this.activityData;\n dialogRef.componentInstance.departmentData = this.departmentData;\n dialogRef.componentInstance.pointerTypeData = this.pointerTypeData;\n dialogRef.componentInstance.severityData = this.severityData;\n dialogRef.componentInstance.statusData = this.statusData;\n dialogRef.componentInstance.GoalID = filterPointer[0].GoalID\n\n dialogRef.componentInstance.teamData = this.teamData;\n dialogRef.componentInstance.employeeData = this.employeeData;\n dialogRef.componentInstance.frustrationtypeData = this.frustrationtypeData;\n\n dialogRef.componentInstance.tempFrustrationType = this.tempFrustrationType;\n // dialogRef.componentInstance.tempProcess = this.tempProcess;\n dialogRef.componentInstance.EmployeeID = filterPointer[0].EmployeeID;\n dialogRef.componentInstance.ProcessID = filterPointer[0].ProcessID;\n\n\n dialogRef.componentInstance.ActivityID = filterPointer[0].ActivityID;\n dialogRef.componentInstance.PointerTypeID = filterPointer[0].PointerTypeID;\n dialogRef.componentInstance.PointerID = filterPointer[0].PointerID;\n dialogRef.componentInstance.DepartmentID = filterPointer[0].DepartmentID;\n dialogRef.componentInstance.FrustrationTypeID = filterPointer[0].FrustrationTypeID;\n dialogRef.componentInstance.TeamID = filterPointer[0].TeamID;\n dialogRef.componentInstance.StatusID = filterPointer[0].StatusID;\n dialogRef.componentInstance.SeverityID = filterPointer[0].SeverityID;\n dialogRef.componentInstance.Subject = filterPointer[0].Subject;\n dialogRef.componentInstance.Description = filterPointer[0].Description;\n\n dialogRef.componentInstance.tempFrustrationType = this.tempFrustrationType;\n\n dialogRef.componentInstance.Source = element.Source;\n dialogRef.componentInstance.CompanyID = filterPointer[0].CompanyID;\n dialogRef.componentInstance.subActivityStatus = this.subActivityStatus;\n dialogRef.componentInstance.SubActivityID = this.SubActivityID;\n\n this.tempActivity = [];\n for (let i = 0; i < this.activityData.length; i++) {\n if (this.activityData[i].ProcessID === filterPointer[0].ProcessID && this.activityData[i].ParentID == 0) {\n this.tempActivity.push(this.activityData[i]);\n }\n }\n dialogRef.componentInstance.tempActivity = this.tempActivity;\n\n dialogRef.afterClosed().subscribe(result => {\n if (result)\n this.dialogCall(\"Updated successfully\");\n\n this.dorseyService.GetCaseData(filterPointer[0].ProcessID, filterPointer[0].ActivityID, filterPointer[0].PointerTypeID, this.versionID, this.childTableName, this.childTableNameType).subscribe(cases => {\n cases = JSON.parse(cases['_body']);\n this.CaseData = cases;\n\n let filter = this.CaseData.filter(x => x.PointerID === element.PointerID);\n\n\n })\n\n });\n\n }\n\n\n }\n });\n }\n\n DeletePointer(element) {\n let filterPointer = this.pointerList.filter(x => x.PointerID === element.PointerID);\n if (filterPointer.length > 0) {\n if (filterPointer[0].PointerTypeID === 2) {\n this.PointerID = filterPointer[0].PointerID;\n let status: boolean;\n this.scoreCardService.CheckMetricExistInPSCDetails(this.PointerID).subscribe(resp => {\n status = resp.Data;\n })\n const dialogRef = this.dialog.open(MetricDialogComponent, {\n panelClass: 'custom-dialog-container',\n data: 'Are you sure you want to delete metric: ' + element.Description + '?æææ' + true,\n width: '400px',\n });\n dialogRef.componentInstance.CompanyID = element.CompanyID;\n dialogRef.componentInstance.frustrationtypeData = this.frustrationtypeData;\n dialogRef.afterClosed().subscribe(result => {\n if (result) {\n if (!status) {\n this.dorseyService.DeletePointer(this.PointerID).subscribe(data => {\n if (data.ok) {\n this.condition = true;\n const dialogRef = this.dialog.open(MetricDialogComponent, {\n panelClass: 'custom-dialog-container',\n data: 'Deleted Successfully '\n });\n dialogRef.afterClosed().subscribe(result => {\n this.dorseyService.GetCaseData(filterPointer[0].ProcessID, filterPointer[0].ActivityID, filterPointer[0].PointerTypeID, this.versionID, this.childTableName, this.childTableNameType).subscribe(cases => {\n cases = JSON.parse(cases['_body']);\n this.CaseData = cases;\n })\n });\n }\n });\n }\n else {\n this.dialogCall(\"Delete Failed. This metric is associated with scorecard\");\n }\n }\n });\n } else {\n this.PointerID = filterPointer[0].PointerID;\n\n const dialogRef = this.dialog.open(PointerDialogComponent, {\n panelClass: 'custom-dialog-container',\n data: 'Are you sure you want to delete frustration: ' + element.Subject + '?æææ' + true,\n width: '400px',\n\n // width: '40%'\n });\n\n dialogRef.componentInstance.CompanyID = element.CompanyID;\n dialogRef.componentInstance.frustrationtypeData = this.frustrationtypeData;\n // this.condition = true;\n\n dialogRef.afterClosed().subscribe(result => {\n if (result) {\n\n /// this.condition = true;\n this.dorseyService.DeletePointer(this.PointerID).subscribe(data => {\n\n if (data.ok) {\n this.condition = true;\n const dialogRef = this.dialog.open(PointerDialogComponent, {\n panelClass: 'custom-dialog-container',\n data: 'Deleted Successfully '\n\n\n // width: '40%'\n });\n dialogRef.afterClosed().subscribe(result => {\n\n\n this.dorseyService.GetCaseData(filterPointer[0].ProcessID, filterPointer[0].ActivityID, filterPointer[0].PointerTypeID, this.versionID, this.childTableName, this.childTableNameType).subscribe(cases => {\n cases = JSON.parse(cases['_body']);\n this.CaseData = cases;\n\n })\n\n });\n }\n\n });\n }\n });\n }\n }\n }\n GetSubActivities(activityID) {\n this.dorseyService.GetActivity(this.CompanyID).subscribe(subData => {\n subData = JSON.parse(subData['_body']);\n\n this.SubactivityData = subData;\n\n this.SubactivityData = this.SubactivityData.filter(x => x.ParentID === activityID);\n\n });\n }\n\n GetProcess() {\n this.dorseyService.GetProcess(this.CompanyID).subscribe(subData => {\n this.processData = JSON.parse(subData['_body']);\n\n });\n }\n\n AddSubActivity(activityID, processID) {\n\n this.GetActivityType();\n this.GetProcess();\n this.ActivityID = activityID;\n let processTemp = this.activityData.filter(x => x.ActivityID === activityID);\n if (processTemp.length > 0) {\n this.processID = processTemp[0].ProcessID;\n this.ActivityName = processTemp[0].ActivityName;\n this.ActivityID = processTemp[0].ActivityID;\n }\n let activityFilter = this.activityData.filter(x =>\n x.ProcessID.toString() === this.processID.toString() && x.ActivityID.toString() === activityID.toString()\n );\n\n let tempAct = this.activityData;\n\n this.activityData.sort(function (a, b) {\n return a.squence - b.squence;\n });\n\n\n const dialogRef = this.dialog.open(ActivityDialogComponent, {\n panelClass: 'custom-dialog-container',\n data: 'new' + 'æææ' + 'process',\n });\n\n if (activityID === 0) {\n dialogRef.componentInstance.ParentActivityID = 0;\n }\n else {\n dialogRef.componentInstance.ParentActivityID = activityID;\n }\n dialogRef.componentInstance.activityData = this.activityData;\n dialogRef.componentInstance.processData = this.processData;\n dialogRef.componentInstance.ProcessID = this.processID;\n dialogRef.componentInstance.TeamID = this.TeamID;\n dialogRef.componentInstance.tempActivity = this.activityData;\n dialogRef.componentInstance.departmentData = this.departmentData;\n dialogRef.componentInstance.teamData = this.teamData;\n dialogRef.componentInstance.employeeData = this.employeeData;\n\n dialogRef.componentInstance.tempActivity = this.activityData;\n // dialogRef.componentInstance.ActivityID = activityID;\n // dialogRef.componentInstance.ActivityTypeID = activityFilter[0].ActivityTypeID;\n dialogRef.componentInstance.CompanyID = this.CompanyID;\n dialogRef.componentInstance.activityTypeData = this.activityTypeData;\n\n //dialogRef.componentInstance.currentUser = this.currentUser;\n dialogRef.afterClosed().subscribe(result => {\n\n let actLen = this.activityData.filter(x => x.ParentID === activityID);;\n\n this.dorseyService.GetActivity(this.CompanyID).subscribe(subData => {\n this.activityData = JSON.parse(subData['_body']);\n\n let tempAct = this.activityData.filter(x => x.ParentID === activityID);\n\n if (tempAct.length > 0 && tempAct.length > actLen.length) {\n for (let k = actLen.length; k < tempAct.length; k++) {\n if (!(Object.keys(this.IssuesLists[this.processID]['SubActivity']).indexOf(activityFilter[0].ActivityID.toString()) > -1)) {\n let st = {};\n st[activityFilter[0].ActivityID] = [];\n st[activityFilter[0].ActivityID].push(tempAct[k]);\n\n this.IssuesLists[this.processID]['SubActivity'][activityFilter[0].ActivityID] = st[activityFilter[0].ActivityID];\n\n this.IssuesLists[this.processID]['SubMCount'][tempAct[k].ActivityID] = {};\n this.IssuesLists[this.processID]['SubMCount'][tempAct[k].ActivityID]['SubMetric'] = {};\n this.IssuesLists[this.processID]['SubMCount'][tempAct[k].ActivityID] = {};\n this.IssuesLists[this.processID]['SubMCount'][tempAct[k].ActivityID]['SubIssue'] = {}\n }\n else {\n this.IssuesLists[this.processID]['SubActivity'][activityFilter[0].ActivityID].push(tempAct[k]);\n this.IssuesLists[this.processID]['SubMCount'][tempAct[k].ActivityID] = {};\n this.IssuesLists[this.processID]['SubMCount'][tempAct[k].ActivityID]['SubMetric'] = {};\n this.IssuesLists[this.processID]['SubMCount'][tempAct[k].ActivityID] = {};\n this.IssuesLists[this.processID]['SubMCount'][tempAct[k].ActivityID]['SubIssue'] = {}\n\n }\n }\n\n }\n\n this.GetFrustrations();\n\n });\n\n });\n\n }\n\n\n GetFrustrationType() {\n this.dorseyService.GetFrustrationType('1', this.CompanyID).subscribe(subData => {\n subData = JSON.parse(subData['_body']);\n\n let tempType: any;\n tempType = subData;\n\n if (tempType.length === 0) {\n\n this.dorseyService.GetFrustrationType('1', \"0\").subscribe(subData => {\n subData = JSON.parse(subData['_body']);\n this.frustrationtypeData = subData;\n\n });\n }\n else {\n this.frustrationtypeData = tempType;\n }\n\n });\n\n\n }\n\n\n\n\n GetFrustrations() {\n this.editSubActiibiyt = true;\n let tempData = this.pointerList.filter(x => x.ProcessID === this.ProcessID && x.ActivityID === this.ActivityID);\n\n let lengthptns = this.pointerList.length;\n\n this.dorseyService.GetSelectedVersionPointerData(this.VersionNumber, Number(this.CompanyID), Number(this.TeamID), this.childTable).subscribe(pointer => {\n this.pointerList = JSON.parse(pointer['_body']);\n\n if (this.pointerList.length === lengthptns) {\n\n return;\n }\n\n this.pointerList = this.pointerList.filter(x => x.ProcessID === this.ProcessID && x.ActivityID === this.ActivityID);\n\n let metricFilter = this.pointerList.filter(x => x.PointerTypeID === 2);\n let issueFilter = this.pointerList.filter(x => x.PointerTypeID === 1);\n\n\n let filterSubMetric = metricFilter.filter(x => x.ActivityID === this.ActivityID);\n\n let filterSubIssue = issueFilter.filter(x => x.ActivityID === this.ActivityID);\n\n let putjson;\n if (this.pointerList.length > 0 && this.pointerList.length > tempData.length) {\n for (let k = tempData.length; k < this.pointerList.length; k++) {\n putjson = {\n PointerID: this.pointerList[k].PointerID,\n PointerType: this.pointerList[k].PointerType,\n SeverityName: this.pointerList[k].SeverityName,\n StatusID: this.pointerList[k].StatusID,\n StatusName: this.pointerList[k].StatusName,\n Description: this.pointerList[k].Description,\n Subject: this.pointerList[k].Subject\n };\n\n if (this.pointerList[k].PointerTypeID === 2) {\n if (this.ParentID !== '0') {\n\n if (!(Object.keys(this.IssuesLists[this.processID]['SubActivityMetric']).indexOf(this.ActivityID.toString()) > -1)) {\n let st = {};\n st[this.ActivityID] = [];\n st[this.ActivityID].push(putjson);\n\n if (!this.IssuesLists[this.processID]['SubMCount'][this.ActivityID]) {\n this.IssuesLists[this.processID]['SubMCount'][this.ActivityID] = {};\n\n }\n if (!this.IssuesLists[this.processID]['SubMCount'][this.ActivityID]['SubMetric']) {\n this.IssuesLists[this.processID]['SubMCount'][this.ActivityID]['SubMetric'] = {};\n }\n if (!this.IssuesLists[this.processID]['SubMCount'][this.ActivityID]['SubMetric'][this.ActivityID]) {\n\n this.IssuesLists[this.processID]['SubMCount'][this.ActivityID]['SubMetric'][this.ActivityID] = 0;\n }\n\n this.IssuesLists[this.processID]['SubMCount'][this.ActivityID]['SubMetric'][this.ActivityID] = Number(this.IssuesLists[this.processID]['SubMCount'][this.ActivityID]['SubMetric'][this.ActivityID]) + 1;\n\n this.IssuesLists[this.processID]['SubActivityMetric'][this.ActivityID] = st[this.ActivityID];\n }\n else {\n if (this.editSubActiibiyt) {\n this.IssuesLists[this.processID]['SubMCount'][this.ActivityID]['SubMetric'][this.ActivityID] = filterSubMetric.length;\n this.IssuesLists[this.processID]['SubActivityMetric'][this.ActivityID] = filterSubMetric;\n }\n else\n // if(this.pointerList[k].PointerType!==undefined)\n {\n this.IssuesLists[this.processID]['SubMCount'][this.ActivityID]['SubMetric'][this.ActivityID] = Number(this.IssuesLists[this.processID]['SubMCount'][this.ActivityID]['SubMetric'][this.ActivityID]) + 1;\n\n this.IssuesLists[this.processID]['SubActivityMetric'][this.ActivityID].push(putjson);\n }\n\n }\n\n } else {\n\n if (!(Object.keys(this.IssuesLists[this.processID]['MetricList']).indexOf(this.ActivityID.toString()) > -1)) {\n let st = {};\n st[this.ActivityID] = [];\n st[this.ActivityID].push(putjson);\n\n if (!this.IssuesLists[this.processID]['Metric'][this.ActivityID]) {\n\n this.IssuesLists[this.processID]['Metric'][this.ActivityID] = 0;\n }\n this.IssuesLists[this.processID]['Metric'][this.ActivityID] = Number(this.IssuesLists[this.processID]['Metric'][this.ActivityID]) + 1;\n this.IssuesLists[this.processID]['MetricList'][this.ActivityID] = st[this.ActivityID];\n }\n else {\n\n if (this.editSubActiibiyt) {\n this.IssuesLists[this.processID]['Metric'][this.ActivityID] = metricFilter.length;\n this.IssuesLists[this.processID]['MetricList'][this.ActivityID] = metricFilter;\n\n }\n else {\n this.IssuesLists[this.processID]['MetricList'][this.ActivityID].push(putjson);\n this.IssuesLists[this.processID]['Metric'][this.ActivityID] = Number(this.IssuesLists[this.processID]['Metric'][this.ActivityID]) + 1;\n\n }\n\n }\n\n }\n }\n else {\n\n if (this.ParentID === '0') {\n\n\n if (!(Object.keys(this.IssuesLists[this.processID]['IssueList']).indexOf(this.ActivityID.toString()) > -1)) {\n let st = {};\n st[this.ActivityID] = [];\n st[this.ActivityID].push(putjson);\n\n if (!this.IssuesLists[this.processID]['Issue'][this.ActivityID]) {\n\n this.IssuesLists[this.processID]['Issue'][this.ActivityID] = 0;\n }\n\n this.IssuesLists[this.processID]['Issue'][this.ActivityID] = Number(this.IssuesLists[this.processID]['Issue'][this.ActivityID]) + 1;\n\n this.IssuesLists[this.processID]['IssueList'][this.ActivityID] = st[this.ActivityID];\n }\n else {\n if (this.editSubActiibiyt) {\n this.IssuesLists[this.processID]['Issue'][this.ActivityID] = issueFilter.length;\n this.IssuesLists[this.processID]['IssueList'][this.ActivityID] = issueFilter;\n }\n else {\n this.IssuesLists[this.processID]['Issue'][this.ActivityID] = Number(this.IssuesLists[this.processID]['Issue'][this.ActivityID]) + 1;\n this.IssuesLists[this.processID]['IssueList'][this.ActivityID].push(putjson);\n }\n\n\n }\n\n }\n else {\n\n if (!(Object.keys(this.IssuesLists[this.processID]['SubActivityIssues']).indexOf(this.ActivityID.toString()) > -1)) {\n\n let st = {};\n st[this.ActivityID] = [];\n st[this.ActivityID].push(putjson);\n\n if (!this.IssuesLists[this.processID]['SubMCount'][this.ActivityID]['SubIssue'][this.ActivityID]) {\n this.IssuesLists[this.processID]['SubMCount'][this.ActivityID]['SubIssue'][this.ActivityID] = 0;\n }\n\n this.IssuesLists[this.processID]['SubMCount'][this.ActivityID]['SubIssue'][this.ActivityID] = Number(this.IssuesLists[this.processID]['SubMCount'][this.ActivityID]['SubIssue'][this.ActivityID]) + 1;\n\n\n this.IssuesLists[this.processID]['SubActivityIssues'][this.ActivityID] = st[this.ActivityID];\n }\n else {\n if (this.editSubActiibiyt) {\n this.IssuesLists[this.processID]['SubActivityIssues'][this.ActivityID] = filterSubIssue;\n this.IssuesLists[this.processID]['SubMCount'][this.ActivityID]['SubIssue'][this.ActivityID] = filterSubIssue.length;\n }\n else\n // if(this.pointerList[k].PointerType!==undefined)\n {\n this.IssuesLists[this.processID]['SubMCount'][this.ActivityID]['SubIssue'][this.ActivityID] = Number(this.IssuesLists[this.processID]['SubMCount'][this.ActivityID]['SubIssue'][this.ActivityID]) + 1;\n\n this.IssuesLists[this.processID]['SubActivityIssues'][this.ActivityID].push(putjson);\n }\n }\n\n }\n }\n }\n }\n if (this.IssuesLists[this.subKey]) {\n if (this.IssuesLists[this.subKey]['Activity']) {\n for (let j = 0; j < this.IssuesLists[this.subKey]['Activity'].length; j++) {\n let id = this.IssuesLists[this.subKey]['Activity'][j].ActivityID;\n this.showMetricAlert[id] = false;\n if (this.IssuesLists[this.subKey]['MetricList'][this.IssuesLists[this.subKey]['Activity'][j].ActivityID.toString()] != undefined) {\n j = j + this.alertMetricValue - (j % this.alertMetricValue) - 1;\n } else {\n if ((j + 1) % this.alertMetricValue == 0) {\n this.showMetricAlert[id] = true;\n } else {\n this.showMetricAlert[id] = false;\n }\n }\n }\n }\n\n }\n\n });\n }\n AddIssue(activityID) {\n this.ParentID = '0';\n\n const dialogRef = this.dialog.open(PointerDialogComponent, {\n panelClass: 'custom-dialog-container',\n data: 'new' + 'æææ' + activityID,\n });\n this.ActivityID = activityID;\n let processTemp = this.activityData.filter(x => x.ActivityID === activityID);\n if (processTemp.length > 0) {\n this.processID = processTemp[0].ProcessID;\n this.ActivityName = processTemp[0].ActivityName;\n this.ActivityID = processTemp[0].ActivityID;\n }\n\n this.StatusID = this.statusData[0].StatusID;\n\n dialogRef.componentInstance.TeamID = this.TeamID\n dialogRef.componentInstance.processData = this.tempProcess;\n dialogRef.componentInstance.activityData = this.activityData;\n dialogRef.componentInstance.departmentData = this.departmentData;\n dialogRef.componentInstance.pointerTypeData = this.pointerTypeData;\n dialogRef.componentInstance.severityData = this.severityData;\n dialogRef.componentInstance.statusData = this.statusData;\n dialogRef.componentInstance.StatusID = this.StatusID;\n dialogRef.componentInstance.teamData = this.teamData;\n dialogRef.componentInstance.employeeData = this.employeeData;\n dialogRef.componentInstance.frustrationtypeData = this.frustrationtypeData;\n dialogRef.componentInstance.tempActivity = this.activityData;\n dialogRef.componentInstance.tempFrustrationType = this.tempFrustrationType;\n dialogRef.componentInstance.subActivityStatus = this.subActivityStatus;\n\n dialogRef.componentInstance.ProcessID = this.processID;\n\n dialogRef.componentInstance.ActivityID = activityID;\n dialogRef.componentInstance.CompanyID = this.CompanyID;\n\n\n let tempActivityes = this.activityData;\n let subAct = tempActivityes.filter(x => x.ParentID != 0);\n\n let tempAct = subAct.filter(x => x.ActivityID === activityID);\n\n if (tempAct.length === 1 && tempAct.length > 0) {\n\n this.ParentID = tempAct[0].ParentID;\n }\n\n if (this.ParentID.toString() === '0') {\n\n dialogRef.componentInstance.subActivityStatus = false;\n dialogRef.componentInstance.ActivityID = activityID;\n\n } else {\n\n dialogRef.componentInstance.subActivityStatus = true;\n dialogRef.componentInstance.SubActivityID = activityID;\n dialogRef.componentInstance.ActivityID = this.ParentID;\n\n }\n\n dialogRef.afterClosed().subscribe(result => {\n // this.parent.ConstructMap();\n this.GetFrustrations();\n this.GetFrustrationType();\n\n this.pointerList = [];\n\n });\n\n }\n\n\n AddMetric(activityID) {\n\n this.ParentID = '0';\n\n const dialogRef = this.dialog.open(MetricDialogComponent, {\n panelClass: 'custom-dialog-container',\n data: 'new' + 'æææ' + activityID,\n });\n\n let processTemp = this.activityData.filter(x => x.ActivityID === activityID);\n if (processTemp.length > 0) {\n this.processID = processTemp[0].ProcessID;\n this.ActivityName = processTemp[0].ActivityName;\n this.ActivityID = processTemp[0].ActivityID;\n }\n this.ActivityID = activityID;\n\n dialogRef.componentInstance.GoalsList = this.GoalsList;\n dialogRef.componentInstance.processData = this.tempProcess;\n dialogRef.componentInstance.TeamID = this.TeamID;\n dialogRef.componentInstance.tempActivity = this.activityData;\n dialogRef.componentInstance.departmentData = this.departmentData;\n dialogRef.componentInstance.pointerTypeData = this.pointerTypeData;\n dialogRef.componentInstance.severityData = this.severityData;\n dialogRef.componentInstance.statusData = this.statusData;\n dialogRef.componentInstance.teamData = this.teamData;\n dialogRef.componentInstance.employeeData = this.employeeData;\n dialogRef.componentInstance.frustrationtypeData = this.frustrationtypeData;\n dialogRef.componentInstance.activityData = this.activityData;\n dialogRef.componentInstance.tempFrustrationType = this.tempFrustrationType;\n dialogRef.componentInstance.ProcessID = this.processID;\n // dialogRef.componentInstance.subActivityStatus = false;\n dialogRef.componentInstance.CompanyID = this.CompanyID;\n\n let tempActivityes = this.activityData;\n let subAct = tempActivityes.filter(x => x.ParentID != 0);\n\n let tempAct = subAct.filter(x => x.ActivityID === activityID);\n\n if (tempAct.length === 1 && tempAct.length > 0) {\n\n this.ParentID = tempAct[0].ParentID;\n this.parentActivityName = tempAct[0].ActivityName\n\n }\n\n\n if (this.ParentID.toString() === '0') {\n dialogRef.componentInstance.ActivityID = activityID;\n dialogRef.componentInstance.subActivityStatus = false;\n } else {\n\n dialogRef.componentInstance.subActivityStatus = true;\n dialogRef.componentInstance.SubActivityID = activityID;\n dialogRef.componentInstance.ActivityID = this.ParentID;\n // dialogRef.componentInstance.parentActivityName = this.parentActivityName;\n\n\n }\n\n dialogRef.afterClosed().subscribe(result => {\n // if(this.editSubActiibiyt){\n // this.IssuesLists[this.processID]['SubMCount'][this.ActivityID]['SubMetric'][this.ActivityID]={};\n // }\n\n\n this.GetFrustrations();\n this.GetFrustrationType();\n\n\n\n this.checkForMetricAlert();\n\n });\n\n }\n\n\n getCase(activityID, pointerID) {\n\n let activityName = '';\n\n if (activityID !== 0) {\n activityName = activityID.ActivityName;\n\n this.parentId = activityID.ParentID;\n }\n\n this.dorseyService.GetCaseData(this.isProcess, activityID.ActivityID, pointerID, this.VersionNumber, this.childTable, this.childFrustType).subscribe(cases => {\n cases = JSON.parse(cases['_body']);\n\n const dialogRef = this.dialog.open(ProcessMapDialogComponent2, {\n data: 'new1' + 'æææ' + true + 'æææ' + pointerID,\n width: '800px',\n });\n\n let filterROle = this.RoleData.filter(x => x.RoleName === \"Read Only\" && x.RoleID === this.EmpROleID);\n\n if (filterROle.length > 0) {\n this.readOnly = true;\n }\n else {\n this.readOnly = false;\n\n }\n\n let activityFilter = this.activityData.filter(x => x.ActivityID === activityID.ActivityID);\n\n dialogRef.componentInstance.IsVersion = this.IsVersion;\n dialogRef.componentInstance.readOnly = this.readOnly;\n\n\n dialogRef.componentInstance.menuDeleteCheck = this.menuDeleteCheck;\n dialogRef.componentInstance.menuUpdateCheck = this.menuUpdateCheck;\n\n dialogRef.componentInstance.GoalsList = this.GoalsList;\n dialogRef.componentInstance.menuCreateCheck = this.menuCreateCheck;\n dialogRef.componentInstance.menuReadCheck = this.menuReadCheck;\n\n dialogRef.componentInstance.menuCCheck = this.menuCCheck;\n dialogRef.componentInstance.CaseData = cases;\n dialogRef.componentInstance.Process = this.isProcess.ProcessName;\n dialogRef.componentInstance.Activity = activityName;\n dialogRef.componentInstance.pointerList = this.pointerList;\n dialogRef.componentInstance.processData = this.processData;\n dialogRef.componentInstance.versionID = this.VersionNumber;\n dialogRef.componentInstance.childTableName = this.childTableName;\n dialogRef.componentInstance.childTablePointers = this.childTablePointers;\n\n\n dialogRef.componentInstance.TeamID = this.TeamID\n dialogRef.componentInstance.processData = this.processData;\n dialogRef.componentInstance.activityData = this.activityData;\n dialogRef.componentInstance.departmentData = this.departmentData;\n dialogRef.componentInstance.pointerTypeData = this.pointerTypeData;\n dialogRef.componentInstance.severityData = this.severityData;\n dialogRef.componentInstance.statusData = this.statusData;\n dialogRef.componentInstance.teamData = this.teamData;\n dialogRef.componentInstance.employeeData = this.employeeData;\n dialogRef.componentInstance.frustrationtypeData = this.frustrationtypeData;\n dialogRef.componentInstance.tempActivity = this.activityData;\n dialogRef.componentInstance.tempFrustrationType = this.tempFrustrationType;\n dialogRef.componentInstance.ProcessID = this.processID;\n dialogRef.componentInstance.ActivityID = activityID.ActivityID;\n dialogRef.componentInstance.CompanyID = this.CompanyID;\n this.StatusID = this.statusData[0].StatusID;\n dialogRef.componentInstance.StatusID = this.StatusID;\n dialogRef.componentInstance.currentUser = this.currentUser;\n dialogRef.componentInstance.childTablePointers = this.childTablePointers;\n\n dialogRef.afterClosed().subscribe(result => {\n // if(result !== undefined)\n this.dorseyService.GetSelectedVersionPointerData(this.CurrentVersionNumber, Number(this.CompanyID), Number(this.TeamID), this.childTablePointers).subscribe(pointer => {\n this.pointerList = JSON.parse(pointer['_body']);\n\n\n\n this.ActivityID = activityID.ActivityID;\n\n\n\n let filterSubMetric = this.pointerList.filter(x => x.PointerTypeID === 2 && x.ActivityID === activityID.ActivityID);\n let filterSubIssue = this.pointerList.filter(x => x.PointerTypeID === 1 && x.ActivityID === activityID.ActivityID);\n\n\n let filterMetric = this.pointerList.filter(x => x.PointerTypeID === 2 && x.ActivityID === activityFilter[0].ActivityID);\n let filterIssue = this.pointerList.filter(x => x.PointerTypeID === 1 && x.ActivityID === activityFilter[0].ActivityID);\n\n\n this.processID = activityFilter[0].ProcessID;\n\n if (pointerID === 2) {\n if (activityFilter[0].ParentID === 0) {\n this.IssuesLists[this.processID]['Metric'][activityFilter[0].ActivityID] = filterMetric.length;\n\n if (filterMetric.length > 0) {\n this.IssuesLists[this.processID]['MetricList'][activityFilter[0].ActivityID] = filterMetric;\n }\n else {\n\n delete this.IssuesLists[this.processID]['MetricList'][activityFilter[0].ActivityID];\n }\n\n }\n else if (this.ActivityID === activityFilter[0].ActivityID) {\n\n if (filterSubMetric.length > 0) {\n this.IssuesLists[this.processID]['SubMCount'][this.ActivityID]['SubMetric'][this.ActivityID] = filterSubMetric.length;\n this.IssuesLists[this.processID]['SubActivityMetric'][this.ActivityID] = filterSubMetric;\n }\n else {\n this.IssuesLists[this.processID]['SubMCount'][this.ActivityID]['SubMetric'] = {};\n delete this.IssuesLists[this.processID]['SubActivityMetric'][this.ActivityID];\n\n }\n\n }\n\n }\n else {\n if (activityFilter[0].ParentID === 0) {\n this.IssuesLists[this.processID]['Issue'][activityFilter[0].ActivityID] = filterIssue.length;\n if (filterIssue.length > 0) {\n this.IssuesLists[this.processID]['IssueList'][activityFilter[0].ActivityID] = filterIssue;\n }\n else {\n\n delete this.IssuesLists[this.processID]['IssueList'][activityFilter[0].ActivityID];\n }\n }\n else if (this.ActivityID === activityFilter[0].ActivityID) {\n {\n\n if (filterSubIssue.length > 0) {\n this.IssuesLists[this.processID]['SubMCount'][this.ActivityID]['SubIssue'][this.ActivityID] = filterSubIssue.length;\n this.IssuesLists[this.processID]['SubActivityIssues'][this.ActivityID] = filterSubIssue;\n\n }\n\n else {\n this.IssuesLists[this.processID]['SubMCount'][this.ActivityID]['SubIssue'] = {};\n delete this.IssuesLists[this.processID]['SubActivityIssues'][this.ActivityID];\n }\n\n }\n\n }\n\n }\n\n this.GetFrustrations();\n\n this.checkForMetricAlert();\n })\n });\n });\n }\n checkForMetricAlert() {\n if (this.IssuesLists[this.subKey]) {\n if (this.IssuesLists[this.subKey]['Activity']) {\n for (let j = 0; j < this.IssuesLists[this.subKey]['Activity'].length; j++) {\n let id = this.IssuesLists[this.subKey]['Activity'][j].ActivityID;\n this.showMetricAlert[id] = false;\n if (this.IssuesLists[this.subKey]['MetricList'][this.IssuesLists[this.subKey]['Activity'][j].ActivityID.toString()] != undefined) {\n\n j = j + this.alertMetricValue - (j % this.alertMetricValue) - 1;\n } else {\n if ((j + 1) % this.alertMetricValue == 0) {\n this.showMetricAlert[id] = true;\n } else {\n this.showMetricAlert[id] = false;\n }\n }\n\n }\n }\n\n }\n }\n\n}\n\n@Component({\n selector: 'app-dialog',\n templateUrl: 'dialog.html',\n styleUrls: ['dialog.css'],\n providers: [DorseyService]\n})\nexport class ProcessMapDialogComponent2 implements OnInit {\n readOnly = false;\n IsVersion = false;\n ActivityTypeID: string;\n isProcess: any;\n isSub: any;\n condition = false;\n isActivity: any;\n dataSelf: string;\n processID: string;\n headerText: string;\n GoalsList: any;\n PointerType: string;\n CaseData: any;\n Process = '';\n Activity = '';\n toggle = '';\n IssuesLists = {};\n subKey = '';\n MapType: string;\n show = true;\n SubActivityID: string;\n activityProcess: number;\n pointerList: any;\n processData: any;\n versionID: any;\n childTableName: any;\n childTablePointers: any;\n TeamID: any;\n activityData: any;\n departmentData: any;\n severityData: any;\n statusData: any;\n pointerTypeData: any;\n StatusID: string;\n frustrationtypeData: any;\n employeeData: any;\n teamData: any;\n tempFrustrationType: any;\n CompanyID: string;\n ActivityID: any;\n tempActivity: any;\n ProcessID: string;\n currentUser: string;\n greenLow: string;\n greenHigh: string;\n redLow: string;\n redHigh: string;\n yellowLow: string;\n yellowHigh: string;\n PointerID: any;\n childTableNameType: string;\n subActivityStatus: boolean;\n menuDeleteCheck: boolean;\n menuUpdateCheck: boolean;\n menuReadCheck: boolean;\n menuCreateCheck: boolean;\n menuCCheck: boolean;\n FrustrationTypeID: string;\n Subject: string;\n SeverityID: string;\n EmployeeID: string;\n Description: any;\n Source: any;\n DepartmentID: string;\n conditionActivity: any;\n tempSubActivity: any[];\n\n constructor(\n public dialogRef: MatDialogRef<ProcessMapDialogComponent2>,\n @Inject(MAT_DIALOG_DATA) public data: any, public dorseyService: DorseyService,\n private dialog: MatDialog, private scoreCardService: PerformanceScoreCardService) {\n // dialogRef.disableClose=true;\n this.data = this.data.split('æææ');\n\n if (this.data[1] === 'true') {\n this.condition = true;\n } else {\n this.condition = false;\n }\n this.toggle = this.data[2];\n this.data = this.data[0];\n\n }\n ngOnInit() {\n this.subKey = Object.keys(this.IssuesLists)[0];\n }\n\n closeChoose() {\n this.dialogRef.close(this.PointerType);\n }\n\n dialogCall(msg: string) {\n const dialogRef = this.dialog.open(ProcessMapDialogComponent, {\n data: msg + 'æææ' + false,\n });\n }\n\n Clear() {\n this.dialogRef.close(false);\n }\n onYesClick() {\n this.dialogRef.close(true);\n }\n onNoClick(): void {\n this.dialogRef.close();\n }\n\n\n EditPointer(element) {\n\n if (!this.menuDeleteCheck && !this.menuUpdateCheck) {\n return;\n }\n\n let tempP = this.pointerList.filter(x => x.PointerID === element.PointerID);\n if (tempP.length > 0) {\n this.TeamID = tempP[0].TeamID;\n }\n\n this.dorseyService.GetSelectedVersionPointerData(this.versionID, Number(this.CompanyID), Number(this.TeamID), this.childTablePointers).subscribe(pointer => {\n this.pointerList = JSON.parse(pointer['_body']);\n\n let filterPointer = this.pointerList.filter(x => x.PointerID === element.PointerID);\n if (filterPointer.length > 0) {\n if (filterPointer[0].PointerTypeID === 1) {\n const dialogRef = this.dialog.open(PointerDialogComponent, {\n panelClass: 'custom-dialog-container',\n data: 'edit' + 'æææ' + 'process',\n });\n\n dialogRef.componentInstance.processData = this.processData;\n dialogRef.componentInstance.activityData = this.activityData;\n dialogRef.componentInstance.departmentData = this.departmentData;\n dialogRef.componentInstance.pointerTypeData = this.pointerTypeData;\n dialogRef.componentInstance.severityData = this.severityData;\n dialogRef.componentInstance.statusData = this.statusData;\n dialogRef.componentInstance.teamData = this.teamData;\n dialogRef.componentInstance.employeeData = this.employeeData;\n dialogRef.componentInstance.frustrationtypeData = this.frustrationtypeData;\n dialogRef.componentInstance.tempActivity = this.tempActivity;\n dialogRef.componentInstance.tempFrustrationType = this.tempFrustrationType;\n dialogRef.componentInstance.EmployeeID = filterPointer[0].EmployeeID;\n dialogRef.componentInstance.ProcessID = filterPointer[0].ProcessID;\n dialogRef.componentInstance.ActivityID = filterPointer[0].ActivityID;\n dialogRef.componentInstance.PointerTypeID = filterPointer[0].PointerTypeID;\n dialogRef.componentInstance.PointerID = filterPointer[0].PointerID;\n dialogRef.componentInstance.DepartmentID = filterPointer[0].DepartmentID;\n dialogRef.componentInstance.FrustrationTypeIDs = filterPointer[0].FrustrationsTypeID;\n dialogRef.componentInstance.FrustrationTypeID = filterPointer[0].FrustrationsTypeID;\n dialogRef.componentInstance.TeamID = filterPointer[0].TeamID;\n dialogRef.componentInstance.StatusID = filterPointer[0].StatusID;\n dialogRef.componentInstance.SeverityID = filterPointer[0].SeverityID;\n dialogRef.componentInstance.Subject = filterPointer[0].Subject;\n dialogRef.componentInstance.Description = filterPointer[0].Description;\n dialogRef.componentInstance.ProjectID = filterPointer[0].ProjectID;\n dialogRef.componentInstance.CompanyID = filterPointer[0].CompanyID;\n dialogRef.componentInstance.updatedBy = filterPointer[0].UpdatedBy;\n dialogRef.componentInstance.updatedDate = filterPointer[0].UpdatedDate;\n dialogRef.componentInstance.currentUser = this.currentUser;\n\n let tempActivityes = this.activityData;\n let subAct = tempActivityes.filter(x => x.ParentID != 0);\n\n let tempAct = subAct.filter(x => x.ActivityID === filterPointer[0].ActivityID);\n\n let ParentID: string;\n let parentActivityName: string;\n if (tempAct.length === 1 && tempAct.length > 0) {\n\n ParentID = tempAct[0].ParentID;\n parentActivityName = tempAct[0].ActivityName\n }\n if (ParentID.toString() === '0') {\n dialogRef.componentInstance.ActivityID = filterPointer[0].ActivityID;\n dialogRef.componentInstance.subActivityStatus = false;\n } else {\n dialogRef.componentInstance.subActivityStatus = true;\n dialogRef.componentInstance.SubActivityID = filterPointer[0].ActivityID;\n dialogRef.componentInstance.ActivityID = ParentID;\n }\n dialogRef.afterClosed().subscribe(result => {\n if (result)\n this.dialogCall(\"Updated successfully\");\n this.dorseyService.GetCaseData(filterPointer[0].ProcessID, filterPointer[0].ActivityID, filterPointer[0].PointerTypeID, this.versionID, this.childTableName, this.childTableNameType).subscribe(cases => {\n cases = JSON.parse(cases['_body']);\n this.CaseData = cases;\n })\n });\n } else {\n const dialogRef = this.dialog.open(MetricDialogComponent, {\n panelClass: 'custom-dialog-container',\n data: 'edit' + 'æææ' + 'process',\n });\n\n let tempProcessData = this.processData.filter(x => x.TeamID === filterPointer[0].TeamID);\n dialogRef.componentInstance.processData = tempProcessData;\n dialogRef.componentInstance.activityData = this.activityData;\n dialogRef.componentInstance.departmentData = this.departmentData;\n dialogRef.componentInstance.pointerTypeData = this.pointerTypeData;\n dialogRef.componentInstance.severityData = this.severityData;\n dialogRef.componentInstance.statusData = this.statusData;\n dialogRef.componentInstance.GoalID = filterPointer[0].GoalID;\n dialogRef.componentInstance.GoalsList = this.GoalsList;\n dialogRef.componentInstance.teamData = this.teamData;\n dialogRef.componentInstance.employeeData = this.employeeData;\n dialogRef.componentInstance.frustrationtypeData = this.frustrationtypeData;\n dialogRef.componentInstance.tempActivity = this.tempActivity;\n dialogRef.componentInstance.tempFrustrationType = this.tempFrustrationType;\n dialogRef.componentInstance.EmployeeID = filterPointer[0].EmployeeID;\n dialogRef.componentInstance.ProcessID = filterPointer[0].ProcessID;\n dialogRef.componentInstance.ActivityID = filterPointer[0].ActivityID;\n dialogRef.componentInstance.PointerTypeID = filterPointer[0].PointerTypeID;\n dialogRef.componentInstance.PointerID = filterPointer[0].PointerID;\n dialogRef.componentInstance.DepartmentID = filterPointer[0].DepartmentID;\n dialogRef.componentInstance.FrustrationTypeID = filterPointer[0].FrustrationTypeID;\n dialogRef.componentInstance.TeamID = filterPointer[0].TeamID;\n dialogRef.componentInstance.StatusID = filterPointer[0].StatusID;\n dialogRef.componentInstance.SeverityID = filterPointer[0].SeverityID;\n dialogRef.componentInstance.Subject = filterPointer[0].Subject;\n dialogRef.componentInstance.Description = filterPointer[0].Description;\n dialogRef.componentInstance.tempActivity = this.tempActivity;\n dialogRef.componentInstance.tempFrustrationType = this.tempFrustrationType;\n dialogRef.componentInstance.Source = element.Source;\n dialogRef.componentInstance.CompanyID = filterPointer[0].CompanyID;\n let tempActivityes = this.activityData;\n let subAct = tempActivityes.filter(x => x.ParentID != 0);\n let tempAct = subAct.filter(x => x.ActivityID === filterPointer[0].ActivityID);\n\n let ParentID: string;\n let parentActivityName: string;\n if (tempAct.length === 1 && tempAct.length > 0) {\n\n ParentID = tempAct[0].ParentID;\n parentActivityName = tempAct[0].ActivityName\n }\n if (ParentID.toString() === '0') {\n dialogRef.componentInstance.ActivityID = filterPointer[0].ActivityID;\n dialogRef.componentInstance.subActivityStatus = false;\n } else {\n\n dialogRef.componentInstance.subActivityStatus = true;\n dialogRef.componentInstance.SubActivityID = filterPointer[0].ActivityID;\n dialogRef.componentInstance.ActivityID = ParentID;\n }\n dialogRef.afterClosed().subscribe(result => {\n if (result)\n this.dialogCall(\"Updated successfully\");\n\n this.dorseyService.GetCaseData(filterPointer[0].ProcessID, filterPointer[0].ActivityID, filterPointer[0].PointerTypeID, this.versionID, this.childTableName, this.childTableNameType).subscribe(cases => {\n cases = JSON.parse(cases['_body']);\n this.CaseData = cases;\n let filter = this.CaseData.filter(x => x.PointerID === element.PointerID);\n })\n });\n }\n }\n });\n }\n\n DeletePointer(element) {\n\n let filterPointer = this.pointerList.filter(x => x.PointerID === element.PointerID);\n if (filterPointer.length > 0) {\n if (filterPointer[0].PointerTypeID === 2) {\n this.PointerID = filterPointer[0].PointerID;\n\n let status: boolean;\n this.scoreCardService.CheckMetricExistInPSCDetails(this.PointerID).subscribe(resp => {\n status = resp.Data;\n })\n const dialogRef = this.dialog.open(MetricDialogComponent, {\n panelClass: 'custom-dialog-container',\n data: 'Are you sure you want to delete metric: ' + element.Description + '?æææ' + true,\n width: '400px',\n });\n\n dialogRef.afterClosed().subscribe(result => {\n if (result) {\n if (!status) {\n this.dorseyService.DeletePointer(this.PointerID).subscribe(data => {\n if (data.ok) {\n this.condition = true;\n const dialogRef = this.dialog.open(MetricDialogComponent, {\n panelClass: 'custom-dialog-container',\n data: 'Deleted Successfully '\n });\n dialogRef.afterClosed().subscribe(result => {\n this.dorseyService.GetCaseData(filterPointer[0].ProcessID, filterPointer[0].ActivityID, filterPointer[0].PointerTypeID, this.versionID, this.childTableName, this.childTableNameType).subscribe(cases => {\n cases = JSON.parse(cases['_body']);\n this.CaseData = cases;\n })\n });\n }\n });\n }\n else {\n this.dialogCall(\"Delete Failed. This metric is associated with scorecard\");\n }\n }\n });\n } else {\n this.PointerID = filterPointer[0].PointerID;\n\n const dialogRef = this.dialog.open(PointerDialogComponent, {\n panelClass: 'custom-dialog-container',\n data: 'Are you sure you want to delete frustration: ' + element.Subject + '?æææ' + true,\n width: '400px',\n\n // width: '40%'\n });\n dialogRef.afterClosed().subscribe(result => {\n if (result) {\n this.dorseyService.DeletePointer(this.PointerID).subscribe(data => {\n\n if (data.ok) {\n this.condition = true;\n const dialogRef = this.dialog.open(PointerDialogComponent, {\n panelClass: 'custom-dialog-container',\n data: 'Deleted Successfully '\n });\n dialogRef.afterClosed().subscribe(result => {\n\n\n this.dorseyService.GetCaseData(filterPointer[0].ProcessID, filterPointer[0].ActivityID, filterPointer[0].PointerTypeID, this.versionID, this.childTableName, this.childTableNameType).subscribe(cases => {\n cases = JSON.parse(cases['_body']);\n this.CaseData = cases;\n\n })\n\n });\n }\n });\n }\n });\n }\n }\n\n }\n\n}\n","import { Component, OnInit, Inject } from '@angular/core';\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { DorseyService } from '../dorsey.service';\nimport { LocalStorageService } from 'ngx-webstorage';\nimport { EmployeeLoginLevel } from '../common/models/login-level.model';\nimport { copyRight } from '../copyRight.model';\n\n@Component({\n selector: 'app-process',\n templateUrl: './process.component.html',\n providers: [DorseyService]\n})\nexport class ProcessComponent implements OnInit {\n employeeLevelLogin = EmployeeLoginLevel;\n status = false;\n processData: any;\n granualProcess = [];\n teamData: any;\n saveFilter = [];\n procData: any;\n employeeDetails: any;\n Permissons: any;\n CompanyID: string;\n ProcessID: string;\n ProcessName: string;\n DepartmentID: string;\n EmployeeID: number;\n ProcessDescription: string;\n TeamID: number;\n condition = false;\n headerText: string;\n searchtext: string;\n p: number = 1;\n rowsOnPage = 10;\n rowsOnPageSet = [];\n rowCount: any;\n dynamicRows = 10;\n isDesc: boolean = false;\n column = \"\";\n direction: number;\n arrow = true;\n processPaging = false;\n isDisable = false;\n disableSearch = false;\n\n CurrentUser: string;\n\n MenuPermissions: any;\n menuData: any;\n menuID: string;\n menuName: string;\n empID: string;\n sequenceList = [];\n squence = null;\n\n loginCompanyName: any;\n lastSequence: number;\n TeamName: any;\n UserID: any;\n\n constructor(public dialog: MatDialog, public dorseyService: DorseyService, private storage: LocalStorageService) {\n this.empID = this.storage.retrieve('EmployeeID');\n this.CompanyID = this.storage.retrieve('companyID');\n this.CurrentUser = this.storage.retrieve('user');\n this.menuData = this.storage.retrieve('menuData');\n this.MenuPermissions = this.storage.retrieve('MenuPermissions');\n this.loginCompanyName = this.storage.retrieve('loginCompanyName');\n this.UserID = this.storage.retrieve('UserID');\n this.employeeDetails = this.storage.retrieve('employeeDetails');\n this.getTeam();\n }\n\n ngOnInit() {\n if (this.employeeDetails) {\n this.EmployeeID = this.employeeDetails.EmployeeID;\n this.TeamID = this.employeeDetails.TeamID;\n }\n else {\n this.EmployeeID = 0;\n }\n this.menuData = this.menuData.filter(x => x.MenuName.toString().toLowerCase() === 'process');\n if (this.menuData.length > 0) {\n this.menuName = this.menuData[0][\"MenuName\"];\n this.menuID = this.menuData[0][\"MenuID\"];\n }\n this.getProcess();\n\n }\n openProcess(): void {\n this.TeamID = 0;\n this.squence = '';\n this.sequenceList = [];\n this.dialogCall('new');\n }\n getTeam(): void {\n this.dorseyService.GetTeam(this.CompanyID).subscribe(subData => {\n subData = JSON.parse(subData['_body']);\n this.teamData = subData;\n if (this.employeeDetails) {\n if (this.employeeDetails.IsEmployeeLoginLevel == this.employeeLevelLogin.Department) {\n this.teamData = this.teamData.filter(ent => ent.DepartmentID == this.employeeDetails.DepartmentID)\n }\n else if (this.employeeDetails.IsEmployeeLoginLevel == this.employeeLevelLogin.Team) {\n this.teamData = this.teamData.filter(ent => ent.DepartmentID == this.employeeDetails.DepartmentID && ent.TeamID == this.employeeDetails.TeamID)\n this.TeamName = this.teamData[0].TeamName;\n }\n else {\n this.teamData = subData;\n }\n }\n\n });\n }\n searchText(): void {\n this.processData = this.saveFilter;\n let tempProcess = this.processData.filter(\n (item) => {\n return (\n (item.ProcessName !== null && item.ProcessName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n (item.CompanyName !== null && item.CompanyName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n (item.ProcessDescription !== null && item.ProcessDescription.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n (item.TeamName !== null && item.TeamName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1)\n );\n }\n\n );\n\n this.processData = tempProcess;\n if (this.processData.length == 0) {\n this.isDisable = true;\n } else {\n this.isDisable = false;\n }\n\n\n if (this.searchtext === '') {\n this.processData = this.saveFilter;\n this.rowCount = this.processData.length;\n this.isDisable = false;\n this.getProcessPagination(this.rowCount);\n }\n else {\n this.rowCount = tempProcess.length;\n this.getProcessPagination(this.rowCount);\n if (this.rowsOnPageSet.length === 1) {\n if (this.rowsOnPageSet[0] <= 10)\n this.rowsOnPage = this.rowsOnPageSet[0];\n }\n }\n\n\n }\n getProcess(): void {\n\n this.processData = [];\n this.dorseyService.GetProcess(this.CompanyID).subscribe(subData => {\n subData = JSON.parse(subData['_body']);\n this.processData = subData;\n this.storage.store(\"procData\", this.processData);\n this.rowCount = this.processData.length;\n if (this.processData.length === 0) {\n this.processPaging = false;\n this.isDisable = true;\n this.disableSearch = true;\n }\n else {\n\n this.processPaging = true;\n this.isDisable = false;\n for (let i = 0; i < this.processData.length; i++) {\n this.sequenceList.push(Number(this.processData[i].squence));\n }\n this.disableSearch = false;\n this.rowsOnPageSet = [];\n this.dynamicRows = 10;\n if (this.employeeDetails) {\n if (this.employeeDetails.IsEmployeeLoginLevel == this.employeeLevelLogin.Department) {\n this.processData = this.processData.filter(entity1 => this.teamData.find(entity2 => entity1.TeamID == entity2.TeamID));\n }\n else if (this.employeeDetails.IsEmployeeLoginLevel == this.employeeLevelLogin.Team) {\n this.processData = this.processData.filter(ent => ent.TeamID == this.employeeDetails.TeamID)\n }\n else {\n let data = this.processData.filter(x => x.CompanyID === this.CompanyID);\n this.processData = data;\n }\n\n if (!this.employeeDetails.PermissionJson) {\n this.rowCount = this.processData.length;\n this.saveFilter = JSON.parse(JSON.stringify(this.processData));\n this.getProcessPagination(this.rowCount)\n return;\n }\n this.Permissons = JSON.parse(this.employeeDetails.PermissionJson);\n this.Permissons = this.Permissons[\"Process\"];\n if (this.Permissons != undefined) {\n let processKeys = Object.keys(this.Permissons);\n\n for (let i = 0; i < processKeys.length; i++) {\n let actData = this.processData.filter(x => x.ProcessID.toString() === processKeys[i].toString());\n\n if (actData.length > 0) {\n let permissonKeys = Object.keys(this.Permissons[processKeys[i]]);\n\n if (permissonKeys.indexOf('R') > -1)\n actData[0]['R'] = this.Permissons[processKeys[i]]['R'];\n else\n actData[0]['R'] = false;\n\n\n if (permissonKeys.indexOf('C') > -1)\n actData[0]['C'] = this.Permissons[processKeys[i]]['C'];\n else\n actData[0]['C'] = false;\n\n\n if (permissonKeys.indexOf('U') > -1)\n actData[0]['U'] = this.Permissons[processKeys[i]]['U'];\n else\n actData[0]['U'] = false;\n\n\n if (permissonKeys.indexOf('D') > -1)\n actData[0]['D'] = this.Permissons[processKeys[i]]['D'];\n else\n actData[0]['D'] = false;\n\n this.granualProcess.push(actData[0]);\n }\n }\n this.processData = this.granualProcess;\n }\n }\n else {\n let data = this.processData.filter(x => x.CompanyID === this.CompanyID);\n this.processData = data;\n }\n if (this.processData.length > 0) {\n this.rowCount = this.processData.length;\n this.processPaging = true;\n this.isDisable = false;\n this.disableSearch = false;\n this.saveFilter = JSON.parse(JSON.stringify(this.processData));\n\n this.getProcessPagination(this.rowCount)\n }\n else if (this.processData.length === 0) {\n this.processPaging = false;\n this.isDisable = true;\n this.disableSearch = true;\n }\n\n }\n });\n }\n\n getProcessPagination(RowCount): void {\n this.dynamicRows = 10;\n this.rowsOnPageSet = [];\n this.rowsOnPage = 10;\n this.rowCount = RowCount;\n while (this.dynamicRows < this.rowCount) {\n this.rowsOnPageSet.push(this.dynamicRows);\n this.dynamicRows = this.dynamicRows + 10;\n }\n if (!this.rowsOnPageSet.includes(this.rowCount)) {\n this.rowsOnPageSet.push(this.rowCount);\n if (this.rowsOnPageSet.length === 1) {\n if (this.rowsOnPageSet[0] <= 10)\n this.rowsOnPage = this.rowsOnPageSet[0];\n }\n }\n }\n\n\n\n sort(property) {\n this.arrow = !this.arrow;\n this.isDesc = !this.isDesc; //change the direction \n this.column = property;\n this.direction = this.isDesc ? 1 : -1;\n }\n\n\n exportAsXLSX(): void {\n let allData = JSON.parse(JSON.stringify(this.processData));\n\n for (let i = 0; i < allData.length; i++) {\n // allData[i].Company=allData[i].CompanyName;\n allData[i].Team = allData[i].TeamName;\n allData[i].Process = allData[i].ProcessName;\n allData[i].Description = allData[i].ProcessDescription;\n allData[i].Sequence = allData[i].squence;\n delete (allData[i].VersionID);\n delete (allData[i].TeamName);\n delete (allData[i].CompanyName);\n delete (allData[i].ProcessName);\n delete (allData[i].ProcessDescription);\n delete (allData[i].DepartmentName);\n delete (allData[i].EmployeeName);\n delete (allData[i].ProcessDescription);\n delete (allData[i].ProcessID);\n delete (allData[i].IsActive);\n delete (allData[i].CreatedDate);\n delete (allData[i].CreatedBy);\n delete (allData[i].squence);\n delete (allData[i].UpdatedDate);\n delete (allData[i].UpdatedBy);\n delete (allData[i].CompanyID);\n delete (allData[i].DepartmentID);\n delete (allData[i].EmployeeID);\n delete (allData[i].TeamID);\n delete (allData[i].R);\n delete (allData[i].C);\n delete (allData[i].U);\n delete (allData[i].D);\n\n }\n\n this.dorseyService.generateExcel(allData, this.loginCompanyName + '_process' + \"_\" + (new Date().getMonth() + 1) + '-' + new Date().getDate() + '-' + new Date().getFullYear(), 'Process', \"Company: \" + this.loginCompanyName, '', \"Process Report\", copyRight, 'FFFFFF00', 'FF0000FF');\n }\n dialogCall(msg: string): void {\n\n const dialogRef = this.dialog.open(ProcessDialogComponent, {\n panelClass: 'custom-dialog-container',\n data: msg + 'æææ' + false,\n });\n\n dialogRef.componentInstance.EmployeeID = this.EmployeeID;\n dialogRef.componentInstance.CurrentUser = this.CurrentUser;\n dialogRef.componentInstance.teamData = this.teamData;\n dialogRef.componentInstance.CompanyID = this.CompanyID;\n dialogRef.componentInstance.processData = this.processData;\n\n if (msg === 'new') {\n this.searchtext = '';\n this.getProcess();\n dialogRef.componentInstance.TeamID = this.TeamID;\n }\n\n if (msg === 'edit') {\n this.status = true;\n this.headerText = 'Edit Process';\n\n dialogRef.componentInstance.CompanyID = this.CompanyID;\n dialogRef.componentInstance.ProcessName = this.ProcessName;\n dialogRef.componentInstance.processID = this.ProcessID;\n dialogRef.componentInstance.TeamID = this.TeamID;\n dialogRef.componentInstance.EmployeeID = this.EmployeeID;\n dialogRef.componentInstance.TeamName = this.TeamName;\n dialogRef.componentInstance.DepartmentID = this.DepartmentID;\n dialogRef.componentInstance.ProcessDescription = this.ProcessDescription;\n dialogRef.componentInstance.squence = this.squence;\n dialogRef.componentInstance.sequenceList = this.sequenceList;\n dialogRef.componentInstance.procData = this.procData;\n dialogRef.componentInstance.oldTeamId = this.TeamID;\n\n }\n\n dialogRef.afterClosed().subscribe(result => {\n if (this.searchtext !== '' && this.searchtext !== undefined) {\n this.searchText();\n }\n else {\n this.getProcess();\n }\n\n if (result.toString() === 'true') {\n\n let statusMsg = '';\n if (msg === 'new') {\n statusMsg = 'Saved successfully';\n }\n else {\n statusMsg = 'Updated successfully';\n }\n\n this.getProcess();\n const dialogRefsub = this.dialog.open(ProcessDialogComponent, {\n panelClass: 'custom-dialog-container',\n data: statusMsg + 'æææ' + false,\n // width: '30%'\n });\n setTimeout(() => {\n this.getProcess();\n }, 500);\n dialogRefsub.afterClosed().subscribe(result1 => {\n this.dynamicRows = 10;\n if (this.searchtext !== '' && this.searchtext !== undefined) {\n this.searchText();\n }\n else {\n this.getProcess();\n }\n });\n }\n\n });\n }\n\n editProcess(process): void {\n this.CompanyID = process.CompanyID;\n this.ProcessID = process.ProcessID;\n this.ProcessName = process.ProcessName;\n this.DepartmentID = process.DepartmentID;\n this.EmployeeID = process.EmployeeID;\n this.ProcessDescription = process.ProcessDescription;\n this.squence = process.squence;\n this.TeamID = process.TeamID;\n\n this.procData = this.storage.retrieve(\"procData\");\n for (let i = 0; i < this.procData.length; i++) {\n if (this.TeamID === this.procData[i].TeamID) {\n this.sequenceList.push(Number(this.procData[i].squence));\n }\n }\n this.dialogCall('edit');\n }\n\n equals(objOne, objTwo) {\n if (typeof objOne !== 'undefined' && typeof objTwo !== 'undefined') {\n return objOne.id === objTwo.id;\n }\n }\n\n\n\n\n ifMaxRow() {\n\n if (this.rowsOnPage == this.processData.length) {\n this.rowsOnPage = this.rowsOnPage - 1;\n }\n }\n\n deleteProcess(process): void {\n this.ProcessID = process.ProcessID;\n this.CompanyID = process.CompanyID;\n this.TeamID = process.TeamID;\n this.squence = process.squence;\n\n const dialogRef = this.dialog.open(ProcessDialogComponent, {\n panelClass: 'custom-dialog-container',\n data: 'Are you sure you want to delete process: ' + process.ProcessName + '?æææ' + true,\n // width: '40%'\n });\n // this.condition = true;\n\n dialogRef.afterClosed().subscribe(result => {\n if (result) {\n this.dorseyService.DeleteProcess(this.ProcessID, this.CompanyID, this.TeamID, this.squence).subscribe(data => {\n\n if (data.ok) {\n this.ifMaxRow();\n this.condition = true;\n this.dialogCall('Deleted successfully');\n\n }\n this.dynamicRows = 10;\n this.rowsOnPageSet = [];\n this.getProcess();\n });\n }\n });\n\n\n\n }\n\n\n}\n\n@Component({\n selector: 'app-dialog',\n templateUrl: 'dialog.html',\n // styleUrls: ['dialog.css'],\n providers: [DorseyService]\n})\nexport class ProcessDialogComponent implements OnInit {\n CurrentUser: string;\n condition = false;\n dataSelf: string;\n headerText: string;\n\n TeamID: number;\n ProcessName: string;\n CompanyID: string;\n processID: string;\n ProcessDescription: string;\n DepartmentID: string;\n EmployeeID: number;\n TeamName: any;\n\n processData: any;\n teamData: any[];\n squence = null;\n sequenceList: number[] = [];\n conditionActivity = '';\n lastSequence: number;\n disableTeam = false;\n procData: any;\n oldTeamId: any;\n btnDisabled = false;\n constructor(\n public dialogRef: MatDialogRef<ProcessDialogComponent>,\n @Inject(MAT_DIALOG_DATA) public data: any, public dorseyService: DorseyService) {\n this.data = this.data.split('æææ');\n\n if (this.data[1] === 'true') {\n this.condition = true;\n } else if (this.data[1] === 'false') {\n this.condition = false;\n }\n else {\n if (this.data[1] === '') {\n this.conditionActivity = 'process';\n } else {\n this.conditionActivity = 'process';\n }\n }\n this.data = this.data[0];\n }\n ngOnInit() {\n\n if (this.TeamID !== 0 && this.data === 'new') {\n this.sequenceList = [];\n if (this.processData.length > 0) {\n for (let i = 0; i < this.processData.length; i++) {\n if (this.processData[i].TeamID === this.TeamID) {\n this.sequenceList.push(Number(this.processData[i].squence));\n }\n }\n }\n let seq = this.sequenceList.length + 1;\n if (this.sequenceList.length !== 0) {\n this.sequenceList.push(seq);\n }\n else {\n this.sequenceList.push(1);\n }\n\n if (this.sequenceList.length !== 0) {\n this.squence = this.sequenceList[this.sequenceList.length - 1];\n }\n this.sequenceList.sort();\n this.sequenceList.sort(this.sortNumber);\n }\n if (this.TeamID !== 0 && this.conditionActivity === 'process') {\n this.sequenceList = [];\n if (this.processData.length > 0) {\n for (let i = 0; i < this.processData.length; i++) {\n if (this.processData[i].TeamID === this.TeamID) {\n\n this.sequenceList.push(Number(this.processData[i].squence));\n }\n }\n }\n\n let seq = this.sequenceList.length + 1;\n\n if (this.sequenceList.length !== 0) {\n\n this.sequenceList.push(seq);\n }\n else this.sequenceList.push(1);\n this.squence = this.sequenceList[this.sequenceList.length - 1]\n ;\n\n this.sequenceList.sort();\n this.sequenceList.sort(this.sortNumber);\n }\n\n if (!this.TeamID) {\n this.squence = '';\n this.sequenceList = [];\n }\n\n if (this.data === 'edit' || this.data === 'rearrange') {\n this.sequenceList = [];\n if (this.data === 'edit') {\n this.processData = this.procData;\n }\n for (let i = 0; i < this.processData.length; i++) {\n if (this.processData[i].TeamID === this.TeamID) {\n this.sequenceList.push(this.processData[i].squence);\n }\n }\n }\n\n this.sequenceList.sort();\n this.sequenceList.sort(this.sortNumber);\n if (this.data === 'edit') {\n if (this.TeamID !== 0) {\n this.disableTeam = true;\n }\n }\n\n }\n\n sortNumber(a, b) {\n return a - b;\n }\n\n getProcess() {\n this.dorseyService.GetProcess(this.CompanyID).subscribe(subData => {\n subData = JSON.parse(subData['_body']);\n this.processData = subData;\n\n });\n }\n addProcess(): void {\n this.btnDisabled = true;\n\n setTimeout(() => {\n this.btnDisabled = false;\n }, 1000);\n if (!this.ProcessName.trim()) {\n this.dataSelf = '';\n this.dataSelf = 'Please enter mandatory(*) fields';\n return;\n }\n this.saving(this.data);\n\n }\n teamChange(event) {\n this.TeamID = Number(event.value);\n this.sequenceList = [];\n this.squence = '';\n\n this.processData.sort(function (a, b) {\n return a.squence - b.squence;\n });\n if (this.processData.length > 0) {\n for (let i = 0; i < this.processData.length; i++) {\n if (this.processData[i].TeamID.toString() === this.TeamID.toString()) {\n this.sequenceList.push(Number(this.processData[i].squence));\n }\n }\n }\n\n if (this.TeamID != this.oldTeamId) {\n let seq = this.sequenceList.length + 1;\n\n if (this.sequenceList.length !== 0) {\n this.sequenceList.push(seq);\n }\n else this.sequenceList.push(1);\n }\n\n this.squence = this.sequenceList[this.sequenceList.length - 1];\n this.sequenceList.sort();\n this.sequenceList.sort(this.sortNumber);\n this.lastSequence = this.sequenceList.length;\n\n }\n onYesClick() {\n this.dialogRef.close(true);\n }\n onNoClick(): void {\n this.dialogRef.close();\n }\n saving(msg: string): void {\n\n const json = {\n CompanyID: this.CompanyID,\n processName: this.ProcessName,\n createdby: this.CurrentUser,\n processID: this.processID,\n updatedby: this.CurrentUser,\n ProcessDescription: this.ProcessDescription,\n DepartmentID: \"0\",\n EmployeeID: this.EmployeeID,\n type: msg,\n TeamID: this.TeamID,\n squence: this.squence,\n lastSequence: this.lastSequence\n };\n\n if (msg === 'new') {\n this.dorseyService.SaveProcess(json, 'No').subscribe(data => {\n if (data['_body'].toString() === 'true') {\n this.dataSelf = 'Saved successfully';\n this.DepartmentID = '';\n this.processID = '';\n this.ProcessName = '';\n this.ProcessDescription = '';\n\n if (!this.TeamID) {\n this.squence = '';\n this.sequenceList = [];\n }\n else {\n this.squence = this.sequenceList[this.sequenceList.length - 1] + 1;\n this.sequenceList.push(this.squence);\n }\n this.getProcess();\n } else {\n this.dataSelf = 'Save failed';\n }\n\n });\n } else {\n this.dorseyService.SaveProcess(json, 'No').subscribe(data => {\n if (data['_body'].toString() === 'true') {\n this.dialogRef.close(true);\n } else {\n this.dataSelf = 'Updated successfully';\n }\n });\n }\n }\n clear(): void {\n this.dialogRef.close(false);\n }\n}\n","import { Component, OnInit, Inject, ViewChild, ElementRef } from '@angular/core';\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { MatDatepickerInputEvent } from '@angular/material';\nimport { DorseyService } from '../dorsey.service';\nimport { PointerDialogComponent } from '../pointer/pointer.component';\nimport { CdkDragDrop, moveItemInArray, transferArrayItem } from '@angular/cdk/drag-drop';\nimport { LocalStorageService } from 'ngx-webstorage';\nimport { DatePipe } from '@angular/common';\nimport { EmployeeLoginLevel } from '../common/models/login-level.model';\nimport { copyRight } from '../copyRight.model';\n\n@Component({\n selector: 'app-project',\n templateUrl: './project.component.html',\n //styleUrls: ['./project.component.scss'],\n providers: [DorseyService, DatePipe]\n})\nexport class ProjectComponent implements OnInit {\n copyRight = copyRight;\n employeeDetails: any;\n ProjectID: string;\n ProjectName: string;\n ProjectDescription: string;\n projectData: any;\n headerText: string;\n condition = false;\n showDiv = false;\n\n frustData: any;\n rowSelected: number;\n errorMsg: string;\n sortedData: [];\n searchtext: string;\n companyData: any;\n StatusID: string;\n statusData: any;\n p: number = 1;\n rowsOnPage = 10;\n rowsOnPageSet = [];\n rowCount: any;\n dynamicRows = 10;\n isDesc: boolean = false;\n column = \"\";\n direction: number;\n arrow = true;\n tempFrustData = [];\n processData: any;\n activityData: any;\n\n pointerTypeData: any;\n severityData: any;\n teamData: any;\n employeeData: any;\n frustrationtypeData: any;\n tempFrustrationType: any;\n pointerData: any;\n ProcessID: string;\n tempActivity = [];\n ActivityID: string;\n FrustrationTypeID: string;\n pointerFrustration: any;\n tableFormat = false;\n kenbanFormat = false;\n displayAs: string;\n kenvanView = [];\n kenvan = {};\n weeks = [];\n connectedTo = [];\n showpgtn = true;\n statusidlist = \"\";\n StatusDic = {};\n statusname = \"\";\n projectPaging = false;\n saveFilter = [];\n CompanyID: string;\n isDisable = false;\n disableSearch = false;\n disableKenban = false;\n CurrentUser: string;\n MenuPermissions: any;\n menuData: any;\n menuID: string;\n menuName: string;\n ProjectDueDate: Date;\n loginCompanyName: any;\n Date = new Date();\n userTeamID: any;\n TeamName: any;\n empID: any;\n userRoleAssignmentData: any;\n\n UserID: any;\n\n updatedDate = new Date();\n updatedBy: any;\n TeamID: string;\n ProjectOwner: string;\n ifTouchDevice = false;\n @ViewChild('button', { static: false }) button: ElementRef;\n longPress = 'first state';\n longPressing = 0;\n isLongPressed = false;\n ifLongPress = true;\n constructor(private dorseyService: DorseyService, public dialog: MatDialog, private storage: LocalStorageService, private datepipe: DatePipe) {\n this.CurrentUser = this.storage.retrieve('user');\n this.menuData = this.storage.retrieve('menuData');\n this.MenuPermissions = this.storage.retrieve('MenuPermissions');\n this.loginCompanyName = this.storage.retrieve('loginCompanyName');\n this.userTeamID = this.storage.retrieve('TeamID');\n this.CompanyID = this.storage.retrieve('companyID');\n this.empID = this.storage.retrieve('EmployeeID');\n // console.log(this.CurrentUser,this.loginCompanyName);\n\n this.UserID = this.storage.retrieve('UserID');\n this.employeeDetails = this.storage.retrieve('employeeDetails');\n this.GetTeam();\n this.GetStatus();\n\n }\n ngOnInit() {\n\n\n this.tableFormat = true;\n\n this.menuData = this.menuData.filter(x => x.MenuName.toString().toLowerCase() === 'projects');\n if (this.menuData.length > 0) {\n this.menuName = this.menuData[0][\"MenuName\"];\n this.menuID = this.menuData[0][\"MenuID\"];\n }\n\n\n this.GetActivity();\n // this.GetProcess();\n setTimeout(() => {\n\n\n this.GetProjects();\n }, 100);\n this.GetPointer();\n this.GetEmployee();\n\n this.GetPointerType();\n this.GetSeverity();\n\n\n this.GetFrustrationType();\n\n\n }\n\n onLongPress() {\n // this.longPressing = null;\n // if (this.isLongPressed) this.button.nativeElement.style.backgroundColor = 'green';\n // else this.button.nativeElement.style.backgroundColor = 'orange';\n // this.isLongPressed = !this.isLongPressed;\n // this.longPress = this.isLongPressed ? 'second state' : 'first state';\n }\n\n onLongPressing() {\n // console.log(\"method called\" + this.ifLongPress);\n\n this.longPressing += 1;\n // console.log(this.longPressing);\n if (this.longPressing > 20) {\n this.ifLongPress = false;\n // console.log(this.ifLongPress);\n } else {\n this.ifLongPress = true;\n // console.log(this.ifLongPress);\n }\n }\n onMouseUp() {\n // console.log(\"mouseup\");\n this.longPressing = 0;\n this.ifLongPress = true;\n }\n\n onDblClick() {\n // console.log(\"double click\");\n this.ifLongPress = false;\n }\n\n\n GetPointer() {\n this.dorseyService.GetPointer(this.CompanyID).subscribe(subData => {\n\n subData = JSON.parse(subData['_body']);\n this.pointerData = subData;\n this.pointerFrustration = this.pointerData.filter(x => x.PointerTypeID != null && x.PointerTypeID.toString() === \"1\")\n\n });\n }\n\n exportAsXLSX() {\n this.tableFormat = true;\n this.kenbanFormat = false;\n let allData = JSON.parse(JSON.stringify(this.projectData));\n //console(allData);\n for (let i = 0; i < allData.length; i++) {\n allData[i][\"Project Team\"] = allData[i].TeamName;\n allData[i].Project = allData[i].ProjectName;\n allData[i].Description = allData[i].ProjectDescription;\n allData[i].Status = allData[i].ProjectStatusName;\n allData[i][\"Project Owner\"] = allData[i].ProjectOwner;\n\n\n if (allData[i].ProjectDueDate !== null) {\n allData[i][\" Due Date \"] = this.datepipe.transform(allData[i].ProjectDueDate, 'MM/dd/yyyy');\n } else {\n allData[i][\" Due Date \"] = null;\n }\n\n\n delete (allData[i].DepartmentID);\n delete (allData[i].ProcessID);\n delete (allData[i].CompanyID1);\n delete (allData[i].IsActive2);\n delete (allData[i].CreatedDate2);\n delete (allData[i].CreatedBy2);\n delete (allData[i].UpdatedBy2);\n delete (allData[i].UpdatedDate2);\n delete (allData[i].TeamDescription);\n delete (allData[i].TeamName1);\n\n delete (allData[i].TeamID);\n delete (allData[i].TeamID1);\n delete (allData[i].ProjectName);\n delete (allData[i].ProjectStatusName);\n delete (allData[i].CompanyID);\n delete (allData[i].ProjectDescription);\n delete (allData[i].ProjectDueDate);\n delete (allData[i].ProjectOwner);\n delete (allData[i].TeamName);\n delete (allData[i].ProjectID);\n delete (allData[i].StatusID);\n delete (allData[i].RowID);\n delete (allData[i].ProjectStatusID);\n delete (allData[i].UpdatedBy);\n delete (allData[i].UpdatedDate);\n delete (allData[i].IsActive);\n delete (allData[i].EmployeeID);\n delete (allData[i].CreatedDate);\n\n delete (allData[i].CreatedBy);\n delete (allData[i].UpdatedDate);\n delete (allData[i].UpdatedBy);\n\n delete (allData[i].StatusID1);\n delete (allData[i].IsActive1);\n delete (allData[i].CreatedDate1);\n\n delete (allData[i].CreatedBy1);\n delete (allData[i].UpdatedDate1);\n delete (allData[i].UpdatedBy1);\n delete (allData[i].ProjectStatusName1);\n }\n\n this.dorseyService.generateExcel(allData, this.loginCompanyName + '_project' + \"_\" + (new Date().getMonth() + 1) + '-' + new Date().getDate() + '-' + new Date().getFullYear(), 'Project', \"Company: \" + this.loginCompanyName, '', \"Project Report\", copyRight, 'FFFFFF00', 'FF0000FF');\n\n // this.dorseyService.exportAsExcelFile(allData,this.loginCompanyName+'_project');\n }\n table() {\n this.tableFormat = true;\n this.kenbanFormat = false;\n this.displayAs = \"Table View\";\n }\n kenban() {\n this.kenbanFormat = true;\n this.tableFormat = false;\n this.displayAs = \"Status view\";\n this.GetProjects();\n }\n\n GetEmployee() {\n this.dorseyService.GetEmployee(this.CompanyID).subscribe(subData => {\n subData = JSON.parse(subData['_body']);\n this.employeeData = subData;\n });\n }\n\n GetPointerType() {\n this.dorseyService.GetPointerType().subscribe(subData => {\n subData = JSON.parse(subData['_body']);\n this.pointerTypeData = subData;\n });\n }\n\n GetSeverity() {\n this.dorseyService.GetSeverity().subscribe(subData => {\n subData = JSON.parse(subData['_body']);\n this.severityData = subData;\n });\n }\n\n GetTeam() {\n this.dorseyService.GetTeam(this.CompanyID).subscribe(subData => {\n subData = JSON.parse(subData['_body']);\n this.teamData = subData;\n if (this.employeeDetails) {\n if (this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Department) {\n this.teamData = this.teamData.filter(ent => ent.DepartmentID == this.employeeDetails.DepartmentID)\n }\n else if (this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Team) {\n this.teamData = this.teamData.filter(ent => ent.DepartmentID == this.employeeDetails.DepartmentID && ent.TeamID == this.employeeDetails.TeamID)\n this.TeamName = this.teamData[0].TeamName;\n }\n else {\n this.teamData = subData;\n }\n }\n });\n }\n\n GetProcess() {\n this.dorseyService.GetProcess(this.CompanyID).subscribe(subData => {\n\n subData = JSON.parse(subData['_body']);\n this.processData = subData;\n });\n }\n GetActivity() {\n\n this.dorseyService.GetActivity(this.CompanyID).subscribe(activity => {\n activity = JSON.parse(activity['_body']);\n this.activityData = activity;\n\n });\n }\n\n GetPointers() {\n this.dorseyService.GetPointer(this.CompanyID).subscribe(pointer => {\n this.pointerTypeData = JSON.parse(pointer['_body']);\n });\n }\n\n Searchtext() {\n this.projectData = this.saveFilter;\n let tempProjects = this.projectData.filter(\n (item) => {\n return (\n (item.ProjectName !== null && item.ProjectName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n (item.ProjectDescription !== null && item.ProjectDescription.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n (item.ProjectStatusName !== null && item.ProjectStatusName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n (item.TeamName !== null && item.TeamName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n (item.ProjectOwner !== null && item.ProjectOwner.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1)\n );\n }\n );\n this.projectData = tempProjects;\n if (this.projectData.length == 0) {\n this.isDisable = true;\n this.disableKenban = true;\n this.projectPaging = false;\n } else {\n this.isDisable = false;\n }\n if (this.searchtext === '') {\n this.weeks = [];\n this.kenvan = [];\n this.kenvanView = [];\n this.projectData = this.saveFilter;\n this.dynamicRows = 10;\n this.rowsOnPageSet = [];\n this.rowCount = this.projectData.length;\n while (this.dynamicRows < this.rowCount) {\n this.rowsOnPageSet.push(this.dynamicRows);\n this.dynamicRows = this.dynamicRows + 10;\n }\n if (!this.rowsOnPageSet.includes(this.rowCount))\n this.rowsOnPageSet.push(this.rowCount);\n if (this.rowsOnPageSet) {\n\n this.rowsOnPage = this.rowsOnPageSet[0];\n }\n this.isDisable = false;\n this.disableKenban = false;\n this.projectPaging = true;\n } else {\n // console.log(tempProjects.length);\n this.rowCount = tempProjects.length;\n this.dynamicRows = 10;\n this.rowsOnPageSet = [];\n while (this.dynamicRows < this.rowCount) {\n this.rowsOnPageSet.push(this.dynamicRows);\n this.dynamicRows = this.dynamicRows + 10;\n }\n if (!this.rowsOnPageSet.includes(this.rowCount)) {\n this.rowsOnPageSet.push(this.rowCount);\n if (this.rowsOnPageSet)\n this.rowsOnPage = this.rowsOnPageSet[0];\n }\n\n if (this.rowsOnPageSet.length === 1) {\n if (this.rowsOnPageSet[0] <= 10)\n this.rowsOnPage = this.rowsOnPageSet[0];\n }\n }\n }\n OpenProject() {\n this.dialogCall('new');\n }\n\n GetProjects() {\n this.weeks = [];\n this.kenvan = [];\n this.kenvanView = [];\n\n this.dynamicRows = 10;\n this.rowsOnPageSet = [];\n\n\n //console(this.weeks);\n //console(this.kenvan);\n //console(this.kenvanView);\n\n this.dorseyService.GetProjects(this.CompanyID).subscribe(subData => {\n subData = JSON.parse(subData['_body']);\n this.projectData = subData;\n let tempProjectData = this.projectData;\n // if(this.userTeamID===null || this.userTeamID===undefined)\n // {\n // this.userTeamID=\"0\";\n // }\n\n if (this.projectData.length === 0) {\n this.projectPaging = false;\n this.isDisable = true;\n this.disableSearch = true;\n this.disableKenban = true;\n }\n\n else {\n this.saveFilter = JSON.parse(JSON.stringify(this.projectData));\n this.projectPaging = true;\n this.isDisable = false;\n this.disableSearch = false;\n this.disableKenban = false;\n\n // if (this.userTeamID.toString() !== \"0\" && this.userTeamID !== null && this.CompanyID.toString() !== \"0\") {\n // let dtaa = this.projectData.filter(x => x.TeamID === this.userTeamID && x.CompanyID === this.CompanyID);\n // this.projectData = dtaa;\n // }\n // else {\n // let dtaa = this.projectData.filter(x => x.CompanyID === this.CompanyID);\n // this.projectData = dtaa;\n // }\n // this.saveFilter = JSON.parse(JSON.stringify(this.projectData));\n this.rowsOnPageSet = [];\n this.dynamicRows = 10;\n this.rowCount = this.projectData.length;\n if (this.projectData == \"\") {\n this.showpgtn = false;\n }\n\n while (this.dynamicRows < this.rowCount) {\n this.rowsOnPageSet.push(this.dynamicRows);\n this.dynamicRows = this.dynamicRows + 10;\n }\n if (!this.rowsOnPageSet.includes(this.rowCount))\n this.rowsOnPageSet.push(this.rowCount);\n if (this.rowsOnPageSet.length === 1) {\n if (this.rowsOnPageSet[0] <= 10)\n this.rowsOnPage = this.rowsOnPageSet[0];\n }\n\n }\n //console(this.projectData);\n if (!this.projectData)\n return;\n for (let k = 0; k < this.statusData.length; k++) {\n this.kenvanView = [];\n\n for (let j = 0; j < this.projectData.length; j++) {\n\n if (this.statusData[k].StatusID === this.projectData[j].StatusID) {\n\n this.kenvanView.push(this.projectData[j]);\n }\n }\n this.kenvan['id'] = this.statusData[k].ProjectStatusName;\n this.kenvan['weeklist'] = this.kenvanView;\n\n // console.log(this.kenvanView);\n this.weeks.push({\n 'id': this.statusData[k].ProjectStatusName,\n 'weeklist': this.kenvanView,\n 'statusID': this.statusData[k].ProjectStatusID,\n\n 'count': this.kenvanView.length\n });\n }\n //console(this.weeks);\n\n for (let week of this.weeks) {\n this.connectedTo.push(week.id);\n };\n\n\n\n });\n // console.log(this.weeks);\n }\n\n\n drop(event: CdkDragDrop<string[]>, statusID: string) {\n //console(statusID);\n if (event.previousContainer === event.container) {\n moveItemInArray(event.container.data, event.previousIndex, event.currentIndex);\n\n } else {\n transferArrayItem(event.previousContainer.data,\n event.container.data,\n event.previousIndex,\n event.currentIndex);\n this.SaveProjects(event.container.data, statusID);\n\n }\n // this.GetCase();\n }\n\n\n SaveProjects(dataSave: any, statusID: string) {\n this.ProjectID = dataSave[0].ProjectID;\n const json = {\n ProjectID: dataSave[0].ProjectID,\n ProjectName: dataSave[0].ProjectName,\n ProjectDescription: dataSave[0].ProjectDescription,\n CreatedBy: this.CurrentUser,\n UpdatedBy: this.CurrentUser,\n StatusID: statusID,\n CompanyID: dataSave[0].CompanyID,\n ProjectDueDate: dataSave[0].ProjectDueDate,\n TeamID: dataSave[0].TeamID,\n ProjectOwner: dataSave[0].ProjectOwner\n };\n\n this.dorseyService.SaveProjects(json).subscribe(data => {\n if (data['_body'].toString() === 'true') {\n this.dorseyService.GetFrustration(this.ProjectID, this.CompanyID).subscribe(subData => {\n subData = JSON.parse(subData['_body']);\n this.frustData = subData;\n const json = {\n ProjectID: this.ProjectID,\n CompanyID: this.CompanyID,\n pointerData: this.frustData,\n ProjectDescription: dataSave[0].ProjectDescription,\n ProjectName: dataSave[0].ProjectName,\n ProjectDueDate: dataSave[0].ProjectDueDate,\n UpdatedBy: this.CurrentUser\n }\n this.dorseyService.UpdatePointerProject(json, 'No', statusID).subscribe(data => {\n this.weeks = [];\n this.kenvan = [];\n this.kenvanView = [];\n this.GetProjects();\n });\n });\n }\n else {\n\n }\n });\n this.weeks = [];\n this.kenvan = [];\n this.kenvanView = [];\n this.GetPointer();\n this.GetProjects();\n }\n sort(property) {\n this.arrow = !this.arrow;\n this.isDesc = !this.isDesc; //change the direction \n this.column = property;\n this.direction = this.isDesc ? 1 : -1;\n }\n\n GetStatus() {\n this.weeks = [];\n this.kenvan = [];\n this.kenvanView = [];\n\n this.dorseyService.GetProjectStatus().subscribe(subData => {\n subData = JSON.parse(subData['_body']);\n this.statusData = subData;\n this.StatusID = this.statusData[0].ProjectStatusID;\n this.dorseyService.GetPointer(this.CompanyID).subscribe(subData => {\n\n subData = JSON.parse(subData['_body']);\n this.pointerData = subData;\n\n this.dorseyService.GetProjects(this.CompanyID).subscribe(subData => {\n subData = JSON.parse(subData['_body']);\n this.projectData = subData;\n for (let k = 0; k < this.statusData.length; k++) {\n let statuslist = this.statusData[k].StatusName;\n let ststuList = [];\n ststuList.push(this.statusData[k].StatusID);\n for (let i = 0; i < this.projectData.length; i++) {\n for (let j = 0; j < this.pointerData.length; j++) {\n if (this.pointerData[j].ProjectID) {\n if (this.projectData[i].ProjectID == this.pointerData[j].ProjectID) {\n this.statusname = this.pointerData[j].StatusName;\n for (let t = 0; t < ststuList.length; t++) {\n if (this.pointerData[j].StatusID == ststuList[t]) {\n const json = {\n ProjectID: this.projectData[i].ProjectID,\n ProjectName: this.projectData[i].ProjectName,\n ProjectDescription: this.projectData[i].ProjectDescription,\n CreatedBy: this.CurrentUser,\n UpdatedBy: this.CurrentUser,\n StatusID: this.statusData[k].ProjectStatusID,\n ProjectDueDate: this.projectData[i].ProjectDueDate,\n TeamID: this.projectData[i].TeamID,\n ProjectOwner: this.projectData[i].ProjectOwner,\n };\n this.dorseyService.SaveProjects(json).subscribe(data => {\n });\n break;\n }\n }\n }\n }\n }\n }\n }\n });\n });\n });\n }\n dialogCall(msg: string) {\n const dialogRef = this.dialog.open(ProjectDialogComponent, {\n panelClass: 'custom-dialog-container',\n data: msg + 'æææ' + false,\n });\n dialogRef.componentInstance.CurrentUser = this.CurrentUser;\n dialogRef.componentInstance.projectData = this.projectData;\n dialogRef.componentInstance.statusData = this.statusData;\n dialogRef.componentInstance.CompanyID = this.CompanyID;\n dialogRef.componentInstance.teamData = this.teamData;\n dialogRef.componentInstance.ProjectDueDate = null;\n\n if (msg === 'edit') {\n\n this.headerText = 'Edit Project';\n dialogRef.componentInstance.ProjectID = this.ProjectID;\n dialogRef.componentInstance.ProjectName = this.ProjectName;\n dialogRef.componentInstance.ProjectDescription = this.ProjectDescription;\n dialogRef.componentInstance.StatusID = this.StatusID;\n dialogRef.componentInstance.updatedBy = this.updatedBy;\n dialogRef.componentInstance.updatedDate = this.updatedDate;\n dialogRef.componentInstance.TeamID = this.TeamID;\n dialogRef.componentInstance.ProjectOwner = this.ProjectOwner;\n\n if (this.ProjectDueDate)\n dialogRef.componentInstance.ProjectDueDate = this.ProjectDueDate;\n else dialogRef.componentInstance.ProjectDueDate = null;\n\n }\n if (msg === 'new') {\n this.StatusID = '';\n this.searchtext = '';\n this.rowsOnPageSet = [];\n this.weeks = [];\n this.kenvan = [];\n this.kenvanView = [];\n if (this.statusData.length > 0) {\n this.StatusID = this.statusData[0].ProjectStatusID;\n dialogRef.componentInstance.StatusID = this.StatusID;\n }\n this.GetProjects();\n }\n\n dialogRef.afterClosed().subscribe(result => {\n if (this.searchtext !== '') {\n // this.Searchtext();\n }\n else {\n this.weeks = [];\n this.kenvan = [];\n this.kenvanView = [];\n this.GetProjects();\n }\n\n if (result.toString() === 'true') {\n let statusMsg = '';\n if (msg === 'new') {\n statusMsg = 'Saved successfully';\n }\n else {\n statusMsg = 'Updated successfully';\n }\n const dialogRefsub = this.dialog.open(ProjectDialogComponent, {\n panelClass: 'custom-dialog-container',\n data: statusMsg + 'æææ' + false,\n });\n setTimeout(() => {\n this.GetProjects();\n }, 500);\n dialogRefsub.afterClosed().subscribe(result1 => {\n this.dynamicRows = 10;\n this.weeks = [];\n this.kenvan = [];\n this.kenvanView = [];\n if (this.searchtext !== '') {\n this.Searchtext();\n }\n else {\n this.GetProjects();\n }\n });\n }\n\n });\n }\n EditProject(element) {\n\n this.ProjectID = element.ProjectID;\n this.ProjectName = element.ProjectName;\n this.ProjectDescription = element.ProjectDescription;\n this.StatusID = element.StatusID;\n this.ProjectDueDate = element.ProjectDueDate;\n this.updatedDate = element.UpdatedDate;\n this.updatedBy = element.UpdatedBy;\n this.TeamID = element.TeamID;\n this.ProjectOwner = element.ProjectOwner;\n this.dialogCall('edit');\n }\n updatePointer(msg: string) {\n this.dorseyService.GetFrustration(this.ProjectID, this.CompanyID).subscribe(subData => {\n subData = JSON.parse(subData['_body']);\n this.frustData = subData;\n const json = {\n ProjectID: this.ProjectID,\n CompanyID: this.CompanyID,\n pointerData: this.frustData,\n ProjectDueDate: this.ProjectDueDate,\n UpdatedBy: this.CurrentUser\n }\n this.dorseyService.UpdatePointerProject(json, 'No', this.StatusID).subscribe(data => {\n });\n });\n }\n\n GetFrustrationType() {\n this.dorseyService.GetFrustrationType(\"1\", this.CompanyID).subscribe(subData => {\n subData = JSON.parse(subData['_body']);\n this.frustrationtypeData = subData;\n });\n }\n AddIssue(element) {\n const dialogRef = this.dialog.open(PointerDialogComponent, {\n panelClass: 'custom-dialog-container',\n data: 'edit' + 'æææ' + 'issue',\n });\n this.GetTempActivity(element.ProcessID);\n dialogRef.componentInstance.processData = this.processData;\n dialogRef.componentInstance.activityData = this.activityData;\n dialogRef.componentInstance.pointerTypeData = this.pointerTypeData;\n dialogRef.componentInstance.severityData = this.severityData;\n dialogRef.componentInstance.teamData = this.teamData;\n dialogRef.componentInstance.employeeData = this.employeeData;\n dialogRef.componentInstance.frustrationtypeData = this.frustrationtypeData;\n dialogRef.componentInstance.tempActivity = this.tempActivity;\n dialogRef.componentInstance.tempFrustrationType = this.tempFrustrationType;\n dialogRef.componentInstance.EmployeeID = element.EmployeeID;\n dialogRef.componentInstance.ProcessID = element.ProcessID;\n dialogRef.componentInstance.ActivityID = element.ActivityID;\n dialogRef.componentInstance.PointerTypeID = element.PointerTypeID;\n dialogRef.componentInstance.PointerID = element.PointerID;\n dialogRef.componentInstance.DepartmentID = element.DepartmentID;\n dialogRef.componentInstance.FrustrationTypeIDs = element.FrustrationsTypeID;\n dialogRef.componentInstance.FrustrationTypeID = element.FrustrationsTypeID;\n dialogRef.componentInstance.TeamID = element.TeamID;\n dialogRef.componentInstance.StatusID = element.StatusID;\n dialogRef.componentInstance.SeverityID = element.SeverityID;\n dialogRef.componentInstance.Subject = element.Subject;\n dialogRef.componentInstance.Description = element.Description;\n dialogRef.componentInstance.tempFrustrationType = element.tempFrustrationType;\n dialogRef.componentInstance.ProjectID = element.ProjectID;\n dialogRef.componentInstance.CompanyID = element.CompanyID;\n dialogRef.componentInstance.updatedBy = element.UpdatedBy;\n dialogRef.componentInstance.updatedDate = element.UpdatedDate;\n dialogRef.componentInstance.currentUser = this.CurrentUser;\n dialogRef.afterClosed().subscribe(result => {\n this.GetPointer();\n this.dorseyService.GetFrustration(this.ProjectID, this.CompanyID).subscribe(subData => {\n subData = JSON.parse(subData['_body']);\n this.frustData = subData;\n });\n });\n }\n GetTempActivity(processID) {\n for (let i = 0; i < this.activityData.length; i++) {\n if (this.activityData[i].ProcessID.toString() === processID.toString()) {\n this.tempActivity.push(this.activityData[i]);\n }\n }\n }\n\n ForceClose(element) {\n const dialogRef = this.dialog.open(ProjectDialogComponent, {\n panelClass: 'custom-dialog-container',\n data: 'Are you sure you want to force close project: ' + element.ProjectName + '?æææ' + true,\n });\n dialogRef.afterClosed().subscribe(result => {\n if (result) {\n this.dorseyService.GetFrustration(element.ProjectID, this.CompanyID).subscribe(subData => {\n subData = JSON.parse(subData['_body']);\n this.frustData = subData;\n for (let i = 0; i < this.frustData.length; i++) {\n if (this.frustData[i].StatusID.toString() != '4' && this.frustData[i].StatusID.toString() != '5') {\n this.tempFrustData.push(this.frustData[i]);\n }\n }\n const json = {\n ProjectID: element.ProjectID,\n CompanyID: element.CompanyID,\n pointerData: this.tempFrustData,\n ProjectName: element.ProjectName,\n ProjectDescription: element.ProjectDescription,\n CreatedBy: this.CurrentUser,\n UpdatedBy: this.CurrentUser,\n StatusID: \"5\",\n ProjectDueDate: element.ProjectDueDate\n }\n\n this.dorseyService.UpdatePointerProject(json, 'No', \"5\").subscribe(data => {\n this.weeks = [];\n this.kenvan = [];\n this.kenvanView = [];\n this.GetProjects();\n if (data.ok) {\n this.condition = true;\n this.dialogCall('Save successfully');\n }\n this.weeks = [];\n this.kenvan = [];\n this.kenvanView = [];\n this.GetProjects();\n\n const json1 = {\n ProjectID: element.ProjectID,\n ProjectName: element.ProjectName,\n ProjectDescription: element.ProjectDescription,\n CreatedBy: this.CurrentUser,\n UpdatedBy: this.CurrentUser,\n StatusID: \"5\",\n CompanyID: this.CompanyID,\n ProjectDueDate: element.ProjectDueDate,\n TeamID: element.TeamID,\n ProjectOwner: element.ProjectOwner\n };\n\n this.dorseyService.SaveProjects(json1).subscribe(data => {\n if (data['_body'].toString() === 'true') {\n this.weeks = [];\n this.kenvan = [];\n this.kenvanView = [];\n this.GetProjects();\n } else {\n }\n });\n });\n });\n }\n });\n }\n\n ifMaxRow() {\n\n if (this.rowsOnPage == this.projectData.length) {\n this.rowsOnPage = this.rowsOnPage - 1;\n }\n }\n DeleteProject(element) {\n this.ProjectID = element.ProjectID;\n const dialogRef = this.dialog.open(ProjectDialogComponent, {\n panelClass: 'custom-dialog-container',\n data: 'Are you sure you want to delete project: ' + element.ProjectName + '?æææ' + true,\n });\n\n dialogRef.afterClosed().subscribe(result => {\n if (result) {\n this.dorseyService.DeleteProjects(this.ProjectID).subscribe(data => {\n if (data.ok) {\n this.ifMaxRow();\n this.condition = true;\n this.dialogCall('Deleted successfully');\n }\n this.weeks = [];\n this.kenvan = [];\n this.kenvanView = [];\n this.GetProjects();\n });\n }\n });\n }\n showFrust(element) {\n if (this.rowSelected === -1) {\n this.rowSelected = element.ProjectID;\n }\n else {\n if (this.rowSelected == element.ProjectID) {\n this.rowSelected = -1\n }\n else {\n this.rowSelected = element.ProjectID;\n }\n }\n this.ProjectID = element.ProjectID;\n this.dorseyService.GetFrustration(this.ProjectID, this.CompanyID).subscribe(subData => {\n subData = JSON.parse(subData['_body']);\n this.frustData = subData;\n if (this.employeeDetails) {\n if (this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Department) {\n this.frustData = this.frustData.filter(entity1 => this.teamData.some(entity2 => entity1.TeamID == entity2.TeamID));\n }\n else if (this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Team) {\n this.frustData = this.frustData.filter(ent => ent.TeamID == this.employeeDetails.TeamID)\n }\n else {\n let data = this.frustData.filter(x => x.CompanyID === this.CompanyID);\n this.frustData = data;\n }\n }\n });\n }\n}\n@Component({\n selector: 'app-dialog',\n templateUrl: 'dialog.html',\n // styleUrls: ['dialog.css'],\n providers: [DorseyService, DatePipe],\n})\nexport class ProjectDialogComponent implements OnInit {\n Date = new Date();\n startDate = new Date();\n validDate = new Date();\n minDate = new Date();\n ProjectID: string;\n ProjectName: string;\n ProjectDescription: string;\n projectData: any;\n condition = false;\n dataSelf: string;\n StatusID: string\n statusData: any;\n frustData: any;\n CompanyID: string;\n CurrentUser: string;\n ProjectDueDate = new Date();\n updatedDate = new Date();\n updatedBy: any;\n teamData: any;\n TeamID: any;\n ProjectOwner: any;\n btnDisabled = false;\n constructor(\n public dialogRef: MatDialogRef<ProjectDialogComponent>,\n @Inject(MAT_DIALOG_DATA) public data: any, public dorseyService: DorseyService, private datepipe: DatePipe) {\n this.data = this.data.split('æææ');\n if (this.data[1] === 'true') {\n this.condition = true;\n } else {\n this.condition = false;\n }\n this.data = this.data[0];\n }\n ngOnInit() {\n }\n Clear() {\n this.dialogRef.close(false);\n }\n dob(type: string, event: MatDatepickerInputEvent<Date>) {\n const date = event.value;\n this.ProjectDueDate = date;\n let latest_date = this.datepipe.transform(this.ProjectDueDate, 'MM/dd/yyyy' + \" \" + new Date().getHours() + \":\" + new Date().getMinutes() + \":\" + new Date().getSeconds());\n this.ProjectDueDate = new Date(latest_date);\n }\n\n AddProjects() {\n this.btnDisabled = true;\n\n setTimeout(() => {\n this.btnDisabled = false;\n }, 1000);\n let count = 0;\n const Editcount = 0;\n if (this.ProjectName === undefined || this.StatusID === undefined ||\n this.ProjectName.trim() === '' || this.StatusID.toString() === '' || this.TeamID === null || this.TeamID === undefined || this.TeamID.toString() === '') {\n this.dataSelf = 'Please enter mandatory(*) fields';\n if (this.data === 'new') {\n }\n count++;\n }\n if (count === 0 && Editcount === 0) {\n this.dataSelf = '';\n if (this.data === 'new') {\n this.Saving(this.data);\n } else {\n this.Saving(this.data);\n }\n } else {\n }\n }\n onYesClick() {\n this.dialogRef.close(true);\n }\n onNoClick(): void {\n this.dialogRef.close();\n }\n Saving(msg: string) {\n const json = {\n ProjectID: this.ProjectID,\n ProjectName: this.ProjectName,\n ProjectDescription: this.ProjectDescription,\n CreatedBy: this.CurrentUser,\n UpdatedBy: this.CurrentUser,\n StatusID: this.StatusID,\n CompanyID: this.CompanyID,\n ProjectDueDate: this.ProjectDueDate,\n TeamID: this.TeamID,\n ProjectOwner: this.ProjectOwner\n };\n\n let date = this.Date.getFullYear() + '/' + (this.Date.getMonth() + 1) + '/' + this.Date.getDate();\n let date2 = new Date(date)\n if (this.ProjectDueDate !== null) {\n if (this.ProjectDueDate < date2) {\n this.dataSelf = 'Invalid date';\n return;\n }\n }\n if (msg === 'new') {\n this.dorseyService.SaveProjects(json).subscribe(data => {\n if (data['_body'].toString() === 'true') {\n this.updatePointer(msg);\n this.dialogRef.close(true);\n } else {\n this.dataSelf = 'Save failed';\n }\n });\n } else {\n this.dorseyService.SaveProjects(json).subscribe(data => {\n if (data['_body'].toString() === 'true') {\n this.updatePointer(msg);\n this.dialogRef.close(true);\n } else {\n this.dataSelf = 'Updated successfully';\n }\n });\n }\n }\n updatePointer(msg: string) {\n let statusRow = this.statusData.filter(x => x.ProjectStatusID === this.StatusID);\n this.StatusID = statusRow[0].StatusID;\n\n this.dorseyService.GetFrustration(this.ProjectID, this.CompanyID).subscribe(subData => {\n subData = JSON.parse(subData['_body']);\n this.frustData = subData;\n const json = {\n ProjectID: this.ProjectID,\n CompanyID: this.CompanyID,\n pointerData: this.frustData,\n ProjectName: this.ProjectName,\n ProjectDescription: this.ProjectDescription,\n ProjectDueDate: this.ProjectDueDate,\n UpdatedBy: this.CurrentUser\n }\n this.dorseyService.UpdatePointerProject(json, 'No', this.StatusID).subscribe(data => {\n this.GetIssues(this.ProjectID);\n });\n });\n }\n GetIssues(id: string) {\n this.dorseyService.GetFrustration(id, this.CompanyID).subscribe(subData => {\n subData = JSON.parse(subData['_body']);\n this.frustData = subData;\n });\n }\n statusChange(event) {\n this.StatusID = event.value;\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { DorseyService } from '../dorsey.service';\nimport { LocalStorageService } from 'ngx-webstorage';\nimport { copyRight } from '../copyRight.model';\n\n@Component({\n selector: 'app-projects-noactions',\n templateUrl: './projects-noactions.component.html',\n // styleUrls: ['./projects-noactions.component.scss']\n})\nexport class ProjectsNoactionsComponent implements OnInit {\n\n NoActionProjectData: any;\n searchtext: string;\n isDesc: boolean = false;\n column = \"\";\n direction: number;\n arrow = true;\n p: number = 1;\n rowsOnPage = 10;\n rowsOnPageSet = [];\n rowCount: any;\n dynamicRows = 10;\n processPaging = false;\n saveFilter = [];\n CompanyID: string;\n isDisable = false;\n disableSearch = false;\n companyName: string;\n headerDate = new Date();\n copyDate: number;\n EmployeeID: string;\n TeamID: string;\n TeamName: string;\n\n constructor(public dorseyService: DorseyService, private storage: LocalStorageService) {\n this.EmployeeID = this.storage.retrieve('EmployeeID');\n if (this.EmployeeID.toString() === \"0\") {\n\n }\n else {\n this.TeamID = this.storage.retrieve('TeamID');\n }\n }\n\n ngOnInit() {\n this.CompanyID = this.storage.retrieve('companyID');\n this.companyName = this.storage.retrieve('LoginCompanyName');\n this.GetNoActionProjects();\n this.copyDate = (new Date()).getFullYear();\n }\n\n GetNoActionProjects() {\n this.dorseyService.GetNoActionProjects(this.CompanyID).subscribe(subData => {\n subData = JSON.parse(subData['_body']);\n this.NoActionProjectData = subData;\n this.saveFilter = JSON.parse(JSON.stringify(this.NoActionProjectData));\n this.rowCount = this.NoActionProjectData.length;\n if (this.NoActionProjectData.length === 0) {\n this.processPaging = false;\n this.isDisable = true;\n this.disableSearch = true;\n }\n else {\n this.processPaging = true;\n this.isDisable = false;\n this.disableSearch = false;\n\n while (this.dynamicRows < this.rowCount) {\n this.rowsOnPageSet.push(this.dynamicRows);\n this.dynamicRows = this.dynamicRows + 10;\n }\n if (!this.rowsOnPageSet.includes(this.rowCount)) this.rowsOnPageSet.push(this.rowCount);\n if (this.rowsOnPageSet.length > 0) {\n if (this.rowsOnPageSet[0] <= 10)\n this.rowsOnPage = this.rowsOnPageSet[0];\n }\n }\n });\n }\n\n\n Searchtext() {\n this.NoActionProjectData = this.saveFilter;\n let tempNoActionProject = this.NoActionProjectData.filter(\n (item) => {\n return (\n (item.ProjectName !== null && item.ProjectName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n (item.ProjectDescription !== null && item.ProjectDescription.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n (item.ProjectStatusName !== null && item.ProjectStatusName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n (item.TeamName !== null && item.TeamName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n (item.ProjectOwner !== null && item.ProjectOwner.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1)\n );\n }\n\n );\n this.NoActionProjectData = tempNoActionProject;\n if (this.NoActionProjectData.length == 0) {\n // this.GetActivity();\n this.isDisable = true;\n } else {\n this.isDisable = false;\n }\n if (this.searchtext === '') {\n this.NoActionProjectData = this.saveFilter;\n this.dynamicRows = 10;\n this.rowsOnPageSet = [];\n this.rowCount = this.NoActionProjectData.length;\n while (this.dynamicRows < this.rowCount) {\n this.rowsOnPageSet.push(this.dynamicRows);\n this.dynamicRows = this.dynamicRows + 10;\n }\n if (!this.rowsOnPageSet.includes(this.rowCount))\n this.rowsOnPageSet.push(this.rowCount);\n if (this.rowsOnPageSet) {\n\n this.rowsOnPage = this.rowsOnPageSet[0];\n }\n this.isDisable = false;\n } else {\n this.rowCount = tempNoActionProject.length;\n this.dynamicRows = 10;\n this.rowsOnPageSet = [];\n while (this.dynamicRows < this.rowCount) {\n this.rowsOnPageSet.push(this.dynamicRows);\n this.dynamicRows = this.dynamicRows + 10;\n }\n if (!this.rowsOnPageSet.includes(this.rowCount)) {\n this.rowsOnPageSet.push(this.rowCount);\n if (this.rowsOnPageSet)\n this.rowsOnPage = this.rowsOnPageSet[0];\n }\n\n if (this.rowsOnPageSet.length === 1) {\n if (this.rowsOnPageSet[0] <= 10)\n this.rowsOnPage = this.rowsOnPageSet[0];\n }\n }\n }\n\n\n sort(property) {\n this.arrow = !this.arrow;\n this.isDesc = !this.isDesc; //change the direction \n this.column = property;\n this.direction = this.isDesc ? 1 : -1;\n }\n\n exportAsXLSX() {\n let allData = JSON.parse(JSON.stringify(this.NoActionProjectData));\n\n\n for (let i = 0; i < this.NoActionProjectData.length; i++) {\n allData[i][\" No. \"] = i + 1;\n allData[i].Team = this.NoActionProjectData[i].TeamName;\n allData[i].Project = this.NoActionProjectData[i].ProjectName;\n\n allData[i].Description = this.NoActionProjectData[i].ProjectDescription;\n allData[i].Status = this.NoActionProjectData[i].ProjectStatusName;\n allData[i]['Project Owner'] = this.NoActionProjectData[i].ProjectOwner;\n\n \n delete (allData[i].DepartmentID);\n delete (allData[i].ProjectName);\n delete (allData[i].TeamName);\n delete (allData[i].ProjectOwner);\n delete (allData[i].ProjectDescription);\n\n delete (allData[i].ProjectStatusName);\n delete (allData[i].CompanyID);\n delete (allData[i].ProjectID);\n delete (allData[i].EmployeeID);\n delete (allData[i].StatusID);\n delete (allData[i].IsActive);\n delete (allData[i].CreatedDate);\n\n delete (allData[i].CreatedBy);\n delete (allData[i].UpdatedDate);\n delete (allData[i].UpdatedBy);\n delete (allData[i].ProjectDueDate);\n\n delete (allData[i].RowID);\n delete (allData[i].ProjectStatusID);\n delete (allData[i].StatusID1);\n delete (allData[i].IsActive1);\n delete (allData[i].CreatedDate1);\n delete (allData[i].CreatedBy1);\n\n delete (allData[i].UpdatedDate1);\n delete (allData[i].UpdatedBy1);\n delete (allData[i].ProjectStatusName1);\n\n delete (allData[i].TeamID);\n delete (allData[i].TeamID1);\n delete (allData[i].ProcessID);\n delete (allData[i].CompanyID1);\n delete (allData[i].IsActive2);\n delete (allData[i].CreatedDate2);\n delete (allData[i].CreatedBy2);\n delete (allData[i].UpdatedBy2);\n delete (allData[i].UpdatedDate2);\n delete (allData[i].TeamDescription);\n delete (allData[i].TeamName1);\n }\n let team: any;\n team = '';\n /*if(this.EmployeeID.toString()==='0'){\n team='';\n }else{\n if(this.TeamID.toString()==='0'|| this.TeamID.toString()===null || this.TeamID.toString()===undefined){\n team='';\n }else{\n team= 'Team: '+this.TeamName;\n }\n }*/\n this.dorseyService.generateExcel(allData, this.companyName + '_Projects in backlog' + \"_\" + (new Date().getMonth() + 1) + '-' + new Date().getDate() + '-' + new Date().getFullYear(), 'Projects in backlog', \"Company: \" + this.companyName, team, \"Projects in backlog Report\", copyRight, 'FFFFFF00', 'FF0000FF');\n }\n\n}\n","module.exports = \".text-center {\\n text-align: center;\\n}\\n\\n.m-b-10 {\\n margin-bottom: 1rem;\\n}\\n\\n.alert-info-sm {\\n padding: 10px;\\n margin-left: 1rem;\\n}\\n\\n.field {\\n margin-left: 2%;\\n}\\n\\n#tableActions {\\n justify-content: flex-start !important;\\n}\\n\\ntable {\\n width: 100%;\\n font-size: smaller;\\n border-collapse: collapse;\\n}\\n\\nth, td {\\n text-align: center;\\n font-size: smaller;\\n}\\n\\nth {\\n color: white;\\n background-color: #474747;\\n height: 35px;\\n font-size: 13px;\\n}\\n\\ntd {\\n height: 35px;\\n font-size: 13px;\\n}\\n\\ntable, th, td {\\n border: 1px solid #e1e1e1;\\n overflow: hidden;\\n word-wrap: break-word;\\n}\\n\\ntable.fixed {\\n table-layout: fixed;\\n}\\n\\ntable.fixed td {\\n overflow: hidden;\\n}\\n\\n.highlight td {\\n background: #C0C0C0;\\n}\\n\\n.warningMsg {\\n text-align: center;\\n color: red;\\n}\\n\\n.fa-arrow-down, .fa-arrow-up {\\n font-size: 10px;\\n}\\n\\n.margin-5 {\\n margin: 5px;\\n}\\n\\n.text-underline {\\n text-decoration: underline;\\n}\\n\\n.btnWrapper button {\\n margin: 2.5% 1% 0% 0.5% !important;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvcXVhcnRlci9GOlxcTmlraWwgV29ya1xcUHJvamVjdHNcXERvcnNleVxcSGllcmFyY2h5IFNvdXJjZSBDb2RlXFxXb3JraW5nXFxkb3JzZXlHcm91cC9zcmNcXGFwcFxccXVhcnRlclxccXVhcnRlci5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvcXVhcnRlci9xdWFydGVyLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0ksa0JBQUE7QUNDSjs7QURFQTtFQUNJLG1CQUFBO0FDQ0o7O0FERUE7RUFDSSxhQUFBO0VBQ0EsaUJBQUE7QUNDSjs7QURFQTtFQUNJLGVBQUE7QUNDSjs7QURFQTtFQUNJLHNDQUFBO0FDQ0o7O0FERUE7RUFDSSxXQUFBO0VBQ0Esa0JBQUE7RUFDQSx5QkFBQTtBQ0NKOztBRENBO0VBQ0ksa0JBQUE7RUFDQSxrQkFBQTtBQ0VKOztBRENBO0VBQ0ksWUFBQTtFQUNBLHlCQUFBO0VBQ0EsWUFBQTtFQUNBLGVBQUE7QUNFSjs7QURDQTtFQUNJLFlBQUE7RUFDQSxlQUFBO0FDRUo7O0FEQ0E7RUFDSSx5QkFBQTtFQUNBLGdCQUFBO0VBQ0EscUJBQUE7QUNFSjs7QURDQTtFQUFjLG1CQUFBO0FDR2Q7O0FEREE7RUFBaUIsZ0JBQUE7QUNLakI7O0FESEE7RUFBZSxtQkFBQTtBQ09mOztBRExBO0VBQ0ksa0JBQUE7RUFDQSxVQUFBO0FDUUo7O0FETEE7RUFDSSxlQUFBO0FDUUo7O0FETEE7RUFDSSxXQUFBO0FDUUo7O0FETEE7RUFDSSwwQkFBQTtBQ1FKOztBRExBO0VBQ0ksa0NBQUE7QUNRSiIsImZpbGUiOiJzcmMvYXBwL3F1YXJ0ZXIvcXVhcnRlci5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi50ZXh0LWNlbnRlcntcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxufVxyXG5cclxuLm0tYi0xMHtcclxuICAgIG1hcmdpbi1ib3R0b206IDFyZW07XHJcbn1cclxuXHJcbi5hbGVydC1pbmZvLXNte1xyXG4gICAgcGFkZGluZzogMTBweDtcclxuICAgIG1hcmdpbi1sZWZ0OiAxcmVtO1xyXG59XHJcblxyXG4uZmllbGR7XHJcbiAgICBtYXJnaW4tbGVmdDogMiU7XHJcbn1cclxuXHJcbiN0YWJsZUFjdGlvbnN7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQgIWltcG9ydGFudDtcclxufVxyXG5cclxudGFibGUge1xyXG4gICAgd2lkdGg6MTAwJTtcclxuICAgIGZvbnQtc2l6ZTogc21hbGxlcjtcclxuICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XHJcbn1cclxudGgsdGR7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICBmb250LXNpemU6IHNtYWxsZXI7XHJcbn1cclxuXHJcbnRoIHtcclxuICAgIGNvbG9yOndoaXRlOyAgICAgXHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiM0NzQ3NDc7XHJcbiAgICBoZWlnaHQ6IDM1cHg7XHJcbiAgICBmb250LXNpemU6IDEzcHg7XHJcbn1cclxuXHJcbnRkIHtcclxuICAgIGhlaWdodDogMzVweDtcclxuICAgIGZvbnQtc2l6ZTogMTNweDtcclxufVxyXG5cclxudGFibGUsIHRoLCB0ZCB7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZTFlMWUxO1xyXG4gICAgb3ZlcmZsb3c6aGlkZGVuO1xyXG4gICAgd29yZC13cmFwOmJyZWFrLXdvcmQ7XHJcbn1cclxuXHJcbnRhYmxlLmZpeGVkIHsgdGFibGUtbGF5b3V0OmZpeGVkOyB9XHJcblxyXG50YWJsZS5maXhlZCB0ZCB7IG92ZXJmbG93OiBoaWRkZW47IH1cclxuXHJcbi5oaWdobGlnaHQgdGQge2JhY2tncm91bmQ6ICNDMEMwQzA7fVxyXG5cclxuLndhcm5pbmdNc2cge1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgY29sb3I6IHJlZDtcclxufVxyXG5cclxuLmZhLWFycm93LWRvd24sIC5mYS1hcnJvdy11cHtcclxuICAgIGZvbnQtc2l6ZTogMTBweFxyXG59XHJcblxyXG4ubWFyZ2luLTV7XHJcbiAgICBtYXJnaW46IDVweDtcclxufVxyXG5cclxuLnRleHQtdW5kZXJsaW5le1xyXG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XHJcbn1cclxuXHJcbi5idG5XcmFwcGVyIGJ1dHRvbiB7XHJcbiAgICBtYXJnaW46IDIuNSUgMSUgMCUgMC41JSAhaW1wb3J0YW50O1xyXG59XHJcbiIsIi50ZXh0LWNlbnRlciB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLm0tYi0xMCB7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG59XG5cbi5hbGVydC1pbmZvLXNtIHtcbiAgcGFkZGluZzogMTBweDtcbiAgbWFyZ2luLWxlZnQ6IDFyZW07XG59XG5cbi5maWVsZCB7XG4gIG1hcmdpbi1sZWZ0OiAyJTtcbn1cblxuI3RhYmxlQWN0aW9ucyB7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydCAhaW1wb3J0YW50O1xufVxuXG50YWJsZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBmb250LXNpemU6IHNtYWxsZXI7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG59XG5cbnRoLCB0ZCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC1zaXplOiBzbWFsbGVyO1xufVxuXG50aCB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQ3NDc0NztcbiAgaGVpZ2h0OiAzNXB4O1xuICBmb250LXNpemU6IDEzcHg7XG59XG5cbnRkIHtcbiAgaGVpZ2h0OiAzNXB4O1xuICBmb250LXNpemU6IDEzcHg7XG59XG5cbnRhYmxlLCB0aCwgdGQge1xuICBib3JkZXI6IDFweCBzb2xpZCAjZTFlMWUxO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG59XG5cbnRhYmxlLmZpeGVkIHtcbiAgdGFibGUtbGF5b3V0OiBmaXhlZDtcbn1cblxudGFibGUuZml4ZWQgdGQge1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uaGlnaGxpZ2h0IHRkIHtcbiAgYmFja2dyb3VuZDogI0MwQzBDMDtcbn1cblxuLndhcm5pbmdNc2cge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGNvbG9yOiByZWQ7XG59XG5cbi5mYS1hcnJvdy1kb3duLCAuZmEtYXJyb3ctdXAge1xuICBmb250LXNpemU6IDEwcHg7XG59XG5cbi5tYXJnaW4tNSB7XG4gIG1hcmdpbjogNXB4O1xufVxuXG4udGV4dC11bmRlcmxpbmUge1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cblxuLmJ0bldyYXBwZXIgYnV0dG9uIHtcbiAgbWFyZ2luOiAyLjUlIDElIDAlIDAuNSUgIWltcG9ydGFudDtcbn0iXX0= */\"","import { Component, OnInit } from '@angular/core';\nimport { MatDialog } from '@angular/material';\nimport { LocalStorageService } from 'ngx-webstorage';\nimport { MessageDialogComponent } from '../common/dialog';\nimport { PerformanceScoreCardService } from '../performance-score-card/performance-score-card.service';\nimport { QuarterService } from '../services/quarter.service';\nimport { Month, WeekDay, QuarterStartDay } from './quarter.model';\n\n@Component({\n selector: 'app-quarter',\n templateUrl: './quarter.component.html',\n styleUrls: ['./quarter.component.scss']\n})\nexport class QuarterComponent implements OnInit {\n errorMsg: string = '';\n months: Array<Month>;\n selectedMonthId: number;\n selectedWeekDayId: number;\n quarterList: any;\n currentUser: string;\n companyId: number;\n quarterWeekDays: Array<WeekDay>;\n selectedWeekDate: string;\n isScoreCardsExist: boolean = false\n\n quarterWeekStartDate: string[] = [QuarterStartDay.StartDate, QuarterStartDay.EndDate];\n MenuPermissions: any;\n menuData: any;\n menuID: string;\n menuName: string;\n employeeDetails: any;\n constructor(private storage: LocalStorageService,\n private quarterService: QuarterService,\n public dialog: MatDialog) {\n this.currentUser = this.storage.retrieve('user');\n this.menuData = this.storage.retrieve('menuData');\n this.MenuPermissions = this.storage.retrieve('MenuPermissions');\n this.employeeDetails = this.storage.retrieve('employeeDetails');\n }\n\n ngOnInit(): void {\n this.menuData = this.menuData.filter(x => x.MenuName.toString().toLowerCase() === 'score card');\n if (this.menuData.length > 0) {\n this.menuName = this.menuData[0][\"MenuName\"];\n this.menuID = this.menuData[0][\"MenuID\"];\n }\n\n this.companyId = this.storage.retrieve('companyID');\n this.months = this.quarterService.getMonths();\n this.quarterWeekDays = this.quarterService.getQuarterWeekDays();\n\n this.selectedWeekDayId = this.quarterWeekDays.find(val => val.WeekDayId == 1).WeekDayId;\n this.selectedWeekDate = this.quarterWeekStartDate.find(val => val == 'Start Date');\n this.quarterService.getQuarters(this.companyId).subscribe(resp => {\n if (resp.Data.length > 0) {\n this.selectedMonthId = this.months.find(val => val.MonthName == resp.Data[0].MonthName).MonthId;\n this.selectedWeekDayId = this.quarterWeekDays.find(val => val.WeekDayId == resp.Data[0].QuarterWeekDay).WeekDayId;\n this.selectedWeekDate = this.quarterWeekStartDate.find(val => val == resp.Data[0].QuarterWeekDate);\n this.quarterList = this.quarterService.generateQuarters(this.selectedMonthId, this.companyId, this.currentUser, this.selectedWeekDayId, this.selectedWeekDate);\n }\n this.isScoreCardsExist = resp.AdditionalData.ScoreCardExistForCompany;\n });\n }\n\n saveQuarters(): void {\n if (!this.selectedMonthId) {\n this.errorMsg = 'Please enter mandatory(*) fields';\n return;\n }\n this.errorMsg = '';\n this.quarterList = this.quarterService.generateQuarters(this.selectedMonthId, this.companyId, this.currentUser, this.selectedWeekDayId, this.selectedWeekDate);\n this.quarterService.saveQuarters(this.quarterList).subscribe(resp => {\n if (resp.Data) {\n this.dialog.open(MessageDialogComponent);\n }\n });\n }\n\n monthChange(selectedMonthId): void {\n this.selectedMonthId = selectedMonthId;\n this.quarterList = this.quarterService.generateQuarters(selectedMonthId, this.companyId, this.currentUser, this.selectedWeekDayId, this.selectedWeekDate);\n }\n\n weekDayChange(selectedWeekDayID): void {\n this.selectedWeekDayId = selectedWeekDayID;\n }\n\n weekDateChange(selecteweekDate): void {\n this.selectedWeekDate = selecteweekDate;\n }\n}\n","export interface Month {\r\n MonthId: number,\r\n MonthName: string\r\n}\r\n\r\nexport interface Quater {\r\n QuarterId: number,\r\n month: Month\r\n}\r\n\r\nexport interface WeekDay {\r\n WeekDayId: number;\r\n WeekDay: string,\r\n\r\n}\r\n\r\nexport enum QuarterStartDay {\r\n SelectStartDate = \"Select Quarter Start Date\",\r\n StartDate = \"Start Date\",\r\n EndDate = \"End Date\"\r\n}\r\n","module.exports = \"table {\\n width: 100%;\\n font-size: smaller;\\n}\\n\\nth, td {\\n text-align: center;\\n font-size: smaller;\\n}\\n\\nth {\\n color: white;\\n background-color: #474747;\\n height: 35px;\\n font-size: 13px;\\n}\\n\\ntd {\\n height: 35px;\\n font-size: 13px;\\n}\\n\\ntable {\\n border-collapse: collapse;\\n}\\n\\ntable, th, td {\\n border: 1px solid #e1e1e1;\\n overflow: hidden;\\n word-wrap: break-word;\\n}\\n\\ntable.fixed {\\n table-layout: fixed;\\n}\\n\\ntable.fixed td {\\n overflow: hidden;\\n}\\n\\n.highlight td {\\n background: #C0C0C0;\\n}\\n\\n.fa {\\n font-size: 18px;\\n}\\n\\n.fa-trash-o {\\n color: red;\\n}\\n\\n.warningMsg {\\n text-align: center;\\n color: red;\\n}\\n\\n.fa-arrow-down, .fa-arrow-up {\\n font-size: 10px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvcmVwb3J0LWFjdGl2aXR5LWlzc3Vlcy9GOlxcTmlraWwgV29ya1xcUHJvamVjdHNcXERvcnNleVxcSGllcmFyY2h5IFNvdXJjZSBDb2RlXFxXb3JraW5nXFxkb3JzZXlHcm91cC9zcmNcXGFwcFxccmVwb3J0LWFjdGl2aXR5LWlzc3Vlc1xccmVwb3J0LWFjdGl2aXR5LWlzc3Vlcy5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvcmVwb3J0LWFjdGl2aXR5LWlzc3Vlcy9yZXBvcnQtYWN0aXZpdHktaXNzdWVzLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBO0VBQ0ksV0FBQTtFQUNBLGtCQUFBO0FDREo7O0FER0E7RUFDSSxrQkFBQTtFQUNBLGtCQUFBO0FDQUo7O0FER0E7RUFDQyxZQUFBO0VBQ0QseUJBQUE7RUFDQSxZQUFBO0VBQ0MsZUFBQTtBQ0FEOztBREVBO0VBQ0ksWUFBQTtFQUNDLGVBQUE7QUNDTDs7QURDQTtFQUNJLHlCQUFBO0FDRUo7O0FEQUE7RUFDSSx5QkFBQTtFQUNBLGdCQUFBO0VBQ0EscUJBQUE7QUNHSjs7QUREQTtFQUFjLG1CQUFBO0FDS2Q7O0FESkE7RUFBaUIsZ0JBQUE7QUNRakI7O0FEUEE7RUFBZSxtQkFBQTtBQ1dmOztBRFRBO0VBQ0ssZUFBQTtBQ1lMOztBRFRBO0VBQ0ksVUFBQTtBQ1lKOztBRFZBO0VBQ0ksa0JBQUE7RUFBbUIsVUFBQTtBQ2N2Qjs7QURaQTtFQUNJLGVBQUE7QUNlSiIsImZpbGUiOiJzcmMvYXBwL3JlcG9ydC1hY3Rpdml0eS1pc3N1ZXMvcmVwb3J0LWFjdGl2aXR5LWlzc3Vlcy5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG5cclxudGFibGUge1xyXG4gICAgd2lkdGg6MTAwJTtcclxuICAgIGZvbnQtc2l6ZTogc21hbGxlcjtcclxufVxyXG50aCx0ZHtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIGZvbnQtc2l6ZTogc21hbGxlcjtcclxufVxyXG5cclxudGgge1xyXG4gY29sb3I6d2hpdGU7ICAgICBcclxuYmFja2dyb3VuZC1jb2xvcjogXHQjNDc0NzQ3O1xyXG5oZWlnaHQ6IDM1cHg7XHJcbiBmb250LXNpemU6IDEzcHg7XHJcbn1cclxudGQge1xyXG4gICAgaGVpZ2h0OiAzNXB4O1xyXG4gICAgIGZvbnQtc2l6ZTogMTNweDtcclxufVxyXG50YWJsZSB7XHJcbiAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xyXG59XHJcbnRhYmxlLCB0aCwgdGQge1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgI2UxZTFlMTtcclxuICAgIG92ZXJmbG93OmhpZGRlbjtcclxuICAgIHdvcmQtd3JhcDpicmVhay13b3JkO1xyXG59XHJcbnRhYmxlLmZpeGVkIHsgdGFibGUtbGF5b3V0OmZpeGVkOyB9XHJcbnRhYmxlLmZpeGVkIHRkIHsgb3ZlcmZsb3c6IGhpZGRlbjsgfVxyXG4uaGlnaGxpZ2h0IHRkIHtiYWNrZ3JvdW5kOiAjQzBDMEMwO31cclxuXHJcbi5mYXtcclxuICAgICBmb250LXNpemU6IDE4cHg7IFxyXG59XHJcblxyXG4uZmEtdHJhc2gtb3tcclxuICAgIGNvbG9yOnJlZDtcclxufVxyXG4ud2FybmluZ01zZyB7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7Y29sb3I6IHJlZDtcclxufVxyXG4uZmEtYXJyb3ctZG93biwgLmZhLWFycm93LXVwe1xyXG4gICAgZm9udC1zaXplOiAxMHB4XHJcbn1cclxuIiwidGFibGUge1xuICB3aWR0aDogMTAwJTtcbiAgZm9udC1zaXplOiBzbWFsbGVyO1xufVxuXG50aCwgdGQge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtc2l6ZTogc21hbGxlcjtcbn1cblxudGgge1xuICBjb2xvcjogd2hpdGU7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0NzQ3NDc7XG4gIGhlaWdodDogMzVweDtcbiAgZm9udC1zaXplOiAxM3B4O1xufVxuXG50ZCB7XG4gIGhlaWdodDogMzVweDtcbiAgZm9udC1zaXplOiAxM3B4O1xufVxuXG50YWJsZSB7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG59XG5cbnRhYmxlLCB0aCwgdGQge1xuICBib3JkZXI6IDFweCBzb2xpZCAjZTFlMWUxO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG59XG5cbnRhYmxlLmZpeGVkIHtcbiAgdGFibGUtbGF5b3V0OiBmaXhlZDtcbn1cblxudGFibGUuZml4ZWQgdGQge1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uaGlnaGxpZ2h0IHRkIHtcbiAgYmFja2dyb3VuZDogI0MwQzBDMDtcbn1cblxuLmZhIHtcbiAgZm9udC1zaXplOiAxOHB4O1xufVxuXG4uZmEtdHJhc2gtbyB7XG4gIGNvbG9yOiByZWQ7XG59XG5cbi53YXJuaW5nTXNnIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjb2xvcjogcmVkO1xufVxuXG4uZmEtYXJyb3ctZG93biwgLmZhLWFycm93LXVwIHtcbiAgZm9udC1zaXplOiAxMHB4O1xufSJdfQ== */\"","\nimport { Component, OnInit } from '@angular/core';\nimport { DorseyService } from '../dorsey.service';\nimport { LocalStorageService } from 'ngx-webstorage';\nimport { Local } from 'protractor/built/driverProviders';\n\n@Component({\n selector: 'app-report-activity-issues',\n templateUrl: './report-activity-issues.component.html',\n styleUrls: ['./report-activity-issues.component.scss']\n})\nexport class ReportActivityIssuesComponent implements OnInit {\n loginCompanyName: any;\n companyID: string;\n processData: any;\n activityData: any;\n pointersData: any;\n finalList = [];\n frust = [];\n isDesc: boolean = false;\n column = \"\";\n direction: number;\n arrow = true;\n p: number = 1;\n rowsOnPage = 10;\n rowsOnPageSet = [];\n rowCount: any;\n dynamicRows = 10;\n processPaging = false;\n searchtext: string;\n saveFilter = [];\n CompanyID: string;\n isDisable = false;\n disableSearch = false;\n companyName: string;\n headerDate = new Date();\n searchFilter: any;\n\n constructor(private dorseyService: DorseyService, private storage: LocalStorageService) {\n\n this.companyID = this.storage.retrieve('companyID');\n this.loginCompanyName = this.storage.retrieve('loginCompanyName');\n\n }\n\n ngOnInit() {\n // this.GetProcess();\n // this.GetActivity();\n this.GetActivityIssues();\n\n }\n\n GetActivityIssues() {\n this.dorseyService.GetActivityIssues(this.companyID).subscribe(process => {\n this.pointersData = JSON.parse(process['_body']);\n if (this.pointersData.length === 0) {\n this.isDisable = true;\n this.disableSearch = true;\n this.processPaging = false;\n }\n else {\n this.processPaging = true;\n this.isDisable = false;\n this.disableSearch = false;\n this.saveFilter = JSON.parse(JSON.stringify(this.pointersData));\n this.rowCount = this.pointersData.length;\n this.processPaging = true;\n while (this.dynamicRows < this.rowCount) {\n this.rowsOnPageSet.push(this.dynamicRows);\n this.dynamicRows = this.dynamicRows + 10;\n }\n if (!this.rowsOnPageSet.includes(this.rowCount))\n this.rowsOnPageSet.push(this.rowCount);\n if (this.rowsOnPageSet.length === 1) {\n if (this.rowsOnPageSet[0] <= 10)\n this.rowsOnPage = this.rowsOnPageSet[0];\n }\n }\n });\n\n\n }\n\n sort(property) {\n this.arrow = !this.arrow;\n this.isDesc = !this.isDesc; //change the direction \n this.column = property;\n this.direction = this.isDesc ? 1 : -1;\n }\n\n Searchtext() {\n this.pointersData = this.saveFilter;\n\n let tempFrustrations = this.pointersData.filter(\n (item) => {\n return (\n (item.ProcessName !== null && item.ProcessName.toLowerCase().indexOf(this.searchtext.toLowerCase()) > -1) ||\n (item.ActivityName !== null && item.ActivityName.toLowerCase().indexOf(this.searchtext.toLowerCase()) > -1)\n );\n }\n\n );\n this.pointersData = tempFrustrations;\n if (this.pointersData.length == 0) {\n // this.GetActivity();\n this.isDisable = true;\n } else {\n this.isDisable = false;\n }\n if (this.searchtext === '') {\n this.GetActivityIssues();\n this.isDisable = false;\n }\n }\n\n\n}\n","import { Component, OnInit, Inject, AfterViewInit } from '@angular/core';\nimport { DorseyService } from '../dorsey.service';\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\nimport { ChartOptions, ChartType, ChartDataSets } from 'chart.js';\nimport { Label } from 'ng2-charts';\nimport * as c3 from 'c3';\nimport * as d3 from 'd3';\nimport { LocalStorageService } from 'ngx-webstorage';\nimport htmlToImage from 'html-to-image';\nimport { Department } from '../departments/department.model';\nimport { ScoreCardTypeEnum } from '../performance-score-card/performance-score-card.model';\nimport { DepartmentService } from '../services/department.service';\nimport { EmployeeLoginLevel } from '../common/models/login-level.model';\nimport { copyRight } from '../copyRight.model';\n\n@Component({\n selector: 'app-report-category',\n templateUrl: './report-category.component.html',\n // styleUrls: ['./report-category.component.scss'],\n providers: [DorseyService],\n inputs: ['dashboard', 'dashboardCat', 'dashboardTeamCat']\n})\nexport class ReportCategoryComponent implements OnInit {\n departmentName: string;\n departmentList: Array<Department> = [];\n employeeDetails: any;\n scoreCardTypes: string[] = [ScoreCardTypeEnum.Department, ScoreCardTypeEnum.Team];\n selectedReportType: string;\n toggleTeam: boolean = false;\n\n\n pointerData: any;\n frustrationData: any;\n frustData = [];\n frust = [];\n view = {};\n ProcessName = '';\n SeverityName = '';\n StatusName = '';\n totalCount = 0;\n dashboard = true;\n searchtext: string;\n disableSearch = false;\n\n // tslint:disable-next-line:ban-types\n dataSource: Object;\n categories = [];\n valueBar: (string | any[])[];\n warningMsg = '';\n frustrationbyCategory: any;\n\n dashboardCat = true;\n p: number = 1;\n rowsOnPage = 5;\n rowsOnPageSet = [];\n rowCount: any;\n dynamicRows = 5;\n activityPaging = false;\n metricList = [];\n CompanyID: string;\n isDisable = false;\n saveFilter = [];\n wrng: string;\n UserTeamID: string;\n teamData: any;\n TeamID: any;\n EmployeeID: string;\n dashboardTeamCat: any;\n tempTeam = [];\n companyName: string;\n TeamName: string;\n headerDate = new Date();\n employeeData: any;\n copyDate: number;\n isDesc: boolean = false;\n column = \"\";\n direction: number;\n arrow = true;\n selectedDepartmentId: number;\n copyRight: string = copyRight;\n constructor(private dorseyService: DorseyService,\n private departmentService: DepartmentService, private dialog: MatDialog, private storage: LocalStorageService) {\n this.metricList = [];\n this.CompanyID = this.storage.retrieve('companyID');\n this.EmployeeID = this.storage.retrieve('EmployeeID');\n this.companyName = sessionStorage.getItem('loginCompanyName');\n this.employeeDetails = this.storage.retrieve('employeeDetails');\n\n if (this.EmployeeID.toString() === \"0\") {\n\n }\n else {\n this.TeamID = this.storage.retrieve('TeamID');\n }\n\n }\n\n\n\n ngOnInit() {\n\n\n this.GetFrustrationType();\n\n if (this.dashboardTeamCat !== undefined) {\n this.TeamID = this.dashboardTeamCat;\n }\n else {\n this.TeamID = 0;\n }\n\n if (this.employeeDetails) {\n if ((this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Department) || (this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Team)) {\n this.toggleTeam = true;\n this.getTeamsByDepartmentId(this.employeeDetails.DepartmentID)\n }\n else {\n if (!this.dashboardTeamCat) {\n\n this.reportTypeChange(ScoreCardTypeEnum.Department)\n }\n else\n this.getTeamsByDepartmentId(0)\n\n }\n\n }\n else {\n if (!this.dashboardTeamCat)\n\n this.reportTypeChange(ScoreCardTypeEnum.Department)\n\n else\n this.getTeamsByDepartmentId(0)\n }\n\n this.copyDate = (new Date()).getFullYear();\n\n }\n\n teamChange(event): void {\n this.searchtext = '';\n this.selectedDepartmentId = 0;\n this.TeamID = event.value;\n let teamd = this.teamData.filter(x => x.TeamID === this.TeamID)\n if (teamd.length > 0) {\n this.TeamName = teamd[0].TeamName;\n }\n this.ConstructReport();\n }\n reportTypeChange(scoreCardType: string): void {\n this.searchtext = '';\n this.departmentList = [];\n this.teamData = [];\n this.selectedDepartmentId = 0;\n this.selectedReportType = scoreCardType;\n this.toggleTeam = scoreCardType === ScoreCardTypeEnum.Department ? false : true;\n\n this.getDepartments();\n this.getTeamsByDepartmentId(this.selectedDepartmentId);\n\n }\n\n departmentChange(selectedDepartmentId): void {\n this.searchtext = '';\n this.getTeamsByDepartmentId(selectedDepartmentId);\n this.departmentName = this.departmentList.find(ent => ent.DepartmentID === selectedDepartmentId).DepartmentName;\n }\n\n private getDepartments(): void {\n this.departmentService.getDepartments(Number(this.CompanyID)).subscribe(resp => {\n this.departmentList = resp.Data;\n if (this.employeeDetails) {\n\n if (this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Department) {\n this.departmentList = this.departmentList.filter(ent => ent.DepartmentID === this.employeeDetails.DepartmentID);\n }\n else if (this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Team) {\n this.departmentList = this.departmentList.filter(ent => ent.DepartmentID === this.employeeDetails.DepartmentID);\n this.getTeamsByDepartmentId(this.employeeDetails.DepartmentID);\n }\n\n }\n this.departmentList.splice(0, 0, { DepartmentID: 0, DepartmentName: 'Aggregate Report', DepartmentDescription: '0', CompanyID: Number(this.CompanyID), CreatedBy: '', UpdatedBy: '' });\n });\n }\n\n private getTeamsByDepartmentId(selectedDepartmentId): void {\n this.dorseyService.GetTeam(this.CompanyID.toString()).subscribe(resp => {\n var companyTeamList = JSON.parse(resp['_body']);\n this.teamData = companyTeamList;\n\n if (this.employeeDetails && companyTeamList) {\n if (this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Department) {\n this.teamData = this.teamData.filter(ent => ent.DepartmentID === this.employeeDetails.DepartmentID);\n }\n else if (this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Team) {\n this.teamData = this.teamData.filter(ent => ent.DepartmentID === this.employeeDetails.DepartmentID && ent.TeamID == this.employeeDetails.TeamID);\n this.selectedDepartmentId = this.teamData[0].DepartmentID;\n this.TeamID = this.teamData[0].TeamID;\n }\n else {\n if (!selectedDepartmentId) {\n this.selectedDepartmentId = 0;\n this.teamData = companyTeamList;\n }\n else if (selectedDepartmentId == 0) {\n this.teamData = companyTeamList;\n }\n else {\n this.teamData = this.teamData.filter(ent => ent.DepartmentID === selectedDepartmentId);\n }\n\n }\n }\n else {\n if (selectedDepartmentId == 0)\n this.teamData = companyTeamList;\n else\n this.teamData = companyTeamList.filter(ent => ent.DepartmentID === selectedDepartmentId);\n }\n\n if (this.dashboardTeamCat != undefined) {\n this.TeamID = this.dashboardTeamCat;\n }\n else if (this.employeeDetails && this.employeeDetails.IsEmployeeLoginLevel === EmployeeLoginLevel.Team) {\n this.TeamID = this.TeamID;\n }\n else {\n this.TeamID = 0;\n }\n\n this.dorseyService.GetPointer(this.CompanyID).subscribe(pointer => {\n this.pointerData = JSON.parse(pointer['_body']);\n if (this.TeamID == 0) {\n this.teamData = this.teamData.filter(entity1 => this.pointerData.find(entity2 => entity1.TeamID == entity2.TeamID && entity2.PointerTypeID == 1));\n this.teamData.splice(0, 0, { TeamID: 0, TeamName: 'Aggregate Report' });\n }\n this.ConstructReport();\n });\n\n });\n }\n\n sort(property) {\n this.arrow = !this.arrow;\n this.isDesc = !this.isDesc; //change the direction\n this.column = property;\n this.direction = this.isDesc ? 1 : -1;\n }\n\n\n ConstructReport() {\n this.metricList = [];\n this.frust = [];\n this.frustrationData = [];\n this.categories = [];\n this.rowsOnPageSet = [];\n this.rowsOnPage = 5;\n this.dynamicRows = 5;\n this.warningMsg = '';\n\n var values = [];\n var perito = [];\n var sum = 0;\n // let procData: any;\n this.dorseyService.GetPointer(this.CompanyID).subscribe(pointer => {\n this.pointerData = JSON.parse(pointer['_body']);\n\n if (this.TeamID == 0)\n this.pointerData = this.pointerData.filter(entity1 => this.teamData.find(entity2 => entity1.TeamID == entity2.TeamID) && entity1.PointerTypeID == 1);\n else {\n this.pointerData = this.pointerData.filter(entity1 => entity1.TeamID == this.TeamID && entity1.PointerTypeID == 1);\n }\n\n this.totalCount = this.pointerData.length;\n\n this.dorseyService.GetFrustrationType('1', this.CompanyID).subscribe(frustration => {\n this.frustrationData = JSON.parse(frustration['_body']);\n if (this.totalCount) {\n for (let i = 0; i < this.frustrationData.length; i++) {\n let data = this.pointerData.filter(x => x.PointerTypeID === 1 && x.FrustrationsTypeID === this.frustrationData[i].FrustrationsTypeID);\n\n if (data.length > 0) {\n // this.totalCount = data.length;\n\n this.frustData.push(data);\n this.view['CategoryName'] = this.frustrationData[i].FrustrationsTypeName;\n this.categories[this.frustrationData[i].FrustrationsTypeName] = data.length;\n for (let li = 0; li < data.length; li++) {\n this.metricList.push(data[li]);\n }\n // values.push(data.length);\n sum = sum + data.length;\n\n this.frust.push({\n data: data,\n label: this.frustrationData[i].FrustrationsTypeName,\n value: data.length\n });\n\n this.frust.sort(function (obj1, obj2) {\n\n return obj2.value - obj1.value;\n });\n }\n\n\n }\n } else {\n this.warningMsg = 'No data available';\n if (!this.metricList.length) {\n this.isDisable = false;\n this.disableSearch = false;\n }\n else {\n this.isDisable = true;\n this.disableSearch = true;\n }\n return;\n }\n if (this.metricList.length === 0) {\n this.isDisable = false;\n this.disableSearch = false;\n return;\n }\n else {\n this.isDisable = true;\n this.disableSearch = true;\n\n }\n let sortOrder = this.sortByValue(this.categories);\n let perVal = 0;\n this.categories = [];\n\n for (let v = 0; v < sortOrder.length; v++) {\n\n values.push(sortOrder[v][1]);\n\n this.categories.push(sortOrder[v][0])\n perVal = perVal + sortOrder[v][1];\n perito.push((perVal / sum));\n }\n\n var obj = {\n 'Frustration Count': values,\n 'Cumulative percentage': perito\n };\n\n let chart = c3.generate({\n bindto: '#chartcategory',\n data: {\n json: obj,\n axes: {\n\n 'Cumulative percentage': 'y2'\n },\n type: 'bar',\n types: {\n\n 'Cumulative percentage': 'line',\n\n }, groups: [\n ['Frustrations Count', 'Cumulative percentage']\n ]\n\n\n },\n\n title: {\n text: \"Frustration Categories\",\n padding: {\n top: 20,\n right: 20,\n bottom: 40,\n left: 50\n }\n },\n color: {\n pattern: ['#4aabe7', '#d55632']\n },\n legend: {\n show: true,\n position: \"right\"\n\n },\n\n axis: {\n x: {\n type: 'category',\n // label: 'Frustration Categories',\n // label: {\n // text: 'Frustration Categories',\n // position: 'outer-center'\n // },\n categories: this.categories,\n tick: {\n rotate: 50,\n multiline: false\n\n },\n\n\n height: 100,\n\n },\n y: {\n //max :10,\n label: 'Frustrations Count',\n tick: {\n format: d3.format('d'),\n values: d3.ticks(0, sortOrder[0][1], sortOrder[0][1])\n //values: d3.ticks(0,values[0],values[0]/5)\n }\n },\n y2: {\n show: true,\n label: 'Cumulative percentage',\n max: 1,\n min: 0,\n padding: { top: 3, bottom: 0 },\n tick: {\n format: d3.format(',.0%')\n }\n\n },\n\n }\n\n });\n this.rowCount = this.metricList.length;\n let tempmetricList = this.metricList;\n if (this.metricList.length === 0) {\n this.activityPaging = false;\n }\n else {\n this.saveFilter = JSON.parse(JSON.stringify(this.metricList));\n\n this.activityPaging = true;\n while (this.dynamicRows < this.rowCount) {\n this.rowsOnPageSet.push(this.dynamicRows);\n this.dynamicRows = this.dynamicRows + 10;\n }\n if (!this.rowsOnPageSet.includes(this.rowCount)) this.rowsOnPageSet.push(this.rowCount);\n if (this.rowsOnPageSet.length > 0) {\n if (this.rowsOnPageSet[0] <= 10)\n this.rowsOnPage = this.rowsOnPageSet[0];\n }\n }\n\n });\n\n });\n }\n GetFrustrationType() {\n\n this.dorseyService.GetPointer(this.CompanyID).subscribe(pointer => {\n this.pointerData = JSON.parse(pointer['_body']);\n\n });\n }\n Searchtext() {\n this.frustrationbyCategory = this.saveFilter;\n\n let tempfrustrationbycategory = this.frustrationbyCategory.filter(\n (item) => {\n return (\n (item.ProcessName !== null && item.ProcessName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n (item.ActivityName !== null && item.ActivityName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n (item.FrustrationsTypeName !== null && item.FrustrationsTypeName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n (item.Subject !== null && item.Subject.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n (item.Description !== null && item.Description.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n (item.StatusName !== null && item.StatusName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1)) ||\n (item.SeverityName !== null && item.SeverityName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n (item.ProjectName !== null && item.ProjectName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1)\n\n || (item.TeamName !== null && item.TeamName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1);\n }\n\n );\n this.metricList = tempfrustrationbycategory;\n if (this.metricList.length == 0) {\n setTimeout(() => {\n this.wrng = \"No data available\";\n }, 100);\n this.isDisable = false;\n\n } else {\n this.isDisable = true;\n }\n if (this.searchtext === '') {\n this.frustrationbyCategory = this.saveFilter;\n this.dynamicRows = 5;\n this.rowsOnPageSet = [];\n this.rowCount = this.frustrationbyCategory.length;\n while (this.dynamicRows < this.rowCount) {\n this.rowsOnPageSet.push(this.dynamicRows);\n this.dynamicRows = this.dynamicRows + 5;\n }\n if (!this.rowsOnPageSet.includes(this.rowCount))\n this.rowsOnPageSet.push(this.rowCount);\n if (this.rowsOnPageSet) {\n\n this.rowsOnPage = this.rowsOnPageSet[0];\n }\n this.isDisable = true;\n } else {\n\n this.rowCount = tempfrustrationbycategory.length;\n this.dynamicRows = 5;\n this.rowsOnPageSet = [];\n while (this.dynamicRows < this.rowCount) {\n this.rowsOnPageSet.push(this.dynamicRows);\n this.dynamicRows = this.dynamicRows + 5;\n }\n if (!this.rowsOnPageSet.includes(this.rowCount)) {\n this.rowsOnPageSet.push(this.rowCount);\n if (this.rowsOnPageSet)\n this.rowsOnPage = this.rowsOnPageSet[0];\n }\n\n if (this.rowsOnPageSet.length === 1) {\n if (this.rowsOnPageSet[0] <= 5)\n this.rowsOnPage = this.rowsOnPageSet[0];\n }\n }\n }\n\n\n exportAsXLSX(): void {\n let allData = JSON.parse(JSON.stringify(this.metricList));\n\n for (let i = 0; i < allData.length; i++) {\n allData[i][\" No. \"] = i + 1;\n if (this.selectedReportType === ScoreCardTypeEnum.Department) {\n allData[i][\"Department\"] = this.metricList[i].DepartmentName;\n }\n allData[i].Team = this.metricList[i].TeamName;\n allData[i].Process = this.metricList[i].ProcessName;\n allData[i].Activity = this.metricList[i].ActivityName;\n\n allData[i][\" Type \"] = this.metricList[i].FrustrationsTypeName;\n allData[i][\" Frustration \"] = this.metricList[i].Subject;\n allData[i][\" Description \"] = this.metricList[i].Description;\n allData[i].Status = this.metricList[i].StatusName;\n\n allData[i].Severity = this.metricList[i].SeverityName;\n allData[i].Project = this.metricList[i].ProjectName;\n\n delete (allData[i].DepartmentName);\n delete (allData[i].EmployeeName);\n delete (allData[i].VersionID);\n delete (allData[i].GoalID);\n delete (allData[i].GoalName);\n delete (allData[i].GreenRange);\n delete (allData[i].RedRange);\n\n delete (allData[i].YellowRange);\n delete (allData[i].Source);\n\n\n delete (allData[i].ProcessName);\n delete (allData[i].ActivityName);\n\n delete (allData[i].TeamName);\n delete (allData[i].FrustrationsTypeName);\n\n delete (allData[i].Subject);\n delete (allData[i].Description);\n\n delete (allData[i].StatusName);\n delete (allData[i].SeverityName);\n delete (allData[i].ProjectName);\n\n\n delete (allData[i].PointerID);\n delete (allData[i].ActivityID);\n delete (allData[i].PointerTypeID);\n delete (allData[i].CompanyID);\n delete (allData[i].EmployeeID);\n delete (allData[i].UOM);\n delete (allData[i].Target);\n delete (allData[i].Type);\n delete (allData[i].StatusID);\n\n delete (allData[i].SeverityID);\n delete (allData[i].ProcessID);\n delete (allData[i].DepartmentID);\n delete (allData[i].TeamID);\n\n\n delete (allData[i].FrustrationsTypeID);\n delete (allData[i].Date);\n delete (allData[i].IsActive);\n delete (allData[i].CreatedDate);\n\n delete (allData[i].CreatedBy);\n delete (allData[i].UpdatedDate);\n delete (allData[i].UpdatedBy);\n delete (allData[i].ProjectID);\n\n\n }\n\n let allData1 = JSON.parse(JSON.stringify(this.frust));\n\n for (let i = 0; i < allData1.length; i++) {\n // this.frust[i].label = this.frust[i].value;\n allData1[i].label = this.frust[i].label;\n allData1[i].value = this.frust[i].value;\n delete (allData1[i].data);\n }\n\n let Cumulative = document.getElementById('chartcategory').querySelector('svg').querySelectorAll('.c3-target-Cumulative-percentage');\n let Cumulativecircle = document.getElementById('chartcategory').querySelector('svg').querySelectorAll('.c3-circle');\n\n let circle = Array.from(Cumulativecircle);\n circle.forEach(function (element) {\n element.setAttribute(\"style\", \"fill:#e75632\")\n })\n\n let cumulativegraph = Array.from(Cumulative)\n cumulativegraph.forEach(function (element) {\n element.setAttribute(\"style\", \"fill:none\")\n })\n\n let image = '';\n\n htmlToImage.toPng(document.getElementById('chartcategory'),)\n .then(function (dataUrl) {\n var img = new Image();\n img.src = dataUrl;\n\n image = dataUrl;\n\n\n });\n setTimeout(() => {\n\n }, 500);\n\n\n let name: any;\n if (this.selectedReportType == ScoreCardTypeEnum.Department && this.departmentName) {\n name = this.departmentName;\n } else if ((!this.selectedReportType || this.selectedReportType == ScoreCardTypeEnum.Team) && this.TeamName) {\n name = this.TeamName;\n } else {\n name = \"Aggregate Report\";\n }\n setTimeout(() => {\n this.dorseyService.generateReportExcel(allData1, allData, image, this.companyName + '_Frustrations report by type' + \"_\" + (new Date().getMonth() + 1) + '-' + new Date().getDate() + '-' + new Date().getFullYear(), 'Frustrations report by type', \"Company: \" + this.companyName, this.selectedReportType ? this.selectedReportType + \": \" + name : 'Team' + \": \" + name, \"Frustrations report by type Report\", copyRight, 'FFFFFF00', 'FF0000FF');\n }, 2000);\n\n }\n\n sortByValue(jsObj) {\n var items = Object.keys(jsObj).map(function (key) {\n return [key, jsObj[key]];\n });\n\n // Sort the array based on the second element\n items.sort(function (first, second) {\n return second[1] - first[1];\n });\n return items;\n\n }\n getData(data) {\n\n const dialogRef = this.dialog.open(DialogComponent, {\n width: '650px',\n data: { data: data }\n });\n\n dialogRef.afterClosed().subscribe(result => {\n\n });\n\n }\n}\n\n\n@Component({\n selector: 'app-dialog',\n templateUrl: './dialog.html',\n // styleUrls: ['dialog.css']\n})\nexport class DialogComponent implements OnInit {\n\n data: any;\n constructor(\n public dialogRef: MatDialogRef<DialogComponent>,\n @Inject(MAT_DIALOG_DATA) public dialogData: any) { }\n\n ngOnInit() {\n this.data = this.dialogData.data;\n }\n\n close(): void {\n this.dialogRef.close();\n }\n\n}\n","import { Component, OnInit, Inject } from '@angular/core';\nimport { DorseyService } from '../dorsey.service';\nimport { ChartOptions, ChartType, ChartDataSets } from 'chart.js';\nimport { LocalStorageService } from 'ngx-webstorage';\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\nimport * as c3 from 'c3';\nimport * as d3 from 'd3';\nimport htmlToImage from 'html-to-image';\nimport { EmployeeLoginLevel } from '../common/models/login-level.model';\nimport { copyRight } from '../copyRight.model';\n\n@Component({\n selector: 'app-report-hipriority',\n templateUrl: './report-hipriority.component.html',\n // styleUrls: ['./report-hipriority.component.scss'],\n providers: [DorseyService],\n inputs: ['dashboardSeverity', 'dashboardSev', 'dashboardTeamSeverity']\n})\n\nexport class ReportHipriorityComponent implements OnInit {\n copyRight: string = copyRight;\n employeeDetails: any;\n wrng: any;\n searchtext: string = '';\n severityData: any;\n pointerData: any;\n CompanyID: string;\n totalCount = 0;\n frustData = [];\n frust = [];\n view = {};\n categories = [];\n metricList = [];\n warningMsg = '';\n isDisable = false;\n disableSearch = false;\n p: number = 1;\n rowsOnPage = 5;\n rowsOnPageSet = [];\n rowCount: any;\n dynamicRows = 5;\n activityPaging = false;\n saveFilter = [];\n dashboardSeverity = true;\n dashboardSev = true;\n metricbykeyprocess = [];\n UserTeamID: string;\n teamData: any;\n TeamID: any;\n EmployeeID: string;\n dashboardTeamSeverity: any;\n tempTeam = [];\n companyName: string;\n headerDate = new Date();\n TeamName: string;\n employeeData: any;\n copyDate: number;\n isDesc: boolean = false;\n column = \"\";\n direction: number;\n arrow = true;\n\n constructor(private dorsey: DorseyService, private storage: LocalStorageService, private dialog: MatDialog) {\n this.CompanyID = this.storage.retrieve('companyID');\n this.EmployeeID = this.storage.retrieve('EmployeeID');\n this.companyName = this.storage.retrieve('LoginCompanyName');\n this.employeeDetails = this.storage.retrieve('employeeDetails');\n if (this.EmployeeID.toString() === \"0\") {\n\n }\n else {\n this.TeamID = this.storage.retrieve('TeamID');\n }\n }\n\n ngOnInit() {\n this.GetSeverity();\n this.GetTeam();\n if (this.employeeDetails) {\n this.EmployeeID = this.employeeDetails.EmployeeID;\n this.TeamID = this.employeeDetails.TeamID;\n }\n else {\n this.EmployeeID = '0';\n this.TeamID = 0;\n }\n this.copyDate = (new Date()).getFullYear();\n }\n\n GetSeverity() {\n this.dorsey.GetSeverity().subscribe(severity => {\n this.severityData = JSON.parse(severity['_body']);\n });\n }\n sortByValue(jsObj) {\n var items = Object.keys(jsObj).map(function (key) {\n return [key, jsObj[key]];\n });\n\n // Sort the array based on the second element\n items.sort(function (first, second) {\n return second[1] - first[1];\n });\n return items;\n }\n\n sort(property) {\n this.arrow = !this.arrow;\n this.isDesc = !this.isDesc; //change the direction\n this.column = property;\n this.direction = this.isDesc ? 1 : -1;\n }\n\n GetSelectedReport(event) {\n this.searchtext = '';\n this.TeamID = event.value;\n let teamd = this.teamData.filter(x => x.TeamID === this.TeamID)\n if (teamd.length > 0) {\n this.TeamName = teamd[0].TeamName;\n }\n this.ConstructReport();\n }\n\n GetTeam() {\n this.TeamName = '';\n this.dorsey.GetTeam(this.CompanyID).subscribe(team => {\n team = JSON.parse(team['_body']);\n this.teamData = team;\n this.dorsey.GetPointer(this.CompanyID).subscribe(frustrations => {\n frustrations = JSON.parse(frustrations['_body']);\n this.pointerData = frustrations;\n if (this.employeeDetails) {\n if (this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Department) {\n this.teamData = this.teamData.filter(ent => ent.DepartmentID === this.employeeDetails.DepartmentID);\n\n }\n else if (this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Team) {\n this.teamData = this.teamData.filter(ent => ent.DepartmentID === this.employeeDetails.DepartmentID && ent.TeamID == this.employeeDetails.TeamID);\n this.TeamID = this.teamData[0].TeamID;\n }\n }\n if (this.dashboardTeamSeverity != undefined) {\n this.TeamID = this.dashboardTeamSeverity;\n }\n else if (this.employeeDetails && this.employeeDetails.IsEmployeeLoginLevel === EmployeeLoginLevel.Team) {\n this.TeamID = this.TeamID;\n }\n else {\n this.TeamID = 0;\n }\n if (this.TeamID == 0) {\n this.teamData = this.teamData.filter(entity1 => this.pointerData.find(entity2 => entity1.TeamID == entity2.TeamID && entity2.PointerTypeID == 1));\n }\n if (this.teamData.length > 0 && !this.TeamID) {\n this.teamData.splice(0, 0, { TeamID: 0, TeamName: 'Aggregate Report' });\n }\n this.ConstructReport();\n\n });\n });\n }\n ConstructReport() {\n this.metricList = [];\n this.frustData = [];\n this.categories = [];\n this.frust = [];\n this.rowsOnPageSet = [];\n this.rowsOnPage = 5;\n this.dynamicRows = 5;\n this.warningMsg = '';\n var sum = 0;\n this.dorsey.GetPointer(this.CompanyID).subscribe(pointer => {\n this.pointerData = JSON.parse(pointer['_body']);\n if (this.TeamID == 0)\n this.pointerData = this.pointerData.filter(entity1 => this.teamData.find(entity2 => entity1.TeamID == entity2.TeamID) && entity1.PointerTypeID == 1);\n else {\n this.pointerData = this.pointerData.filter(entity1 => entity1.TeamID == this.TeamID && entity1.PointerTypeID == 1);\n }\n this.totalCount = this.pointerData.length;\n if (this.totalCount) {\n for (let i = 0; i < this.severityData.length; i++) {\n let data = this.pointerData.filter(x => x.SeverityID === this.severityData[i].SeverityID);\n if (data.length > 0) {\n this.frustData.push(data);\n this.view['CategoryName'] = this.severityData[i].SeverityName;\n this.categories[this.severityData[i].SeverityName] = data.length;\n for (let li = 0; li < data.length; li++) {\n this.metricList.push(data[li]);\n }\n sum = sum + data.length;\n this.frust.push({\n data: data,\n label: this.severityData[i].SeverityName,\n value: data.length\n });\n this.frust.sort(function (obj1, obj2) {\n return obj2.value - obj1.value;\n });\n }\n }\n }\n else {\n this.warningMsg = 'No data available';\n if (!this.metricList.length) {\n this.isDisable = false;\n this.disableSearch = false;\n }\n else {\n this.isDisable = true;\n this.disableSearch = true;\n }\n return;\n }\n if (this.metricList.length === 0) {\n this.isDisable = false;\n this.disableSearch = false;\n return;\n }\n else {\n this.isDisable = true;\n this.disableSearch = true;\n }\n let sortOrder = [];\n sortOrder = this.sortByValue(this.categories);\n\n let chart = c3.generate({\n bindto: '#chatSeverity',//\n\n data: {\n json: this.categories,\n type: 'pie',\n\n },\n color: {\n pattern: ['#9f3e23', '#d55632', '#f4954f', '#f4c04f']\n },\n pie: {\n label: {\n format: function (value, ratio, id) {\n return value;\n }\n }\n },\n });\n\n setTimeout(function () {\n chart.data.colors({ Critical: '#9f3e23', High: '#d55632', Medium: '#f4954f', Low: '#f4c04f' });\n }, 0);\n\n this.rowCount = this.metricList.length;\n let tempmetricList = this.metricList;\n if (this.metricList.length === 0) {\n this.activityPaging = false;\n }\n else {\n this.saveFilter = JSON.parse(JSON.stringify(this.metricList));\n this.activityPaging = true;\n while (this.dynamicRows < this.rowCount) {\n this.rowsOnPageSet.push(this.dynamicRows);\n this.dynamicRows = this.dynamicRows + 10;\n }\n if (!this.rowsOnPageSet.includes(this.rowCount)) this.rowsOnPageSet.push(this.rowCount);\n if (this.rowsOnPageSet.length > 0) {\n if (this.rowsOnPageSet[0] <= 10)\n this.rowsOnPage = this.rowsOnPageSet[0];\n }\n }\n });\n }\n Searchtext() {\n this.metricbykeyprocess = this.saveFilter;\n let tempmetricbykeyprocess = this.metricbykeyprocess.filter(\n (item) => {\n return (\n (item.ProcessName !== null && item.ProcessName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n (item.ActivityName !== null && item.ActivityName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n (item.FrustrationsTypeName !== null && item.FrustrationsTypeName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n (item.Subject !== null && item.Subject.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n (item.Description !== null && item.Description.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n (item.StatusName !== null && item.StatusName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n (item.SeverityName !== null && item.SeverityName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n (item.ProjectName !== null && item.ProjectName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n (item.TeamName !== null && item.TeamName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1))\n }\n );\n this.metricList = tempmetricbykeyprocess;\n if (this.metricList.length == 0) {\n setTimeout(() => {\n this.wrng = \"No data available\";\n }, 100);\n this.isDisable = false;\n return;\n } else {\n this.isDisable = true;\n }\n if (this.searchtext === '') {\n this.metricbykeyprocess = this.saveFilter;\n this.dynamicRows = 5;\n this.rowsOnPageSet = [];\n this.rowCount = this.metricbykeyprocess.length;\n while (this.dynamicRows < this.rowCount) {\n this.rowsOnPageSet.push(this.dynamicRows);\n this.dynamicRows = this.dynamicRows + 5;\n }\n if (!this.rowsOnPageSet.includes(this.rowCount))\n this.rowsOnPageSet.push(this.rowCount);\n if (this.rowsOnPageSet) {\n this.rowsOnPage = this.rowsOnPageSet[0];\n }\n this.isDisable = true;\n } else {\n this.rowCount = tempmetricbykeyprocess.length;\n this.dynamicRows = 5;\n this.rowsOnPageSet = [];\n while (this.dynamicRows < this.rowCount) {\n this.rowsOnPageSet.push(this.dynamicRows);\n this.dynamicRows = this.dynamicRows + 5;\n }\n if (!this.rowsOnPageSet.includes(this.rowCount)) {\n this.rowsOnPageSet.push(this.rowCount);\n if (this.rowsOnPageSet)\n this.rowsOnPage = this.rowsOnPageSet[0];\n }\n if (this.rowsOnPageSet.length === 1) {\n if (this.rowsOnPageSet[0] <= 5)\n this.rowsOnPage = this.rowsOnPageSet[0];\n }\n }\n }\n exportAsXLSX(): void {\n let allData = JSON.parse(JSON.stringify(this.metricList));\n for (let i = 0; i < allData.length; i++) {\n allData[i][\" No. \"] = i + 1;\n allData[i].Team = this.metricList[i].TeamName;\n allData[i].Process = this.metricList[i].ProcessName;\n allData[i].Activity = this.metricList[i].ActivityName;\n allData[i][\" Type \"] = this.metricList[i].FrustrationsTypeName;\n allData[i][\" Frustration \"] = this.metricList[i].Subject;\n allData[i][\" Description \"] = this.metricList[i].Description;\n allData[i].Status = this.metricList[i].StatusName;\n allData[i].Severity = this.metricList[i].SeverityName;\n allData[i].Project = this.metricList[i].ProjectName;\n\n delete (allData[i].DepartmentName);\n delete (allData[i].EmployeeName);\n delete (allData[i].VersionID);\n delete (allData[i].GoalID);\n delete (allData[i].GoalName);\n\n delete (allData[i].GreenRange);\n delete (allData[i].RedRange);\n delete (allData[i].Source);\n delete (allData[i].YellowRange);\n delete (allData[i].ProcessName);\n delete (allData[i].ActivityName);\n delete (allData[i].TeamName);\n delete (allData[i].FrustrationsTypeName);\n delete (allData[i].Subject);\n delete (allData[i].Description);\n delete (allData[i].StatusName);\n delete (allData[i].SeverityName);\n delete (allData[i].ProjectName);\n delete (allData[i].PointerID);\n delete (allData[i].ActivityID);\n delete (allData[i].PointerTypeID);\n delete (allData[i].CompanyID);\n delete (allData[i].EmployeeID);\n delete (allData[i].UOM);\n delete (allData[i].Target);\n delete (allData[i].Type);\n delete (allData[i].StatusID);\n delete (allData[i].SeverityID);\n delete (allData[i].ProcessID);\n delete (allData[i].DepartmentID);\n delete (allData[i].TeamID);\n delete (allData[i].FrustrationsTypeID);\n delete (allData[i].Date);\n delete (allData[i].IsActive);\n delete (allData[i].CreatedDate);\n\n delete (allData[i].CreatedBy);\n delete (allData[i].UpdatedDate);\n delete (allData[i].UpdatedBy);\n delete (allData[i].ProjectID);\n }\n\n let allData1 = JSON.parse(JSON.stringify(this.frust));\n for (let i = 0; i < allData1.length; i++) {\n allData1[i].label = this.frust[i].label;\n allData1[i].value = this.frust[i].value;\n delete (allData1[i].data);\n }\n var node = document.getElementById('chatSeverity');\n let image\n htmlToImage.toPng(node)\n .then(function (dataUrl) {\n var img = new Image();\n img.src = dataUrl;\n image = dataUrl;\n });\n setTimeout(() => {\n\n }, 500);\n let name: any;\n if (this.TeamName) {\n name = this.TeamName;\n }\n else {\n name = \"Aggregate Report\";\n }\n setTimeout(() => {\n this.dorsey.generateReportExcel(allData1, allData, image, this.companyName + '_Frustrations severity' + \"_\" + (new Date().getMonth() + 1) + '-' + new Date().getDate() + '-' + new Date().getFullYear(), 'Frustrations severity', \"Company: \" + this.companyName, \"Team: \" + name, \"Frustrations severity Report\", copyRight, 'FFFFFF00', 'FF0000FF');\n }, 2000);\n\n }\n\n getData(data) {\n const dialogRef = this.dialog.open(ReportSeverityDialogComponent, {\n width: '650px',\n data: { data: data }\n });\n dialogRef.afterClosed().subscribe(result => {\n });\n }\n}\n\n@Component({\n selector: 'app-dialog',\n templateUrl: './dialog.html',\n // styleUrls: ['dialog.css']\n})\nexport class ReportSeverityDialogComponent implements OnInit {\n\n data: any;\n constructor(\n public dialogRef: MatDialogRef<ReportSeverityDialogComponent>,\n @Inject(MAT_DIALOG_DATA) public dialogData: any) { }\n ngOnInit() {\n this.data = this.dialogData.data;\n }\n close(): void {\n this.dialogRef.close();\n }\n}\n","import { Component, OnInit, Inject, ElementRef, ViewChild } from '@angular/core';\nimport { DorseyService } from '../dorsey.service';\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\nimport * as c3 from 'c3';\nimport * as d3 from 'd3';\nimport { LocalStorageService } from 'ngx-webstorage';\nimport htmlToImage from 'html-to-image';\nimport { toBase64String } from '@angular/compiler/src/output/source_map';\nimport { EmployeeLoginLevel } from '../common/models/login-level.model'\nimport { ScoreCardTypeEnum } from '../performance-score-card/performance-score-card.model';\nimport { Department } from '../departments/department.model';\nimport { DepartmentService } from '../services/department.service';\nimport { copyRight } from '../copyRight.model';\n@Component({\n selector: 'app-report-metric-process',\n templateUrl: './report-metric-process.component.html',\n // styleUrls: ['./report-metric-process.component.scss'],\n providers: [DorseyService],\n inputs: ['dashboardMetric', 'dashboardMe', 'dashboardTeam']\n\n})\nexport class ReportMetricProcessComponent implements OnInit {\n copyRight: string = copyRight;\n isDisable = false;\n disableSearch = false;\n processData: any;\n pointerData: any;\n frustrationData: any;\n frustData = [];\n frust = [];\n view = {};\n dataSource: Object;\n searchtext: string = '';\n totalCount = 0;\n dashboardMetric = true;\n dashboardMe = true;\n categories = [];\n warningMsg = '';\n p: number = 1;\n rowsOnPage = 5;\n rowsOnPageSet = [];\n rowCount: any;\n dynamicRows = 5;\n activityPaging = false;\n\n metricList = [];\n CompanyID: string;\n selectedDepartmentId: number;\n saveFilter: any;\n metricbykeyprocess: any;\n wrng: any;\n UserTeamID: string;\n teamData: any;\n EmployeeID: string;\n TeamID: any;\n dashboardTeam: any;\n tempTeam = [];\n companyName: string;\n TeamName: string;\n headerDate = new Date();\n employeeData: any;\n copyDate: number;\n isDesc: boolean = false;\n column = \"\";\n direction: number;\n arrow = true;\n loginCompanyName: string;\n image: any;\n imageurl: string;\n departmentName: string;\n\n departmentList: Array<Department> = [];\n employeeDetails: any;\n scoreCardTypes: string[] = [ScoreCardTypeEnum.Department, ScoreCardTypeEnum.Team];\n selectedReportType: string;\n toggleTeam: boolean = false;\n constructor(\n private dorseyService: DorseyService,\n private dialog: MatDialog,\n private storage: LocalStorageService,\n private departmentService: DepartmentService) {\n\n this.loginCompanyName = sessionStorage.getItem('loginCompanyName');\n this.metricList = [];\n this.EmployeeID = this.storage.retrieve('EmployeeID');\n this.companyName = this.storage.retrieve('LoginCompanyName');\n this.employeeDetails = this.storage.retrieve('employeeDetails');\n if (this.EmployeeID === undefined) {\n this.EmployeeID = \"0\";\n }\n if (this.EmployeeID.toString() === \"0\") {\n\n }\n else {\n this.TeamID = this.storage.retrieve('TeamID');\n }\n }\n\n\n ngOnInit() {\n this.CompanyID = this.storage.retrieve('companyID');\n this.warningMsg = '';\n if (this.employeeDetails) {\n if ((this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Department) || (this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Team)) {\n this.toggleTeam = true;\n this.getTeamsByDepartmentId(this.employeeDetails.DepartmentID)\n }\n else {\n if (!this.dashboardTeam)\n this.reportTypeChange(ScoreCardTypeEnum.Department)\n else\n this.getTeamsByDepartmentId(0)\n }\n }\n\n else {\n if (!this.dashboardTeam)\n this.reportTypeChange(ScoreCardTypeEnum.Department)\n else\n this.getTeamsByDepartmentId(0)\n }\n this.copyDate = (new Date()).getFullYear();\n }\n private getDepartments(): void {\n this.departmentService.getDepartments(Number(this.CompanyID)).subscribe(resp => {\n this.departmentList = resp.Data;\n if (this.employeeDetails) {\n\n if (this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Department) {\n this.departmentList = this.departmentList.filter(ent => ent.DepartmentID === this.employeeDetails.DepartmentID);\n }\n else if (this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Team) {\n this.departmentList = this.departmentList.filter(ent => ent.DepartmentID === this.employeeDetails.DepartmentID);\n this.getTeamsByDepartmentId(this.employeeDetails.DepartmentID);\n }\n }\n this.departmentList.splice(0, 0, { DepartmentID: 0, DepartmentName: 'Aggregate Report', DepartmentDescription: '0', CompanyID: Number(this.CompanyID), CreatedBy: '', UpdatedBy: '' });\n });\n }\n private getTeamsByDepartmentId(selectedDepartmentId): void {\n this.dorseyService.GetTeam(this.CompanyID.toString()).subscribe(resp => {\n var companyTeamList = JSON.parse(resp['_body']);\n this.teamData = companyTeamList;\n if (this.employeeDetails && companyTeamList) {\n if (this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Department) {\n this.teamData = this.teamData.filter(ent => ent.DepartmentID === this.employeeDetails.DepartmentID);\n }\n else if (this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Team) {\n this.teamData = this.teamData.filter(ent => ent.DepartmentID === this.employeeDetails.DepartmentID && ent.TeamID == this.employeeDetails.TeamID);\n this.selectedDepartmentId = this.teamData[0].DepartmentID;\n this.TeamID = this.teamData[0].TeamID;\n this.TeamName = this.teamData[0].TeamName;\n }\n else {\n if (!selectedDepartmentId) {\n this.selectedDepartmentId = 0;\n this.teamData = companyTeamList;\n }\n else if (selectedDepartmentId == 0) {\n this.teamData = companyTeamList;\n }\n else {\n this.teamData = this.teamData.filter(ent => ent.DepartmentID === selectedDepartmentId);\n }\n }\n }\n else {\n if (selectedDepartmentId == 0)\n this.teamData = companyTeamList;\n else\n this.teamData = companyTeamList.filter(ent => ent.DepartmentID === selectedDepartmentId);\n }\n\n if (this.dashboardTeam !== undefined) {\n this.TeamID = this.dashboardTeam;\n }\n else if (this.employeeDetails && this.employeeDetails.IsEmployeeLoginLevel === EmployeeLoginLevel.Team) {\n this.TeamID = this.TeamID;\n }\n else {\n this.TeamID = 0;\n }\n\n this.dorseyService.GetPointer(this.CompanyID).subscribe(pointer => {\n this.pointerData = JSON.parse(pointer['_body']);\n if (this.TeamID == 0) {\n this.teamData = this.teamData.filter(entity1 => this.pointerData.find(entity2 => entity1.TeamID == entity2.TeamID && entity2.PointerTypeID == 2));\n this.teamData.splice(0, 0, { TeamID: 0, TeamName: 'Aggregate Report' });\n }\n this.ConstructReport();\n });\n });\n }\n sort(property) {\n this.arrow = !this.arrow;\n this.isDesc = !this.isDesc; //change the direction\n this.column = property;\n this.direction = this.isDesc ? 1 : -1;\n }\n ConstructReport() {\n this.metricList = [];\n this.frustData = [];\n this.categories = [];\n this.frust = [];\n this.rowsOnPageSet = [];\n this.rowsOnPage = 5;\n this.dynamicRows = 5;\n this.warningMsg = '';\n var values = [];\n var perito = [];\n var sum = 0;\n this.dorseyService.GetPointer(this.CompanyID).subscribe(pointer => {\n this.pointerData = JSON.parse(pointer['_body']);\n if (this.TeamID == 0)\n this.pointerData = this.pointerData.filter(entity1 => this.teamData.find(entity2 => entity1.TeamID == entity2.TeamID) && entity1.PointerTypeID == 2);\n else {\n this.pointerData = this.pointerData.filter(entity1 => entity1.TeamID == this.TeamID && entity1.PointerTypeID == 2);\n }\n this.totalCount = this.pointerData.length;\n this.dorseyService.GetProcess(this.CompanyID).subscribe(process => {\n this.processData = JSON.parse(process['_body'])\n if (this.TeamID == 0)\n this.processData = this.processData.filter(entity1 => this.teamData.find(entity2 => entity1.TeamID == entity2.TeamID));\n else {\n this.processData = this.processData.filter(entity1 => entity1.TeamID == this.TeamID);\n }\n if (this.totalCount) {\n for (let i = 0; i < this.processData.length; i++) {\n let data = this.pointerData.filter(x => x.ProcessID === this.processData[i].ProcessID);\n if (data.length > 0) {\n if (Object.keys(this.categories).indexOf(this.processData[i].ProcessName) > -1) {\n this.categories[this.processData[i].ProcessID] = data.length;\n }\n else {\n this.categories[this.processData[i].ProcessName] = data.length;\n }\n for (let li = 0; li < data.length; li++) {\n this.metricList.push(data[li]);\n }\n sum = sum + data.length;\n this.frustData.push(data);\n this.view['CategoryName'] = this.processData[i].ProcessName;\n this.frust.push({\n 'data': data,\n 'label': this.processData[i].ProcessName,\n 'value': data.length\n });\n this.frust.sort(function (obj1, obj2) {\n\n return obj2.value - obj1.value;\n });\n }\n }\n } else {\n this.warningMsg = 'No data available';\n if (!this.metricList.length || this.metricList.length == 0) {\n this.isDisable = false;\n this.disableSearch = false;\n }\n else {\n this.isDisable = true;\n this.disableSearch = true;\n }\n return;\n }\n\n if (this.metricList.length === 0) {\n this.isDisable = false;\n this.disableSearch = false;\n return;\n }\n else {\n this.isDisable = true;\n this.disableSearch = true;\n }\n\n let sortOrder = this.sortByValue(this.categories);\n let perVal = 0;\n this.categories = [];\n for (let v = 0; v < sortOrder.length; v++) {\n values.push(sortOrder[v][1]);\n\n let processFilter = this.processData.filter(x => x.ProcessID.toString() === sortOrder[v][0].toString());\n\n if (processFilter.length > 0) {\n this.categories.push(processFilter[0].ProcessName);\n }\n else {\n this.categories.push(sortOrder[v][0]);\n }\n perVal = perVal + sortOrder[v][1];\n perito.push((perVal / sum));\n }\n var obj = {\n 'Metric Count': values,\n 'Cumulative percentage': perito\n };\n\n\n\n let chart = c3.generate({\n bindto: '#chartMetric',\n data: {\n json: obj,\n axes: {\n\n 'Cumulative percentage': 'y2'\n },\n type: 'bar',\n types: {\n\n 'Cumulative percentage': 'line',\n\n }, groups: [\n ['Metric Count', 'Cumulative percentage']\n ]\n },\n\n title: {\n text: \"Key Process\",\n padding: {\n top: 20,\n right: 20,\n bottom: 40,\n left: 50\n }\n },\n color: {\n pattern: ['#4aabe7', '#d55632']\n },\n legend: {\n show: true,\n position: \"right\"\n\n },\n axis: {\n x: {\n type: 'category',\n categories: this.categories,\n tick: {\n rotate: 50,\n multiline: false\n },\n height: 100\n },\n y: {\n label: 'Metric Count',\n tick: {\n format: d3.format('d'),\n values: d3.ticks(0, sortOrder[0][1], sortOrder[0][1])\n }\n },\n y2: {\n show: true,\n label: 'Cumulative percentage',\n max: 1,\n min: 0,\n padding: { top: 3, bottom: 0 },\n tick: {\n format: d3.format(',.0%')\n }\n },\n }\n });\n this.rowCount = this.metricList.length;\n if (this.metricList.length === 0) {\n this.activityPaging = false;\n }\n else {\n this.saveFilter = JSON.parse(JSON.stringify(this.metricList));\n this.activityPaging = true;\n this.rowsOnPageSet = [];\n while (this.dynamicRows < this.rowCount) {\n this.rowsOnPageSet.push(this.dynamicRows);\n this.dynamicRows = this.dynamicRows + 10;\n }\n if (!this.rowsOnPageSet.includes(this.rowCount)) this.rowsOnPageSet.push(this.rowCount);\n if (this.rowsOnPageSet.length === 1) {\n if (this.rowsOnPageSet[0] <= 10)\n this.rowsOnPage = this.rowsOnPageSet[0];\n }\n }\n });\n });\n\n }\n\n Searchtext() {\n this.metricbykeyprocess = this.saveFilter;\n let tempmetricbykeyprocess = this.metricbykeyprocess.filter(\n (item) => {\n return (\n (item.TeamName !== null && item.TeamName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n (item.DepartmentName !== null && item.DepartmentName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n (item.ProcessName !== null && item.ProcessName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n (item.ActivityName !== null && item.ActivityName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n (item.GoalName !== null && item.GoalName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1)) ||\n (item.Description != null && item.Description.toLowerCase().indexOf(this.searchtext.toLowerCase()) > -1)\n }\n );\n\n this.metricList = tempmetricbykeyprocess;\n if (this.metricList.length == 0) {\n setTimeout(() => {\n this.wrng = \"No data available\";\n }, 100);\n this.isDisable = false;\n return;\n } else {\n this.isDisable = true;\n }\n if (this.searchtext === '') {\n this.metricbykeyprocess = this.saveFilter;\n this.dynamicRows = 5;\n this.rowsOnPageSet = [];\n this.rowCount = this.metricbykeyprocess.length;\n while (this.dynamicRows < this.rowCount) {\n this.rowsOnPageSet.push(this.dynamicRows);\n this.dynamicRows = this.dynamicRows + 5;\n }\n if (!this.rowsOnPageSet.includes(this.rowCount))\n this.rowsOnPageSet.push(this.rowCount);\n if (this.rowsOnPageSet) {\n\n this.rowsOnPage = this.rowsOnPageSet[0];\n }\n this.isDisable = true;\n } else {\n this.rowCount = tempmetricbykeyprocess.length;\n this.dynamicRows = 5;\n this.rowsOnPageSet = [];\n while (this.dynamicRows < this.rowCount) {\n this.rowsOnPageSet.push(this.dynamicRows);\n this.dynamicRows = this.dynamicRows + 5;\n }\n if (!this.rowsOnPageSet.includes(this.rowCount)) {\n this.rowsOnPageSet.push(this.rowCount);\n if (this.rowsOnPageSet)\n this.rowsOnPage = this.rowsOnPageSet[0];\n }\n if (this.rowsOnPageSet.length === 1) {\n if (this.rowsOnPageSet[0] <= 5)\n this.rowsOnPage = this.rowsOnPageSet[0];\n }\n }\n }\n\n exportAsXLSX(): void {\n let allData = JSON.parse(JSON.stringify(this.metricList));\n for (let i = 0; i < allData.length; i++) {\n allData[i][\" No. \"] = i + 1;\n if (this.selectedReportType === ScoreCardTypeEnum.Department) {\n allData[i][\"Department\"] = this.metricList[i].DepartmentName;\n }\n allData[i].Team = this.metricList[i].TeamName;\n allData[i].Process = this.metricList[i].ProcessName;\n allData[i].Activity = this.metricList[i].ActivityName;\n allData[i][\" Goal \"] = this.metricList[i].GoalName;\n allData[i][\" Metric \"] = this.metricList[i].Description;\n\n delete (allData[i].DepartmentName);\n delete (allData[i].EmployeeName);\n delete (allData[i].VersionID);\n delete (allData[i].GoalID);\n delete (allData[i].GoalName);\n delete (allData[i].GreenRange);\n delete (allData[i].RedRange);\n delete (allData[i].YellowRange);\n delete (allData[i].ProcessName);\n delete (allData[i].ActivityName);\n delete (allData[i].Target);\n delete (allData[i].Source);\n delete (allData[i].TeamName);\n delete (allData[i].FrustrationsTypeName);\n delete (allData[i].Subject);\n delete (allData[i].Description);\n delete (allData[i].UOM);\n delete (allData[i].Target);\n delete (allData[i].StatusName);\n delete (allData[i].SeverityName);\n delete (allData[i].ProjectName);\n delete (allData[i].PointerID);\n delete (allData[i].ActivityID);\n delete (allData[i].PointerTypeID);\n delete (allData[i].CompanyID);\n delete (allData[i].EmployeeID);\n delete (allData[i].Type);\n delete (allData[i].StatusID);\n delete (allData[i].SeverityID);\n delete (allData[i].ProcessID);\n delete (allData[i].DepartmentID);\n delete (allData[i].TeamID);\n delete (allData[i].FrustrationsTypeID);\n delete (allData[i].Date);\n delete (allData[i].IsActive);\n delete (allData[i].CreatedDate);\n delete (allData[i].CreatedBy);\n delete (allData[i].UpdatedDate);\n delete (allData[i].UpdatedBy);\n delete (allData[i].ProjectID);\n }\n let allData1 = JSON.parse(JSON.stringify(this.frust));\n for (let i = 0; i < allData1.length; i++) {\n allData1[i].label = this.frust[i].label;\n allData1[i].value = this.frust[i].value;\n delete (allData1[i].data);\n }\n let Cumulative = document.getElementById('chartMetric').querySelector('svg').querySelectorAll('.c3-target-Cumulative-percentage');\n let Cumulativecircle = document.getElementById('chartMetric').querySelector('svg').querySelectorAll('.c3-circle');\n let circle = Array.from(Cumulativecircle);\n circle.forEach(function (element) {\n element.setAttribute(\"style\", \"fill:#e75632\")\n })\n let cumulativegraph = Array.from(Cumulative)\n cumulativegraph.forEach(function (element) {\n element.setAttribute(\"style\", \"fill:none\")\n })\n\n let image = '';\n htmlToImage.toPng(document.getElementById('chartMetric'),)\n .then(function (dataUrl) {\n var img = new Image();\n img.src = dataUrl;\n\n image = dataUrl;\n });\n\n\n let name: any;\n if (this.selectedReportType == ScoreCardTypeEnum.Department && this.departmentName) {\n name = this.departmentName;\n } else if ((!this.selectedReportType || this.selectedReportType == ScoreCardTypeEnum.Team) && this.TeamName) {\n name = this.TeamName;\n } else {\n name = \"Aggregate Report\";\n }\n setTimeout(() => {\n this.dorseyService.generateReportExcel(allData1,\n allData,\n image,\n this.loginCompanyName + '_Metric by process' + \"_\" + (new Date().getMonth() + 1) + '-' + new Date().getDate() + '-' + new Date().getFullYear(),\n 'Metric by process',\n \"Company: \" + this.loginCompanyName,\n this.selectedReportType ? this.selectedReportType + \": \" + name : 'Team' + \": \" + name,\n \"Metric by process Report\",\n copyRight,\n 'FFFFFF00',\n 'FF0000FF');\n }, 2000);\n }\n teamChange(event): void {\n this.searchtext = '';\n this.selectedDepartmentId = 0;\n this.TeamID = event.value;\n let teamd = this.teamData.filter(x => x.TeamID === this.TeamID)\n if (teamd.length > 0) {\n this.TeamName = teamd[0].TeamName;\n }\n this.ConstructReport();\n }\n reportTypeChange(scoreCardType: string): void {\n this.searchtext = '';\n this.departmentList = [];\n this.teamData = [];\n this.selectedDepartmentId = 0;\n this.selectedReportType = scoreCardType;\n this.toggleTeam = scoreCardType === ScoreCardTypeEnum.Department ? false : true;\n this.getDepartments();\n this.getTeamsByDepartmentId(this.selectedDepartmentId);\n }\n\n departmentChange(selectedDepartmentId): void {\n this.searchtext = '';\n this.getTeamsByDepartmentId(selectedDepartmentId);\n\n this.departmentName = this.departmentList.find(ent => ent.DepartmentID === selectedDepartmentId).DepartmentName;\n }\n\n sortByValue(jsObj) {\n var items = Object.keys(jsObj).map(function (key) {\n return [key, jsObj[key]];\n });\n // Sort the array based on the second element\n items.sort(function (first, second) {\n return second[1] - first[1];\n });\n return items;\n }\n getData(data) {\n const dialogRef = this.dialog.open(ReportMetricDialogComponent, {\n width: '650px',\n data: { data: data }\n });\n dialogRef.afterClosed().subscribe(result => {\n\n });\n }\n}\n\n@Component({\n selector: 'app-dialog',\n templateUrl: './dialog.html',\n // styleUrls: ['dialog.css']\n})\nexport class ReportMetricDialogComponent implements OnInit {\n data: any;\n constructor(\n public dialogRef: MatDialogRef<ReportMetricDialogComponent>,\n @Inject(MAT_DIALOG_DATA) public dialogData: any) { }\n\n ngOnInit() {\n this.data = this.dialogData.data;\n }\n close(): void {\n this.dialogRef.close();\n }\n}\n","import { Component, OnInit, Inject } from '@angular/core';\nimport { DorseyService } from '../dorsey.service';\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\nimport * as c3 from 'c3';\nimport * as d3 from 'd3';\nimport { LocalStorageService } from 'ngx-webstorage';\nimport { tickStep } from 'd3';\nimport htmlToImage from 'html-to-image';\nimport { EmployeeLoginLevel } from '../common/models/login-level.model';\nimport { Department } from '../departments/department.model';\nimport { ScoreCardTypeEnum } from '../performance-score-card/performance-score-card.model';\nimport { DepartmentService } from '../services/department.service';\nimport { copyRight } from '../copyRight.model';\n\n@Component({\n selector: 'app-report-process',\n templateUrl: './report-process.component.html',\n // styleUrls: ['./report-process.component.scss'],\n providers: [DorseyService],\n inputs: ['dashboardProcess', 'dashboardPr', 'dashboardTeamPr']\n})\nexport class ReportProcessComponent implements OnInit {\n copyRight: string = copyRight;\n departmentList: Array<Department> = [];\n employeeDetails: any;\n scoreCardTypes: string[] = [ScoreCardTypeEnum.Department, ScoreCardTypeEnum.Team];\n\n processData: any;\n activityData: any;\n pointerData: any;\n frustrationData: any;\n selectedDepartmentId: number;\n frustData = [];\n frust = [];\n view = {};\n dataSource: Object;\n totalCount = 0;\n dashboardProcess = true;\n dashboard = true;\n categories = [];\n warningMsg = '';\n dashboardPr = true;\n departmentName: string;\n p: number = 1;\n rowsOnPage = 5;\n rowsOnPageSet = [];\n rowCount: any;\n dynamicRows = 5;\n activityPaging = false;\n metricList = [];\n selectedReportType: string;\n CompanyID: string;\n isDisable = false;\n saveFilter = [];\n searchtext: string = '';\n frustrationbyprocess: any[];\n wrng: string;\n disableSearch = false;\n toggleTeam: boolean = false;\n UserTeamID: string;\n teamData: any;\n TeamID: any;\n selected: any;\n dashboardTeamPr: any;\n EmployeeID: string;\n tempTeam = [];\n companyName: string;\n headerDate = new Date();\n TeamName: string;\n employeeData: any;\n copyDate: number;\n isDesc: boolean = false;\n column = \"\";\n direction: number;\n arrow = true;\n constructor(private dorseyService: DorseyService,\n private departmentService: DepartmentService, private dialog: MatDialog, private storage: LocalStorageService) {\n\n this.metricList = [];\n this.companyName = sessionStorage.getItem('loginCompanyName');\n this.EmployeeID = this.storage.retrieve('EmployeeID');\n this.employeeDetails = this.storage.retrieve('employeeDetails');\n\n if (this.EmployeeID.toString() === \"0\") {\n\n }\n else {\n this.TeamID = this.storage.retrieve('TeamID');\n }\n\n }\n\n\n ngOnInit() {\n\n this.CompanyID = this.storage.retrieve('companyID');\n this.warningMsg = '';\n\n if (this.employeeDetails) {\n\n if ((this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Department) || (this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Team)) {\n this.toggleTeam = true;\n\n this.getTeamsByDepartmentId(this.employeeDetails.DepartmentID)\n }\n else {\n if (!this.dashboardTeamPr)\n\n this.reportTypeChange(ScoreCardTypeEnum.Department)\n\n else\n this.getTeamsByDepartmentId(0)\n\n\n }\n }\n else {\n if (!this.dashboardTeamPr)\n\n this.reportTypeChange(ScoreCardTypeEnum.Department)\n\n else\n this.getTeamsByDepartmentId(0)\n\n }\n\n\n this.copyDate = (new Date()).getFullYear();\n\n }\n teamChange(event): void {\n this.searchtext = '';\n this.selectedDepartmentId = 0;\n\n this.TeamID = event.value;\n\n let teamd = this.teamData.filter(x => x.TeamID === this.TeamID)\n\n if (teamd.length > 0) {\n this.TeamName = teamd[0].TeamName;\n }\n this.ConstructReport();\n }\n reportTypeChange(scoreCardType: string): void {\n this.searchtext = '';\n this.departmentList = [];\n this.teamData = [];\n this.selectedDepartmentId = 0;\n this.selectedReportType = scoreCardType;\n this.toggleTeam = scoreCardType === ScoreCardTypeEnum.Department ? false : true;\n this.getDepartments();\n this.getTeamsByDepartmentId(this.selectedDepartmentId);\n\n }\n\n departmentChange(selectedDepartmentId): void {\n this.searchtext = '';\n this.getTeamsByDepartmentId(selectedDepartmentId);\n\n this.departmentName = this.departmentList.find(ent => ent.DepartmentID === selectedDepartmentId).DepartmentName;\n }\n\n private getDepartments(): void {\n this.departmentService.getDepartments(Number(this.CompanyID)).subscribe(resp => {\n this.departmentList = resp.Data;\n if (this.employeeDetails) {\n\n if (this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Department) {\n this.departmentList = this.departmentList.filter(ent => ent.DepartmentID === this.employeeDetails.DepartmentID);\n }\n else if (this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Team) {\n this.departmentList = this.departmentList.filter(ent => ent.DepartmentID === this.employeeDetails.DepartmentID);\n this.getTeamsByDepartmentId(this.employeeDetails.DepartmentID);\n }\n\n }\n this.departmentList.splice(0, 0, { DepartmentID: 0, DepartmentName: 'Aggregate Report', DepartmentDescription: '0', CompanyID: Number(this.CompanyID), CreatedBy: '', UpdatedBy: '' });\n });\n }\n\n private getTeamsByDepartmentId(selectedDepartmentId): void {\n\n this.dorseyService.GetTeam(this.CompanyID.toString()).subscribe(resp => {\n var companyTeamList = JSON.parse(resp['_body']);\n this.teamData = companyTeamList;\n\n if (this.employeeDetails && companyTeamList) {\n if (this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Department) {\n this.teamData = this.teamData.filter(ent => ent.DepartmentID === this.employeeDetails.DepartmentID);\n }\n else if (this.employeeDetails.IsEmployeeLoginLevel == EmployeeLoginLevel.Team) {\n this.teamData = this.teamData.filter(ent => ent.DepartmentID === this.employeeDetails.DepartmentID && ent.TeamID == this.employeeDetails.TeamID);\n this.selectedDepartmentId = this.teamData[0].DepartmentID;\n this.TeamID = this.teamData[0].TeamID;\n }\n else {\n\n if (!selectedDepartmentId) {\n this.selectedDepartmentId = 0;\n this.teamData = companyTeamList;\n }\n else if (selectedDepartmentId == 0) {\n this.teamData = companyTeamList;\n }\n else {\n this.teamData = this.teamData.filter(ent => ent.DepartmentID === selectedDepartmentId);\n }\n\n }\n }\n else {\n if (selectedDepartmentId == 0)\n this.teamData = companyTeamList;\n else\n\n this.teamData = companyTeamList.filter(ent => ent.DepartmentID === selectedDepartmentId);\n }\n\n if (this.dashboardTeamPr !== undefined) {\n this.TeamID = this.dashboardTeamPr;\n }\n else if (this.employeeDetails && this.employeeDetails.IsEmployeeLoginLevel === EmployeeLoginLevel.Team) {\n this.TeamID = this.TeamID;\n }\n else {\n this.TeamID = 0;\n\n }\n\n this.dorseyService.GetPointer(this.CompanyID).subscribe(pointer => {\n this.pointerData = JSON.parse(pointer['_body']);\n\n if (this.TeamID == 0) {\n this.teamData = this.teamData.filter(entity1 => this.pointerData.find(entity2 => entity1.TeamID == entity2.TeamID && entity2.PointerTypeID == 1));\n\n this.teamData.splice(0, 0, { TeamID: 0, TeamName: 'Aggregate Report' });\n }\n\n this.ConstructReport();\n\n });\n\n });\n }\n\n\n sort(property) {\n this.arrow = !this.arrow;\n this.isDesc = !this.isDesc; //change the direction\n this.column = property;\n this.direction = this.isDesc ? 1 : -1;\n }\n\n\n Searchtext() {\n this.frustrationbyprocess = this.saveFilter;\n\n let tempfrustrationbyprocess = this.frustrationbyprocess.filter(\n (item) => {\n return (\n (item.ProcessName !== null && item.ProcessName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n (item.ActivityName !== null && item.ActivityName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n (item.FrustrationsTypeName !== null && item.FrustrationsTypeName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n (item.Subject !== null && item.Subject.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n (item.Description !== null && item.Description.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n (item.StatusName !== null && item.StatusName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n (item.SeverityName !== null && item.SeverityName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n (item.ProjectName !== null && item.ProjectName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1))\n || (item.TeamName !== null && item.TeamName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1)\n\n\n }\n\n );\n\n this.metricList = tempfrustrationbyprocess;\n if (this.metricList.length == 0) {\n this.isDisable = false;\n setTimeout(() => {\n this.wrng = \"No data available\";\n }, 100);\n\n }\n else {\n this.isDisable = true;\n }\n if (this.searchtext === '') {\n this.frustrationbyprocess = this.saveFilter;\n this.dynamicRows = 5;\n this.rowsOnPageSet = [];\n this.rowCount = this.frustrationbyprocess.length;\n while (this.dynamicRows < this.rowCount) {\n this.rowsOnPageSet.push(this.dynamicRows);\n this.dynamicRows = this.dynamicRows + 5;\n }\n if (!this.rowsOnPageSet.includes(this.rowCount))\n this.rowsOnPageSet.push(this.rowCount);\n if (this.rowsOnPageSet) {\n\n this.rowsOnPage = this.rowsOnPageSet[0];\n }\n this.isDisable = true;\n } else {\n this.rowCount = tempfrustrationbyprocess.length;\n this.dynamicRows = 5;\n this.rowsOnPageSet = [];\n while (this.dynamicRows < this.rowCount) {\n this.rowsOnPageSet.push(this.dynamicRows);\n this.dynamicRows = this.dynamicRows + 5;\n }\n if (!this.rowsOnPageSet.includes(this.rowCount)) {\n this.rowsOnPageSet.push(this.rowCount);\n if (this.rowsOnPageSet)\n this.rowsOnPage = this.rowsOnPageSet[0];\n }\n\n if (this.rowsOnPageSet.length === 1) {\n if (this.rowsOnPageSet[0] <= 5)\n this.rowsOnPage = this.rowsOnPageSet[0];\n }\n }\n }\n exportAsXLSX(): void {\n let allData = JSON.parse(JSON.stringify(this.metricList));\n\n for (let i = 0; i < allData.length; i++) {\n\n allData[i][\" No. \"] = i + 1;\n if (this.selectedReportType === ScoreCardTypeEnum.Department) {\n allData[i][\"Department\"] = this.metricList[i].DepartmentName;\n }\n\n allData[i].Team = this.metricList[i].TeamName;\n allData[i].Process = this.metricList[i].ProcessName;\n allData[i].Activity = this.metricList[i].ActivityName;\n allData[i].Team = this.metricList[i].TeamName;\n allData[i][\" Type \"] = this.metricList[i].FrustrationsTypeName;\n allData[i][\" Frustration \"] = this.metricList[i].Subject;\n allData[i][\" Description \"] = this.metricList[i].Description;\n allData[i].Status = this.metricList[i].StatusName;\n\n allData[i].Severity = this.metricList[i].SeverityName;\n allData[i].Project = this.metricList[i].ProjectName;\n\n\n delete (allData[i].DepartmentName);\n delete (allData[i].EmployeeName);\n delete (allData[i].VersionID);\n delete (allData[i].GoalName);\n delete (allData[i].GoalID);\n delete (allData[i].GreenRange);\n delete (allData[i].RedRange);\n\n delete (allData[i].YellowRange);\n\n delete (allData[i].ProcessName);\n delete (allData[i].ActivityName);\n delete (allData[i].Source);\n delete (allData[i].TeamName);\n delete (allData[i].FrustrationsTypeName);\n\n delete (allData[i].Subject);\n delete (allData[i].Description);\n\n delete (allData[i].StatusName);\n delete (allData[i].SeverityName);\n delete (allData[i].ProjectName);\n\n\n delete (allData[i].PointerID);\n delete (allData[i].ActivityID);\n delete (allData[i].PointerTypeID);\n delete (allData[i].CompanyID);\n delete (allData[i].EmployeeID);\n delete (allData[i].UOM);\n delete (allData[i].Target);\n delete (allData[i].Type);\n delete (allData[i].StatusID);\n\n delete (allData[i].SeverityID);\n delete (allData[i].ProcessID);\n delete (allData[i].DepartmentID);\n delete (allData[i].TeamID);\n\n\n delete (allData[i].FrustrationsTypeID);\n delete (allData[i].Date);\n delete (allData[i].IsActive);\n delete (allData[i].CreatedDate);\n\n delete (allData[i].CreatedBy);\n delete (allData[i].UpdatedDate);\n delete (allData[i].UpdatedBy);\n delete (allData[i].ProjectID);\n\n\n }\n\n let allData1 = JSON.parse(JSON.stringify(this.frust));\n\n for (let i = 0; i < allData1.length; i++) {\n // this.frust[i].label = this.frust[i].value;\n allData1[i].label = this.frust[i].label;\n allData1[i].value = this.frust[i].value;\n delete (allData1[i].data);\n }\n\n let Cumulative = document.getElementById('chartProcess').querySelector('svg').querySelectorAll('.c3-target-Cumulative-percentage');\n let Cumulativecircle = document.getElementById('chartProcess').querySelector('svg').querySelectorAll('.c3-circle');\n let circle = Array.from(Cumulativecircle);\n circle.forEach(function (element) {\n element.setAttribute(\"style\", \"fill:#e75632\")\n })\n\n let cumulativegraph = Array.from(Cumulative)\n cumulativegraph.forEach(function (element) {\n element.setAttribute(\"style\", \"fill:none\")\n })\n\n let image = '';\n\n htmlToImage.toPng(document.getElementById('chartProcess'),)\n .then(function (dataUrl) {\n var img = new Image();\n img.src = dataUrl;\n\n image = dataUrl;\n });\n setTimeout(() => {\n\n }, 500);\n\n let name: any;\n if (this.selectedReportType == ScoreCardTypeEnum.Department && this.departmentName) {\n name = this.departmentName;\n } else if ((!this.selectedReportType || this.selectedReportType == ScoreCardTypeEnum.Team) && this.TeamName) {\n name = this.TeamName;\n } else {\n name = \"Aggregate Report\";\n }\n\n setTimeout(() => {\n this.dorseyService.generateReportExcel(allData1, allData, image, this.companyName + '_Frustrations report by process' + \"_\" + (new Date().getMonth() + 1) + '-' + new Date().getDate() + '-' + new Date().getFullYear(), 'Frustrations report by process', \"Company: \" + this.companyName, this.selectedReportType ? this.selectedReportType + \": \" + name : 'Team' + \": \" + name, \"Frustrations report by process Report\", copyRight, 'FFFFFF00', 'FF0000FF');\n }, 2000);\n\n }\n\n ConstructReport() {\n this.metricList = [];\n this.frustData = [];\n this.categories = [];\n this.frust = [];\n this.rowsOnPageSet = [];\n this.rowsOnPage = 5;\n this.warningMsg = '';\n this.dynamicRows = 5;\n var values = [];\n var perito = [];\n var sum = 0;\n let procData: any;\n this.dorseyService.GetPointer(this.CompanyID).subscribe(pointer => {\n this.pointerData = JSON.parse(pointer['_body']);\n\n if (this.TeamID == 0)\n this.pointerData = this.pointerData.filter(entity1 => this.teamData.find(entity2 => entity1.TeamID == entity2.TeamID) && entity1.PointerTypeID == 1);\n else {\n this.pointerData = this.pointerData.filter(entity1 => entity1.TeamID == this.TeamID && entity1.PointerTypeID == 1);\n }\n\n this.totalCount = this.pointerData.length;\n\n this.dorseyService.GetProcess(this.CompanyID).subscribe(process => {\n this.processData = JSON.parse(process['_body'])\n if (this.TeamID == 0)\n this.processData = this.processData.filter(entity1 => this.teamData.find(entity2 => entity1.TeamID == entity2.TeamID));\n else {\n this.processData = this.processData.filter(entity1 => entity1.TeamID == this.TeamID);\n }\n\n if (this.totalCount) {\n\n for (let i = 0; i < this.processData.length; i++) {\n let data = this.pointerData.filter(x => x.ProcessID === this.processData[i].ProcessID);\n if (data.length > 0) {\n\n if (this.totalCount) {\n this.frustData.push(data);\n this.view['CategoryName'] = this.processData[i].ProcessName;\n if (Object.keys(this.categories).indexOf(this.processData[i].ProcessName) > -1) {\n this.categories[this.processData[i].ProcessID] = data.length;\n }\n else {\n this.categories[this.processData[i].ProcessName] = data.length;\n }\n\n for (let li = 0; li < data.length; li++) {\n this.metricList.push(data[li]);\n }\n sum = sum + data.length;\n this.frust.push({\n data: data,\n label: this.processData[i].ProcessName,\n value: data.length\n });\n\n this.frust.sort(function (obj1, obj2) {\n\n return obj2.value - obj1.value;\n });\n\n }\n\n }\n }\n } else {\n this.warningMsg = 'No data available';\n\n if (!this.metricList.length) {\n this.isDisable = false;\n this.disableSearch = false;\n }\n else {\n this.isDisable = true;\n this.disableSearch = true;\n }\n return;\n }\n\n if (this.metricList.length === 0) {\n this.isDisable = false;\n this.disableSearch = false;\n return;\n }\n else {\n this.isDisable = true;\n this.disableSearch = true;\n }\n\n let sortOrder = this.sortByValue(this.categories);\n\n let perVal = 0;\n this.categories = [];\n\n for (let v = 0; v < sortOrder.length; v++) {\n values.push(sortOrder[v][1]);\n\n let processFilter = this.processData.filter(x => x.ProcessID.toString() === sortOrder[v][0].toString());\n if (processFilter.length > 0) {\n this.categories.push(processFilter[0].ProcessName);\n }\n else {\n this.categories.push(sortOrder[v][0]);\n }\n perVal = perVal + sortOrder[v][1];\n perito.push((perVal / sum));\n }\n\n\n var obj = {\n 'Frustration Count': values,\n 'Cumulative percentage': perito\n };\n\n let chart = c3.generate({\n bindto: '#chartProcess',\n data: {\n json: obj,\n axes: {\n 'Cumulative percentage': 'y2'\n },\n type: 'bar',\n types: {\n\n 'Cumulative percentage': 'line',\n\n }, groups: [\n ['Frustration Count', 'Cumulative percentage']\n ]\n\n\n },\n\n title: {\n text: \"Processes\",\n padding: {\n top: 20,\n right: 20,\n bottom: 40,\n left: 50\n }\n },\n color: {\n pattern: ['#4aabe7', '#d55632']\n },\n legend: {\n show: true,\n position: \"right\"\n\n },\n\n axis: {\n x: {\n type: 'category',\n // label: 'Processes',\n\n // label: {\n // text: 'Processes',\n // position: 'outer-center'\n // },\n categories: this.categories,\n tick: {\n rotate: 50,\n multiline: false\n // multiline: true,\n // multilineMax:2\n },\n\n height: 100,\n },\n\n y: {\n //max :10,\n label: 'Frustration Count',\n tick: {\n\n\n format: d3.format('d'),\n //values: d3.ticks(0,values[0],values[0]/5)\n values: d3.ticks(0, sortOrder[0][1], sortOrder[0][1])\n }\n },\n y2: {\n show: true,\n label: 'Cumulative percentage',\n max: 1,\n min: 0,\n padding: { top: 3, bottom: 0 },\n tick: {\n format: d3.format(',.0%')\n }\n\n },\n\n }\n\n });\n this.rowCount = this.metricList.length;\n if (this.metricList.length === 0) {\n this.activityPaging = false;\n }\n else {\n this.saveFilter = JSON.parse(JSON.stringify(this.metricList));\n\n this.activityPaging = true;\n\n while (this.dynamicRows < this.rowCount) {\n this.rowsOnPageSet.push(this.dynamicRows);\n this.dynamicRows = this.dynamicRows + 10;\n }\n if (!this.rowsOnPageSet.includes(this.rowCount)) this.rowsOnPageSet.push(this.rowCount);\n if (this.rowsOnPageSet.length === 1) {\n if (this.rowsOnPageSet[0] <= 10)\n this.rowsOnPage = this.rowsOnPageSet[0];\n }\n\n }\n\n });\n\n\n });\n\n }\n\n\n sortByValue(jsObj) {\n var items = Object.keys(jsObj).map(function (key) {\n return [key, jsObj[key]];\n });\n items.sort(function (first, second) {\n return second[1] - first[1];\n });\n\n return items;\n\n }\n getData(data) {\n\n const dialogRef = this.dialog.open(ReportProcessDialogComponent, {\n width: '650px',\n data: { data: data }\n });\n\n dialogRef.afterClosed().subscribe(result => {\n\n });\n\n }\n}\n\n\n@Component({\n selector: 'app-dialog',\n templateUrl: './dialog.html',\n // styleUrls: ['dialog.css']\n})\nexport class ReportProcessDialogComponent implements OnInit {\n\n data: any;\n constructor(\n public dialogRef: MatDialogRef<ReportProcessDialogComponent>,\n @Inject(MAT_DIALOG_DATA) public dialogData: any) { }\n\n ngOnInit() {\n this.data = this.dialogData.data;\n\n }\n\n close(): void {\n this.dialogRef.close();\n }\n\n}\n","import { Component, OnInit, Inject } from '@angular/core';\nimport { DorseyService } from '../dorsey.service';\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\nimport * as c3 from 'c3';\nimport * as d3 from 'd3';\nimport { LocalStorageService } from 'ngx-webstorage';\nimport htmlToImage from 'html-to-image';\nimport { copyRight } from '../copyRight.model';\n\n@Component({\n selector: 'app-report-project',\n templateUrl: './report-project.component.html',\n // styleUrls: ['./report-project.component.scss'],\n providers: [DorseyService],\n inputs: ['dashboardProject', 'dashboardPro']\n})\nexport class ReportProjectComponent implements OnInit {\n copyRight: string = copyRight;\n pointerData: any;\n projectData: any;\n projectStatusData: any;\n\n frustData = [];\n frust = [];\n view = {};\n dataSource: Object;\n filterProjectData = [];\n searchtext: string = '';\n issueData: any;\n issueList = [];\n finalList = [];\n categories = [];\n totalCount = 0;\n dashboardProject = true;\n dashboardPro = true;\n warningMsg = '';\n p: number = 1;\n rowsOnPage = 10;\n rowsOnPageSet = [];\n rowCount: any;\n dynamicRows = 10;\n activityPaging = false;\n CompanyID: string;\n saveFilter: any;\n isDisable = false;\n projectbyStatus: any;\n wrng: string;\n disableSearch = false;\n UserTeamID: string;\n companyName: string;\n headerDate = new Date();\n copyDate: number;\n isDesc: boolean = false;\n column = \"\";\n direction: number;\n arrow = true;\n\n TeamName: string;\n EmployeeID: string;\n constructor(private dorseyService: DorseyService, private dialog: MatDialog, private storage: LocalStorageService) {\n this.UserTeamID = this.storage.retrieve('TeamID');\n this.companyName = sessionStorage.getItem('loginCompanyName');\n this.EmployeeID = this.storage.retrieve('EmployeeID');\n }\n\n ngOnInit() {\n this.CompanyID = this.storage.retrieve('companyID');\n this.GetPointer();\n this.GetProjects();\n this.GetProjectStatus();\n this.copyDate = (new Date()).getFullYear();\n }\n GetPointer() {\n this.finalList = [];\n this.GetProjects();\n this.dorseyService.GetPointer(this.CompanyID).subscribe(pointer => {\n this.pointerData = JSON.parse(pointer['_body']);\n if (this.pointerData.length > 0) {\n this.issueData = this.pointerData.filter(x => x.PointerTypeID === 1);\n }\n\n if (this.projectData) {\n for (let i = 0; i < this.projectData.length; i++) {\n if (this.issueData != undefined) {\n let data = this.issueData.filter(x => x.ProjectID != null && x.ProjectID === this.projectData[i].ProjectID);\n if (data.length > 0) {\n this.finalList.push({\n 'id': this.projectData[i].ProjectID,\n 'name': this.projectData[i].ProjectName,\n 'data': data,\n 'status': this.projectData[i].ProjectStatusName,\n 'team': this.projectData[i].TeamName,\n 'owner': this.projectData[i].ProjectOwner\n });\n } else {\n this.finalList.push({\n 'id': this.projectData[i].ProjectID,\n 'name': this.projectData[i].ProjectName,\n 'data': data,\n 'status': this.projectData[i].ProjectStatusName,\n 'team': this.projectData[i].TeamName,\n 'owner': this.projectData[i].ProjectOwner\n });\n }\n }\n else {\n this.finalList.push({\n 'id': this.projectData[i].ProjectID,\n 'name': this.projectData[i].ProjectName,\n 'status': this.projectData[i].ProjectStatusName,\n 'team': this.projectData[i].TeamName,\n 'owner': this.projectData[i].ProjectOwner\n });\n }\n }\n }\n this.rowCount = this.finalList.length;\n if (this.finalList.length === 0) {\n this.activityPaging = false;\n }\n else {\n this.saveFilter = JSON.parse(JSON.stringify(this.finalList));\n this.activityPaging = true;\n\n while (this.dynamicRows < this.rowCount) {\n this.rowsOnPageSet.push(this.dynamicRows);\n this.dynamicRows = this.dynamicRows + 10;\n }\n if (!this.rowsOnPageSet.includes(this.rowCount)) this.rowsOnPageSet.push(this.rowCount);\n if (this.rowsOnPageSet.length == 1) {\n if (this.rowsOnPageSet[0] <= 10)\n this.rowsOnPage = this.rowsOnPageSet[0];\n }\n }\n });\n }\n\n sort(property) {\n this.arrow = !this.arrow;\n this.isDesc = !this.isDesc; //change the direction\n this.column = property;\n this.direction = this.isDesc ? 1 : -1;\n }\n sortByValue(jsObj) {\n var items = Object.keys(jsObj).map(function (key) {\n return [key, jsObj[key]];\n });\n\n // Sort the array based on the second element\n items.sort(function (first, second) {\n return second[1] - first[1];\n });\n return items;\n }\n GetProjects() {\n this.dorseyService.GetProjects(this.CompanyID).subscribe(project => {\n this.projectData = JSON.parse(project['_body']);\n\n });\n }\n GetProjectStatus() {\n\n this.dorseyService.GetProjectStatus().subscribe(status => {\n this.projectStatusData = JSON.parse(status['_body']);\n this.dorseyService.GetProjects(this.CompanyID).subscribe(project => {\n this.projectData = JSON.parse(project['_body']);\n this.totalCount = this.projectData.length;\n var values = [];\n var perito = [];\n var sum = 0;\n\n if (this.projectData.length) {\n for (let i = 0; i < this.projectStatusData.length; i++) {\n\n let data = this.projectData.filter(x => x.ProjectStatusID === this.projectStatusData[i].ProjectStatusID);\n if (data.length > 0) {\n this.frustData.push(data);\n this.view['CategoryName'] = this.projectStatusData[i].ProjectStatusName;\n this.categories[this.projectStatusData[i].ProjectStatusName] = data.length;\n sum = sum + data.length;\n this.frust.push({\n 'data': data,\n 'label': this.projectStatusData[i].ProjectStatusName,\n 'value': data.length\n });\n this.frust.sort(function (obj1, obj2) {\n\n return obj2.value - obj1.value;\n });\n }\n }\n } else {\n this.warningMsg = 'No data available';\n return;\n }\n if (this.finalList.length === 0) {\n this.isDisable = false;\n this.disableSearch = false;\n }\n else {\n this.isDisable = true;\n this.disableSearch = true;\n }\n let sortOrder = this.sortByValue(this.categories);\n\n let perVal = 0;\n this.categories = [];\n for (let v = 0; v < sortOrder.length; v++) {\n values.push(sortOrder[v][1]);\n this.categories.push(sortOrder[v][0])\n perVal = perVal + sortOrder[v][1];\n perito.push((perVal / sum));\n\n }\n var obj = {\n 'Projects Count': values,\n 'Cumulative percentage': perito\n };\n let chart = c3.generate({\n bindto: '#chart',\n data: {\n json: obj,\n axes: {\n\n 'Cumulative percentage': 'y2'\n },\n type: 'bar',\n types: {\n\n 'Cumulative percentage': 'line',\n\n }, groups: [\n ['Projects Count', 'Cumulative percentage']\n ]\n },\n\n title: {\n text: \"Project Status\",\n padding: {\n top: 20,\n right: 20,\n bottom: 40,\n left: 50\n }\n },\n color: {\n pattern: ['#4aabe7', '#d55632']\n },\n\n legend: {\n show: true,\n position: \"right\"\n\n },\n axis: {\n x: {\n type: 'category',\n\n categories: this.categories,\n tick: {\n rotate: 50,\n multiline: false\n },\n height: 100\n },\n y: {\n\n label: 'Projects Count',\n tick: {\n format: d3.format('d'),\n values: d3.ticks(0, sortOrder[0][1], sortOrder[0][1])\n }\n },\n y2: {\n show: true,\n label: 'Cumulative percentage',\n max: 1,\n min: 0,\n padding: { top: 3, bottom: 0 },\n tick: {\n format: d3.format(',.0%')\n }\n\n },\n\n }\n\n });\n });\n\n });\n\n }\n\n Searchtext() {\n this.projectbyStatus = [];\n this.projectbyStatus = this.saveFilter;\n let tempprojectbystatus = this.projectbyStatus.filter(\n (item) => {\n return (\n (item.team != null && item.team.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n (item.name != null && item.name.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n (item.status != null && item.status.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n (item.owner != null && item.owner.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n (item.data != null && (item.data.filter(\n (da) => {\n return (\n da.ProcessName != null && da.ProcessName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1\n || da.ActivityName != null && da.ActivityName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1\n || da.StatusName != null && da.StatusName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1\n || da.Description != null && da.Description.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1\n || da.Subject != null && da.Subject.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1\n || da.PointerID != null && da.PointerID.toString().indexOf(this.searchtext) > -1\n )\n\n }\n )\n )\n ).length\n )\n }\n );\n\n this.finalList = tempprojectbystatus;\n if (this.finalList.length == 0) {\n setTimeout(() => {\n this.wrng = \"No data available\";\n }, 100);\n this.isDisable = false;\n } else {\n this.isDisable = true;\n }\n if (this.searchtext === '') {\n this.projectbyStatus = this.saveFilter;\n this.dynamicRows = 10;\n this.rowsOnPageSet = [];\n this.rowCount = this.projectbyStatus.length;\n while (this.dynamicRows < this.rowCount) {\n this.rowsOnPageSet.push(this.dynamicRows);\n this.dynamicRows = this.dynamicRows + 10;\n }\n if (!this.rowsOnPageSet.includes(this.rowCount))\n this.rowsOnPageSet.push(this.rowCount);\n if (this.rowsOnPageSet) {\n\n this.rowsOnPage = this.rowsOnPageSet[0];\n }\n this.isDisable = true;\n } else {\n this.rowCount = tempprojectbystatus.length;\n this.dynamicRows = 10;\n this.rowsOnPageSet = [];\n while (this.dynamicRows < this.rowCount) {\n this.rowsOnPageSet.push(this.dynamicRows);\n this.dynamicRows = this.dynamicRows + 10;\n }\n if (!this.rowsOnPageSet.includes(this.rowCount)) {\n this.rowsOnPageSet.push(this.rowCount);\n if (this.rowsOnPageSet)\n this.rowsOnPage = this.rowsOnPageSet[0];\n }\n\n if (this.rowsOnPageSet.length === 1) {\n if (this.rowsOnPageSet[0] <= 10)\n this.rowsOnPage = this.rowsOnPageSet[0];\n }\n }\n }\n\n exportAsXLSX(): void {\n let allData = JSON.parse(JSON.stringify(this.finalList));\n for (let i = 0; i < allData.length; i++) {\n delete (allData[i].id);\n allData[i][\" No. \"] = i + 1;\n allData[i]['Project Team'] = allData[i].team;\n allData[i].Project = allData[i].name;\n allData[i]['Project Status'] = allData[i].status;\n allData[i]['Project Owner'] = allData[i].owner;\n delete allData[i].status;\n delete allData[i].team;\n delete allData[i].owner;\n delete allData[i].name;\n let teamName = '';\n let processName = '';\n let IssueStatus = '';\n let subject = '';\n let Description = '';\n let PointerID = '';\n if (allData[i].data) {\n let Data = allData[i].data;\n for (let i = 0; i < Data.length; i++) {\n teamName = teamName + Data[i].TeamName + '\\n';\n processName = processName + Data[i].ProcessName + '\\n';\n IssueStatus = IssueStatus + Data[i].StatusName + '\\n';\n subject = subject + Data[i].Subject + '\\n';\n Description = Description + Data[i].Description + '\\n';\n }\n allData[i]['Frustration Team'] = teamName;\n allData[i].Process = processName;\n allData[i].Frustration = subject;\n allData[i].Description = Description;\n allData[i].Status = IssueStatus;\n delete allData[i].data;\n delete allData[i].IssueID;\n }\n\n }\n let projectTypeCountData = JSON.parse(JSON.stringify(this.frust));\n for (let i = 0; i < projectTypeCountData.length; i++) {\n projectTypeCountData[i].label = this.frust[i].label;\n projectTypeCountData[i].value = this.frust[i].value;\n delete (projectTypeCountData[i].data);\n }\n let Cumulative = document.getElementById('chart').querySelector('svg').querySelectorAll('.c3-target-Cumulative-percentage');\n let Cumulativecircle = document.getElementById('chart').querySelector('svg').querySelectorAll('.c3-circle');\n\n let circle = Array.from(Cumulativecircle);\n circle.forEach(function (element) {\n element.setAttribute(\"style\", \"fill:#e75632\")\n })\n\n let cumulativegraph = Array.from(Cumulative)\n cumulativegraph.forEach(function (element) {\n element.setAttribute(\"style\", \"fill:none\")\n })\n let image = '';\n htmlToImage.toPng(document.getElementById('chart'),)\n .then(function (dataUrl) {\n var img = new Image();\n img.src = dataUrl;\n image = dataUrl;\n });\n let team: any;\n team = '';\n\n setTimeout(() => {\n this.dorseyService.generateReportExcel(projectTypeCountData, allData, image, this.companyName + '_Project report by status' + \"_\" + (new Date().getMonth() + 1) + '-' + new Date().getDate() + '-' + new Date().getFullYear(), 'Project report by status', \"Company: \" + this.companyName, team, \"Project report by status Report\", copyRight, 'FFFFFF00', 'FF0000FF');\n }, 2000);\n }\n\n getData(data) {\n const dialogRef = this.dialog.open(ReportProjectDialogComponent, {\n width: '750px',\n data: { data, data1: this.finalList }\n });\n dialogRef.componentInstance.final = this.finalList;\n dialogRef.afterClosed().subscribe(result => {\n });\n }\n}\n\n\n@Component({\n selector: 'app-dialog',\n templateUrl: './dialog.html',\n // styleUrls: ['dialog.css']\n})\nexport class ReportProjectDialogComponent implements OnInit {\n\n data: any;\n final: any;\n data1 = [];\n dataMismatch = [];\n constructor(\n public dialogRef: MatDialogRef<ReportProjectDialogComponent>,\n @Inject(MAT_DIALOG_DATA) public dialogData: any) { }\n\n ngOnInit() {\n this.data = this.dialogData.data;\n for (let j = 0; j < this.data.length; j++) {\n if (this.final.length > 0) {\n let dataCompare = this.final.filter(x => x.id === this.data[j].ProjectID);\n if (dataCompare.length > 0) {\n this.data1.push({\n 'status': dataCompare[0].status,\n 'name': dataCompare[0].name,\n 'data': dataCompare[0].data\n });\n }\n else {\n this.data1.push({\n 'status': this.data[j].ProjectStatusName,\n 'name': this.data[j].ProjectName,\n });\n }\n }\n else {\n this.data1.push({\n 'status': this.data[j].ProjectStatusName,\n 'name': this.data[j].ProjectName,\n\n });\n }\n }\n }\n\n close(): void {\n this.dialogRef.close();\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { DorseyService } from '../dorsey.service';\n\n@Component({\n selector: 'app-reports',\n templateUrl: './reports.component.html',\n // styleUrls: ['./reports.component.scss'],\n providers: [DorseyService]\n})\nexport class ReportsComponent implements OnInit {\n index = 0;\n reportData: any;\n ReportID;\n constructor(private router: Router, private dorseyService: DorseyService) { }\n\n ngOnInit() {\n this.GetReport();\n this.ReportID = 1;\n }\n onLinkClick(event) {\n this.index = event.index;\n }\n GetReport() {\n this.dorseyService.GetReport().subscribe(report => {\n this.reportData = JSON.parse(report[\"_body\"]);\n\n });\n\n }\n report(event) {\n this.ReportID = event.value;\n }\n}\n","module.exports = \".close {\\n color: #aaaaaa;\\n float: right;\\n font-size: 28px;\\n font-weight: bold;\\n cursor: pointer;\\n margin-right: -2px;\\n margin-top: -10px;\\n top: 0;\\n right: 0;\\n}\\n\\nbutton {\\n background-color: gray;\\n color: white;\\n}\\n\\n.borderless td, .borderless th {\\n border: none;\\n}\\n\\n#container {\\n display: flex;\\n margin: 0;\\n margin-top: -10px;\\n margin-bottom: -10px;\\n padding: 0;\\n justify-content: space-between;\\n}\\n\\n#heading {\\n flex: 1;\\n}\\n\\n#wrapper {\\n flex: 2;\\n}\\n\\n#tableActions {\\n display: flex;\\n justify-content: center;\\n}\\n\\n#field, #buttonview {\\n margin: 2%;\\n}\\n\\n/* #searchField{\\n width: 100%;\\n} */\\n\\n.alignheader {\\n text-align: center;\\n}\\n\\n/********For Mobile view ********/\\n\\n@media (max-width: 576px) {\\n * {\\n box-sizing: border-box;\\n }\\n\\n table {\\n margin: 2%;\\n }\\n\\n #container {\\n display: flex;\\n margin: 0;\\n padding: 0;\\n flex-direction: column;\\n justify-content: center;\\n /* align-items: center;; */\\n margin: 2%;\\n }\\n\\n #wrapper {\\n width: 100%;\\n }\\n\\n #tableActions {\\n display: flex;\\n width: 100%;\\n flex-direction: column;\\n justify-content: center;\\n }\\n\\n #searchField {\\n width: 100%;\\n }\\n\\n .btn {\\n width: 100%;\\n }\\n\\n .mappings {\\n min-width: 280px;\\n min-height: 75px;\\n }\\n\\n /* #createBtn{\\n width: 100%;\\n\\n } */\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvcm9sZXMvRjpcXE5pa2lsIFdvcmtcXFByb2plY3RzXFxEb3JzZXlcXEhpZXJhcmNoeSBTb3VyY2UgQ29kZVxcV29ya2luZ1xcZG9yc2V5R3JvdXAvc3JjXFxhcHBcXHJvbGVzXFxkaWFsb2cuc2NzcyIsInNyYy9hcHAvcm9sZXMvZGlhbG9nLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDSSxjQUFBO0VBQ0EsWUFBQTtFQUNBLGVBQUE7RUFDQSxpQkFBQTtFQUNBLGVBQUE7RUFDQSxrQkFBQTtFQUNBLGlCQUFBO0VBQ0MsTUFBQTtFQUNBLFFBQUE7QUNDTDs7QURFQTtFQUNJLHNCQUFBO0VBQ0EsWUFBQTtBQ0NKOztBREVBO0VBQ0ksWUFBQTtBQ0NKOztBREdBO0VBQ0ksYUFBQTtFQUNBLFNBQUE7RUFDQSxpQkFBQTtFQUNBLG9CQUFBO0VBQ0EsVUFBQTtFQUNBLDhCQUFBO0FDQUo7O0FESUE7RUFDSSxPQUFBO0FDREo7O0FER0E7RUFDQSxPQUFBO0FDQUE7O0FERUE7RUFDQSxhQUFBO0VBRUEsdUJBQUE7QUNBQTs7QURJQTtFQUNJLFVBQUE7QUNESjs7QURLQTs7R0FBQTs7QUFJQTtFQUNJLGtCQUFBO0FDSEo7O0FETUMsaUNBQUE7O0FBQ0E7RUFDRztJQUNJLHNCQUFBO0VDSE47O0VETUU7SUFDSSxVQUFBO0VDSE47O0VETUM7SUFDSSxhQUFBO0lBQ0EsU0FBQTtJQUNBLFVBQUE7SUFDQSxzQkFBQTtJQUNBLHVCQUFBO0lBQ0MsMEJBQUE7SUFDRCxVQUFBO0VDSEw7O0VET0M7SUFDSSxXQUFBO0VDSkw7O0VET0M7SUFDQSxhQUFBO0lBQ0EsV0FBQTtJQUNBLHNCQUFBO0lBQ0EsdUJBQUE7RUNKRDs7RURZQztJQUNJLFdBQUE7RUNUTDs7RURZQTtJQUNLLFdBQUE7RUNUTDs7RURZQztJQUNDLGdCQUFBO0lBQ0EsZ0JBQUE7RUNURjs7RURXRTs7O0tBQUE7QUNMSiIsImZpbGUiOiJzcmMvYXBwL3JvbGVzL2RpYWxvZy5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmNsb3NlIHtcclxuICAgIGNvbG9yOiAjYWFhYWFhO1xyXG4gICAgZmxvYXQ6IHJpZ2h0O1xyXG4gICAgZm9udC1zaXplOiAyOHB4O1xyXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICBtYXJnaW4tcmlnaHQ6IC0ycHg7XHJcbiAgICBtYXJnaW4tdG9wOiAtMTBweDtcclxuICAgICB0b3A6MDtcclxuICAgICByaWdodDowO1xyXG59XHJcblxyXG5idXR0b257XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmF5O1xyXG4gICAgY29sb3I6IHdoaXRlO1xyXG59XHJcblxyXG4uYm9yZGVybGVzcyB0ZCwgLmJvcmRlcmxlc3MgdGgge1xyXG4gICAgYm9yZGVyOiBub25lO1xyXG4gICAgXHJcbn1cclxuXHJcbiNjb250YWluZXJ7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gICAgbWFyZ2luLXRvcDogLTEwcHg7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAtMTBweDtcclxuICAgIHBhZGRpbmc6IDA7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgIFxyXG5cclxufVxyXG4jaGVhZGluZ3tcclxuICAgIGZsZXg6IDE7XHJcbn1cclxuI3dyYXBwZXJ7XHJcbmZsZXg6IDI7XHJcbn1cclxuI3RhYmxlQWN0aW9uc3tcclxuZGlzcGxheTogZmxleDtcclxuXHJcbmp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG5cclxufVxyXG5cclxuI2ZpZWxkLCAjYnV0dG9udmlld3tcclxuICAgIG1hcmdpbjogMiU7XHJcbiAgICBcclxufVxyXG5cclxuLyogI3NlYXJjaEZpZWxke1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbn0gKi9cclxuXHJcbi5hbGlnbmhlYWRlciB7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbn1cclxuXHJcbiAvKioqKioqKipGb3IgTW9iaWxlIHZpZXcgKioqKioqKiovXHJcbiBAbWVkaWEgKG1heC13aWR0aDo1NzZweCl7XHJcbiAgICAqe1xyXG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgICB9XHJcblxyXG4gICAgdGFibGV7XHJcbiAgICAgICAgbWFyZ2luOiAyJTtcclxuICAgIH1cclxuXHJcbiAgICNjb250YWluZXJ7XHJcbiAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICAgcGFkZGluZzogMDtcclxuICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgICAgICAvKiBhbGlnbi1pdGVtczogY2VudGVyOzsgKi9cclxuICAgICAgIG1hcmdpbjogMiU7XHJcbiAgIFxyXG4gICB9XHJcblxyXG4gICAjd3JhcHBlcntcclxuICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICB9XHJcbiAgIFxyXG4gICAjdGFibGVBY3Rpb25ze1xyXG4gICBkaXNwbGF5OiBmbGV4O1xyXG4gICB3aWR0aDogMTAwJTtcclxuICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgIFxyXG4gICB9XHJcbiAgICAjaGVhZGluZ3tcclxuICAgICAgIFxyXG4gICAgICBcclxuICAgfVxyXG4gICBcclxuICAgI3NlYXJjaEZpZWxke1xyXG4gICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICBcclxuICAgfVxyXG4gIC5idG57XHJcbiAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgIFxyXG4gICB9XHJcbiAgIC5tYXBwaW5ncyB7XHJcbiAgICBtaW4td2lkdGg6IDI4MHB4O1xyXG4gICAgbWluLWhlaWdodDogNzVweDtcclxuICAgfVxyXG4gICAgLyogI2NyZWF0ZUJ0bntcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgIFxyXG4gICAgfSAqL1xyXG59XHJcbiIsIi5jbG9zZSB7XG4gIGNvbG9yOiAjYWFhYWFhO1xuICBmbG9hdDogcmlnaHQ7XG4gIGZvbnQtc2l6ZTogMjhweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgbWFyZ2luLXJpZ2h0OiAtMnB4O1xuICBtYXJnaW4tdG9wOiAtMTBweDtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbn1cblxuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogZ3JheTtcbiAgY29sb3I6IHdoaXRlO1xufVxuXG4uYm9yZGVybGVzcyB0ZCwgLmJvcmRlcmxlc3MgdGgge1xuICBib3JkZXI6IG5vbmU7XG59XG5cbiNjb250YWluZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBtYXJnaW46IDA7XG4gIG1hcmdpbi10b3A6IC0xMHB4O1xuICBtYXJnaW4tYm90dG9tOiAtMTBweDtcbiAgcGFkZGluZzogMDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xufVxuXG4jaGVhZGluZyB7XG4gIGZsZXg6IDE7XG59XG5cbiN3cmFwcGVyIHtcbiAgZmxleDogMjtcbn1cblxuI3RhYmxlQWN0aW9ucyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG4jZmllbGQsICNidXR0b252aWV3IHtcbiAgbWFyZ2luOiAyJTtcbn1cblxuLyogI3NlYXJjaEZpZWxke1xuICAgIHdpZHRoOiAxMDAlO1xufSAqL1xuLmFsaWduaGVhZGVyIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4vKioqKioqKipGb3IgTW9iaWxlIHZpZXcgKioqKioqKiovXG5AbWVkaWEgKG1heC13aWR0aDogNTc2cHgpIHtcbiAgKiB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgfVxuXG4gIHRhYmxlIHtcbiAgICBtYXJnaW46IDIlO1xuICB9XG5cbiAgI2NvbnRhaW5lciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIC8qIGFsaWduLWl0ZW1zOiBjZW50ZXI7OyAqL1xuICAgIG1hcmdpbjogMiU7XG4gIH1cblxuICAjd3JhcHBlciB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cblxuICAjdGFibGVBY3Rpb25zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIH1cblxuICAjc2VhcmNoRmllbGQge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG5cbiAgLmJ0biB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cblxuICAubWFwcGluZ3Mge1xuICAgIG1pbi13aWR0aDogMjgwcHg7XG4gICAgbWluLWhlaWdodDogNzVweDtcbiAgfVxuXG4gIC8qICNjcmVhdGVCdG57XG4gICAgICB3aWR0aDogMTAwJTtcblxuICB9ICovXG59Il19 */\"","import { Component, OnInit, Inject } from '@angular/core';\nimport { DorseyService } from '../dorsey.service';\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { LocalStorageService } from 'ngx-webstorage';\nimport { copyRight } from '../copyRight.model';\n\n@Component({\n selector: 'app-roles',\n templateUrl: './roles.component.html',\n})\nexport class RolesComponent implements OnInit {\n userRoleAssign: any;\n userData: any;\n pageName = \"\";\n index = 0;\n roleData: any;\n p: number = 1;\n rowsOnPage = 10;\n rowsOnPageSet = [];\n rowCount: any;\n dynamicRows = 10;\n isDesc: boolean = false;\n column = \"\";\n direction: number;\n arrow = true;\n processPaging = true;\n saveFilter = [];\n tempRoleData: any;\n Roles = [];\n status = false;\n headerText: string;\n RoleName: any;\n RoleDescription: any;\n searchtext = '';\n CompanyID: string;\n roleID: string;\n rowID: string;\n PermissonJosn: any;\n granualPermissions = {};\n isDisable = false;\n disableSearch = false;\n condition = false;\n CurrentUser: string;\n MenuJson: any;\n MenuPermissions: any;\n menuData: any;\n menuID: string;\n menuName: string;\n menuRoleID: string;\n gruanualEdit: any;\n emproleID: any;\n compRoleID: any;\n activities: any;\n processes: any;\n ReadOnlyRoleID: any;\n userTeamID: any;\n loginCompanyName: any;\n TeamAdminRoleID: any;\n TeamMemberRoleID: any;\n employeeData: any;\n companyRole: any;\n empID: any;\n TeamName: string;\n teamData: any;\n userRoleAssignmentData: any;\n rolesData: any;\n UserID: any;\n isScoreCardEnable: boolean = false;\n constructor(private dorsey: DorseyService, private dialog: MatDialog, private storage: LocalStorageService) {\n this.CurrentUser = this.storage.retrieve('user');\n this.menuData = this.storage.retrieve('menuData');\n this.MenuPermissions = this.storage.retrieve('MenuPermissions');\n this.menuRoleID = this.storage.retrieve('RoleID');\n this.emproleID = this.storage.retrieve('EmpRoleID');\n this.compRoleID = localStorage.getItem('companyRoleID');\n this.CompanyID = this.storage.retrieve('companyID');\n this.userTeamID = this.storage.retrieve('TeamID');\n this.empID = this.storage.retrieve('EmployeeID');\n\n this.ReadOnlyRoleID = this.storage.retrieve('ReadOnlyRoleID');\n this.TeamAdminRoleID = this.storage.retrieve('TeamAdminRoleID');\n this.TeamMemberRoleID = this.storage.retrieve('TeamMemberRoleID');\n this.isScoreCardEnable = this.storage.retrieve('isScoreCardEnable');\n this.UserID = this.storage.retrieve('UserID');\n\n this.loginCompanyName = this.storage.retrieve('loginCompanyName');\n\n }\n\n ngOnInit() {\n\n this.GetEmployee();\n this.GetProcess();\n this.GetActivities();\n this.GetUserROleAssignment();\n this.getTeam();\n this.GetUserRoleAssignment();\n\n this.menuData = this.menuData.filter(x => x.MenuName.toString().toLowerCase() === 'roles');\n\n if (this.menuData.length > 0) {\n this.menuName = this.menuData[0][\"MenuName\"];\n this.menuID = this.menuData[0][\"MenuID\"];\n }\n this.dorsey.GetRoles(this.CompanyID).subscribe(roles => {\n this.Roles = JSON.parse(roles['_body']);\n });\n this.GetRoles();\n }\n\n CreateRole(type: string) {\n this.dialogCall(type);\n }\n\n\n GetProcess() {\n this.dorsey.GetSelectedRolesData(this.CompanyID, \"0\", 'KeyProcess').subscribe(process => {\n this.processes = JSON.parse(process['_body']);\n });\n }\n\n GetUserROleAssignment() {\n this.dorsey.GetUserRoleAssignment().subscribe(subData => {\n subData = JSON.parse(subData['_body']);\n this.userRoleAssign = subData;\n });\n }\n GetActivities() {\n this.dorsey.GetSelectedRolesActivityData(this.CompanyID, \"0\", 'Activities').subscribe(activity => {\n this.activities = JSON.parse(activity['_body']);\n });\n }\n\n\n dialogCall(msg: string) {\n const dialogRef = this.dialog.open(RolePermissionsDiaglogComponent, {\n panelClass: 'custom-dialog-container',\n data: msg + 'æææ' + false,\n // width: '50%',\n });\n\n\n dialogRef.componentInstance.tempRoleData = this.tempRoleData;\n dialogRef.componentInstance.roleData = this.roleData;\n dialogRef.componentInstance.CompanyID = this.CompanyID;\n dialogRef.componentInstance.CurrentUser = this.CurrentUser;\n\n dialogRef.componentInstance.menuRoleID = this.menuRoleID;\n dialogRef.componentInstance.rowID = this.rowID;\n dialogRef.componentInstance.editedPerissions = this.PermissonJosn;\n dialogRef.componentInstance.MenuJson = this.MenuJson;\n dialogRef.componentInstance.processes = this.processes;\n dialogRef.componentInstance.activities = this.activities;\n dialogRef.componentInstance.roleID = this.roleID;\n dialogRef.componentInstance.isScoreCardEnable = this.isScoreCardEnable;\n\n if (msg === 'edit') {\n this.status = true;\n this.headerText = 'Edit Role';\n\n dialogRef.componentInstance.granualEdit = this.gruanualEdit;\n dialogRef.componentInstance.RoleName = this.RoleName;\n dialogRef.componentInstance.RoleDescription = this.RoleDescription;\n dialogRef.componentInstance.roleID = this.roleID;\n }\n\n if (msg === 'new') {\n this.searchtext = '';\n this.GetRoles();\n }\n\n\n dialogRef.afterClosed().subscribe(result => {\n\n if (this.searchtext !== '' && this.searchtext !== undefined) {\n this.Searchtext();\n }\n else {\n this.GetRoles();\n }\n\n if (result && result.toString() === 'true') {\n let statusMsg = '';\n if (msg === 'new') {\n\n statusMsg = 'Saved successfully';\n } else {\n\n statusMsg = 'Updated successfully';\n }\n\n this.GetRoles();\n const dialogsRefsub = this.dialog.open(RolePermissionsDiaglogComponent, {\n panelClass: 'custom-dialog-container',\n data: statusMsg + 'æææ' + false,\n // width: '30%'\n });\n\n setTimeout(() => {\n this.GetRoles();\n }, 500);\n dialogsRefsub.afterClosed().subscribe(result1 => {\n this.ifMaxRowAdd();\n this.dynamicRows = 10;\n // this.rowsOnPageSet=[];\n\n if (this.searchtext !== '') {\n this.Searchtext();\n }\n else {\n this.GetRoles();\n }\n });\n }\n });\n }\n Searchtext() {\n this.roleData = this.saveFilter;\n let teamRoles = this.roleData.filter(\n (item) => {\n return (\n (item.RoleName !== null && item.RoleName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1)\n || (item.RoleDescription !== null && item.RoleDescription.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1));\n }\n\n );\n this.roleData = teamRoles;\n\n if (this.roleData.length == 0) {\n this.isDisable = true;\n } else {\n this.isDisable = false;\n }\n if (this.searchtext === '') {\n this.roleData = this.saveFilter;\n this.rowCount = this.roleData.length;\n this.isDisable = false;\n this.getRolePagination(this.rowCount);\n }\n else {\n this.rowCount = teamRoles.length;\n this.getRolePagination(this.rowCount);\n if (this.rowsOnPageSet.length === 1) {\n if (this.rowsOnPageSet[0] <= 10)\n this.rowsOnPage = this.rowsOnPageSet[0];\n }\n }\n\n }\n\n getRolePagination(RowCount): void {\n this.dynamicRows = 10;\n this.rowsOnPageSet = [];\n this.rowsOnPage = 10;\n this.rowCount = RowCount;\n while (this.dynamicRows < this.rowCount) {\n this.rowsOnPageSet.push(this.dynamicRows);\n this.dynamicRows = this.dynamicRows + 10;\n }\n if (!this.rowsOnPageSet.includes(this.rowCount)) {\n this.rowsOnPageSet.push(this.rowCount);\n if (this.rowsOnPageSet.length === 1) {\n if (this.rowsOnPageSet[0] <= 10)\n this.rowsOnPage = this.rowsOnPageSet[0];\n }\n }\n }\n GetUserRoleAssignment() {\n this.dorsey.GetUserRoleAssignment().subscribe(userRoles => {\n this.userRoleAssignmentData = JSON.parse(userRoles['_body']);\n this.dorsey.GetRoles(this.CompanyID).subscribe(users => {\n this.rolesData = JSON.parse(users['_body']);\n if (this.empID.toString() !== '0') {\n let roles = this.userRoleAssignmentData.filter(x => x.UserID === this.UserID);\n if (roles.length > 0) {\n this.emproleID = roles[0].RoleID;\n let roleData = this.rolesData.filter(x => x.RoleID === this.emproleID);\n if (roleData.length > 0) {\n this.MenuPermissions = JSON.parse(roleData[0].MenuJson);\n }\n\n }\n }\n });\n });\n }\n GetEmployee() {\n this.dorsey.GetEmployee(this.CompanyID).subscribe(subData => {\n\n subData = JSON.parse(subData['_body']);\n this.employeeData = subData;\n\n if (this.empID.toString() !== '0') {\n let filterEmp = this.employeeData.filter(x => x.EmployeeID === this.empID);\n if (filterEmp.length > 0) {\n this.userTeamID = filterEmp[0].TeamID;\n }\n }\n });\n }\n exportAsXLSX() {\n let allData = JSON.parse(JSON.stringify(this.roleData));\n for (let i = 0; i < allData.length; i++) {\n allData[i].Role = allData[i].RoleName;\n allData[i].Description = allData[i].RoleDescription;\n delete (allData[i].CompanyID);\n delete (allData[i].RowID);\n delete (allData[i].RoleID);\n delete (allData[i].UpdatedBy);\n delete (allData[i].UpdatedDate);\n delete (allData[i].CreatedBy);\n delete (allData[i].CreatedDate);\n delete (allData[i].IsActive);\n delete (allData[i].MenuJson);\n delete (allData[i].PermissionJson);\n delete (allData[i].RoleName);\n delete (allData[i].RoleDescription);\n }\n\n\n this.dorsey.generateExcel(allData, this.loginCompanyName + '_roles' + \"_\" + (new Date().getMonth() + 1) + '-' + new Date().getDate() + '-' + new Date().getFullYear(), 'Roles', \"Company: \" + this.loginCompanyName, '', 'Roles Report', copyRight, 'FFFFFF00', 'FF0000FF');\n }\n getTeam() {\n this.TeamName = '';\n this.dorsey.GetTeam(this.CompanyID).subscribe(subData => {\n subData = JSON.parse(subData['_body']);\n this.teamData = subData;\n let tempData = this.teamData.filter(x => x.TeamID === this.userTeamID);\n if (tempData.length > 0) {\n this.TeamName = tempData[0].TeamName;\n }\n });\n }\n\n GetRoles() {\n this.roleData = [];\n this.dorsey.GetRoles(this.CompanyID).subscribe(subData => {\n subData = JSON.parse(subData['_body']);\n this.dorsey.GetUsersList().subscribe(users => {\n this.userData = JSON.parse(users['_body']);\n this.roleData = subData;\n this.tempRoleData = subData;\n this.dynamicRows = 10;\n this.rowsOnPageSet = [];\n if (this.roleData.length === 0) {\n this.processPaging = false;\n this.isDisable = true;\n this.disableSearch = true;\n }\n else {\n if (this.userTeamID !== \"0\" && this.userTeamID !== null && this.CompanyID.toString() !== \"0\") {\n let data = this.userData.filter(x => x.CompanyID === this.CompanyID);\n this.companyRole = data;\n if (data.length > 0) {\n let assignROle = this.userRoleAssign.filter(x => x.UserID === data[0].UserID);\n if (assignROle.length > 0) {\n let roles = this.roleData.filter(x => x.RoleID != assignROle[0].RoleID);\n this.roleData = roles;\n let filterROle = this.roleData.filter(x => x.RoleName === \"Team Admin\" && x.RoleID === this.emproleID);\n if (filterROle.length > 0) {\n }\n else {\n let adminRole = this.roleData.filter(x => x.RoleID !== this.TeamAdminRoleID);\n this.roleData = adminRole;\n let memberRole = adminRole.filter(x => x.RoleName === \"Team Member\" && x.RoleID === this.emproleID)\n if (memberRole.length > 0) {\n }\n else {\n let emproles = adminRole.filter(x => x.RoleID === this.emproleID);\n if (emproles.length > 0) {\n this.roleData = emproles\n }\n else {\n this.roleData = adminRole;\n }\n }\n }\n\n }\n }\n this.rowCount = this.roleData.length;\n this.saveFilter = JSON.parse(JSON.stringify(this.roleData));\n this.processPaging = true;\n this.isDisable = false;\n this.disableSearch = false;\n\n this.getRolePagination(this.rowCount);\n\n }\n else {\n this.rowCount = this.roleData.length;\n this.saveFilter = JSON.parse(JSON.stringify(this.roleData));\n this.processPaging = true;\n this.isDisable = false;\n this.disableSearch = false;\n this.getRolePagination(this.rowCount);\n\n }\n }\n });\n });\n }\n\n sort(property) {\n this.arrow = !this.arrow;\n this.isDesc = !this.isDesc; //change the direction \n this.column = property;\n this.direction = this.isDesc ? 1 : -1;\n }\n\n EditRole(element) {\n this.RoleName = element.RoleName;\n this.RoleDescription = element.RoleDescription;\n this.roleID = element.RoleID;\n this.MenuJson = element.PermissionJson;\n this.gruanualEdit = element.PermissionJson;\n this.rowID = element.RowID;\n this.PermissonJosn = element.MenuJson;\n this.dialogCall('edit');\n }\n\n ifMaxRowDelete() {\n if (this.rowsOnPage == this.roleData.length) {\n this.rowsOnPage = this.rowsOnPage - 1;\n }\n }\n\n ifMaxRowAdd() {\n if (this.rowsOnPage == this.roleData.length) {\n this.rowsOnPage = this.rowsOnPage + 1;\n }\n }\n\n DeleteRole(element) {\n this.rowID = element.RowID;\n const dialogRef = this.dialog.open(RolePermissionsDiaglogComponent, {\n panelClass: 'custom-dialog-container',\n data: 'Are you sure you want to delete role: ' + element.RoleName + '?æææ' + true,\n });\n\n dialogRef.afterClosed().subscribe(result => {\n if (result) {\n let issueCount = 0\n for (let i = 0; i < this.employeeData.length; i++) {\n if (element.RoleID == this.employeeData[i].RoleID) {\n issueCount++;\n }\n }\n if (!issueCount) {\n this.dorsey.DeleteRole(this.rowID).subscribe(data => {\n if (data.ok) {\n this.ifMaxRowDelete();\n this.condition = true;\n this.dialogCall('Deleted successfully');\n }\n this.dynamicRows = 10;\n this.rowsOnPageSet = [];\n this.GetRoles();\n\n });\n } else {\n this.dialogCall(\"This role is in use\");\n }\n }\n });\n }\n}\n\n@Component({\n selector: 'app-role-dialog',\n templateUrl: './dialog.html',\n styleUrls: ['./dialog.scss']\n})\n\nexport class RolePermissionsDiaglogComponent implements OnInit {\n tempRoleData: any;\n CurrentUser: string;\n dataSelf: string;\n condition = false;\n teams = [];\n processes = [];\n activities = [];\n MainJson = {};\n MainJosnIds = {};\n teamCheckList = [];\n processCheckList = [];\n activityCheckList = [];\n mapCheck = false;\n showGranual = false;\n roleData: any;\n RoleName: any;\n RoleDescription: any;\n CompanyID: string;\n permissionsList = ['R', 'C', 'U', 'D'];\n teamList = [];\n processList = [];\n activityList = [];\n mapList = [];\n checkedList: any;\n checkedList2 = [];\n checkedList3: any;\n perDict = [];\n checkedList4 = [];\n PermissonJosn = {};\n\n granual = {};\n editedPerissions: any;\n MenuJson: any;\n MapPermission = {};\n TeamPermisson = {};\n ProcessPermissons = {};\n ActivityPermissions = {};\n menuPermissions = {};\n memuKeys = {};\n MapKeys = {};\n TeamKeys = {};\n ProcessKeys = {};\n activityKeys = {};\n menuRoleID: string;\n companyMenuKeys = { R: false, C: false, U: false, D: false };\n teamMenuKeys = { R: false, C: false, U: false, D: false };\n EmployeeMenuKeys = { R: false, C: false, U: false, D: false };\n ProcessMapMenuKeys = { R: false, C: false, U: false, D: false };\n processMenuKeys = { R: false, C: false, U: false, D: false };\n activityMenuKeys = { R: false, C: false, U: false, D: false };\n metricMenuKeys = { R: false, C: false, U: false, D: false };\n frustrationMenuKeys = { R: false, C: false, U: false, D: false };\n projectsMenuKeys = { R: false, C: false, U: false, D: false };\n casesMenuKeys = { R: false, C: false, U: false, D: false };\n ReportsMenuKeys = { R: false, C: false, U: false, D: false };\n rolesMenuKeys = { R: false, C: false, U: false, D: false };\n frustrationsTypeMenuKeys = { R: false, C: false, U: false, D: false };\n alertTypeMenukeys = { R: false, C: false, U: false, D: false };\n metricTableMenuKeys = { R: false, C: false, U: false, D: false };\n userManualMenuKeys = { R: false, C: false, U: false, D: false };\n\n departmentMenuKeys = { R: false, C: false, U: false, D: false };\n goalMenuKeys = { R: false, C: false, U: false, D: false };\n scoreCardMenuKeys = { R: false, C: false, U: false, D: false };\n quarterMenuKeys = { R: false, C: false, U: false, D: false };\n\n mapGranualKeys = { R: false, C: false, U: false, D: false };\n processGranualkeys = { R: false, C: false, U: false, D: false };\n activitiesGranualKeys = { R: false, C: false, U: false, D: false };\n teamGranualKeys = { R: false, C: false, U: false, D: false };\n\n companyMenuPermissions = {};\n teamMenuPermissions = {};\n EmployeeMenuPermissions = {};\n ProcessMapMenuPermissions = {};\n processMenuPermissions = {};\n activityMenuPermissions = {};\n metricMenuPermissions = {};\n frustrationMenuPermissions = {};\n projectsMenuPermissions = {};\n casesMenuPermissions = {};\n ReportsMenuPermissions = {};\n rolesMenuPermissions = {};\n frustrationsTypeMenuPermissions = {};\n alertTypeMenyPermissions = {};\n metricTableMenuPermissions = {};\n userManualTableMenuPermissions = {};\n departmentTableMenuPermissions = {};\n goalTableMenuPermissions = {};\n scoreCardTableMenuPermissions = {};\n quarterTableMenuPermissions = {};\n granualEdit: any;\n granualPermissions = {};\n parentGranuls = ['Map', 'Team', 'Activity', 'Process']\n\n rowID = '';\n roleID = '';\n menuData = [];\n errorMessage: string;\n newPermissions = {};\n newGranualPermissions = {};\n checked = false;\n checkedCB = {};\n btnDisabled = false;\n isScoreCardEnable: boolean = false;\n constructor(public dialogRef: MatDialogRef<RolePermissionsDiaglogComponent>,\n @Inject(MAT_DIALOG_DATA) public data: any, public dorseyService: DorseyService, private dialog: MatDialog) {\n // dialogRef.disableClose=true;\n this.data = this.data.split('æææ');\n\n if (this.data[1] === 'true') {\n this.condition = true;\n } else {\n this.condition = false;\n }\n this.data = this.data[0];\n\n }\n\n ngOnInit() {\n this.MainJson = [];\n let savePermissions = {};\n\n if (this.menuRoleID === '' || this.menuRoleID === undefined || this.menuRoleID.toString() === '0') {\n let tempRoles = this.tempRoleData;\n this.tempRoleData = tempRoles.filter(x => x.CompanyID === this.CompanyID);\n }\n if (this.data == 'edit') {\n this.PermissonJosn = JSON.parse(this.editedPerissions);\n this.companyMenuKeys = this.PermissonJosn['Company']['101'];\n this.rolesMenuKeys = this.PermissonJosn['Roles']['102'];\n this.EmployeeMenuKeys = this.PermissonJosn['Employee']['103'];\n this.processMenuKeys = this.PermissonJosn['Process']['104'];\n this.teamMenuKeys = this.PermissonJosn['Team']['105'];\n this.ProcessMapMenuKeys = this.PermissonJosn['ProcessMap']['106'];\n this.activityMenuKeys = this.PermissonJosn['Activity']['107'];\n this.metricMenuKeys = this.PermissonJosn['Metric']['108'];\n this.frustrationMenuKeys = this.PermissonJosn['Frustration']['109'];\n this.projectsMenuKeys = this.PermissonJosn['Projects']['110'];\n this.casesMenuKeys = this.PermissonJosn['Frustrations']['111'];\n this.ReportsMenuKeys = this.PermissonJosn['Reports']['112'];\n this.frustrationsTypeMenuKeys = this.PermissonJosn['FrustrationsType']['113'];\n this.alertTypeMenukeys = this.PermissonJosn['Alerts']['114'];\n this.metricTableMenuKeys = this.PermissonJosn['Metric Table']['115'];\n this.departmentMenuKeys = this.PermissonJosn['Departments']['117'];\n this.goalMenuKeys = this.PermissonJosn['Goals']['118'];\n this.scoreCardMenuKeys = this.PermissonJosn['Score Card']['119'];\n this.quarterMenuKeys = this.PermissonJosn['Quarter']['120'];\n this.MenuJson = JSON.parse(this.granualEdit);\n savePermissions = this.PermissonJosn;\n }\n else {\n this.rowID = '';\n this.PermissonJosn = {};\n savePermissions = {};\n if (this.menuRoleID) {\n this.newPermissions = JSON.parse(this.tempRoleData[0].MenuJson);\n if (this.tempRoleData[0].PermissionJson === '') {\n }\n else {\n this.granualPermissions = JSON.parse(this.tempRoleData[0].PermissionJson);\n }\n }\n else {\n this.newPermissions = JSON.parse(this.tempRoleData[0].MenuJson);\n if (this.tempRoleData[0].PermissionJson === '') {\n }\n else {\n this.granualPermissions = JSON.parse(this.tempRoleData[0].PermissionJson);\n }\n }\n savePermissions = this.newPermissions;\n this.PermissonJosn = this.newPermissions;\n this.MenuJson = this.granualPermissions;\n let company = {};\n company['101'] = {\n 'R': true,\n 'C': true,\n 'U': true,\n 'D': true,\n }\n let menusList = Object.keys(this.newPermissions);\n for (let i = 0; i < menusList.length; i++) {\n let menuIds = Object.keys(this.newPermissions[menusList[i]]);\n let subLevel = this.newPermissions[menusList[i]];\n for (let j = 0; j < menuIds.length; j++) {\n this.newPermissions[menusList[i]][menuIds[j]]['R'] = false;\n this.newPermissions[menusList[i]][menuIds[j]]['C'] = false;\n this.newPermissions[menusList[i]][menuIds[j]]['U'] = false;\n this.newPermissions[menusList[i]][menuIds[j]]['D'] = false;\n }\n }\n }\n this.CreateJson(this.MenuJson);\n this.GetMenuMaster();\n if (this.data === 'new') {\n this.newPermissions['ProcessMap']['106']['R'] = true;\n this.newPermissions['Score Card']['119']['R'] = true;\n }\n }\n GetMenuMaster() {\n this.dorseyService.GetMenuMaster().subscribe(subData => {\n this.menuData = JSON.parse(subData['_body']);\n if (!this.isScoreCardEnable) {\n this.menuData = this.menuData.filter(ent => ent.MenuName != 'Score Card');\n\n }\n });\n }\n\n onYesClick() {\n this.dialogRef.close(true);\n }\n onNoClick(): void {\n this.dialogRef.close();\n }\n\n CreateJson(savePermissions) {\n this.MainJson = {};\n this.teams = [];\n this.mapList = [];\n this.activityList = [];\n this.processList = [];\n this.MainJosnIds = [];\n this.teamList = [];\n this.dorseyService.GetTeam(this.CompanyID).subscribe(teams => {\n this.teams = JSON.parse(teams['_body']);\n\n if (this.rowID) {\n if (!(Object.keys(savePermissions).indexOf('Map') < -1)) {\n }\n if (savePermissions[\"Map\"]) {\n let mapKeys = Object.keys(savePermissions[\"Map\"]);\n for (let i = 0; i < mapKeys.length; i++) {\n {\n let perkeys = Object.keys(savePermissions[\"Map\"][mapKeys[i]]);\n let perTemkeys = {};\n for (let j = 0; j < perkeys.length; j++) {\n perTemkeys[perkeys[j]] = savePermissions[\"Map\"][mapKeys[i]][perkeys[j]];\n }\n this.mapList['Map'] = perTemkeys;\n }\n }\n }\n }\n\n let i = 0;\n let j = 0;\n if (this.teams.length === 0) {\n this.showGranual = false;\n }\n else {\n\n this.showGranual = true;\n }\n\n this.teams.forEach(cteam => {\n let subJson = {};\n let ListProcess = {};\n\n this.teamCheckList[cteam.TeamName + \"æææ\" + cteam.TeamID] = false;\n i++;\n\n this.processes.forEach(cprocess => {\n const ActivityList = [];\n if (cprocess.TeamID === cteam.TeamID) {\n this.processCheckList[cprocess.ProcessName + \"æææ\" + cprocess.ProcessID] = false;\n j++;\n {\n const activityIds = [];\n this.activities.forEach(cactivity => {\n if (cprocess.ProcessID === cactivity.ProcessID && cprocess.TeamID === cteam.TeamID && cactivity.TeamID === cteam.TeamID) {\n ActivityList.push(cactivity.ActivityName + \"æææ\" + cactivity.ActivityID);\n activityIds.push(cactivity.ActivityID);\n if (this.rowID) {\n if (savePermissions[\"Activity\"]) {\n let activityKeys = Object.keys(savePermissions[\"Activity\"]);\n for (let i = 0; i < activityKeys.length; i++) {\n if (Number(cactivity.ActivityID) === Number(activityKeys[i])) {\n let perkeys = Object.keys(savePermissions[\"Activity\"][activityKeys[i]]);\n let perTemkeys = {};\n for (let j = 0; j < perkeys.length; j++) {\n perTemkeys[perkeys[j]] = savePermissions[\"Activity\"][activityKeys[i]][perkeys[j]];\n }\n this.activityList[cactivity.ActivityID] = perTemkeys;\n } else {\n let actvitykeysdummy = { R: false, C: false, D: false, U: false }\n this.activityList[cactivity.ActivityID] = actvitykeysdummy;\n }\n\n }\n }\n }\n }\n });\n\n ListProcess[cprocess.ProcessID] = activityIds;\n\n if (this.rowID) {\n if (savePermissions['Process']) {\n let processKeys = Object.keys(savePermissions[\"Process\"]);\n if (processKeys.indexOf(cprocess.ProcessID) > -1) {\n }\n else {\n this.processList[cprocess.ProcessID] = [];\n }\n for (let i = 0; i < processKeys.length; i++) {\n if (Number(cprocess.ProcessID) === Number(processKeys[i])) {\n let perkeys = Object.keys(savePermissions[\"Process\"][processKeys[i]]);\n let perTemkeys = {};\n for (let j = 0; j < perkeys.length; j++) {\n perTemkeys[perkeys[j]] = savePermissions[\"Process\"][processKeys[i]][perkeys[j]];\n }\n this.processList[cprocess.ProcessID] = perTemkeys;\n }\n else {\n let processkeysdummy = { R: false, C: false, D: false, U: false }\n this.processList[cprocess.ProcessID] = processkeysdummy;\n }\n }\n }\n }\n }\n subJson[cprocess.ProcessName + \"æææ\" + cprocess.ProcessID] = ActivityList;\n }\n });\n\n\n if (this.rowID) {\n if (!(Object.keys(savePermissions).indexOf('Team') < -1)) {\n // this.showGranual=false;\n // return;\n }\n if (savePermissions[\"Team\"]) {\n let temKeys = Object.keys(savePermissions[\"Team\"]);\n\n\n for (let i = 0; i < temKeys.length; i++) {\n\n if (Number(cteam.TeamID) === Number(temKeys[i])) {\n let perkeys = Object.keys(savePermissions[\"Team\"][temKeys[i]]);\n let perTemkeys = {};\n for (let j = 0; j < perkeys.length; j++) {\n\n perTemkeys[perkeys[j]] = savePermissions[\"Team\"][temKeys[i]][perkeys[j]];\n\n }\n\n this.teamList[cteam.TeamID] = perTemkeys;\n } else {\n let teamkeysdummy = { R: false, C: false, D: false, U: false }\n this.teamList[cteam.TeamID] = teamkeysdummy;\n }\n }\n }\n }\n this.MainJosnIds[cteam.TeamID] = ListProcess;\n this.MainJson[cteam.TeamName + \"æææ\" + cteam.TeamID] = subJson;\n });\n\n });\n }\n\n\n close(): void {\n this.dialogRef.close();\n }\n onCheckboxChange(MapType, key, permissonType, event, type) {\n if (MapType === 'Map') {\n this.mapGranualKeys[permissonType] = event.checked;\n this.MapPermission[key] = this.mapGranualKeys;\n if (permissonType == 'C' || permissonType == 'U' || permissonType == 'D') {\n\n this.mapGranualKeys['R'] = true;\n }\n if (permissonType == 'R' && !event.checked) {\n this.mapGranualKeys['C'] = false;\n this.mapGranualKeys['U'] = false;\n this.mapGranualKeys['D'] = false;\n }\n\n if (type == 'edit') {\n let prePermisn = {};\n prePermisn = this.MenuJson['Map']['ProcessMap'];\n prePermisn[permissonType] = event.checked;\n this.MenuJson['Map']['ProcessMap'] = prePermisn;\n } else {\n this.granual[MapType] = this.MapPermission;\n }\n\n }\n\n else if (MapType === 'Team') {\n this.teamGranualKeys[permissonType] = event.checked;\n this.TeamPermisson[key] = this.teamGranualKeys;\n if (permissonType == 'C' || permissonType == 'U' || permissonType == 'D') {\n this.teamGranualKeys['R'] = true;\n }\n if (permissonType == 'R' && !event.checked) {\n this.teamGranualKeys['C'] = false;\n this.teamGranualKeys['U'] = false;\n this.teamGranualKeys['D'] = false;\n }\n\n if (type == 'edit') {\n let prePermisn = {};\n let keysList = Object.keys(this.MenuJson['Team']);\n if (keysList.indexOf(key) > -1) {\n prePermisn = this.MenuJson['Team'][key];\n } else {\n prePermisn = { R: false, C: false, U: false, D: false };\n this.MenuJson['Team'][key] = prePermisn;\n }\n prePermisn[permissonType] = event.checked;\n this.MenuJson['Team'][key] = prePermisn;\n } else {\n this.granual[MapType] = this.TeamPermisson;\n }\n\n }\n\n else if (MapType === 'Process') {\n this.processGranualkeys[permissonType] = event.checked;\n this.ProcessPermissons[key] = this.processGranualkeys;\n if (permissonType == 'C' || permissonType == 'U' || permissonType == 'D') {\n\n this.processGranualkeys['R'] = true;\n }\n if (permissonType == 'R' && !event.checked) {\n this.processGranualkeys['C'] = false;\n this.processGranualkeys['U'] = false;\n this.processGranualkeys['D'] = false;\n }\n if (type == 'edit') {\n let prePermisn = {};\n let keysList = Object.keys(this.MenuJson['Process']);\n if (keysList.indexOf(key) > -1) {\n prePermisn = this.MenuJson['Process'][key];\n } else {\n prePermisn = { R: false, C: false, U: false, D: false };\n this.MenuJson['Process'][key] = prePermisn;\n }\n prePermisn[permissonType] = event.checked;\n this.MenuJson['Process'][key] = prePermisn;\n } else {\n\n this.granual[MapType] = this.ProcessPermissons;\n }\n\n }\n\n else if (MapType === 'Activity') {\n this.activitiesGranualKeys[permissonType] = event.checked;\n this.ActivityPermissions[key] = this.activitiesGranualKeys;\n if (permissonType == 'C' || permissonType == 'U' || permissonType == 'D') {\n\n this.activitiesGranualKeys['R'] = true;\n }\n if (permissonType == 'R' && !event.checked) {\n this.activitiesGranualKeys['C'] = false;\n this.activitiesGranualKeys['U'] = false;\n this.activitiesGranualKeys['D'] = false;\n }\n if (type == 'edit') {\n let prePermisn = {};\n let keysList = Object.keys(this.MenuJson['Activity']);\n if (keysList.indexOf(key) > -1) {\n prePermisn = this.MenuJson['Activity'][key];\n } else {\n prePermisn = { R: false, C: false, U: false, D: false };\n this.MenuJson['Activity'][key] = prePermisn;\n }\n prePermisn[permissonType] = event.checked;\n this.MenuJson['Activity'][key] = prePermisn;\n } else {\n\n this.granual[MapType] = this.ActivityPermissions;\n }\n\n }\n }\n\n onCheckboxMenuChange(MapType, key, permissonType, event, type) {\n if (permissonType == 'C') {\n this.checkedCB['C'] = false;\n }\n if (permissonType == 'U') {\n this.checkedCB['U'] = false;\n }\n if (permissonType == 'D') {\n this.checkedCB['D'] = false;\n }\n if (MapType === 'Company') {\n this.companyMenuKeys[permissonType] = event.checked;\n this.companyMenuPermissions[key] = this.companyMenuKeys;\n if (permissonType == 'C' || permissonType == 'U' || permissonType == 'D') {\n this.companyMenuKeys['R'] = true;\n }\n if (permissonType == 'R' && !event.checked) {\n this.companyMenuKeys['C'] = false;\n this.companyMenuKeys['U'] = false;\n this.companyMenuKeys['D'] = false;\n this.checkedCB['R'] = false;\n this.checkedCB['C'] = false;\n this.checkedCB['U'] = false;\n this.checkedCB['D'] = false;\n }\n if (type == 'edit') {\n this.PermissonJosn['Company'] = this.companyMenuPermissions;\n } else {\n this.newPermissions[MapType] = this.companyMenuPermissions;\n }\n } else if (MapType === 'Team') {\n this.teamMenuKeys[permissonType] = event.checked;\n this.teamMenuPermissions[key] = this.teamMenuKeys;\n if (permissonType == 'C' || permissonType == 'U' || permissonType == 'D') {\n this.teamMenuKeys['R'] = true;\n }\n if (permissonType == 'R' && !event.checked) {\n this.teamMenuKeys['C'] = false;\n this.teamMenuKeys['U'] = false;\n this.teamMenuKeys['D'] = false;\n this.checkedCB['R'] = false;\n this.checkedCB['C'] = false;\n this.checkedCB['U'] = false;\n this.checkedCB['D'] = false;\n }\n if (type == 'edit') {\n this.PermissonJosn['Team'] = this.teamMenuPermissions;\n } else {\n this.newPermissions[MapType] = this.teamMenuPermissions;\n }\n } else if (MapType === 'Employee') {\n this.EmployeeMenuKeys[permissonType] = event.checked;\n this.EmployeeMenuPermissions[key] = this.EmployeeMenuKeys;\n if (permissonType == 'C' || permissonType == 'U' || permissonType == 'D') {\n this.EmployeeMenuKeys['R'] = true;\n }\n if (permissonType == 'R' && !event.checked) {\n this.EmployeeMenuKeys['C'] = false;\n this.EmployeeMenuKeys['U'] = false;\n this.EmployeeMenuKeys['D'] = false;\n this.checkedCB['R'] = false;\n this.checkedCB['C'] = false;\n this.checkedCB['U'] = false;\n this.checkedCB['D'] = false;\n }\n if (type == 'edit') {\n this.PermissonJosn['Employee'] = this.EmployeeMenuPermissions;\n } else {\n this.newPermissions[MapType] = this.EmployeeMenuPermissions;\n }\n } else if (MapType === 'ProcessMap') {\n this.ProcessMapMenuKeys[permissonType] = event.checked;\n this.ProcessMapMenuPermissions[key] = this.ProcessMapMenuKeys;\n if (permissonType == 'C' || permissonType == 'U' || permissonType == 'D') {\n this.ProcessMapMenuKeys['R'] = true;\n }\n if (permissonType == 'R' && !event.checked) {\n this.ProcessMapMenuKeys['C'] = false;\n this.ProcessMapMenuKeys['U'] = false;\n this.ProcessMapMenuKeys['D'] = false;\n this.checkedCB['R'] = false;\n this.checkedCB['C'] = false;\n this.checkedCB['U'] = false;\n this.checkedCB['D'] = false;\n }\n if (type == 'edit') {\n this.PermissonJosn['ProcessMap'] = this.ProcessMapMenuPermissions;\n } else {\n this.newPermissions[MapType] = this.ProcessMapMenuPermissions;\n }\n } else if (MapType === 'Process') {\n this.processMenuKeys[permissonType] = event.checked;\n this.processMenuPermissions[key] = this.processMenuKeys;\n if (permissonType == 'C' || permissonType == 'U' || permissonType == 'D') {\n\n this.processMenuKeys['R'] = true;\n }\n if (permissonType == 'R' && !event.checked) {\n this.processMenuKeys['C'] = false;\n this.processMenuKeys['U'] = false;\n this.processMenuKeys['D'] = false;\n this.checkedCB['R'] = false;\n this.checkedCB['C'] = false;\n this.checkedCB['U'] = false;\n this.checkedCB['D'] = false;\n }\n if (type == 'edit') {\n this.PermissonJosn['Process'] = this.processMenuPermissions;\n } else {\n this.newPermissions[MapType] = this.processMenuPermissions;\n }\n } else if (MapType === 'Activity') {\n this.activityMenuKeys[permissonType] = event.checked;\n this.activityMenuPermissions[key] = this.activityMenuKeys;\n if (permissonType == 'C' || permissonType == 'U' || permissonType == 'D') {\n this.activityMenuKeys['R'] = true;\n }\n if (permissonType == 'R' && !event.checked) {\n this.activityMenuKeys['C'] = false;\n this.activityMenuKeys['U'] = false;\n this.activityMenuKeys['D'] = false;\n this.checkedCB['R'] = false;\n this.checkedCB['C'] = false;\n this.checkedCB['U'] = false;\n this.checkedCB['D'] = false;\n }\n if (type == 'edit') {\n this.PermissonJosn['Activity'] = this.activityMenuPermissions;\n } else {\n this.newPermissions[MapType] = this.activityMenuPermissions;\n }\n } else if (MapType === 'Metric') {\n this.metricMenuKeys[permissonType] = event.checked;\n this.metricMenuPermissions[key] = this.metricMenuKeys;\n if (permissonType == 'C' || permissonType == 'U' || permissonType == 'D') {\n this.metricMenuKeys['R'] = true;\n }\n if (permissonType == 'R' && !event.checked) {\n this.metricMenuKeys['C'] = false;\n this.metricMenuKeys['U'] = false;\n this.metricMenuKeys['D'] = false;\n this.checkedCB['R'] = false;\n this.checkedCB['C'] = false;\n this.checkedCB['U'] = false;\n this.checkedCB['D'] = false;\n }\n if (type == 'edit') {\n this.PermissonJosn['Metric'] = this.metricMenuPermissions;\n } else {\n this.newPermissions[MapType] = this.metricMenuPermissions;\n }\n }\n else if (MapType === 'Frustration') {\n this.frustrationMenuKeys[permissonType] = event.checked;\n this.frustrationMenuPermissions[key] = this.frustrationMenuKeys;\n if (permissonType == 'C' || permissonType == 'U' || permissonType == 'D') {\n\n this.frustrationMenuKeys['R'] = true;\n }\n if (permissonType == 'R' && !event.checked) {\n this.frustrationMenuKeys['C'] = false;\n this.frustrationMenuKeys['U'] = false;\n this.frustrationMenuKeys['D'] = false;\n this.checkedCB['R'] = false;\n this.checkedCB['C'] = false;\n this.checkedCB['U'] = false;\n this.checkedCB['D'] = false;\n }\n if (type == 'edit') {\n this.PermissonJosn['Frustration'] = this.frustrationMenuPermissions;\n } else {\n this.newPermissions[MapType] = this.frustrationMenuPermissions;\n }\n } else if (MapType === 'Projects') {\n this.projectsMenuKeys[permissonType] = event.checked;\n this.projectsMenuPermissions[key] = this.projectsMenuKeys;\n if (permissonType == 'C' || permissonType == 'U' || permissonType == 'D') {\n\n this.projectsMenuKeys['R'] = true;\n }\n if (permissonType == 'R' && !event.checked) {\n this.projectsMenuKeys['C'] = false;\n this.projectsMenuKeys['U'] = false;\n this.projectsMenuKeys['D'] = false;\n this.checkedCB['R'] = false;\n this.checkedCB['C'] = false;\n this.checkedCB['U'] = false;\n this.checkedCB['D'] = false;\n }\n\n if (type == 'edit') {\n this.PermissonJosn['Projects'] = this.projectsMenuPermissions;\n } else {\n this.newPermissions[MapType] = this.projectsMenuPermissions;\n }\n } else if (MapType === 'Frustrations') {\n this.casesMenuKeys[permissonType] = event.checked;\n this.casesMenuPermissions[key] = this.casesMenuKeys;\n if (permissonType == 'C' || permissonType == 'U' || permissonType == 'D') {\n\n this.casesMenuKeys['R'] = true;\n }\n if (permissonType == 'R' && !event.checked) {\n this.casesMenuKeys['C'] = false;\n this.casesMenuKeys['U'] = false;\n this.casesMenuKeys['D'] = false;\n this.checkedCB['R'] = false;\n this.checkedCB['C'] = false;\n this.checkedCB['U'] = false;\n this.checkedCB['D'] = false;\n }\n if (type == 'edit') {\n this.PermissonJosn['Frustrations'] = this.casesMenuPermissions;\n } else {\n this.newPermissions[MapType] = this.casesMenuPermissions;\n }\n }\n else if (MapType === 'Reports') {\n this.ReportsMenuKeys[permissonType] = event.checked;\n this.ReportsMenuPermissions[key] = this.ReportsMenuKeys;\n if (permissonType == 'C' || permissonType == 'U' || permissonType == 'D') {\n this.ReportsMenuKeys['R'] = true;\n }\n if (permissonType == 'R' && !event.checked) {\n this.ReportsMenuKeys['C'] = false;\n this.ReportsMenuKeys['U'] = false;\n this.ReportsMenuKeys['D'] = false;\n this.checkedCB['R'] = false;\n this.checkedCB['C'] = false;\n this.checkedCB['U'] = false;\n this.checkedCB['D'] = false;\n }\n if (type == 'edit') {\n this.PermissonJosn['Reports'] = this.ReportsMenuPermissions;\n } else {\n this.newPermissions[MapType] = this.ReportsMenuPermissions;\n }\n } else if (MapType === 'Roles') {\n this.rolesMenuKeys[permissonType] = event.checked;\n this.rolesMenuPermissions[key] = this.rolesMenuKeys;\n if (permissonType == 'C' || permissonType == 'U' || permissonType == 'D') {\n this.rolesMenuKeys['R'] = true;\n }\n if (permissonType == 'R' && !event.checked) {\n this.rolesMenuKeys['C'] = false;\n this.rolesMenuKeys['U'] = false;\n this.rolesMenuKeys['D'] = false;\n this.checkedCB['R'] = false;\n this.checkedCB['C'] = false;\n this.checkedCB['U'] = false;\n this.checkedCB['D'] = false;\n }\n if (type == 'edit') {\n this.PermissonJosn['Roles'] = this.rolesMenuPermissions;\n } else {\n this.newPermissions[MapType] = this.rolesMenuPermissions;\n }\n } else if (MapType === 'FrustrationsType') {\n this.frustrationsTypeMenuKeys[permissonType] = event.checked;\n this.frustrationsTypeMenuPermissions[key] = this.frustrationsTypeMenuKeys;\n if (permissonType == 'C' || permissonType == 'U' || permissonType == 'D') {\n this.frustrationsTypeMenuKeys['R'] = true;\n }\n if (permissonType == 'R' && !event.checked) {\n this.frustrationsTypeMenuKeys['C'] = false;\n this.frustrationsTypeMenuKeys['U'] = false;\n this.frustrationsTypeMenuKeys['D'] = false;\n this.checkedCB['R'] = false;\n this.checkedCB['C'] = false;\n this.checkedCB['U'] = false;\n this.checkedCB['D'] = false;\n }\n if (type == 'edit') {\n this.PermissonJosn['FrustrationsType'] = this.frustrationsTypeMenuPermissions;\n } else {\n this.newPermissions[MapType] = this.frustrationsTypeMenuPermissions;\n }\n }\n else if (MapType === 'Alerts') {\n this.alertTypeMenukeys[permissonType] = event.checked;\n this.alertTypeMenyPermissions[key] = this.alertTypeMenukeys;\n if (permissonType == 'C' || permissonType == 'U' || permissonType == 'D') {\n\n this.alertTypeMenukeys['R'] = true;\n }\n if (permissonType == 'R' && !event.checked) {\n this.alertTypeMenukeys['C'] = false;\n this.alertTypeMenukeys['U'] = false;\n this.alertTypeMenukeys['D'] = false;\n this.checkedCB['R'] = false;\n this.checkedCB['C'] = false;\n this.checkedCB['U'] = false;\n this.checkedCB['D'] = false;\n }\n if (type == 'edit') {\n this.PermissonJosn['Alerts'] = this.alertTypeMenyPermissions;\n } else {\n this.newPermissions[MapType] = this.alertTypeMenyPermissions;\n }\n }\n else if (MapType === 'Metric Table') {\n this.metricTableMenuKeys[permissonType] = event.checked;\n this.metricTableMenuPermissions[key] = this.metricTableMenuKeys;\n if (permissonType == 'C' || permissonType == 'U' || permissonType == 'D') {\n this.metricTableMenuKeys['R'] = true;\n }\n if (permissonType == 'R' && !event.checked) {\n this.metricTableMenuKeys['C'] = false;\n this.metricTableMenuKeys['U'] = false;\n this.metricTableMenuKeys['D'] = false;\n this.checkedCB['R'] = false;\n this.checkedCB['C'] = false;\n this.checkedCB['U'] = false;\n this.checkedCB['D'] = false;\n }\n if (type == 'edit') {\n this.PermissonJosn['Metric Table'] = this.metricTableMenuPermissions;\n } else {\n this.newPermissions[MapType] = this.metricTableMenuPermissions;\n }\n }\n else if (MapType === 'Departments') {\n this.departmentMenuKeys[permissonType] = event.checked;\n this.departmentTableMenuPermissions[key] = this.departmentMenuKeys;\n if (permissonType == 'C' || permissonType == 'U' || permissonType == 'D') {\n\n this.departmentMenuKeys['R'] = true;\n }\n if (permissonType == 'R' && !event.checked) {\n this.departmentMenuKeys['C'] = false;\n this.departmentMenuKeys['U'] = false;\n this.departmentMenuKeys['D'] = false;\n this.checkedCB['R'] = false;\n this.checkedCB['C'] = false;\n this.checkedCB['U'] = false;\n this.checkedCB['D'] = false;\n }\n if (type == 'edit') {\n this.PermissonJosn['Departments'] = this.departmentTableMenuPermissions;\n } else {\n this.newPermissions[MapType] = this.departmentTableMenuPermissions;\n }\n }\n else if (MapType === 'Goals') {\n this.goalMenuKeys[permissonType] = event.checked;\n this.goalTableMenuPermissions[key] = this.goalMenuKeys;\n if (permissonType == 'C' || permissonType == 'U' || permissonType == 'D') {\n\n this.goalMenuKeys['R'] = true;\n }\n if (permissonType == 'R' && !event.checked) {\n this.goalMenuKeys['C'] = false;\n this.goalMenuKeys['U'] = false;\n this.goalMenuKeys['D'] = false;\n this.checkedCB['R'] = false;\n this.checkedCB['C'] = false;\n this.checkedCB['U'] = false;\n this.checkedCB['D'] = false;\n }\n if (type == 'edit') {\n this.PermissonJosn['Goals'] = this.goalTableMenuPermissions;\n } else {\n this.newPermissions[MapType] = this.goalTableMenuPermissions;\n }\n }\n else if (MapType === 'Score Card') {\n this.scoreCardMenuKeys[permissonType] = event.checked;\n this.scoreCardTableMenuPermissions[key] = this.scoreCardMenuKeys;\n if (permissonType == 'C' || permissonType == 'U' || permissonType == 'D') {\n\n this.scoreCardMenuKeys['R'] = true;\n }\n if (permissonType == 'R' && !event.checked) {\n this.scoreCardMenuKeys['C'] = false;\n this.scoreCardMenuKeys['U'] = false;\n this.scoreCardMenuKeys['D'] = false;\n this.checkedCB['R'] = false;\n this.checkedCB['C'] = false;\n this.checkedCB['U'] = false;\n this.checkedCB['D'] = false;\n }\n if (type == 'edit') {\n this.PermissonJosn['Score Card'] = this.scoreCardTableMenuPermissions;\n } else {\n this.newPermissions[MapType] = this.scoreCardTableMenuPermissions;\n }\n }\n else if (MapType === 'Quarter') {\n this.quarterMenuKeys[permissonType] = event.checked;\n this.quarterTableMenuPermissions[key] = this.quarterMenuKeys;\n if (permissonType == 'C' || permissonType == 'U' || permissonType == 'D') {\n\n this.quarterMenuKeys['R'] = true;\n }\n if (permissonType == 'R' && !event.checked) {\n this.quarterMenuKeys['C'] = false;\n this.quarterMenuKeys['U'] = false;\n this.quarterMenuKeys['D'] = false;\n this.checkedCB['R'] = false;\n this.checkedCB['C'] = false;\n this.checkedCB['U'] = false;\n this.checkedCB['D'] = false;\n }\n if (type == 'edit') {\n this.PermissonJosn['Quarter'] = this.quarterTableMenuPermissions;\n } else {\n\n\n this.newPermissions[MapType] = this.quarterTableMenuPermissions;\n }\n }\n }\n onClick(list, data) {\n if (this.checkedCB['R'] === true) {\n }\n if (list == 'R') {\n for (let i = 0; i < this.menuData.length; i++) {\n if (this.menuData[i].MenuName != 'UserManual')\n // && (this.menuData[i].MenuName!=='ProcessMap' || list=='C' ) \n if ((this.menuData[i].MenuName !== 'Company'\n && this.menuData[i].MenuName !== 'ProcessMap'\n && this.menuData[i].MenuName !== 'Score Card')\n && (this.menuData[i].MenuName !== 'Reports' || list == 'R')\n && (this.menuData[i].MenuName !== 'Cases' || list == 'R' || list == 'U')\n && (this.menuData[i].MenuName !== 'FrustrationsType' || list == 'R')\n && (this.menuData[i].MenuName !== 'Alerts' || list == 'R')\n && (this.menuData[i].MenuName !== 'Metric Table' || list == 'R')\n && (this.menuData[i].MenuName !== 'Departments' || list == 'R')\n && (this.menuData[i].MenuName !== 'Goal' || list == 'R')\n\n && (this.menuData[i].MenuName !== 'Quarter' || list == 'R')\n )\n if (data === 'edit' && this.checkedCB['R'] == true) {\n this.PermissonJosn[this.menuData[i].MenuName][this.menuData[i].MenuID]['R'] = true;\n } else if (data === 'new' && this.checkedCB['R'] == true) {\n\n this.newPermissions[this.menuData[i].MenuName][this.menuData[i].MenuID]['R'] = true;\n } else if (data === 'new' && this.checkedCB['R'] == false) {\n this.checkedCB['C'] = false;\n this.checkedCB['U'] = false;\n this.checkedCB['D'] = false;\n this.newPermissions[this.menuData[i].MenuName][this.menuData[i].MenuID]['R'] = false;\n this.newPermissions[this.menuData[i].MenuName][this.menuData[i].MenuID]['C'] = false;\n this.newPermissions[this.menuData[i].MenuName][this.menuData[i].MenuID]['U'] = false;\n this.newPermissions[this.menuData[i].MenuName][this.menuData[i].MenuID]['D'] = false;\n } else if (data === 'edit' && this.checkedCB['R'] == false) {\n this.checkedCB['C'] = false;\n this.checkedCB['U'] = false;\n this.checkedCB['D'] = false;\n this.PermissonJosn[this.menuData[i].MenuName][this.menuData[i].MenuID]['R'] = false;\n this.PermissonJosn[this.menuData[i].MenuName][this.menuData[i].MenuID]['C'] = false;\n this.PermissonJosn[this.menuData[i].MenuName][this.menuData[i].MenuID]['U'] = false;\n this.PermissonJosn[this.menuData[i].MenuName][this.menuData[i].MenuID]['D'] = false;\n }\n\n }\n }\n if (list === 'C') {\n for (let i = 0; i < this.menuData.length; i++) {\n if (this.menuData[i].MenuName != 'UserManual')\n if ((this.menuData[i].MenuName !== 'Company' ||\n this.CurrentUser == 'admin')\n\n ) {\n if (data === 'edit' && this.checkedCB['C'] == true) {\n this.checkedCB['R'] = true;\n if ((this.menuData[i].MenuName !== 'Company')\n && (this.menuData[i].MenuName !== 'Reports')\n && (this.menuData[i].MenuName !== 'Cases')\n && (this.menuData[i].MenuName !== 'FrustrationsType')\n && (this.menuData[i].MenuName !== 'Alerts')\n && (this.menuData[i].MenuName !== 'Metric Table')\n && (this.menuData[i].MenuName !== 'Goals')\n && (this.menuData[i].MenuName !== 'Quarter')) {\n this.PermissonJosn[this.menuData[i].MenuName][this.menuData[i].MenuID]['C'] = true;\n }\n this.PermissonJosn[this.menuData[i].MenuName][this.menuData[i].MenuID]['R'] = true;\n } else if (data === 'new' && this.checkedCB['C'] == true) {\n this.checkedCB['R'] = true;\n if ((this.menuData[i].MenuName !== 'Company')\n && (this.menuData[i].MenuName !== 'Reports')\n && (this.menuData[i].MenuName !== 'Cases')\n && (this.menuData[i].MenuName !== 'FrustrationsType')\n && (this.menuData[i].MenuName !== 'Alerts')\n && (this.menuData[i].MenuName !== 'Metric Table')\n && (this.menuData[i].MenuName !== 'Goals')\n && (this.menuData[i].MenuName !== 'Quarter')) {\n this.newPermissions[this.menuData[i].MenuName][this.menuData[i].MenuID]['C'] = true;\n }\n this.newPermissions[this.menuData[i].MenuName][this.menuData[i].MenuID]['R'] = true;\n } else if (data === 'new' && this.checkedCB['C'] == false) {\n this.checkedCB['R'] = true;\n if ((this.menuData[i].MenuName !== 'Company')\n && (this.menuData[i].MenuName !== 'Reports')\n && (this.menuData[i].MenuName !== 'Cases')\n && (this.menuData[i].MenuName !== 'FrustrationsType')\n && (this.menuData[i].MenuName !== 'Alerts')\n && (this.menuData[i].MenuName !== 'Metric Table')\n && (this.menuData[i].MenuName !== 'Goals')\n && (this.menuData[i].MenuName !== 'Quarter')) {\n this.newPermissions[this.menuData[i].MenuName][this.menuData[i].MenuID]['C'] = false;\n }\n } else if (data === 'edit' && this.checkedCB['C'] == false) {\n this.checkedCB['R'] = true;\n if ((this.menuData[i].MenuName !== 'Company')\n && (this.menuData[i].MenuName !== 'Reports')\n && (this.menuData[i].MenuName !== 'Cases')\n && (this.menuData[i].MenuName !== 'FrustrationsType')\n && (this.menuData[i].MenuName !== 'Alerts')\n && (this.menuData[i].MenuName !== 'Metric Table')\n && (this.menuData[i].MenuName !== 'Goals')\n && (this.menuData[i].MenuName !== 'Quarter')) {\n this.PermissonJosn[this.menuData[i].MenuName][this.menuData[i].MenuID]['C'] = false;\n }\n }\n\n }\n }\n }\n if (list === 'U') {\n for (let i = 0; i < this.menuData.length; i++) {\n // && (this.menuData[i].MenuName!=='ProcessMap' || list=='C' )\n if (this.menuData[i].MenuName != 'UserManual')\n if ((this.menuData[i].MenuName !== 'Company'\n || this.CurrentUser == 'admin'))\n if (data === 'edit' && this.checkedCB['U'] == true) {\n this.checkedCB['R'] = true;\n if ((this.menuData[i].MenuName !== 'Company')\n && (this.menuData[i].MenuName !== 'Reports')\n && (this.menuData[i].MenuName !== 'Cases')\n && (this.menuData[i].MenuName !== 'FrustrationsType')\n && (this.menuData[i].MenuName !== 'Alerts')\n && (this.menuData[i].MenuName !== 'Metric Table')\n && (this.menuData[i].MenuName !== 'Goals')\n && (this.menuData[i].MenuName !== 'Quarter')) {\n this.PermissonJosn[this.menuData[i].MenuName][this.menuData[i].MenuID]['U'] = true;\n }\n this.PermissonJosn[this.menuData[i].MenuName][this.menuData[i].MenuID]['R'] = true;\n } else if (data === 'new' && this.checkedCB['U'] == true) {\n this.checkedCB['R'] = true;\n if ((this.menuData[i].MenuName !== 'Company')\n && (this.menuData[i].MenuName !== 'Reports')\n && (this.menuData[i].MenuName !== 'Cases')\n && (this.menuData[i].MenuName !== 'FrustrationsType')\n && (this.menuData[i].MenuName !== 'Alerts')\n && (this.menuData[i].MenuName !== 'Metric Table')\n && (this.menuData[i].MenuName !== 'Goals')\n && (this.menuData[i].MenuName !== 'Quarter')) {\n this.newPermissions[this.menuData[i].MenuName][this.menuData[i].MenuID]['U'] = true;\n }\n this.newPermissions[this.menuData[i].MenuName][this.menuData[i].MenuID]['R'] = true;\n } else if (data === 'new' && this.checkedCB['U'] == false) {\n this.checkedCB['R'] = true;\n if ((this.menuData[i].MenuName !== 'Company')\n && (this.menuData[i].MenuName !== 'Reports')\n && (this.menuData[i].MenuName !== 'Cases')\n && (this.menuData[i].MenuName !== 'FrustrationsType')\n && (this.menuData[i].MenuName !== 'Alerts')\n && (this.menuData[i].MenuName !== 'Metric Table')\n && (this.menuData[i].MenuName !== 'Goals')\n && (this.menuData[i].MenuName !== 'Quarter')) {\n this.newPermissions[this.menuData[i].MenuName][this.menuData[i].MenuID]['U'] = false;\n }\n\n } else if (data === 'edit' && this.checkedCB['U'] == false) {\n this.checkedCB['R'] = true;\n if ((this.menuData[i].MenuName !== 'Company')\n && (this.menuData[i].MenuName !== 'Reports')\n && (this.menuData[i].MenuName !== 'Cases')\n && (this.menuData[i].MenuName !== 'FrustrationsType')\n && (this.menuData[i].MenuName !== 'Alerts')\n && (this.menuData[i].MenuName !== 'Metric Table')\n && (this.menuData[i].MenuName !== 'Goals')\n && (this.menuData[i].MenuName !== 'Quarter')) {\n this.PermissonJosn[this.menuData[i].MenuName][this.menuData[i].MenuID]['U'] = false;\n }\n\n }\n }\n }\n if (list === 'D') {\n for (let i = 0; i < this.menuData.length; i++) {\n if (this.menuData[i].MenuName != 'UserManual')\n // && (this.menuData[i].MenuName!=='ProcessMap' || list=='C' ) \n if ((this.menuData[i].MenuName !== 'Company' || this.CurrentUser == 'admin'))\n\n if (data === 'edit' && this.checkedCB['D'] == true) {\n this.checkedCB['R'] = true;\n if ((this.menuData[i].MenuName !== 'Company')\n && (this.menuData[i].MenuName !== 'Reports')\n && (this.menuData[i].MenuName !== 'Cases')\n && (this.menuData[i].MenuName !== 'FrustrationsType')\n && (this.menuData[i].MenuName !== 'Alerts')\n && (this.menuData[i].MenuName !== 'Metric Table')\n && (this.menuData[i].MenuName !== 'Goals')\n && (this.menuData[i].MenuName !== 'Quarter')) {\n this.PermissonJosn[this.menuData[i].MenuName][this.menuData[i].MenuID]['D'] = true;\n }\n this.PermissonJosn[this.menuData[i].MenuName][this.menuData[i].MenuID]['R'] = true;\n } else if (data === 'new' && this.checkedCB['D'] == true) {\n this.checkedCB['R'] = true;\n if ((this.menuData[i].MenuName !== 'Company')\n && (this.menuData[i].MenuName !== 'Reports')\n && (this.menuData[i].MenuName !== 'Cases')\n && (this.menuData[i].MenuName !== 'FrustrationsType')\n && (this.menuData[i].MenuName !== 'Alerts')\n && (this.menuData[i].MenuName !== 'Metric Table')\n && (this.menuData[i].MenuName !== 'Goals')\n && (this.menuData[i].MenuName !== 'Quarter')) {\n this.newPermissions[this.menuData[i].MenuName][this.menuData[i].MenuID]['D'] = true;\n }\n this.newPermissions[this.menuData[i].MenuName][this.menuData[i].MenuID]['R'] = true;\n } else if (data === 'new' && this.checkedCB['D'] == false) {\n this.checkedCB['R'] = true;\n if ((this.menuData[i].MenuName !== 'Company')\n && (this.menuData[i].MenuName !== 'Reports')\n && (this.menuData[i].MenuName !== 'Cases')\n && (this.menuData[i].MenuName !== 'FrustrationsType')\n && (this.menuData[i].MenuName !== 'Alerts')\n && (this.menuData[i].MenuName !== 'Metric Table')\n && (this.menuData[i].MenuName !== 'Goals')\n && (this.menuData[i].MenuName !== 'Quarter')) {\n this.newPermissions[this.menuData[i].MenuName][this.menuData[i].MenuID]['D'] = false;\n }\n\n } else if (data === 'edit' && this.checkedCB['D'] == false) {\n this.checkedCB['R'] = true;\n if ((this.menuData[i].MenuName !== 'Company')\n && (this.menuData[i].MenuName !== 'Reports')\n && (this.menuData[i].MenuName !== 'Cases')\n && (this.menuData[i].MenuName !== 'FrustrationsType')\n && (this.menuData[i].MenuName !== 'Alerts')\n && (this.menuData[i].MenuName !== 'Metric Table')\n && (this.menuData[i].MenuName !== 'Goals')\n && (this.menuData[i].MenuName !== 'Quarter')) {\n this.PermissonJosn[this.menuData[i].MenuName][this.menuData[i].MenuID]['D'] = false;\n }\n\n }\n }\n }\n }\n AddRole() {\n this.btnDisabled = true;\n\n setTimeout(() => {\n this.btnDisabled = false;\n }, 1000);\n\n if (this.RoleName === undefined || this.RoleName.trim() === '') {\n this.errorMessage = \"Please enter mandatory(*) fields\";\n return;\n } else {\n let savePermissions = {};\n let granualPermission = {};\n let roleID = \"\";\n if (!this.rowID) {\n savePermissions = this.newPermissions;\n granualPermission = this.granual;\n roleID = \"\";\n } else {\n savePermissions = this.PermissonJosn;\n granualPermission = this.MenuJson;\n roleID = this.roleID\n }\n let josn = {\n RoleName: this.RoleName,\n RoleDescription: this.RoleDescription,\n RowID: this.rowID,\n Permissions: granualPermission,\n MenuJson: savePermissions,\n CreatedBy: this.CurrentUser,\n RoleId: roleID,\n CompanyID: this.CompanyID\n }\n this.dorseyService.SaveRole(josn).subscribe(permisn => {\n\n if (permisn['_body'].toString() === 'true') {\n\n this.dialogRef.close(true);\n } else {\n this.dataSelf = 'Updated successfully';\n }\n });\n }\n\n\n }\n\n}\n\n\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpErrorResponse } from \"@angular/common/http\";\r\nimport { Observable, throwError } from \"rxjs\";\r\nimport { catchError } from \"rxjs/operators\";\r\nimport { IResponsePackage } from \"../models/response-package.model\";\r\nimport { environment } from 'src/environments/environment';\r\nimport { CompanyDetails } from '../company/company.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CompanyService {\r\n\r\n private httpUrl: string = environment.API_URL;\r\n constructor(private http: HttpClient) { }\r\n\r\n\r\n getSubCompanyDetailsByCompanyId(companyId: number): Observable<IResponsePackage> {\r\n return this.http.get<IResponsePackage>(`${this.httpUrl}Dorsey/GetSubCompanyDetailsByCompanyId?companyId=${companyId}`)\r\n .pipe(\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n getSubCompaniesCountByCompanyId(companyId: number): Observable<IResponsePackage> {\r\n return this.http.get<IResponsePackage>(`${this.httpUrl}Dorsey/GetSubCompaniesCountByCompanyId?companyId=${companyId}`)\r\n .pipe(\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n saveCompany(entity: CompanyDetails): Observable<any> {\r\n return this.http.post(`${this.httpUrl}Dorsey/SaveCompany`, entity).pipe(\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n deleteCompany(companyId: number): Observable<any> {\r\n return this.http.get(`${this.httpUrl}Dorsey/DeleteCompany?companyId=${companyId}`).pipe(\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n UpdateEnableScoreCard(entity: CompanyDetails): Observable<any> {\r\n return this.http.post(`${this.httpUrl}Dorsey/UpdateEnableScoreCard`, entity).pipe(\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n getUserDetailsByEmailId(emailId: string): Observable<IResponsePackage> {\r\n return this.http.get<IResponsePackage>(`${this.httpUrl}Dorsey/GetUserDetailsByEmailId?emailId=${emailId}`)\r\n .pipe(\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n private handleError(err: HttpErrorResponse) {\r\n let errorMessage = '';\r\n if (err.error instanceof ErrorEvent) {\r\n errorMessage = `An error occured: ${err.error.message}`;\r\n }\r\n else {\r\n errorMessage = `Server returned code: ${err.status}, error message is ${err.message}`\r\n }\r\n console.log(errorMessage);\r\n return throwError(errorMessage);\r\n }\r\n}\r\n","import { HttpClient, HttpErrorResponse } from \"@angular/common/http\";\r\nimport { Injectable } from \"@angular/core\";\r\nimport { Observable, throwError } from \"rxjs\";\r\nimport { catchError, tap } from \"rxjs/operators\";\r\nimport { environment } from \"src/environments/environment\";\r\nimport { IResponsePackage } from \"../models/response-package.model\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DepartmentService {\r\n httpUrl = environment.API_URL;\r\n constructor(private http: HttpClient) { }\r\n\r\n getDepartments(companyId: number): Observable<IResponsePackage> {\r\n return this.http.get<IResponsePackage>(`${this.httpUrl}Dorsey/GetDepartmentsByCompanyId?companyId=${companyId}`)\r\n .pipe(\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n saveDepartment(entity: any): Observable<any> {\r\n return this.http.post(`${this.httpUrl}Dorsey/SaveDepartment`, entity).pipe(\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n deleteDepartment(departmentId: number): Observable<any> {\r\n return this.http.get(`${this.httpUrl}Dorsey/DeleteDepartment?departmentId=${departmentId}`).pipe(\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n getTeamsByDepartmentId(companyId: number, departmentId: number): Observable<IResponsePackage> {\r\n if (departmentId) {\r\n return this.http.get<IResponsePackage>(`${this.httpUrl}Dorsey/GetTeamsByDepartmentId?companyId=${companyId}&departmentId=${departmentId}`)\r\n .pipe(\r\n catchError(this.handleError)\r\n );\r\n }\r\n }\r\n\r\n getUsersByCompanyId(companyId: number): Observable<IResponsePackage> {\r\n return this.http.get<IResponsePackage>(`${this.httpUrl}Dorsey/GetUsersByCompanyId?companyId=${companyId}`)\r\n .pipe(\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n private handleError(err: HttpErrorResponse) {\r\n let errorMessage = '';\r\n if (err.error instanceof ErrorEvent) {\r\n errorMessage = `An error occured: ${err.error.message}`;\r\n }\r\n else {\r\n errorMessage = `Server returned code: ${err.status}, error message is ${err.message}`\r\n }\r\n return throwError(errorMessage);\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpErrorResponse } from \"@angular/common/http\";\nimport { Observable, throwError } from \"rxjs\";\nimport { catchError } from \"rxjs/operators\";\nimport { IResponsePackage } from \"../models/response-package.model\";\nimport { environment } from 'src/environments/environment';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class GoalService {\n\n private httpUrl: string = environment.API_URL;\n constructor(private http: HttpClient) { }\n\n getGoals(companyId: number): Observable<IResponsePackage> {\n return this.http.get<IResponsePackage>(`${this.httpUrl}Dorsey/GetGoalsByCompanyId?companyId=${companyId}`)\n .pipe(\n catchError(this.handleError)\n );\n }\n\n saveGoal(entity: any): Observable<any> {\n return this.http.post(`${this.httpUrl}Dorsey/SaveGoal`, entity).pipe(\n catchError(this.handleError)\n );\n }\n\n deleteGoal(goalId: number): Observable<any> {\n return this.http.get(`${this.httpUrl}Dorsey/DeleteGoal?goalId=${goalId}`).pipe(\n catchError(this.handleError)\n );\n }\n\n private handleError(err: HttpErrorResponse) {\n let errorMessage = '';\n if (err.error instanceof ErrorEvent) {\n errorMessage = `An error occured: ${err.error.message}`;\n }\n else {\n errorMessage = `Server returned code: ${err.status}, error message is ${err.message}`\n }\n return throwError(errorMessage);\n }\n\n}\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpErrorResponse } from \"@angular/common/http\";\r\nimport { BehaviorSubject, Observable, throwError } from \"rxjs\";\r\nimport { catchError } from \"rxjs/operators\";\r\nimport { IResponsePackage } from \"../models/response-package.model\";\r\nimport { environment } from 'src/environments/environment';\r\nimport { OrganizationDetails } from '../organization/organization.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class OrganizationService {\r\n\r\n private httpUrl: string = environment.API_URL;\r\n public totalLicenses = new BehaviorSubject<any>(0);\r\n public totalLicenses$: Observable<number> = this.totalLicenses.asObservable();\r\n constructor(private http: HttpClient) {\r\n this.totalLicenses$ = this.totalLicenses.asObservable();\r\n }\r\n\r\n getOrganizations(): Observable<IResponsePackage> {\r\n return this.http.get<IResponsePackage>(`${this.httpUrl}Dorsey/GetOrganizations`)\r\n .pipe(\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n saveOrganization(entity: OrganizationDetails): Observable<any> {\r\n return this.http.post(`${this.httpUrl}Dorsey/SaveOrganization`, entity).pipe(\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n deleteOrganization(organizationId: number): Observable<any> {\r\n return this.http.get(`${this.httpUrl}Dorsey/DeleteOrganization?organizationId=${organizationId}`).pipe(\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n getCompanyDetailsByOrganizationId(organizationId: number): Observable<IResponsePackage> {\r\n return this.http.get<IResponsePackage>(`${this.httpUrl}Dorsey/GetCompanyDetailsByOrganizationId?organizationId=${organizationId}`)\r\n .pipe(\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n getCompanyDetailsByCompanyId(companyId: number, organizationId: number): Observable<IResponsePackage> {\r\n return this.http.get<IResponsePackage>(`${this.httpUrl}Dorsey/GetCompanyDetailsByCompanyId?companyId=${companyId}&organizationId=${organizationId}`)\r\n .pipe(\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n getCompaniesCountByOrganizationId(organizationId: number): Observable<IResponsePackage> {\r\n return this.http.get<IResponsePackage>(`${this.httpUrl}Dorsey/GetCompaniesCountByOrganizationId?organizationId=${organizationId}`)\r\n .pipe(\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n\r\n private handleError(err: HttpErrorResponse) {\r\n let errorMessage = '';\r\n if (err.error instanceof ErrorEvent) {\r\n errorMessage = `An error occured: ${err.error.message}`;\r\n }\r\n else {\r\n errorMessage = `Server returned code: ${err.status}, error message is ${err.message}`\r\n }\r\n return throwError(errorMessage);\r\n }\r\n}\r\n","import { HttpClient, HttpErrorResponse } from \"@angular/common/http\";\r\nimport { Injectable } from \"@angular/core\";\r\nimport { BehaviorSubject, Observable, throwError } from \"rxjs\";\r\nimport { catchError } from \"rxjs/operators\";\r\nimport { environment } from \"src/environments/environment\";\r\nimport { IResponsePackage } from \"../models/response-package.model\";\r\nimport { Month, WeekDay } from \"../quarter/quarter.model\";\r\n\r\nconst Moment = require('moment');\r\nimport { extendMoment } from 'moment-range';\r\n\r\nconst moment = extendMoment(Moment);\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class QuarterService {\r\n\r\n private httpUrl: string = environment.API_URL;\r\n\r\n constructor(private http: HttpClient) {\r\n }\r\n\r\n getMonths(): Array<Month> {\r\n return [\r\n { MonthId: 1, MonthName: 'January' },\r\n { MonthId: 2, MonthName: 'February' },\r\n { MonthId: 3, MonthName: 'March' },\r\n { MonthId: 4, MonthName: 'April' },\r\n { MonthId: 5, MonthName: 'May' },\r\n { MonthId: 6, MonthName: 'June' },\r\n { MonthId: 7, MonthName: 'July' },\r\n { MonthId: 8, MonthName: 'August' },\r\n { MonthId: 9, MonthName: 'September' },\r\n { MonthId: 10, MonthName: 'October' },\r\n { MonthId: 11, MonthName: 'November' },\r\n { MonthId: 12, MonthName: 'December' },\r\n ];\r\n }\r\n\r\n getQuarters(companyId: number): Observable<IResponsePackage> {\r\n return this.http.get<IResponsePackage>(`${this.httpUrl}Dorsey/GetQuartersByCompanyId?companyId=${companyId}`).pipe(\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n saveQuarters(entity: any): Observable<any> {\r\n return this.http.post(`${this.httpUrl}Dorsey/SaveQuarter`, entity).pipe(\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n generateQuarters(selectedMonthId, companyId, currentUser, quarterWeekDay, quarterWeekDate) {\r\n let months = this.getMonths();\r\n var startMonths = months.splice(selectedMonthId - 1);\r\n var concatMonths = startMonths.concat(months).map((val, index) => {\r\n return {\r\n MonthId: index + 1,\r\n MonthName: val.MonthName\r\n }\r\n });\r\n return this.splitArrayIntoQuarters(concatMonths, 3).map((val, index) => {\r\n return {\r\n QuarterId: index + 1,\r\n QuarterName: 'Quarter ' + (index + 1),\r\n QuarterMonths: val,\r\n CompanyId: companyId,\r\n CreatedBy: currentUser,\r\n QuarterWeekDay: quarterWeekDay,\r\n QuarterWeekDate: quarterWeekDate\r\n }\r\n });\r\n }\r\n\r\n splitArrayIntoQuarters(months, noOfMonths) {\r\n var quarters = [], i = 0, n = months.length;\r\n while (i < n) {\r\n quarters.push(months.slice(i, i += noOfMonths));\r\n }\r\n return quarters;\r\n }\r\n\r\n private handleError(err: HttpErrorResponse) {\r\n let errorMessage = '';\r\n if (err.error instanceof ErrorEvent) {\r\n errorMessage = `An error occured: ${err.error.message}`;\r\n }\r\n else {\r\n errorMessage = `Server returned code: ${err.status}, error message is ${err.message}`\r\n }\r\n return throwError(errorMessage);\r\n }\r\n\r\n getQuarterWeekDays(): Array<WeekDay> {\r\n return [\r\n\r\n { WeekDayId: 0, WeekDay: 'Sunday' },\r\n { WeekDayId: 1, WeekDay: 'Monday' },\r\n { WeekDayId: 2, WeekDay: 'Tuesday' },\r\n { WeekDayId: 3, WeekDay: 'Wednensday' },\r\n { WeekDayId: 4, WeekDay: 'Thursday' },\r\n { WeekDayId: 5, WeekDay: 'Friday' },\r\n { WeekDayId: 6, WeekDay: 'Saturday' },\r\n\r\n\r\n ];\r\n }\r\n\r\n getWeekDates(startDate, endDate, weekDay) {\r\n\r\n let weekData = [];\r\n var weeks = []\r\n var indexOf = [].indexOf;\r\n var monthRange = moment.range(startDate, endDate);\r\n\r\n for (let mday of monthRange.by('days')) {\r\n\r\n if (weeks.indexOf(mday.week()) === -1) {\r\n weeks.push(mday.week());\r\n }\r\n }\r\n\r\n while (startDate.isSameOrBefore(endDate)) {\r\n if (weekData.length > 0) {\r\n this.getWeeksStartEndDate(weekData, startDate, weekDay);\r\n\r\n startDate.add(1, 'days');\r\n }\r\n\r\n if (!startDate.isAfter(endDate)) {\r\n weekData.push({ startDate: moment(startDate).format('MM/DD') });\r\n startDate.add(6, 'days');\r\n\r\n if (weeks.length == weekData.length) {\r\n this.getWeeksStartEndDate(weekData, startDate, weekDay);\r\n\r\n }\r\n }\r\n }\r\n\r\n\r\n let lastObj = weekData[weekData.length - 1];\r\n if (lastObj.startDate == endDate.format('MM/DD')) {\r\n this.getWeeksStartEndDate(weekData, startDate, weekDay);\r\n }\r\n\r\n return weekData;\r\n }\r\n\r\n getWeeksStartEndDate(weekData, startDate, weekDay): void {\r\n let lastObj = weekData[weekData.length - 1];\r\n lastObj['endDate'] = moment(startDate).format('MM/DD');\r\n lastObj['WeekNo'] = `(week${weekData.length})`\r\n if (weekDay == 'Start Date') {\r\n lastObj['label'] = `${lastObj.startDate}`\r\n }\r\n else {\r\n lastObj['label'] = `${lastObj.endDate}`\r\n }\r\n }\r\n getWeekMonths(months: any, year, quarterWeekday, quarterWeekDate) {\r\n let WeekDateList = [];\r\n\r\n var selectedMonthId = this.getMonths().find(val => val.MonthName == months[0].MonthName).MonthId; var startDate = moment([year, selectedMonthId - 1]);\r\n\r\n var firstDay = moment(startDate).startOf('month');\r\n\r\n var chosenWeekday = Number(quarterWeekday)\r\n const todayNum = moment(firstDay).isoWeekday();\r\n\r\n var firstDayOfWeek;\r\n if ((todayNum <= chosenWeekday))\r\n firstDayOfWeek = chosenWeekday < moment(firstDay).weekday() ? moment(firstDay).weekday(chosenWeekday + 7) : moment(firstDay).weekday(chosenWeekday)\r\n else\r\n firstDayOfWeek = moment(firstDay).startOf('isoWeek').add(1, 'week').day(quarterWeekday);\r\n var endDay;\r\n let weekData = [];\r\n endDay = moment(startDate).add(3, 'months').subtract(1, 'days');\r\n WeekDateList = this.getWeekDates(firstDayOfWeek, endDay, quarterWeekDate);\r\n return WeekDateList;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'sort'\n})\nexport class SortPipe implements PipeTransform {\n\n transform(companyData: Array<any>, args?: any): any {\n // if(args.direction)\n if (companyData) {\n return companyData.sort(function (a, b) {\n if (a[args.property] < b[args.property]) {\n return -1 * args.direction;\n }\n else if (a[args.property] > b[args.property]) {\n return 1 * args.direction;\n }\n else {\n return 0;\n }\n });\n }\n\n // else return -1;\n };\n\n}\n","module.exports = \".highlight {\\n background-color: lightblue;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc3ViLWNvbXBhbnkvRjpcXE5pa2lsIFdvcmtcXFByb2plY3RzXFxEb3JzZXlcXEhpZXJhcmNoeSBTb3VyY2UgQ29kZVxcV29ya2luZ1xcZG9yc2V5R3JvdXAvc3JjXFxhcHBcXHN1Yi1jb21wYW55XFxzdWItY29tcGFueS5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvc3ViLWNvbXBhbnkvc3ViLWNvbXBhbnkuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDSSwyQkFBQTtBQ0NKIiwiZmlsZSI6InNyYy9hcHAvc3ViLWNvbXBhbnkvc3ViLWNvbXBhbnkuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuaGlnaGxpZ2h0e1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRibHVlO1xyXG59IiwiLmhpZ2hsaWdodCB7XG4gIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0Ymx1ZTtcbn0iXX0= */\"","import { Component, Input, OnInit } from '@angular/core';\nimport { CompanyService } from '../services/company.service';\nimport { CompanyDetails, OrganizationLicenseDetails } from '../company/company.model';\nimport { CompanyDialogComponent } from '../company/company.component';\nimport { MatDialog, MatSlideToggleChange, MatTableDataSource } from '@angular/material';\nimport { LocalStorageService } from 'ngx-webstorage';\nimport { DorseyService } from '../dorsey.service';\nimport { ValidationDialogComponent } from '../add-score-card/validation-dialog';\nimport { ResponseDialogComponent } from '../add-score-card/response-dialog';\nimport { LoginComponent } from '../login/login.component';\n@Component({\n selector: 'app-sub-company',\n templateUrl: './sub-company.component.html',\n styleUrls: ['./sub-company.component.scss']\n})\nexport class SubCompanyComponent implements OnInit {\n @Input() organizationId: number;\n @Input() companyId: number;\n @Input() isSuperAdmin: boolean;\n @Input() entityName: string;\n @Input() entityLicenses: number;\n @Input() subCompanyCount: number;\n @Input() subEntityLicenses: number;\n @Input() remainingEntityLicenses: number;\n errorMessages: string[] = [];\n currentUser: string;\n subCompanyDetails: Array<CompanyDetails> = [];\n subCompany: CompanyDetails;\n userData: any;\n showSubEntities: boolean = false;\n parentCompanyId: number;\n subEntityLevel: number = 0;\n currentRow: number;\n adminEmail: string;\n adminPassword: string;\n adminUserName: string;\n loginUsername: string;\n searchtext: string = '';\n // p: number = 1;\n // rowsOnPage = 10;\n // rowsOnPageSet = [];\n // rowCount: any;\n // dynamicRows = 10;\n isDesc: boolean = false;\n column = '';\n direction: number;\n arrow = true;\n saveFilter: Array<CompanyDetails> = [];\n UserName: string;\n Password: string;\n isDisable = false;\n isSearchDisable = false;\n condition: boolean;\n organizationDetails: any;\n // companyPaging = false;\n dataSource = new MatTableDataSource();\n isCompanyLogin: boolean;\n\n constructor(\n private companyService: CompanyService,\n private dialog: MatDialog,\n private storage: LocalStorageService,\n private login: LoginComponent,\n private dorseyService: DorseyService) {\n this.currentUser = this.storage.retrieve('user');\n this.adminUserName = this.storage.retrieve('adminUname');\n this.adminEmail = this.storage.retrieve('username');\n this.adminPassword = this.storage.retrieve('password');\n this.loginUsername = this.storage.retrieve('loginUsername');\n this.organizationDetails = this.storage.retrieve(\"OrganizationDetails\");\n this.organizationId = this.organizationDetails.OrganizationId;\n this.isSuperAdmin = this.organizationDetails.IsSuperAdmin;\n this.isCompanyLogin = this.storage.retrieve(\"isCompanyLogin\");\n }\n\n ngOnInit(): void {\n this.getSubCompanies(this.companyId);\n this.getUsers();\n }\n\n subCompaniesAlreadyCreated: number;\n SubCompaniesLicensesAlreadyProvided: number;\n\n getSubCompanies(companyId: number): void {\n this.companyService.getSubCompanyDetailsByCompanyId(companyId).subscribe(resp => {\n this.subCompanyDetails = resp.Data;\n this.subCompaniesAlreadyCreated = this.subCompanyDetails.length;\n this.SubCompaniesLicensesAlreadyProvided = this.subCompanyDetails.reduce((sum, current) => sum + current.NoOfSubCompanies, 0);\n // this.rowsOnPageSet = [];\n // this.dynamicRows = 10;\n if (this.subCompanyDetails.length === 0) {\n // this.companyPaging = false;\n this.isDisable = true;\n this.isSearchDisable = true;\n }\n else {\n this.saveFilter = JSON.parse(JSON.stringify(this.subCompanyDetails));\n // this.companyPaging = true;\n this.isDisable = false;\n this.isSearchDisable = false;\n // this.rowCount = this.subCompanyDetails.length;\n // this.dataSource = new MatTableDataSource(this.subCompanyDetails);\n // while (this.dynamicRows < this.rowCount) {\n // this.rowsOnPageSet.push(this.dynamicRows);\n // this.dynamicRows = this.dynamicRows + 10;\n // }\n // if (!this.rowsOnPageSet.includes(this.rowCount))\n // this.rowsOnPageSet.push(this.rowCount);\n // if (this.rowsOnPageSet.length === 1) {\n // if (this.rowsOnPageSet[0] <= 10)\n // this.rowsOnPage = this.rowsOnPageSet[0];\n // }\n }\n })\n }\n\n sort(property) {\n this.arrow = !this.arrow;\n this.isDesc = !this.isDesc; //change the direction\n this.column = property;\n this.direction = this.isDesc ? 1 : -1;\n }\n\n viewSubEntities(element): void {\n this.currentRow = element.CompanyID;\n this.parentCompanyId = element.CompanyID;\n this.subEntityLevel = this.subEntityLevel + 1;\n\n this.companyService.getSubCompaniesCountByCompanyId(element.CompanyID).subscribe(resp => {\n this.subCompanyCount = resp.Data;\n this.entityLicenses = resp.AdditionalData.EntityLicenses;;\n if (this.subEntityLevel > 1) {\n this.showSubEntities = false;\n this.entityName = '';\n setTimeout(() => {\n this.showSubEntities = true;\n this.entityName = element.CompanyName;\n }, 200);\n } else {\n this.showSubEntities = true;\n this.entityName = element.CompanyName;\n }\n });\n\n }\n\n enableScoreCardChange(event: MatSlideToggleChange, row): void {\n const dialogRef = this.dialog.open(CompanyDialogComponent, {\n panelClass: 'custom-dialog-container',\n data: 'Are you sure you want to enable score card for this entity: ' + row.CompanyName + '?æææ' + true,\n });\n dialogRef.afterClosed().subscribe(result => {\n if (result) {\n this.subCompany = row;\n this.subCompany.EnableScoreCard = event.checked;\n this.companyService.UpdateEnableScoreCard(this.subCompany).subscribe(resp => {\n if (resp.Data) {\n this.dialog.open(ResponseDialogComponent, {\n data: {\n message: 'Updated successfully'\n }\n });\n }\n });\n } else {\n this.subCompanyDetails.find(ele => ele.CompanyID === row.CompanyID).EnableScoreCard = false;\n }\n\n });\n }\n\n newSubCompany(): void {\n this.searchtext = '';\n this.Searchtext();\n this.errorMessages = [];\n this.remainingEntityLicenses = 0;\n var subEntitiesAlreadyAssigned = 0;\n this.entityLicenses = 0;\n this.getSubCompanies(this.companyId);\n this.companyService.getSubCompaniesCountByCompanyId(this.companyId).subscribe(resp => {\n this.companyService.getSubCompanyDetailsByCompanyId(this.companyId).subscribe(resp1 => {\n\n if (resp1.Data) {\n resp1.Data.forEach(ent => {\n subEntitiesAlreadyAssigned = subEntitiesAlreadyAssigned + ent.NoOfSubCompanies;\n });\n }\n this.entityLicenses = resp.AdditionalData.EntityLicenses;\n this.subCompanyCount = resp.Data + subEntitiesAlreadyAssigned;\n this.remainingEntityLicenses = this.entityLicenses - this.subCompanyCount;\n if (this.entityLicenses <= this.subCompanyCount) {\n this.errorMessages.push('Cannot create new sub entity as there are no licenses');\n this.dialog.open(ValidationDialogComponent, {\n data: {\n errorMessages: this.errorMessages\n }\n });\n return;\n }\n this.remainingEntityLicenses = this.remainingEntityLicenses - 1;\n this.subCompany = {\n CompanyID: 0,\n CompanyName: '',\n ParentID: this.companyId,\n Address1: '',\n Address2: '',\n Country: '',\n State: '',\n City: '',\n Pincode: '',\n Email: '',\n Phone1: '',\n Phone2: '',\n EnableScoreCard: false,\n EnableSubCompanies: false,\n NoOfSubCompanies: 0,\n OrganizationID: this.organizationId,\n UserID: 0,\n UserName: '',\n Password: '',\n FirstName: '',\n LastName: '',\n EmployeeID: 0,\n CreatedBy: this.currentUser,\n UpdatedBy: this.currentUser,\n RowID: 0,\n RoleID: 0\n\n }\n const subDialogref = this.dialog.open(CompanyDialogComponent, {\n panelClass: 'custom-dialog-container',\n data: 'new' + 'æææ' + true,\n });\n subDialogref.componentInstance.companyDetails = this.subCompany;\n subDialogref.componentInstance.userListData = this.userData;\n subDialogref.componentInstance.companyData = this.subCompanyDetails;\n subDialogref.componentInstance.CompanyID = this.companyId;\n subDialogref.componentInstance.entityLicenses = this.entityLicenses;\n subDialogref.componentInstance.remainingEntityLicenses = this.remainingEntityLicenses;\n subDialogref.afterClosed().subscribe(result => {\n this.getSubCompanies(this.companyId);\n });\n });\n });\n\n\n\n\n\n\n\n }\n\n getUsers() {\n this.dorseyService.GetUsersList().subscribe(users => {\n this.userData = JSON.parse(users['_body']);\n });\n }\n\n\n EditCompany(companyRow) {\n this.subCompany = companyRow;\n this.subEntityLicenses = this.subCompany.NoOfSubCompanies;\n this.remainingEntityLicenses = 0;\n this.entityLicenses = 0;\n this.storage.store('CName', companyRow.CompanyName);\n this.companyService.getSubCompaniesCountByCompanyId(this.subCompany.ParentID).subscribe(resp => {\n this.companyService.getSubCompanyDetailsByCompanyId(this.subCompany.ParentID).subscribe(resp1 => {\n var subEntitiesAlreadyAssigned = 0;\n if (resp1.Data) {\n resp1.Data.forEach(ent => {\n subEntitiesAlreadyAssigned = subEntitiesAlreadyAssigned + ent.NoOfSubCompanies;\n });\n }\n this.entityLicenses = resp.AdditionalData.EntityLicenses;\n this.subCompanyCount = resp.Data + subEntitiesAlreadyAssigned;\n this.remainingEntityLicenses = this.entityLicenses - this.subCompanyCount;\n this.remainingEntityLicenses = this.subEntityLicenses + this.remainingEntityLicenses;\n this.dialogCall('edit');\n });\n });\n }\n\n // ifMaxRow() {\n // if (this.rowsOnPage == this.subCompanyDetails.length) {\n // this.rowsOnPage = this.rowsOnPage - 1;\n // }\n // }\n\n DeleteCompany(element) {\n var subCompanyCount = 0;\n this.entityLicenses = 0;\n this.companyService.getSubCompaniesCountByCompanyId(element.CompanyID).subscribe(resp => {\n subCompanyCount = resp.Data;\n this.entityLicenses = resp.AdditionalData.EntityLicenses;\n if (subCompanyCount > 0) {\n this.dialogCall(\"Delete Failed. This entity has sub entities\");\n return;\n }\n else {\n const dialogRef = this.dialog.open(CompanyDialogComponent, {\n panelClass: 'custom-dialog-container',\n data: 'Are you sure you want to delete entity: ' + element.CompanyName + '?æææ' + true,\n });\n dialogRef.afterClosed().subscribe(result => {\n if (result) {\n /// this.condition = true;\n this.companyService.deleteCompany(element.CompanyID).subscribe(resp => {\n if (resp.Data) {\n // this.ifMaxRow();\n this.condition = false;\n this.dialogCall('Deleted successfully');\n this.showSubEntities = false;\n }\n // this.dynamicRows = 10;\n // this.rowsOnPageSet = [];\n this.getSubCompanies(this.companyId);\n });\n }\n });\n }\n });\n\n }\n\n Navigate(element) {\n this.login.GetTeam(element.CompanyID);\n this.dorseyService.GetUsersList().subscribe(users => {\n this.userData = JSON.parse(users['_body']);\n let tempUser = this.userData.filter(x => x.CompanyID.toString() === element.CompanyID.toString() && x.EmployeeID.toString() === '0');\n this.login.GetUserRoleAssignment();\n this.storage.store(\"adminEmail\", this.adminEmail);\n this.storage.store(\"adminPassword\", this.adminPassword);\n this.storage.store(\"adminUserName\", this.adminUserName);\n this.storage.store(\"userData\", this.userData);\n this.storage.store(\"companyNavigate\", true);\n if (tempUser.length > 0) {\n this.login.LoginWithCompany(tempUser[0].UserName, tempUser[0].Password, element.CompanyID);\n }\n });\n }\n\n Searchtext() {\n // this.getSubCompanies(this.companyId)\n this.subCompanyDetails = this.saveFilter;\n let tempCompany = this.subCompanyDetails.filter(\n (item) => {\n return (\n (item.CompanyName !== null && item.CompanyName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n (item.Email !== null && item.Email.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n (item.Phone1 !== null && item.Phone1.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1)\n );\n }\n );\n this.subCompanyDetails = tempCompany;\n if (this.subCompanyDetails.length == 0) {\n this.isDisable = true;\n } else {\n this.isDisable = false;\n }\n if (this.searchtext === '') {\n this.subCompanyDetails = this.saveFilter;\n // this.dynamicRows = 10;\n // this.rowsOnPageSet = [];\n // this.rowCount = this.subCompanyDetails.length;\n // while (this.dynamicRows < this.rowCount) {\n // this.rowsOnPageSet.push(this.dynamicRows);\n // this.dynamicRows = this.dynamicRows + 10;\n // }\n // if (!this.rowsOnPageSet.includes(this.rowCount))\n // this.rowsOnPageSet.push(this.rowCount);\n // if (this.rowsOnPageSet) {\n\n // this.rowsOnPage = this.rowsOnPageSet[0];\n // }\n this.isDisable = false;\n }\n // else {\n\n // this.rowCount = tempCompany.length;\n // this.dynamicRows = 10;\n // this.rowsOnPageSet = [];\n // while (this.dynamicRows < this.rowCount) {\n // this.rowsOnPageSet.push(this.dynamicRows);\n // this.dynamicRows = this.dynamicRows + 10;\n // }\n // if (!this.rowsOnPageSet.includes(this.rowCount)) {\n // this.rowsOnPageSet.push(this.rowCount);\n // if (this.rowsOnPageSet)\n // this.rowsOnPage = this.rowsOnPageSet[0];\n // }\n\n // if (this.rowsOnPageSet.length === 1) {\n // if (this.rowsOnPageSet[0] <= 10)\n // this.rowsOnPage = this.rowsOnPageSet[0];\n // }\n //}\n }\n\n GetUsers() {\n this.dorseyService.GetUsersList().subscribe(users => {\n this.userData = JSON.parse(users['_body']);\n });\n }\n\n dialogCall(msg: string) {\n const dialogRef = this.dialog.open(CompanyDialogComponent, {\n panelClass: 'custom-dialog-container',\n data: msg + 'æææ' + false,\n });\n dialogRef.componentInstance.companyData = this.subCompanyDetails;\n dialogRef.componentInstance.companyDetails = this.subCompany;\n dialogRef.componentInstance.userListData = this.userData;\n dialogRef.componentInstance.currentUser = this.currentUser;\n dialogRef.componentInstance.isSuperAdmin = this.isSuperAdmin;\n dialogRef.componentInstance.entityLicenses = this.entityLicenses;\n dialogRef.componentInstance.remainingEntityLicenses = this.remainingEntityLicenses;\n dialogRef.componentInstance.subEntityLicenses = this.subEntityLicenses;\n if (msg == 'new') {\n this.searchtext = '';\n this.getSubCompanies(this.companyId);\n }\n if (msg == 'edit') {\n this.searchtext = '';\n }\n dialogRef.afterClosed().subscribe(result => {\n if (this.searchtext !== '' && this.searchtext !== undefined) {\n this.Searchtext();\n\n }\n else {\n this.getSubCompanies(this.companyId);\n }\n\n if (result && result.toString() === 'true') {\n let statusMsg = '';\n if (msg === 'new') {\n statusMsg = 'Saved successfully';\n }\n else {\n statusMsg = 'Updated successfully';\n }\n // this.dynamicRows = 10;\n const dialogRefsub = this.dialog.open(CompanyDialogComponent, {\n panelClass: 'custom-dialog-container',\n data: statusMsg + 'æææ' + false,\n });\n\n setTimeout(() => {\n this.getSubCompanies(this.companyId);\n this.GetUsers();\n }, 500);\n\n dialogRefsub.afterClosed().subscribe(result1 => {\n if (this.searchtext !== '') {\n this.Searchtext();\n }\n else {\n this.getSubCompanies(this.companyId);\n this.GetUsers();\n }\n });\n }\n });\n }\n\n\n}\n","import { Component, OnInit, Inject } from '@angular/core';\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { DorseyService } from '../dorsey.service';\nimport { LocalStorageService } from 'ngx-webstorage';\nimport { DepartmentService } from '../services/department.service';\nimport { EmployeeLoginLevel } from '../common/models/login-level.model';\nimport { copyRight } from '../copyRight.model';\n\n@Component({\n selector: 'app-teams',\n templateUrl: './teams.component.html',\n})\nexport class TeamsComponent implements OnInit {\n employeeLevelLogin = EmployeeLoginLevel;\n Permissons: any;\n processData: any;\n status = false;\n TeamName: string;\n TeamID: string;\n condition = false;\n teamData: any;\n p: number = 1;\n rowsOnPage = 10;\n rowsOnPageSet = [];\n rowCount: any;\n dynamicRows = 10;\n isDesc: boolean = false;\n column = \"\";\n direction: number;\n searchtext: string;\n teamPaging = false;\n saveFilter = [];\n CompanyID: string;\n isDisable = false;\n disableSearch = false;\n currentUser: string;\n MenuPermissions: any;\n menuData: any;\n menuID: string;\n menuName: string;\n processIDs = [];\n keyProcessTeam: any;\n TeamDescription: string;\n\n granualActivity = [];\n empID: string;\n arrow = true;\n loginCompanyName: any;\n employeeData: any;\n userRoleAssignmentData: any;\n rolesData: any;\n UserID: any;\n processName = [];\n DepartmentList: any;\n DepartmentID: number;\n employeeLoginLevel = EmployeeLoginLevel;\n employeeDetails: any;\n constructor(public dialog: MatDialog,\n public dorseyService: DorseyService,\n private storage: LocalStorageService,\n private departmentService: DepartmentService) {\n this.CompanyID = this.storage.retrieve('companyID');\n this.currentUser = this.storage.retrieve('user');\n this.menuData = this.storage.retrieve('menuData');\n this.MenuPermissions = this.storage.retrieve('MenuPermissions');\n\n this.empID = this.storage.retrieve(\"EmployeeID\");\n\n this.loginCompanyName = this.storage.retrieve('loginCompanyName');\n this.UserID = this.storage.retrieve('UserID');\n this.employeeDetails = this.storage.retrieve('employeeDetails');\n }\n\n ngOnInit() {\n this.getTeam();\n this.menuData = this.menuData.filter(x => x.MenuName.toString().toLowerCase() === 'team');\n if (this.menuData.length > 0) {\n this.menuName = this.menuData[0][\"MenuName\"];\n this.menuID = this.menuData[0][\"MenuID\"];\n }\n this.getProcess();\n this.getDepartments();\n\n }\n\n getDepartments(): void {\n this.DepartmentList = [];\n this.departmentService.getDepartments(parseInt(this.CompanyID)).subscribe(resp => {\n this.DepartmentList = resp.Data;\n if (this.employeeDetails) {\n if (this.employeeDetails.IsEmployeeLoginLevel == this.employeeLevelLogin.Department) {\n this.DepartmentList = this.DepartmentList.filter(ent => ent.DepartmentID === this.employeeDetails.DepartmentID)\n }\n // else if (this.employeeDetails.IsEmployeeLoginLevel == this.employeeLevelLogin.Team) {\n // this.DepartmentList = this.DepartmentList.filter(ent => ent.TeamID == this.employeeDetails.TeamID)\n // }\n }\n });\n }\n\n exportAsXLSX() {\n let allData = JSON.parse(JSON.stringify(this.teamData));\n for (let i = 0; i < allData.length; i++) {\n allData[i][\"Department Name\"] = allData[i].DepartmentName;\n allData[i].Team = this.teamData[i].TeamName;\n allData[i].Description = this.teamData[i].TeamDescription;\n delete (allData[i].DepartmentID);\n delete (allData[i].DepartmentName);\n delete (allData[i].TeamName);\n delete (allData[i].TeamDescription);\n delete (allData[i].CompanyID);\n delete (allData[i].ProcessID);\n delete (allData[i].TeamID);\n delete (allData[i].CreatedDate);\n delete (allData[i].CreatedBy);\n delete (allData[i].IsActive);\n delete (allData[i].UpdatedBy);\n delete (allData[i].UpdatedDate);\n\n }\n this.dorseyService.generateExcel(allData, this.loginCompanyName + '_team' + \"_\" + (new Date().getMonth() + 1) + '-' + new Date().getDate() + '-' + new Date().getFullYear(), 'Team', \"Company: \" + this.loginCompanyName, '', \"Team Report\", copyRight, 'FFFFFF00', 'FF0000FF');\n }\n\n searchText(): void {\n this.teamData = this.saveFilter;\n let tempTeam = this.teamData.filter(\n (item) => {\n return (\n (item.TeamName !== null && item.TeamName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n (item.DepartmentName !== null && item.DepartmentName.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1) ||\n (item.TeamDescription !== null && item.TeamDescription.toLowerCase().indexOf(this.searchtext.toLowerCase().trim()) > -1)\n\n );\n }\n );\n this.teamData = tempTeam;\n if (this.teamData.length == 0) {\n this.isDisable = true;\n } else {\n this.isDisable = false;\n }\n if (this.searchtext === '') {\n this.teamData = this.saveFilter;\n this.rowCount = this.teamData.length;\n this.isDisable = false;\n this.getTeamPagination(this.rowCount);\n }\n else {\n this.rowCount = tempTeam.length;\n this.getTeamPagination(this.rowCount);\n if (this.rowsOnPageSet.length === 1) {\n if (this.rowsOnPageSet[0] <= 10)\n this.rowsOnPage = this.rowsOnPageSet[0];\n }\n }\n }\n\n getTeam(): void {\n this.teamData = [];\n this.dorseyService.GetTeam(this.CompanyID).subscribe(processDa => {\n processDa = JSON.parse(processDa['_body']);\n this.teamData = processDa;\n this.dynamicRows = 10;\n this.rowsOnPageSet = [];\n if (this.teamData.length === 0) {\n this.teamPaging = false;\n this.isDisable = true;\n this.disableSearch = true;\n }\n else {\n this.teamPaging = true;\n this.isDisable = false;\n this.disableSearch = false;\n if (this.employeeDetails) {\n if (this.employeeDetails.IsEmployeeLoginLevel == this.employeeLevelLogin.Department) {\n this.teamData = this.teamData.filter(ent => ent.DepartmentID == this.employeeDetails.DepartmentID)\n }\n else if (this.employeeDetails.IsEmployeeLoginLevel == this.employeeLevelLogin.Team) {\n this.teamData = this.teamData.filter(ent => ent.TeamID == this.employeeDetails.TeamID)\n }\n else {\n let data = this.teamData.filter(x => x.CompanyID === this.CompanyID);\n this.teamData = data;\n }\n let tempTeam = this.teamData;\n if (!this.employeeDetails.PermissionJson) {\n this.rowCount = this.teamData.length;\n this.saveFilter = JSON.parse(JSON.stringify(this.teamData));\n this.getTeamPagination(this.rowCount)\n return;\n }\n\n this.Permissons = JSON.parse(this.employeeDetails.PermissionJson);\n this.Permissons = this.Permissons[\"Team\"];\n if (this.Permissons != undefined) {\n let teamKeys = Object.keys(this.Permissons);\n this.teamData = tempTeam.filter(x => x.CompanyID === this.CompanyID);\n if (teamKeys != undefined) {\n for (let i = 0; i < teamKeys.length; i++) {\n let actData = this.teamData.filter(x => x.TeamID.toString() === teamKeys[i].toString());\n if (actData.length > 0) {\n let permissonKeys = Object.keys(this.Permissons[teamKeys[i]]);\n if (permissonKeys.indexOf('R') > -1)\n actData[0]['R'] = this.Permissons[teamKeys[i]]['R'];\n else\n actData[0]['R'] = false;\n if (permissonKeys.indexOf('C') > -1)\n actData[0]['C'] = this.Permissons[teamKeys[i]]['C'];\n else\n actData[0]['C'] = false;\n if (permissonKeys.indexOf('U') > -1)\n actData[0]['U'] = this.Permissons[teamKeys[i]]['U'];\n else\n actData[0]['U'] = false;\n if (permissonKeys.indexOf('D') > -1)\n actData[0]['D'] = this.Permissons[teamKeys[i]]['D'];\n else\n actData[0]['D'] = false;\n\n this.granualActivity.push(actData[0]);\n }\n }\n this.teamData = this.granualActivity;\n if (this.teamData.length > 0) {\n this.rowCount = this.teamData.length;\n this.teamPaging = true;\n this.isDisable = false;\n this.disableSearch = false;\n this.saveFilter = JSON.parse(JSON.stringify(this.teamData));\n this.getTeamPagination(this.rowCount)\n }\n else if (this.teamData.length === 0) {\n this.teamPaging = false;\n this.isDisable = true;\n this.disableSearch = true;\n }\n }\n } else {\n if (this.teamData.length > 0) {\n this.rowCount = this.teamData.length;\n this.teamPaging = true;\n this.isDisable = false;\n this.disableSearch = false;\n this.saveFilter = JSON.parse(JSON.stringify(this.teamData));\n this.getTeamPagination(this.rowCount)\n }\n else if (this.teamData.length === 0) {\n this.teamPaging = false;\n this.isDisable = true;\n this.disableSearch = true;\n }\n }\n }\n else {\n this.teamData = processDa;\n this.saveFilter = JSON.parse(JSON.stringify(this.teamData));\n this.rowCount = this.teamData.length;\n this.getTeamPagination(this.rowCount)\n }\n }\n });\n }\n getTeamPagination(RowCount): void {\n this.dynamicRows = 10;\n this.rowsOnPageSet = [];\n this.rowsOnPage = 10;\n this.rowCount = RowCount;\n while (this.dynamicRows < this.rowCount) {\n this.rowsOnPageSet.push(this.dynamicRows);\n this.dynamicRows = this.dynamicRows + 10;\n }\n if (!this.rowsOnPageSet.includes(this.rowCount)) {\n this.rowsOnPageSet.push(this.rowCount);\n if (this.rowsOnPageSet.length === 1) {\n if (this.rowsOnPageSet[0] <= 10)\n this.rowsOnPage = this.rowsOnPageSet[0];\n }\n }\n }\n\n sort(property): void {\n this.arrow = !this.arrow;\n this.isDesc = !this.isDesc; //change the direction \n this.column = property;\n this.direction = this.isDesc ? 1 : -1;\n }\n\n OpenTeam(): void {\n this.TeamDescription = '';\n this.DepartmentID = 0;\n this.TeamName = '';\n this.dialogCall('new');\n }\n\n dialogCall(msg: string) {\n const dialogRef = this.dialog.open(TeamsDialogComponent, {\n panelClass: 'custom-dialog-container',\n data: msg + 'æææ' + false,\n });\n dialogRef.componentInstance.currentUser = this.currentUser;\n dialogRef.componentInstance.teamData = this.teamData;\n dialogRef.componentInstance.TeamDescription = this.TeamDescription;\n dialogRef.componentInstance.CompanyID = this.CompanyID;\n dialogRef.componentInstance.DepartmentList = this.DepartmentList;\n dialogRef.componentInstance.DepartmentID = this.DepartmentID;\n if (msg === 'new') {\n this.searchtext = '';\n this.getTeam();\n }\n if (msg === 'edit') {\n dialogRef.componentInstance.TeamName = this.TeamName;\n dialogRef.componentInstance.TeamID = this.TeamID;\n }\n dialogRef.afterClosed().subscribe(result => {\n\n this.TeamID = \"\";\n if (this.searchtext !== '' && this.searchtext !== undefined) {\n this.searchText();\n }\n else {\n this.getTeam();\n }\n if (result.toString() === 'true') {\n let statusMsg = '';\n if (msg === 'new') {\n statusMsg = 'Saved successfully';\n }\n else {\n statusMsg = 'Updated successfully';\n }\n this.getTeam();\n const dialogRefsub = this.dialog.open(TeamsDialogComponent, {\n panelClass: 'custom-dialog-container',\n data: statusMsg + 'æææ' + false,\n });\n setTimeout(() => {\n this.getTeam();\n }, 500);\n dialogRefsub.afterClosed().subscribe(result1 => {\n this.dynamicRows = 10;\n if (this.searchtext !== '' && this.searchtext !== undefined) {\n this.searchText();\n }\n else {\n this.getTeam();\n }\n });\n }\n });\n }\n\n getProcess() {\n this.dorseyService.GetProcess(this.CompanyID).subscribe(processDa => {\n processDa = JSON.parse(processDa['_body']);\n this.processData = processDa;\n this.processData.sort(function (a, b) {\n return b.squence - a.squence;\n });\n });\n\n }\n\n getEmployee() {\n this.dorseyService.GetEmployee(this.CompanyID).subscribe(subData => {\n subData = JSON.parse(subData['_body']);\n this.employeeData = subData;\n });\n }\n EditTeam(element): void {\n this.TeamDescription = element.TeamDescription;\n this.DepartmentID = element.DepartmentID;\n this.TeamID = element.TeamID;\n this.TeamName = element.TeamName;\n this.storage.store('TName', this.TeamName);\n this.dialogCall('edit');\n }\n\n ifMaxRow(): void {\n if (this.rowsOnPage == this.teamData.length) {\n this.rowsOnPage = this.rowsOnPage - 1;\n }\n }\n\n DeleteTeam(element): void {\n this.TeamID = element.TeamID;\n const dialogRef = this.dialog.open(TeamsDialogComponent, {\n panelClass: 'custom-dialog-container',\n data: 'Are you sure you want to delete team: ' + element.TeamName + '?æææ' + true,\n });\n dialogRef.afterClosed().subscribe(result => {\n if (result) {\n this.getEmployee();\n let issueCount = 0;\n let issueCount1 = 0;\n setTimeout(() => {\n for (let i = 0; i < this.employeeData.length; i++) {\n if (this.TeamID == this.employeeData[i].TeamID) {\n issueCount++;\n }\n }\n\n for (let i = 0; i < this.processData.length; i++) {\n if (this.TeamID == this.processData[i].TeamID) {\n issueCount1++;\n }\n }\n if (!issueCount && !issueCount1) {\n this.dorseyService.DeleteTeam(this.TeamID).subscribe(data => {\n if (data.ok) {\n this.ifMaxRow();\n this.condition = true;\n this.dialogCall('Deleted successfully');\n }\n this.dynamicRows = 10;\n this.rowsOnPageSet = [];\n this.getTeam();\n });\n } else {\n this.dialogCall(\"This team have an employee or process\");\n }\n }, 500);\n }\n });\n }\n}\n\n\n@Component({\n selector: 'app-dialog',\n templateUrl: 'dialog.html',\n providers: [DorseyService]\n})\nexport class TeamsDialogComponent implements OnInit {\n condition = false;\n processData: any;\n dataSelf: string;\n TeamName: string;\n TeamID: string;\n teamData: any;\n CompanyID: string;\n currentUser: string;\n TeamDescription: string;\n processIDs = [];\n processName: any;\n btnDisabled = false;\n DepartmentID: number;\n DepartmentList: string;\n constructor(\n public dialogRef: MatDialogRef<TeamsDialogComponent>,\n @Inject(MAT_DIALOG_DATA) public data: any, public dorseyService: DorseyService, private storage: LocalStorageService) {\n this.data = this.data.split('æææ');\n if (this.data[1] === 'true') {\n this.condition = true;\n } else {\n this.condition = false;\n }\n this.data = this.data[0];\n }\n\n ngOnInit() {\n }\n\n onYesClick() {\n this.dialogRef.close(true);\n }\n\n onNoClick(): void {\n this.dialogRef.close();\n }\n\n process(event) {\n this.processIDs = event.value;\n }\n\n departmentChange(event) {\n this.DepartmentID = event.value;\n }\n\n AddTeam() {\n this.btnDisabled = true;\n setTimeout(() => {\n this.btnDisabled = false;\n }, 1000);\n this.dataSelf = '';\n\n if (this.DepartmentID === 0 || !this.TeamName.trim()) {\n this.dataSelf = 'Please enter mandatory(*) fields';\n return;\n }\n this.saveTeam(this.data);\n }\n\n saveTeam(msg: string) {\n const json = {\n TeamName: this.TeamName,\n CreatedBy: this.currentUser,\n UpdatedBy: this.currentUser,\n TeamID: this.TeamID,\n CompanyID: this.CompanyID,\n ProcessID: JSON.stringify(this.processIDs),\n TeamDescription: this.TeamDescription,\n DepartmentID: this.DepartmentID\n };\n if (msg === 'new') {\n for (let i = 0; i < this.teamData.length; i++) {\n if (this.TeamName.toLowerCase().trim() === this.teamData[i].TeamName.toLowerCase().trim()) {\n this.dataSelf = \"Team name already exists\";\n return;\n }\n }\n this.dorseyService.SaveTeam(json).subscribe(data => {\n if (data['_body'].toString() === 'true') {\n this.dataSelf = 'Saved successfully';\n this.dialogRef.close(true);\n } else {\n this.dataSelf = 'Save failed';\n }\n });\n } else {\n for (let i = 0; i < this.teamData.length; i++) {\n if (this.TeamName.toLowerCase().trim() === this.teamData[i].TeamName.toLowerCase().trim() && this.TeamName.toLowerCase().trim() !== this.storage.retrieve('TName').toLowerCase().trim()) {\n this.dataSelf = \"Team name already exists\";\n return;\n }\n }\n this.dorseyService.SaveTeam(json).subscribe(data => {\n if (data['_body'].toString() === 'true') {\n this.dialogRef.close(true);\n } else {\n this.dataSelf = 'Updated successfully';\n }\n });\n }\n }\n\n Clear() {\n this.dialogRef.close(false);\n }\n\n IsAlpha(evt) {\n var keyCode = (evt.which) ? evt.which : evt.keyCode\n if ((keyCode < 65 || keyCode > 90) && (keyCode < 97 || keyCode > 123) && keyCode != 32)\n return false;\n return true;\n }\n\n validate() {\n for (let i = 0; i < this.teamData.length; i++) {\n if (this.TeamName && this.TeamName.toLowerCase().trim() === this.teamData[i].TeamName.toLowerCase().trim()) {\n this.dataSelf = \"Team name already exists\";\n setTimeout(() => {\n this.dataSelf = '';\n }, 2000);\n\n }\n }\n }\n}\n","module.exports = \"table {\\n width: 100%;\\n font-size: smaller;\\n}\\n\\nth, td {\\n text-align: center;\\n font-size: smaller;\\n}\\n\\nth {\\n color: white;\\n background-color: #474747;\\n height: 35px;\\n font-size: 13px;\\n}\\n\\ntd {\\n height: 35px;\\n font-size: 13px;\\n}\\n\\ntable {\\n border-collapse: collapse;\\n}\\n\\ntable, th, td {\\n border: 1px solid #e1e1e1;\\n overflow: hidden;\\n word-wrap: break-word;\\n}\\n\\ntable.fixed {\\n table-layout: fixed;\\n}\\n\\ntable.fixed td {\\n overflow: hidden;\\n}\\n\\n.highlight td {\\n background: #C0C0C0;\\n}\\n\\n.fa {\\n font-size: 18px;\\n}\\n\\n.fa-trash-o {\\n color: red;\\n}\\n\\n.warningMsg {\\n text-align: center;\\n color: red;\\n}\\n\\n.fa-arrow-down, .fa-arrow-up {\\n font-size: 10px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdXNlci1wZXJtaXNpb25zL0Y6XFxOaWtpbCBXb3JrXFxQcm9qZWN0c1xcRG9yc2V5XFxIaWVyYXJjaHkgU291cmNlIENvZGVcXFdvcmtpbmdcXGRvcnNleUdyb3VwL3NyY1xcYXBwXFx1c2VyLXBlcm1pc2lvbnNcXHVzZXItcGVybWlzaW9ucy5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvdXNlci1wZXJtaXNpb25zL3VzZXItcGVybWlzaW9ucy5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTtFQUNJLFdBQUE7RUFDQSxrQkFBQTtBQ0RKOztBREdBO0VBQ0ksa0JBQUE7RUFDQSxrQkFBQTtBQ0FKOztBREdBO0VBQ0MsWUFBQTtFQUNELHlCQUFBO0VBQ0EsWUFBQTtFQUNDLGVBQUE7QUNBRDs7QURFQTtFQUNJLFlBQUE7RUFDQyxlQUFBO0FDQ0w7O0FEQ0E7RUFDSSx5QkFBQTtBQ0VKOztBREFBO0VBQ0kseUJBQUE7RUFDQSxnQkFBQTtFQUNBLHFCQUFBO0FDR0o7O0FEREE7RUFBYyxtQkFBQTtBQ0tkOztBREpBO0VBQWlCLGdCQUFBO0FDUWpCOztBRFBBO0VBQWUsbUJBQUE7QUNXZjs7QURUQTtFQUNLLGVBQUE7QUNZTDs7QURUQTtFQUNJLFVBQUE7QUNZSjs7QURWQTtFQUNJLGtCQUFBO0VBQW1CLFVBQUE7QUNjdkI7O0FEWkE7RUFDSSxlQUFBO0FDZUoiLCJmaWxlIjoic3JjL2FwcC91c2VyLXBlcm1pc2lvbnMvdXNlci1wZXJtaXNpb25zLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiXHJcblxyXG50YWJsZSB7XHJcbiAgICB3aWR0aDoxMDAlO1xyXG4gICAgZm9udC1zaXplOiBzbWFsbGVyO1xyXG59XHJcbnRoLHRke1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgZm9udC1zaXplOiBzbWFsbGVyO1xyXG59XHJcblxyXG50aCB7XHJcbiBjb2xvcjp3aGl0ZTsgICAgIFxyXG5iYWNrZ3JvdW5kLWNvbG9yOiBcdCM0NzQ3NDc7XHJcbmhlaWdodDogMzVweDtcclxuIGZvbnQtc2l6ZTogMTNweDtcclxufVxyXG50ZCB7XHJcbiAgICBoZWlnaHQ6IDM1cHg7XHJcbiAgICAgZm9udC1zaXplOiAxM3B4O1xyXG59XHJcbnRhYmxlIHtcclxuICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XHJcbn1cclxudGFibGUsIHRoLCB0ZCB7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZTFlMWUxO1xyXG4gICAgb3ZlcmZsb3c6aGlkZGVuO1xyXG4gICAgd29yZC13cmFwOmJyZWFrLXdvcmQ7XHJcbn1cclxudGFibGUuZml4ZWQgeyB0YWJsZS1sYXlvdXQ6Zml4ZWQ7IH1cclxudGFibGUuZml4ZWQgdGQgeyBvdmVyZmxvdzogaGlkZGVuOyB9XHJcbi5oaWdobGlnaHQgdGQge2JhY2tncm91bmQ6ICNDMEMwQzA7fVxyXG5cclxuLmZhe1xyXG4gICAgIGZvbnQtc2l6ZTogMThweDsgXHJcbn1cclxuXHJcbi5mYS10cmFzaC1ve1xyXG4gICAgY29sb3I6cmVkO1xyXG59XHJcbi53YXJuaW5nTXNnIHtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtjb2xvcjogcmVkO1xyXG59XHJcbi5mYS1hcnJvdy1kb3duLCAuZmEtYXJyb3ctdXB7XHJcbiAgICBmb250LXNpemU6IDEwcHhcclxufVxyXG4iLCJ0YWJsZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBmb250LXNpemU6IHNtYWxsZXI7XG59XG5cbnRoLCB0ZCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC1zaXplOiBzbWFsbGVyO1xufVxuXG50aCB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQ3NDc0NztcbiAgaGVpZ2h0OiAzNXB4O1xuICBmb250LXNpemU6IDEzcHg7XG59XG5cbnRkIHtcbiAgaGVpZ2h0OiAzNXB4O1xuICBmb250LXNpemU6IDEzcHg7XG59XG5cbnRhYmxlIHtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbn1cblxudGFibGUsIHRoLCB0ZCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNlMWUxZTE7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbn1cblxudGFibGUuZml4ZWQge1xuICB0YWJsZS1sYXlvdXQ6IGZpeGVkO1xufVxuXG50YWJsZS5maXhlZCB0ZCB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5oaWdobGlnaHQgdGQge1xuICBiYWNrZ3JvdW5kOiAjQzBDMEMwO1xufVxuXG4uZmEge1xuICBmb250LXNpemU6IDE4cHg7XG59XG5cbi5mYS10cmFzaC1vIHtcbiAgY29sb3I6IHJlZDtcbn1cblxuLndhcm5pbmdNc2cge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGNvbG9yOiByZWQ7XG59XG5cbi5mYS1hcnJvdy1kb3duLCAuZmEtYXJyb3ctdXAge1xuICBmb250LXNpemU6IDEwcHg7XG59Il19 */\"","import { Component, OnInit } from '@angular/core';\nimport { DorseyService } from '../dorsey.service';\n\n@Component({\n selector: 'app-user-permisions',\n templateUrl: './user-permisions.component.html',\n styleUrls: ['./user-permisions.component.scss']\n})\nexport class UserPermisionsComponent implements OnInit {\n index = 0;\n roleData: any;\n p: number = 1;\n rowsOnPage = 10;\n rowsOnPageSet = [];\n rowCount: any;\n dynamicRows = 10;\n isDesc: boolean = false;\n column = \"\";\n direction: number;\n arrow = true;\n processPaging = false;\n saveFilter = [];\n constructor(private dorseyService: DorseyService) { }\n\n ngOnInit() {\n this.GetUsers();\n }\n onLinkClick(event) {\n this.index = event.index;\n }\n\n GetUsers() {\n this.dorseyService.GetUsersList().subscribe(subData => {\n subData = JSON.parse(subData['_body']);\n this.roleData = subData;\n this.rowCount = this.roleData.length;\n if (this.roleData.length === 0) {\n this.processPaging = false;\n }\n else {\n this.saveFilter = JSON.parse(JSON.stringify(this.roleData));\n this.processPaging = true;\n\n while (this.dynamicRows < this.rowCount) {\n this.rowsOnPageSet.push(this.dynamicRows);\n this.dynamicRows = this.dynamicRows + 10;\n }\n if (!this.rowsOnPageSet.includes(this.rowCount)) this.rowsOnPageSet.push(this.rowCount);\n if (this.rowsOnPageSet.length === 1) {\n if (this.rowsOnPageSet[0] <= 10)\n this.rowsOnPage = this.rowsOnPageSet[0];\n }\n }\n });\n }\n\n\n sort(property) {\n this.arrow = !this.arrow;\n this.isDesc = !this.isDesc; //change the direction \n this.column = property;\n this.direction = this.isDesc ? 1 : -1;\n }\n\n}\n","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3VzZXJtYW51YWwvdXNlcm1hbnVhbC5jb21wb25lbnQuc2NzcyJ9 */\"","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-usermanual',\n templateUrl: './usermanual.component.html',\n styleUrls: ['./usermanual.component.scss'],\n\n})\nexport class UsermanualComponent implements OnInit {\n\n // PdfArry=[\n // {pdfSrc:'../../assets/images/DMAPP_SampleUserManual.pdf'},\n // ]\n \n constructor() { \n }\n ngOnInit(): void {\n document.addEventListener(\"contextmenu\", function (e) {\n e.preventDefault();\n }, false);\n document.onkeydown = function(e) {\n // Allow: Ctrl+A\n if (e.ctrlKey && e.keyCode === 65) {\n return false;\n }//Ctrl + C\n if (e.ctrlKey && e.keyCode === 67) {\n return false;\n }//Ctrl + V\n if (e.ctrlKey && e.keyCode === 86) {\n return false;\n }\n //ctrl p\n if(e.ctrlKey && e.keyCode == 80){\n return false;\n }\n //right click key code\n if(e.ctrlKey && e.keyCode == 93){\n return false;\n\n }\n }\n }\n\n}\n","module.exports = \".text-underline {\\n text-decoration: underline;\\n}\\n\\n.field {\\n margin-left: 2%;\\n}\\n\\n#tableActions {\\n justify-content: flex-start !important;\\n}\\n\\n.form-group {\\n margin-bottom: 0.25rem;\\n}\\n\\n.example-headers-align .mat-expansion-panel-header-title,\\n.example-headers-align .mat-expansion-panel-header-description {\\n flex-basis: 0;\\n}\\n\\n.example-headers-align .mat-expansion-panel-header-description {\\n justify-content: space-between;\\n align-items: center;\\n}\\n\\n.example-headers-align .mat-form-field + .mat-form-field {\\n margin-left: 8px;\\n}\\n\\n.mat-action-row {\\n padding: 0px !important;\\n}\\n\\nmat-expansion-panel-header {\\n height: 48px !important;\\n pointer-events: none;\\n border-bottom: 1px solid lightgrey;\\n}\\n\\n.p-t-20 {\\n padding-top: 20px !important;\\n}\\n\\nmat-panel-title {\\n font-weight: 600;\\n}\\n\\nth {\\n color: white;\\n background-color: #474747;\\n}\\n\\n.target-width {\\n width: 75px;\\n}\\n\\n.f-b {\\n font-weight: bold;\\n}\\n\\n.p-0 {\\n padding: 0px !important;\\n}\\n\\n.m-0 {\\n margin: 0px !important;\\n}\\n\\n.min-width-300 {\\n min-width: 300px !important;\\n width: 400px !important;\\n max-width: 400px !important;\\n word-break: break-all;\\n}\\n\\n.min-width {\\n min-width: 130px !important;\\n width: 130px !important;\\n max-width: 130px !important;\\n}\\n\\n.w-50 {\\n text-align: center;\\n min-width: 50px !important;\\n width: 80px !important;\\n max-width: 80px !important;\\n}\\n\\n.w-100 {\\n width: 100%;\\n}\\n\\n.m-2 {\\n margin: 2%;\\n}\\n\\n.btn-default {\\n background-color: #e6e8eb !important;\\n}\\n\\n.bg-red {\\n background-color: red;\\n color: white;\\n text-align: center;\\n padding-top: 20px;\\n}\\n\\n.bg-yellow {\\n background-color: yellow;\\n color: white;\\n text-align: center;\\n padding-top: 20px;\\n}\\n\\n.bg-green {\\n background-color: green;\\n color: white;\\n text-align: center;\\n padding-top: 20px;\\n}\\n\\n.w-80 {\\n min-width: 60px;\\n width: 60px;\\n max-width: 60px;\\n word-break: break-all;\\n}\\n\\n.w-130 {\\n min-width: 130px;\\n width: 130px;\\n max-width: 130px;\\n}\\n\\n.warningMsg {\\n text-align: center;\\n color: red;\\n}\\n\\n.center {\\n display: block;\\n margin-left: auto;\\n margin-right: auto;\\n width: 20%;\\n}\\n\\n.m-2 {\\n margin: 2%;\\n}\\n\\n.headcol {\\n position: -webkit-sticky;\\n position: sticky;\\n left: 0px;\\n /* height: 48px; */\\n z-index: 1;\\n}\\n\\n.headcol1 {\\n position: -webkit-sticky;\\n position: sticky;\\n left: 130px;\\n /* height: 48px; */\\n z-index: 1;\\n}\\n\\n.bodycol {\\n position: -webkit-sticky;\\n position: sticky;\\n left: 0px;\\n /* height: 48px; */\\n z-index: 1;\\n background-color: lightgrey;\\n text-align: center;\\n vertical-align: middle;\\n}\\n\\n.bodycol1 {\\n position: -webkit-sticky;\\n position: sticky;\\n left: 130px;\\n /* height: 48px; */\\n z-index: 1;\\n background-color: lightgrey;\\n text-align: center;\\n vertical-align: middle;\\n}\\n\\n@media screen {\\n .donotprintthis {\\n display: inline-block;\\n }\\n}\\n\\n@media print {\\n .donotprintthis {\\n display: none;\\n }\\n}\\n\\n@media print {\\n @page {\\n size: landscape;\\n }\\n}\\n\\n@media print {\\n @page {\\n margin: 0;\\n }\\n body {\\n margin: 1.6cm;\\n }\\n}\\n\\n@page {\\n size: auto;\\n /* auto is the initial value */\\n margin: 0mm;\\n /* this affects the margin in the printer settings */\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdmlldy1zY29yZS1jYXJkL0Y6XFxOaWtpbCBXb3JrXFxQcm9qZWN0c1xcRG9yc2V5XFxIaWVyYXJjaHkgU291cmNlIENvZGVcXFdvcmtpbmdcXGRvcnNleUdyb3VwL3NyY1xcYXBwXFx2aWV3LXNjb3JlLWNhcmRcXHZpZXctc2NvcmUtY2FyZC5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvdmlldy1zY29yZS1jYXJkL3ZpZXctc2NvcmUtY2FyZC5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNJLDBCQUFBO0FDQ0o7O0FERUE7RUFDSSxlQUFBO0FDQ0o7O0FERUE7RUFDSSxzQ0FBQTtBQ0NKOztBREVBO0VBQ0ksc0JBQUE7QUNDSjs7QURFQTs7RUFFRSxhQUFBO0FDQ0Y7O0FERUE7RUFDRSw4QkFBQTtFQUNBLG1CQUFBO0FDQ0Y7O0FERUE7RUFDRSxnQkFBQTtBQ0NGOztBREVBO0VBQ0EsdUJBQUE7QUNDQTs7QURFQTtFQUNJLHVCQUFBO0VBQ0Esb0JBQUE7RUFDQSxrQ0FBQTtBQ0NKOztBREVBO0VBQ0UsNEJBQUE7QUNDRjs7QURFQTtFQUNJLGdCQUFBO0FDQ0o7O0FERUE7RUFDRSxZQUFBO0VBQ0EseUJBQUE7QUNDRjs7QURFQTtFQUNFLFdBQUE7QUNDRjs7QURFQTtFQUNFLGlCQUFBO0FDQ0Y7O0FERUE7RUFDRSx1QkFBQTtBQ0NGOztBREVBO0VBQ0Usc0JBQUE7QUNDRjs7QURFQTtFQUNFLDJCQUFBO0VBQ0EsdUJBQUE7RUFDQSwyQkFBQTtFQUNBLHFCQUFBO0FDQ0Y7O0FERUE7RUFDRSwyQkFBQTtFQUNBLHVCQUFBO0VBQ0EsMkJBQUE7QUNDRjs7QURFQTtFQUNFLGtCQUFBO0VBQ0EsMEJBQUE7RUFDQSxzQkFBQTtFQUNBLDBCQUFBO0FDQ0Y7O0FERUE7RUFDRSxXQUFBO0FDQ0Y7O0FERUE7RUFDRSxVQUFBO0FDQ0Y7O0FERUE7RUFDRSxvQ0FBQTtBQ0NGOztBREVBO0VBQ0UscUJBQUE7RUFDQSxZQUFBO0VBQ0Esa0JBQUE7RUFDQSxpQkFBQTtBQ0NGOztBREVBO0VBQ0Usd0JBQUE7RUFDQSxZQUFBO0VBQ0Esa0JBQUE7RUFDQSxpQkFBQTtBQ0NGOztBREVBO0VBQ0UsdUJBQUE7RUFDQSxZQUFBO0VBQ0Esa0JBQUE7RUFDQSxpQkFBQTtBQ0NGOztBREVBO0VBQ0UsZUFBQTtFQUNBLFdBQUE7RUFDQSxlQUFBO0VBQ0EscUJBQUE7QUNDRjs7QURDQTtFQUNFLGdCQUFBO0VBQ0EsWUFBQTtFQUNBLGdCQUFBO0FDRUY7O0FEQ0E7RUFDRSxrQkFBQTtFQUNBLFVBQUE7QUNFRjs7QURDQTtFQUNFLGNBQUE7RUFDQSxpQkFBQTtFQUNBLGtCQUFBO0VBQ0EsVUFBQTtBQ0VGOztBRENBO0VBQ0UsVUFBQTtBQ0VGOztBRENBO0VBQ0Usd0JBQUE7RUFBQSxnQkFBQTtFQUNFLFNBQUE7RUFDQSxrQkFBQTtFQUNBLFVBQUE7QUNFSjs7QURDQTtFQUNFLHdCQUFBO0VBQUEsZ0JBQUE7RUFDRSxXQUFBO0VBQ0Esa0JBQUE7RUFDQSxVQUFBO0FDRUo7O0FEQ0E7RUFDRSx3QkFBQTtFQUFBLGdCQUFBO0VBQ0UsU0FBQTtFQUNBLGtCQUFBO0VBQ0EsVUFBQTtFQUNBLDJCQUFBO0VBQ0Esa0JBQUE7RUFDQSxzQkFBQTtBQ0VKOztBRENBO0VBQ0Usd0JBQUE7RUFBQSxnQkFBQTtFQUNFLFdBQUE7RUFDQSxrQkFBQTtFQUNBLFVBQUE7RUFDQSwyQkFBQTtFQUNBLGtCQUFBO0VBQ0Esc0JBQUE7QUNFSjs7QURDQTtFQUVRO0lBQ0EscUJBQUE7RUNDTjtBQUNGOztBREVHO0VBQ0E7SUFDQyxhQUFBO0VDQUY7QUFDRjs7QURFRztFQUFhO0lBQU8sZUFBQTtFQ0VyQjtBQUNGOztBREZFO0VBQ0E7SUFBUSxTQUFBO0VDS1I7RURKQTtJQUFPLGFBQUE7RUNPUDtBQUNGOztBRExBO0VBRVEsVUFBQTtFQUFjLDhCQUFBO0VBQ2QsV0FBQTtFQUFjLG9EQUFBO0FDUXRCIiwiZmlsZSI6InNyYy9hcHAvdmlldy1zY29yZS1jYXJkL3ZpZXctc2NvcmUtY2FyZC5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi50ZXh0LXVuZGVybGluZXtcclxuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xyXG59XHJcblxyXG4uZmllbGR7XHJcbiAgICBtYXJnaW4tbGVmdDogMiU7XHJcbn1cclxuXHJcbiN0YWJsZUFjdGlvbnN7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQgIWltcG9ydGFudDtcclxufVxyXG5cclxuLmZvcm0tZ3JvdXB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xyXG59XHJcblxyXG4uZXhhbXBsZS1oZWFkZXJzLWFsaWduIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci10aXRsZSxcclxuLmV4YW1wbGUtaGVhZGVycy1hbGlnbiAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItZGVzY3JpcHRpb24ge1xyXG4gIGZsZXgtYmFzaXM6IDA7XHJcbn1cclxuXHJcbi5leGFtcGxlLWhlYWRlcnMtYWxpZ24gLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWRlc2NyaXB0aW9uIHtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxufVxyXG5cclxuLmV4YW1wbGUtaGVhZGVycy1hbGlnbiAubWF0LWZvcm0tZmllbGQgKyAubWF0LWZvcm0tZmllbGQge1xyXG4gIG1hcmdpbi1sZWZ0OiA4cHg7XHJcbn1cclxuXHJcbi5tYXQtYWN0aW9uLXJvd3tcclxucGFkZGluZzogMHB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVye1xyXG4gICAgaGVpZ2h0OjQ4cHggIWltcG9ydGFudDtcclxuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGxpZ2h0Z3JleTtcclxufVxyXG5cclxuLnAtdC0yMHtcclxuICBwYWRkaW5nLXRvcDogMjBweCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG5tYXQtcGFuZWwtdGl0bGV7XHJcbiAgICBmb250LXdlaWdodDogNjAwO1xyXG59XHJcblxyXG50aCB7XHJcbiAgY29sb3I6IHdoaXRlO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICM0NzQ3NDc7XHJcbn1cclxuXHJcbi50YXJnZXQtd2lkdGh7XHJcbiAgd2lkdGg6IDc1cHg7XHJcbn1cclxuXHJcbi5mLWJ7XHJcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbn1cclxuXHJcbi5wLTB7XHJcbiAgcGFkZGluZzogMHB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5tLTB7XHJcbiAgbWFyZ2luOiAwcHggIWltcG9ydGFudDtcclxufVxyXG5cclxuLm1pbi13aWR0aC0zMDB7XHJcbiAgbWluLXdpZHRoOiAzMDBweCAhaW1wb3J0YW50O1xyXG4gIHdpZHRoOiA0MDBweCAhaW1wb3J0YW50O1xyXG4gIG1heC13aWR0aDogNDAwcHggIWltcG9ydGFudDtcclxuICB3b3JkLWJyZWFrOiBicmVhay1hbGw7XHJcbn1cclxuXHJcbi5taW4td2lkdGh7XHJcbiAgbWluLXdpZHRoOiAxMzBweCAhaW1wb3J0YW50O1xyXG4gIHdpZHRoOiAxMzBweCAhaW1wb3J0YW50O1xyXG4gIG1heC13aWR0aDogMTMwcHggIWltcG9ydGFudDtcclxufVxyXG5cclxuLnctNTB7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIG1pbi13aWR0aDogNTBweCAhaW1wb3J0YW50O1xyXG4gIHdpZHRoOiA4MHB4ICFpbXBvcnRhbnQ7XHJcbiAgbWF4LXdpZHRoOiA4MHB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi53LTEwMHtcclxuICB3aWR0aDogMTAwJTtcclxufVxyXG5cclxuLm0tMntcclxuICBtYXJnaW46IDIlO1xyXG59XHJcblxyXG4uYnRuLWRlZmF1bHR7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZThlYiAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uYmctcmVke1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHJlZDtcclxuICBjb2xvcjogd2hpdGU7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIHBhZGRpbmctdG9wOiAyMHB4O1xyXG59XHJcblxyXG4uYmcteWVsbG93e1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHllbGxvdztcclxuICBjb2xvcjogd2hpdGU7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIHBhZGRpbmctdG9wOiAyMHB4O1xyXG59XHJcblxyXG4uYmctZ3JlZW57XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47XHJcbiAgY29sb3I6IHdoaXRlO1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICBwYWRkaW5nLXRvcDogMjBweDtcclxufVxyXG5cclxuLnctODB7XHJcbiAgbWluLXdpZHRoOiA2MHB4O1xyXG4gIHdpZHRoOiA2MHB4O1xyXG4gIG1heC13aWR0aDogNjBweDtcclxuICB3b3JkLWJyZWFrOiBicmVhay1hbGw7XHJcbn1cclxuLnctMTMwe1xyXG4gIG1pbi13aWR0aDogMTMwcHg7XHJcbiAgd2lkdGg6IDEzMHB4O1xyXG4gIG1heC13aWR0aDogMTMwcHg7XHJcbn1cclxuXHJcbi53YXJuaW5nTXNnIHtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgY29sb3I6IHJlZDtcclxufVxyXG5cclxuLmNlbnRlcntcclxuICBkaXNwbGF5OiBibG9jaztcclxuICBtYXJnaW4tbGVmdDogYXV0bztcclxuICBtYXJnaW4tcmlnaHQ6IGF1dG87XHJcbiAgd2lkdGg6IDIwJTtcclxufVxyXG5cclxuLm0tMntcclxuICBtYXJnaW46IDIlO1xyXG59XHJcblxyXG4uaGVhZGNvbHtcclxuICBwb3NpdGlvbjogc3RpY2t5O1xyXG4gICAgbGVmdDogMHB4O1xyXG4gICAgLyogaGVpZ2h0OiA0OHB4OyAqL1xyXG4gICAgei1pbmRleDogMVxyXG59XHJcblxyXG4uaGVhZGNvbDF7XHJcbiAgcG9zaXRpb246IHN0aWNreTtcclxuICAgIGxlZnQ6IDEzMHB4O1xyXG4gICAgLyogaGVpZ2h0OiA0OHB4OyAqL1xyXG4gICAgei1pbmRleDogMVxyXG59XHJcblxyXG4uYm9keWNvbHtcclxuICBwb3NpdGlvbjogc3RpY2t5O1xyXG4gICAgbGVmdDogMHB4O1xyXG4gICAgLyogaGVpZ2h0OiA0OHB4OyAqL1xyXG4gICAgei1pbmRleDogMTtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0Z3JleTtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbn1cclxuXHJcbi5ib2R5Y29sMXtcclxuICBwb3NpdGlvbjogc3RpY2t5O1xyXG4gICAgbGVmdDogMTMwcHg7XHJcbiAgICAvKiBoZWlnaHQ6IDQ4cHg7ICovXHJcbiAgICB6LWluZGV4OiAxO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRncmV5O1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxufVxyXG5cclxuQG1lZGlhIHNjcmVlblxyXG4gICAgICAgIHtcclxuICAgICAgICAuZG9ub3RwcmludHRoaXMge1xyXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIFxyXG4gICBAbWVkaWEgcHJpbnQge1xyXG4gICAuZG9ub3RwcmludHRoaXMge1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxuICAgICB9XHJcbiAgICB9XHJcbiAgIEBtZWRpYSBwcmludHtAcGFnZSB7c2l6ZTogbGFuZHNjYXBlfX1cclxuICBAbWVkaWEgcHJpbnQge1xyXG4gIEBwYWdlIHsgbWFyZ2luOiAwOyB9XHJcbiAgYm9keSB7IG1hcmdpbjogMS42Y207IH1cclxufVxyXG4gICAgIFxyXG5AcGFnZSBcclxuICAgIHtcclxuICAgICAgICBzaXplOiBhdXRvOyAgIC8qIGF1dG8gaXMgdGhlIGluaXRpYWwgdmFsdWUgKi9cclxuICAgICAgICBtYXJnaW46IDBtbTsgIC8qIHRoaXMgYWZmZWN0cyB0aGUgbWFyZ2luIGluIHRoZSBwcmludGVyIHNldHRpbmdzICovXHJcbiAgICB9XHJcblxyXG5cclxuLy8gLmhlYWRjb2wge1xyXG4vLyAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuLy8gICBtaW4td2lkdGg6IDEzMHB4ICFpbXBvcnRhbnQ7XHJcbi8vICAgdG9wOiBhdXRvO1xyXG4vLyAgIHotaW5kZXg6IDE7XHJcbi8vICAgaGVpZ2h0OiA5MHB4O1xyXG4vLyB9XHJcblxyXG4vLyAuaGVhZGNvbDEge1xyXG4vLyAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuLy8gICBtaW4td2lkdGg6IDEzNXB4ICFpbXBvcnRhbnQ7XHJcbi8vICAgbGVmdDogMTM1cHg7XHJcbi8vICAgdG9wOiBhdXRvO1xyXG4vLyAgIHotaW5kZXg6IDE7XHJcbi8vICAgaGVpZ2h0OiA4N3B4O1xyXG4vLyB9XHJcblxyXG4vLyAuaGVhZGNvbDIge1xyXG4vLyAgIGxlZnQ6IDI2MHB4O1xyXG4vLyAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuLy8gfVxyXG5cclxuLy8gLmhlYWRjb2wzIHtcclxuLy8gICBsZWZ0OiAyNjBweDtcclxuLy8gICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbi8vIH1cclxuXHJcbi8vIC5ib2R5Y29se1xyXG4vLyAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuLy8gICB0b3A6IGF1dG87XHJcbi8vICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRncmV5O1xyXG4vLyAgIG1pbi13aWR0aDogMTMwcHggIWltcG9ydGFudDtcclxuLy8gICB6LWluZGV4OiAxO1xyXG4vLyB9XHJcblxyXG4vLyAuYm9keWNvbDF7XHJcbi8vICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4vLyAgIGxlZnQ6IDEzNXB4O1xyXG4vLyAgIHRvcDogYXV0bztcclxuLy8gICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGdyZXk7XHJcbi8vICAgbWluLXdpZHRoOiAxMzVweCAhaW1wb3J0YW50O1xyXG4vLyAgIHotaW5kZXg6IDE7XHJcbi8vIH1cclxuXHJcbi8vIC5ib2R5Y29sMntcclxuLy8gICBsZWZ0OiAyNjBweDtcclxuLy8gICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbi8vIH1cclxuXHJcbi8vIC5ib2R5Y29sM3tcclxuLy8gICBsZWZ0OiA1NjBweDtcclxuLy8gICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbi8vIH1cclxuIiwiLnRleHQtdW5kZXJsaW5lIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG5cbi5maWVsZCB7XG4gIG1hcmdpbi1sZWZ0OiAyJTtcbn1cblxuI3RhYmxlQWN0aW9ucyB7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydCAhaW1wb3J0YW50O1xufVxuXG4uZm9ybS1ncm91cCB7XG4gIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG59XG5cbi5leGFtcGxlLWhlYWRlcnMtYWxpZ24gLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLXRpdGxlLFxuLmV4YW1wbGUtaGVhZGVycy1hbGlnbiAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItZGVzY3JpcHRpb24ge1xuICBmbGV4LWJhc2lzOiAwO1xufVxuXG4uZXhhbXBsZS1oZWFkZXJzLWFsaWduIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1kZXNjcmlwdGlvbiB7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLmV4YW1wbGUtaGVhZGVycy1hbGlnbiAubWF0LWZvcm0tZmllbGQgKyAubWF0LWZvcm0tZmllbGQge1xuICBtYXJnaW4tbGVmdDogOHB4O1xufVxuXG4ubWF0LWFjdGlvbi1yb3cge1xuICBwYWRkaW5nOiAwcHggIWltcG9ydGFudDtcbn1cblxubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXIge1xuICBoZWlnaHQ6IDQ4cHggIWltcG9ydGFudDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBsaWdodGdyZXk7XG59XG5cbi5wLXQtMjAge1xuICBwYWRkaW5nLXRvcDogMjBweCAhaW1wb3J0YW50O1xufVxuXG5tYXQtcGFuZWwtdGl0bGUge1xuICBmb250LXdlaWdodDogNjAwO1xufVxuXG50aCB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQ3NDc0Nztcbn1cblxuLnRhcmdldC13aWR0aCB7XG4gIHdpZHRoOiA3NXB4O1xufVxuXG4uZi1iIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi5wLTAge1xuICBwYWRkaW5nOiAwcHggIWltcG9ydGFudDtcbn1cblxuLm0tMCB7XG4gIG1hcmdpbjogMHB4ICFpbXBvcnRhbnQ7XG59XG5cbi5taW4td2lkdGgtMzAwIHtcbiAgbWluLXdpZHRoOiAzMDBweCAhaW1wb3J0YW50O1xuICB3aWR0aDogNDAwcHggIWltcG9ydGFudDtcbiAgbWF4LXdpZHRoOiA0MDBweCAhaW1wb3J0YW50O1xuICB3b3JkLWJyZWFrOiBicmVhay1hbGw7XG59XG5cbi5taW4td2lkdGgge1xuICBtaW4td2lkdGg6IDEzMHB4ICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAxMzBweCAhaW1wb3J0YW50O1xuICBtYXgtd2lkdGg6IDEzMHB4ICFpbXBvcnRhbnQ7XG59XG5cbi53LTUwIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtaW4td2lkdGg6IDUwcHggIWltcG9ydGFudDtcbiAgd2lkdGg6IDgwcHggIWltcG9ydGFudDtcbiAgbWF4LXdpZHRoOiA4MHB4ICFpbXBvcnRhbnQ7XG59XG5cbi53LTEwMCB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4ubS0yIHtcbiAgbWFyZ2luOiAyJTtcbn1cblxuLmJ0bi1kZWZhdWx0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZThlYiAhaW1wb3J0YW50O1xufVxuXG4uYmctcmVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmVkO1xuICBjb2xvcjogd2hpdGU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcGFkZGluZy10b3A6IDIwcHg7XG59XG5cbi5iZy15ZWxsb3cge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB5ZWxsb3c7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwYWRkaW5nLXRvcDogMjBweDtcbn1cblxuLmJnLWdyZWVuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47XG4gIGNvbG9yOiB3aGl0ZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwYWRkaW5nLXRvcDogMjBweDtcbn1cblxuLnctODAge1xuICBtaW4td2lkdGg6IDYwcHg7XG4gIHdpZHRoOiA2MHB4O1xuICBtYXgtd2lkdGg6IDYwcHg7XG4gIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcbn1cblxuLnctMTMwIHtcbiAgbWluLXdpZHRoOiAxMzBweDtcbiAgd2lkdGg6IDEzMHB4O1xuICBtYXgtd2lkdGg6IDEzMHB4O1xufVxuXG4ud2FybmluZ01zZyB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY29sb3I6IHJlZDtcbn1cblxuLmNlbnRlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICB3aWR0aDogMjAlO1xufVxuXG4ubS0yIHtcbiAgbWFyZ2luOiAyJTtcbn1cblxuLmhlYWRjb2wge1xuICBwb3NpdGlvbjogc3RpY2t5O1xuICBsZWZ0OiAwcHg7XG4gIC8qIGhlaWdodDogNDhweDsgKi9cbiAgei1pbmRleDogMTtcbn1cblxuLmhlYWRjb2wxIHtcbiAgcG9zaXRpb246IHN0aWNreTtcbiAgbGVmdDogMTMwcHg7XG4gIC8qIGhlaWdodDogNDhweDsgKi9cbiAgei1pbmRleDogMTtcbn1cblxuLmJvZHljb2wge1xuICBwb3NpdGlvbjogc3RpY2t5O1xuICBsZWZ0OiAwcHg7XG4gIC8qIGhlaWdodDogNDhweDsgKi9cbiAgei1pbmRleDogMTtcbiAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRncmV5O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi5ib2R5Y29sMSB7XG4gIHBvc2l0aW9uOiBzdGlja3k7XG4gIGxlZnQ6IDEzMHB4O1xuICAvKiBoZWlnaHQ6IDQ4cHg7ICovXG4gIHotaW5kZXg6IDE7XG4gIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0Z3JleTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG5AbWVkaWEgc2NyZWVuIHtcbiAgLmRvbm90cHJpbnR0aGlzIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIH1cbn1cbkBtZWRpYSBwcmludCB7XG4gIC5kb25vdHByaW50dGhpcyB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuQG1lZGlhIHByaW50IHtcbiAgQHBhZ2Uge1xuICAgIHNpemU6IGxhbmRzY2FwZTtcbiAgfVxufVxuQG1lZGlhIHByaW50IHtcbiAgQHBhZ2Uge1xuICAgIG1hcmdpbjogMDtcbiAgfVxuICBib2R5IHtcbiAgICBtYXJnaW46IDEuNmNtO1xuICB9XG59XG5AcGFnZSB7XG4gIHNpemU6IGF1dG87XG4gIC8qIGF1dG8gaXMgdGhlIGluaXRpYWwgdmFsdWUgKi9cbiAgbWFyZ2luOiAwbW07XG4gIC8qIHRoaXMgYWZmZWN0cyB0aGUgbWFyZ2luIGluIHRoZSBwcmludGVyIHNldHRpbmdzICovXG59Il19 */\"","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport html2canvas from 'html2canvas';\r\nimport jsPDF from 'jspdf';\r\nimport { LocalStorageService } from 'ngx-webstorage';\r\nimport { PSCMetricDetails } from '../add-score-card/add-score-card.model';\r\nimport { ScoreCard } from '../performance-score-card/performance-score-card.model';\r\nimport * as XLSX from 'xlsx';\r\nimport { DorseyService } from '../dorsey.service';\r\nimport { copyRight } from '../copyRight.model';\r\n\r\n@Component({\r\n selector: 'app-view-score-card',\r\n templateUrl: './view-score-card.component.html',\r\n styleUrls: ['./view-score-card.component.scss']\r\n})\r\nexport class ViewScoreCardComponent implements OnInit {\r\n @Input() selectedMetrics: Array<PSCMetricDetails> = [];\r\n @Input() scoreCard: any;\r\n @Input() isViewScoreCard: boolean;\r\n @Input() WeekDateList: [];\r\n @Input() isScoreCardEnable: boolean;\r\n\r\n @Output() viewScoreCardChanged: EventEmitter<boolean> = new EventEmitter();\r\n @Output() goToAddScoreCardChanged = new EventEmitter();\r\n @Input() showDetails: boolean = false;\r\n excelMetricList: Array<PSCMetricDetails> = [];\r\n showLogo: boolean = false;\r\n MenuPermissions: any;\r\n menuData: any;\r\n menuID: string;\r\n menuName: string;\r\n loginCompanyName: string;\r\n employeeDetails: any;\r\n\r\n constructor(private storage: LocalStorageService,\r\n private dorseyService: DorseyService) {\r\n this.menuData = this.storage.retrieve('menuData');\r\n this.MenuPermissions = this.storage.retrieve('MenuPermissions');\r\n this.loginCompanyName = this.storage.retrieve('loginCompanyName');\r\n this.employeeDetails = this.storage.retrieve('employeeDetails');\r\n }\r\n\r\n ngOnInit(): void {\r\n this.menuData = this.menuData.filter(x => x.MenuName.toString().toLowerCase() === 'score card');\r\n if (this.menuData.length > 0) {\r\n this.menuName = this.menuData[0][\"MenuName\"];\r\n this.menuID = this.menuData[0][\"MenuID\"];\r\n }\r\n var format = /[ `!@#$%^&*()_+\\-=\\[\\]{};':\"\\\\|,.<>\\/?~]/;\r\n this.excelMetricList = JSON.parse(JSON.stringify(this.selectedMetrics));//[...this.selectedMetrics];\r\n this.excelMetricList.forEach(ent => {\r\n ent.UOM = format.test(ent.UOM) ? \"'\" + ent.UOM + \"'\" : ent.UOM;\r\n });\r\n }\r\n\r\n exportAsXLSX(): void {\r\n var fileName = this.loginCompanyName + 'ScoreCard' + \"_\" + (new Date().getMonth() + 1) + '-' + new Date().getDate() + '-' + new Date().getFullYear() + \".xlsx\";\r\n /* table id is passed over here */\r\n let element = document.getElementById('table1');\r\n const ws: XLSX.WorkSheet = XLSX.utils.table_to_sheet(element);\r\n\r\n /* generate workbook and add the worksheet */\r\n const wb: XLSX.WorkBook = XLSX.utils.book_new();\r\n XLSX.utils.book_append_sheet(wb, ws, 'Score Card');\r\n\r\n /* save to file */\r\n XLSX.writeFile(wb, fileName);\r\n\r\n }\r\n\r\n backToScoreCard(): void {\r\n this.viewScoreCardChanged.emit(this.isViewScoreCard);\r\n }\r\n\r\n goToAddScoreCard(): void {\r\n //emitting step id, need to navigate to step 4 in edit score card\r\n this.goToAddScoreCardChanged.emit(4);\r\n }\r\n\r\n print1() { window.print() }\r\n print(e): void {\r\n document.getElementById(e).style.marginTop = \"20px\";\r\n var printContents = document.getElementById(e).innerHTML;\r\n var popupWin = window.open('', '_blank', 'width=auto,height=auto');\r\n popupWin.document.open();\r\n popupWin.document.write(printContents);\r\n popupWin.document.close();\r\n }\r\n\r\n exportAsXLSX1(): void {\r\n let allData = JSON.parse(JSON.stringify(this.selectedMetrics));\r\n for (let i = 0; i < allData.length; i++) {\r\n allData[i][\"Goal \"] = allData[i].GoalName;\r\n allData[i][\"Metric \"] = allData[i].Description;\r\n allData[i][\"Green\"] = (allData[i].GreenMaximum) + \"-\" + (allData[i].GreenMinimum);\r\n allData[i][\"Yellow\"] = (allData[i].YellowMaximum) + \"-\" + (allData[i].YellowMinimum);\r\n allData[i][\"Red\"] = (allData[i].RedMaximum) + \"-\" + (allData[i].RedMinimum);\r\n allData[i].Frequency = allData[i].Frequency;\r\n allData[i].UOM = allData[i].UOM;\r\n allData[i][\"Wk1\"] = allData[i].Week1;\r\n allData[i]['Wk2'] = allData[i].Week2;\r\n allData[i]['Wk3'] = allData[i].Week3;\r\n allData[i]['Wk4'] = allData[i].Week4;\r\n allData[i]['Wk5'] = allData[i].Week5;\r\n allData[i]['Wk6'] = allData[i].Week6;\r\n allData[i]['Wk7'] = allData[i].Week7;\r\n allData[i]['Wk8'] = allData[i].Week8;\r\n allData[i]['Wk9'] = allData[i].Week9;\r\n allData[i]['Wk10'] = allData[i].Week10;\r\n allData[i]['Wk11'] = allData[i].Week11;\r\n allData[i]['Wk12'] = allData[i].Week12;\r\n allData[i]['Wk13'] = allData[i].Week13;\r\n allData[i]['Wk14'] = allData[i].Week14;\r\n delete (allData[i].Frequency);\r\n delete (allData[i].UOM);\r\n delete (allData[i].GoalName);\r\n delete (allData[i].GreenMaximum);\r\n delete (allData[i].GreenMinimum);\r\n delete (allData[i].YellowMaximum);\r\n delete (allData[i].YellowMinimum);\r\n delete (allData[i].RedMaximum);\r\n delete (allData[i].RedMinimum);\r\n delete (allData[i].Description);\r\n delete (allData[i].Id);\r\n delete (allData[i].PSCMasterId);\r\n delete (allData[i].PointerID);\r\n delete (allData[i].GoalID);\r\n delete (allData[i].GoalName);\r\n delete (allData[i].TeamID);\r\n delete (allData[i].DepartmentID);\r\n delete (allData[i].CompanyID);\r\n delete (allData[i].IsSelected);\r\n delete (allData[i].GreenTargetSymbol)\r\n delete (allData[i].YellowTargetSymbol)\r\n delete (allData[i].RedTargetSymbol)\r\n delete (allData[i].goalSpan)\r\n delete (allData[i].Week1);\r\n delete (allData[i].Week2);\r\n delete (allData[i].Week3);\r\n delete (allData[i].Week4);\r\n delete (allData[i].Week5);\r\n delete (allData[i].Week6);\r\n delete (allData[i].Week7);\r\n delete (allData[i].Week8);\r\n delete (allData[i].Week9);\r\n delete (allData[i].Week10);\r\n delete (allData[i].Week11);\r\n delete (allData[i].Week12);\r\n delete (allData[i].Week13);\r\n delete (allData[i].Week14);\r\n }\r\n this.dorseyService.generateExcelForScoreCard(allData, this.loginCompanyName + 'ScoreCard' + \"_\" + (new Date().getMonth() + 1) + '-' + new Date().getDate() + '-' + new Date().getFullYear(), 'Score Card', \"Company: \" + this.loginCompanyName, '', \"Score Card Report\", copyRight, 'FFFFFF00', 'FF0000FF');\r\n }\r\n\r\n myStyleWeek(metric, i) {\r\n var color = '';\r\n if (metric['Week' + i] !== null && metric.GreenMinimum !== null) {\r\n if (!metric.GreenTargetSymbol &&\r\n (\r\n (Number(metric['Week' + i]) >= Number(metric.GreenMinimum)) && (Number(metric['Week' + i]) <= Number(metric.GreenMaximum)) ||\r\n (Number(metric['Week' + i]) <= Number(metric.GreenMinimum)) && (Number(metric['Week' + i]) >= Number(metric.GreenMaximum))\r\n )) {\r\n color = '#0fbf0f';\r\n } else if (metric.GreenTargetSymbol && metric['Week' + i] !== null) {\r\n if (metric.GreenTargetSymbol !== 'Yes' && metric.GreenTargetSymbol !== 'No') {\r\n if (eval(metric['Week' + i] + metric.GreenTargetSymbol + metric.GreenMinimum)) {\r\n color = '#0fbf0f';\r\n }\r\n } else if ((metric.GreenTargetSymbol == 'Yes' || metric.GreenTargetSymbol == 'No') && metric['Week' + i] == metric.GreenMinimum) {\r\n color = '#0fbf0f';\r\n }\r\n }\r\n }\r\n\r\n if (metric['Week' + i] !== null && metric.YellowMinimum !== null) {\r\n if (!metric.YellowTargetSymbol &&\r\n (\r\n (Number(metric['Week' + i]) >= Number(metric.YellowMinimum) && Number(metric['Week' + i]) <= Number(metric.YellowMaximum)) ||\r\n (Number(metric['Week' + i]) <= Number(metric.YellowMinimum) && Number(metric['Week' + i]) >= Number(metric.YellowMaximum))\r\n )) {\r\n color = 'yellow';\r\n } else if (metric.YellowTargetSymbol && metric['Week' + i] !== null) {\r\n if (metric.YellowTargetSymbol !== 'Yes' && metric.YellowTargetSymbol !== 'No') {\r\n if (eval(metric['Week' + i] + metric.YellowTargetSymbol + metric.YellowMinimum)) {\r\n color = 'yellow';\r\n }\r\n }\r\n else if ((metric.YellowTargetSymbol == 'Yes' || metric.YellowTargetSymbol == 'No') && Number(metric['Week' + i]) == Number(metric.YellowMinimum)) {\r\n color = 'yellow';\r\n }\r\n }\r\n }\r\n if (metric['Week' + i] !== null && metric.RedMinimum !== null) {\r\n if (!metric.RedTargetSymbol &&\r\n (\r\n (Number(metric['Week' + i]) >= Number(metric.RedMinimum) && Number(metric['Week' + i]) <= Number(metric.RedMaximum)) ||\r\n (Number(metric['Week' + i]) <= Number(metric.RedMinimum) && Number(metric['Week' + i]) >= Number(metric.RedMaximum))\r\n )) {\r\n color = '#ff0505';\r\n } else if (metric.RedTargetSymbol && metric['Week' + i] !== null) {\r\n if (metric.RedTargetSymbol !== 'Yes' && metric.RedTargetSymbol !== 'No') {\r\n if (eval(metric['Week' + i] + metric.RedTargetSymbol + metric.RedMinimum)) {\r\n color = '#ff0505';\r\n }\r\n }\r\n else if ((metric.RedTargetSymbol == 'Yes' || metric.RedTargetSymbol == 'No') && Number(metric['Week' + i]) == Number(metric.RedMinimum)) {\r\n color = '#ff0505';\r\n }\r\n }\r\n }\r\n return { \"background-color\": color, \"font-weight\": \"bold\" };\r\n //}\r\n }\r\n\r\n public convetToPDF() {\r\n //this.showLogo = true;\r\n let DATA = document.getElementById('print-section');\r\n DATA.style.display = \"block\";\r\n DATA.style.paddingTop = \"20px\";\r\n document.body.style['zoom'] = '60%';\r\n html2canvas(DATA)\r\n .then((canvas) => {\r\n const imgData = canvas.toDataURL('image/png');\r\n const pdf = new jsPDF({\r\n orientation: 'landscape',\r\n });\r\n const imgProps = pdf.getImageProperties(imgData);\r\n const pdfWidth = pdf.internal.pageSize.getWidth();\r\n const pdfHeight = (imgProps.height * pdfWidth) / imgProps.width;\r\n pdf.addImage(imgData, 'PNG', 0, 0, pdfWidth, pdfHeight);\r\n pdf.save('ScoreCard.pdf');\r\n this.showLogo = false;\r\n });\r\n document.body.style['zoom'] = '100%';\r\n }\r\n\r\n printScoreCard(printSection): void {\r\n document.body.style['zoom'] = '50%';\r\n window.print();\r\n document.body.style['zoom'] = '100%';\r\n }\r\n\r\n}\r\n","// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n production: false,\n API_URL: 'https://www.tdgdm.com/DorseyAPI/api/' //azure\n //API_URL: 'http://123.176.43.187:8005/api/' //dev\n //API_URL: 'http://123.176.43.187:6008/api/' //qa\n //API_URL: 'http://localhost:52718/api/'\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error'; // Included with Angular CLI.\n","import { 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 .catch(err => console.error(err));\n","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */"],"sourceRoot":"webpack:///"}